Closes the cross-file checkpoint-atomicity gap in ADR-0156. The four checkpoint files now live in a committed gen-NNNN/ directory; the single atomic os.replace of a 'current' pointer file is the commit boundary. A kill before the pointer swap leaves the prior committed generation intact; a kill after commits the new generation. Unreferenced gen dirs are ignored. ADR-0156's deferred parent-dir fsync is also closed. Key changes: - engine_state/__init__.py: begin_generation() + commit_generation() + _resolve_dir() for all load_* methods. Flat-layout legacy checkpoints migrate into gen-0000 on first begin_generation call. GC retains K=2 committed generations. - chat/runtime.py: checkpoint_engine_state uses the two-phase commit; finalize_turn_trace_hash no longer writes discovery_candidates outside the generation sequence (the second unguarded write path is closed). - evals/l10_continuity/runner.py: _inject_orphan_tmp updated to inject the two orphan shapes of the generation model. - tests/test_adr_0219_generation_checkpoint.py: 18 tests, one per acceptance-gate bullet + biting mutation variant each. L10 lane: all_gates_pass=true; versor_condition<1e-6 throughout. Smoke: 95 passed. Runtime: 20 passed. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| __main__.py | ||
| always_on.py | ||
| always_on_daemon.py | ||
| anaphora.py | ||
| articulation_telemetry.py | ||
| ask_runtime.py | ||
| atom_equivalence.py | ||
| cross_pack_grounding.py | ||
| dispatch_trace.py | ||
| example_surface.py | ||
| narrative_surface.py | ||
| oov_surface.py | ||
| pack_grounding.py | ||
| pack_resolver.py | ||
| pack_surface_candidate.py | ||
| partial_surface.py | ||
| refusal.py | ||
| register_substantive.py | ||
| register_variation.py | ||
| runtime.py | ||
| teaching_grounding.py | ||
| telemetry.py | ||
| thread_context.py | ||
| verdicts.py | ||