root 0e530f4436 drift fix: validatord in start_go_stack + parity refresh
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>
2026-05-05 03:27:47 -05:00

1.3 KiB

subject_audit_parity

Generated: 2026-05-05 08:23:08 UTC Spec: /home/profit/lakehouse/docs/specs/SUBJECT_MANIFESTS_ON_CATALOGD.md §5 Step 8 Rust helper: /home/profit/lakehouse/target/release/parity_subject_audit Go helper: ./bin/subject_audit_helper Audit dir: /home/profit/lakehouse/data/_catalog/subjects

Phase 1 — Known-answer vector

Hardcoded fixture row, identical inputs, byte-compare canonical-JSON + HMAC.

MATCH

{"mode":"known_answer","canonical":"{\"accessor\":{\"daemon\":\"gateway\",\"kind\":\"gateway_lookup\",\"purpose\":\"parity_test\",\"trace_id\":\"trace-fixed\"},\"candidate_id\":\"WORKER-FIXED\",\"fields_accessed\":[\"name\"],\"prev_chain_hash\":\"GENESIS\",\"result\":\"success\",\"schema\":\"subject_audit.v1\",\"ts\":\"2026-05-03T12:00:00Z\"}","hmac":"f730fa038c847c27386b92eb1939ec64c62086c0a92617ac0bdf9f650c390b96","canonical_bytes_len":266}

Phase 2 — Real production audit logs

Every *.audit.jsonl in /home/profit/lakehouse/data/_catalog/subjects verified by both runtimes.

SKIP — signing key not readable at /tmp/lakehouse_audit/subject_audit.key. Set KEY_PATH=... or seed /tmp/lakehouse_audit/subject_audit.key (see systemd unit).

Summary

1 / 1 parity assertions passed.

Status: PARITY — every Rust assertion matches Go byte-for-byte.