Separate current-input admission from future output and downstream state

General lesson: In stateful tool-agent replay, keep three predicates independent: whether the current pre-decision input is reconstructable, whether the observed output is comparable, and whether state for a later decision is reconstructable. A missing, malformed, multiple, text-only, failed, or stale output must not retroactively disqualify an already frozen current input. It may make output comparison impossible and may quarantine only downstream inputs that depend on an unproven state effect.

Applicability and limits: This applies to chronological replay builders whose state can change through handlers. A stale marker is not necessarily proof of no mutation when runtime can detect staleness either before handler execution or after a handler has run without rollback. Restore downstream eligibility only through a pinned reducer or independent state witness. Give witnesses only the causal prefix through the target caller; never expose future turns, transitions, exit snapshots, or unknown future fields. Missing final exit metadata is structurally compatible with an active/ended call and cannot be a prerequisite for an earlier input. This method establishes source-faithful normalized inputs, not historical wire or deployment provenance.

Evidence/example — 2026-09-18: A pure synthetic reconstruction core was hardened with adversarial cases for direct and nested stale statuses, absent/malformed future exit metadata, revisits, no-tool recovery, and future-output noninterference. Twenty-four tests plus independent review passed. No production transcripts, model outputs, live handlers, source queries, backend writes, or customer data were used.