You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
scientific(relation): exclude unpromoted inferred transitions from numerical estimation #673
At b85c5896beb24d1b8bb415689c1e6cf4a277a2dc, ReferenceTopicInput::new(...) collects every RelationEdge whose kind is a transition and whose endpoints are in the admitted corpus. collect_transition_pairs(...) does not inspect RelationEvidenceStatus.
That crosses an existing owner boundary. relation_graph::RelationEvidenceStatus explicitly distinguishes Observed from Inferred so estimators and audits do not treat LLM/model/heuristic proposals as raw documentary evidence; Inferred is documented as not yet promoted. Today an inferred TransitionsTo edge therefore enters transition_pairs and changes the relational penalty, eta gradient, GGN precision/diagonal variance, and emitted sequence-edge/lineage counts exactly like observed evidence.
This is scientific activation, not a presentation-only defect. It lets unpromoted model/heuristic output alter numerical estimation and uncertainty.
Required repair
topic_measurement numerical admission must use only directly observed transition edges.
Inferred transition edges may remain in relation_graph for provenance/review but must not enter the reference estimator's transition_pairs until some explicit owner promotion changes their evidence status.
A graph containing only inferred transition edges must fail ReferenceTopicInput::new(...) with InvalidModelInput because there is no numerically admissible transition evidence.
A mixed graph must behave as though only its observed transition edges were supplied; no silent promotion or status mutation.
Keep relation kind/time validation in relation_graph; do not duplicate source truth or introduce an LLM/model-specific exception in topic_measurement.
Update rustdoc/CHANGELOG and trace the exact RED→repair commits.
Non-goals
No change to relation-edge persistence/provenance, no automatic promotion of inferred edges, no tolerance/estimator hyperparameter change, no scanner/gate change, and no claim that observed status alone solves #658/#671 source/event-time provenance.
This issue is independent of #671: #671 authenticates source/event-time coordinates; this issue prevents already-typed but unpromoted inferred relation evidence from becoming numerical authority.
RED 400f64b2c1cfff106bd7d318355132ff1a98f42f: public integration contract builds a valid inferred-only TransitionsTo graph and requires ReferenceTopicInput::new(...) to fail with InvalidModelInput. On predecessor b85c5896..., collect_transition_pairs(...) accepts that inferred edge, so the contract is causally red. Its hosted workflows were superseded/cancelled before execution; no hosted RED is claimed.
minimal production repair 55274ed1914ccc9fcd49edec5aae7b77eff497cd: topic_measurement::reference now admits transition pairs only when the edge is both a transition kind and RelationEvidenceStatus::Observed; rustdoc now matches ADR 0012's existing "explicit observed predecessor/successor relations only" estimand. No relation graph persistence, estimator arithmetic, tolerance, or hyperparameter changed.
mixed-graph hardening 205df30282c6f7b52809e819a1421873d1e81f8d: deterministic reference fits for an observed graph and the same graph plus a distinct inferred cross-cluster transition must be exactly identical, while inferred-only still fails admission.
The issue remains open until exact-head hosted gates provide current GREEN evidence. This repair does not solve #658/#671 source/event-time provenance; it only prevents unpromoted inferred relation evidence from becoming numerical authority.
Follow-on owner-authority gap: #675. #673 now correctly prevents RelationEvidenceStatus::Inferred from becoming numerical authority, but RelationEdge::new(...) still lets any public caller supply RelationEvidenceStatus::Observed directly. #675 therefore keeps #673's estimator filter but requires final Observed activation to be backed by an owner-issued Evidence/Temporal Semantics receipt after #527/#658 settle. Do not weaken #673 or add local booleans/digests in topic_measurement.
Activity
test(relation): reject inferred-only numerical transitions (#673)
fix(relation): keep inferred edges out of numerical transitions (#673)
docs(changelog): record observed transition numerical authority (#673)
test(relation): prove inferred transitions stay provenance-only (#673)
seonghobae commentedon Sep 22, 2026
Ordinary-forward implementation on #639:
400f64b2c1cfff106bd7d318355132ff1a98f42f: public integration contract builds a valid inferred-onlyTransitionsTograph and requiresReferenceTopicInput::new(...)to fail withInvalidModelInput. On predecessorb85c5896...,collect_transition_pairs(...)accepts that inferred edge, so the contract is causally red. Its hosted workflows were superseded/cancelled before execution; no hosted RED is claimed.55274ed1914ccc9fcd49edec5aae7b77eff497cd:topic_measurement::referencenow admits transition pairs only when the edge is both a transition kind andRelationEvidenceStatus::Observed; rustdoc now matches ADR 0012's existing "explicit observed predecessor/successor relations only" estimand. No relation graph persistence, estimator arithmetic, tolerance, or hyperparameter changed.29d97647bb1a358d3379f9e3f7401b9ac6291e10.205df30282c6f7b52809e819a1421873d1e81f8d: deterministic reference fits for an observed graph and the same graph plus a distinct inferred cross-cluster transition must be exactly identical, while inferred-only still fails admission.The issue remains open until exact-head hosted gates provide current GREEN evidence. This repair does not solve #658/#671 source/event-time provenance; it only prevents unpromoted inferred relation evidence from becoming numerical authority.
seonghobae commentedon Sep 22, 2026
Follow-on owner-authority gap: #675. #673 now correctly prevents
RelationEvidenceStatus::Inferredfrom becoming numerical authority, butRelationEdge::new(...)still lets any public caller supplyRelationEvidenceStatus::Observeddirectly. #675 therefore keeps #673's estimator filter but requires final Observed activation to be backed by an owner-issued Evidence/Temporal Semantics receipt after #527/#658 settle. Do not weaken #673 or add local booleans/digests intopic_measurement.