7852aad60f4d21b7c5edd676da78b2e966f218b8
internal/decision kept a 25-turn ring and persisted nothing, on the argument that a turn record is read minutes later or never. The owner reversed that on 06-08-2026: the routing heads cannot be fitted or calibrated without real utterances, and V-631 measured that 9 of the 31 modes have no seed example at all. docs/plans/21-persisting-the-routing-trace.md carries the reversal, and CLAUDE.md now says which of its own sentences stopped being true. cmd/mavend/routingtrace.go is a second sink beside the ring, which did not move: the ring is still what /trace reads and still what a test with no store gets. A failed insert is logged and swallowed, because a trace must never change what he hears. traceSink keeps a nil store out of the interface, since a typed nil pointer there would pass the nil check and die on the first turn. Four fields the ring never carried: which reach the turn arrived on, whether stage 0 answered before the classifier was consulted, which encoder body was live (the same EmbedderID string the vector marker uses), and what the action stage actually did. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0117tgnmbgZpHVV3XSNw8Qua
Description
No description provided
Languages
Go
97.1%
HTML
0.9%
Shell
0.6%
CSS
0.5%
Makefile
0.3%
Other
0.6%