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(split): reject evaluation identities already present at prior cutoff #695
admit_rolling_origin_partition(...) verifies that evaluation rows have an AvailableTime after the training cutoff in the evaluation snapshot, but it does not reject an evaluation identity that is already present in the training snapshot.
That allows a caller to omit an already-known identity from training_document_ids, rebuild the same UUID in the later snapshot with a later AvailableTime, and admit it as newly available held-out evidence. The selected train/evaluation ID sets are disjoint, so the current overlap check does not catch this cross-snapshot contradiction.
Scientific impact
Rolling-origin evaluation must not count evidence as future/new when the prior cutoff snapshot itself proves the same identity was already available. Otherwise temporal leakage can be introduced through caller-selected omission plus later availability rebinding.
This is a local split-integrity invariant, not source-provenance authentication: Evidence/source authority remains with #527/#658/#671. The split owner only needs to trust its own prior snapshot presence as proof that the identity is not newly available.
Required contract
realistic RED: same UUID exists in the training snapshot at/before the train cutoff, but the caller excludes it from the training ID slice and supplies it in the evaluation snapshot with a later AvailableTime; admission must fail closed;
preserve legitimate later training of documents that were genuinely absent from the prior snapshot;
do not weaken connected-group, cutoff, duplicate, or availability checks;
document the distinction between prior-snapshot presence and external source authenticity.
Acceptance
admit_rolling_origin_partition(...) rejects every evaluation identity already contained in the bound training snapshot before numerical consumers can score it.
Ordinary-forward repair landed on the canonical #639 branch.
realistic behavioral RED: f728ed08bc925e7439d4107d890153b772ab816e adds a prior snapshot containing UUID A at the train cutoff, deliberately omits A from the selected training IDs, and re-presents A in the later snapshot with a later AvailableTime; predecessor admission accepts this invalid rebound, so the fixture is causal;
minimal repair: e03ed4134705c98dc4baffa27e5cae715fbdd1eb rejects any evaluation identity already contained in the bound training snapshot before availability/scoring admission, and documents that prior-snapshot presence is local split evidence rather than external source authentication;
Delta from prior #639 head a195987... is 3 commits / 3 files: one new contract test, +16/-6 owner code/rustdoc, and one changelog fragment. #691 expanding-history semantics are preserved because genuine evaluation identities remain absent from the prior snapshot. Keep this issue open until exact-head hosted gates are terminal GREEN; no hosted RED/GREEN is claimed yet.
Activity
test(split): reject prior-snapshot identity rebound (#695)
fix(split): reject prior-snapshot evaluation rebound (#695)
docs(changelog): record prior-snapshot leakage guard (#695)
seonghobae commentedon Sep 22, 2026
Ordinary-forward repair landed on the canonical #639 branch.
f728ed08bc925e7439d4107d890153b772ab816eadds a prior snapshot containing UUID A at the train cutoff, deliberately omits A from the selected training IDs, and re-presents A in the later snapshot with a laterAvailableTime; predecessor admission accepts this invalid rebound, so the fixture is causal;e03ed4134705c98dc4baffa27e5cae715fbdd1ebrejects any evaluation identity already contained in the bound training snapshot before availability/scoring admission, and documents that prior-snapshot presence is local split evidence rather than external source authentication;8871eb5f24c1dc964b848497f2f9cf5b7d3d6f60.Delta from prior #639 head
a195987...is 3 commits / 3 files: one new contract test, +16/-6 owner code/rustdoc, and one changelog fragment. #691 expanding-history semantics are preserved because genuine evaluation identities remain absent from the prior snapshot. Keep this issue open until exact-head hosted gates are terminal GREEN; no hosted RED/GREEN is claimed yet.