Problem
GET /emotional-state and GET /emotional-state/recent do not echo stored metadata — proven live 2026-07-12: five registers stored the same day (post-0.19.0, where the store path attaches both source: "openclaw_agent_end" and Postmark's channelId) all return empty/absent metadata on GET. Since source has been attached to every store for months, its absence on read proves the endpoint drops metadata entirely rather than Postmark failing to write.
Impact
What we could do
Backend ask (Hyperspell API): include stored metadata in emotional-state GET responses. Client-side is already speculatively mapped (see #68's guide: EmotionalStateLatest.metadata?). This is the highest-leverage single backend change for the emotional-register roadmap.
How we'd test it
Store a register with known metadata, GET it back, assert the keys round-trip — the exact probe run 2026-07-12 that produced this finding (metadata-only output, content suppressed).
Problem
GET /emotional-stateandGET /emotional-state/recentdo not echo storedmetadata— proven live 2026-07-12: five registers stored the same day (post-0.19.0, where the store path attaches bothsource: "openclaw_agent_end"and Postmark'schannelId) all return empty/absent metadata on GET. Sincesourcehas been attached to every store for months, its absence on read proves the endpoint drops metadata entirely rather than Postmark failing to write.Impact
depth_score/turn_countmetadata back at fetch time for arc selection — its guide explicitly flagged this echo as its backend verification gate; that gate now conclusively FAILS. Ballast's graceful-degradation design (neutral depth when metadata absent) means it can still ship, but it will behave as pure recency until the backend echoes metadata.What we could do
Backend ask (Hyperspell API): include stored
metadatain emotional-state GET responses. Client-side is already speculatively mapped (see #68's guide:EmotionalStateLatest.metadata?). This is the highest-leverage single backend change for the emotional-register roadmap.How we'd test it
Store a register with known metadata, GET it back, assert the keys round-trip — the exact probe run 2026-07-12 that produced this finding (metadata-only output, content suppressed).