mirror of
https://github.com/esengine/DeepSeek-Reasonix.git
synced 2026-11-07 10:45:59 -10:00
The analyzer that reads todo_progress back out of a trajectory was a scratch script, which made it the one link in the chain with no way to fail. A field rename in the kernel, the wire, or the renderer would have left it reading every later session as having no semantic progress at all — and a corpus collected across that change would mix two definitions in one quantile. tools/trajectory/progress_corpus.py, standard library only, with the distinction that matters carried as data rather than as a printed note: progress_source and progress_fidelity are fields of every sample. The semantic source is the todo_progress frame; the proxy source counts complete_step calls, which is what an export predating that frame offers and which overcounts, because a sign-off on an already complete step advances nothing. --require-semantic refuses the downgrade, so a corpus meant to calibrate policy cannot silently absorb a proxy sample. Removing false advances can only merge adjacent gaps, so the proxy's maximum gap is a lower bound on the semantic one; its quantiles and event counts are not, and the README says which is which. On the session behind this work that bound is 348.81M tokens and 739 minutes between two host-observed advances, stated in resources rather than rounds. The tool measures and does not judge: no verdict, no recommended budget, no score. Reported numbers are descriptive. A todo line that stops parsing raises rather than reading as absent, and CI runs the tests, because the failure this guards against is exactly the silent one that produced three missing-frame defects in a row.