Two anchor-vs-reality drifts found during /read-mem audit: 1. start_go_stack.sh never started validatord :3221, even though it shipped 2026-05-02 (f9e7241) and STATE_OF_PLAY claims it as part of the persistent stack. Cold-boot quietly omitted it, leaving /v1/iterate unreachable on the persistent gateway. Fix: factored chatd's conditional-start block into a start_shared helper, called for both chatd :3220 and validatord :3221. Same shared-with-smokes posture as chatd (no S3 / JSONL-only state, no temp-toml override needed). 2. STATE_OF_PLAY header claimed 3 parity probes / 32 assertions. Reality is 6 probes / 38 assertions since subject_audit landed in 262a77a (2026-05-03). Header refreshed; cross-references the three runtime-divergence classes documented at lakehouse/STATE_OF_PLAY.md lines 36-39. Parity reports regenerated as verification artifact (all 6 still green: 8+12+2+4+1+6). Same pattern as c0a55b1. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
728 B
728 B
Validator parity probe — Rust :3100 vs Go :4110
Date: 2026-05-05T08:23:08Z
Rust gateway: http://127.0.0.1:3100 · Go gateway: http://127.0.0.1:4110
Identical POST /v1/validate request → both runtimes. Match
= identical HTTP status + identical body (modulo elapsed_ms).
| Case | Rust status | Go status | Status match | Body match |
|---|---|---|---|---|
| playbook_happy | 200 | 200 | ✓ | ✓ |
| playbook_missing_fingerprint | 422 | 422 | ✓ | ✓ |
| playbook_wrong_prefix | 422 | 422 | ✓ | ✓ |
| playbook_empty_endorsed | 422 | 422 | ✓ | ✓ |
| playbook_overfull | 422 | 422 | ✓ | ✓ |
| fill_phantom | 422 | 422 | ✓ | ✓ |
Tally: 6 match · 0 diff (out of 6 cases)