The store's address is the registry seat holder's listen, so the provision
artifact-store retires; the sweep and the read tools read the store through
list, never by its files or its read side.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
A store that cannot remove a tag alone (another tag names its digest) kept the tag and the holder said
removed, so the builder and every follower believed the tagged version gone while it stayed pullable:
work reported done that was not done. The shared registry part gains the outcome kept: in remove's
answer (kept, the reason shared-digest, the tags still naming the digest) and as its own event, in all
four registry seats. Regenerated with mesh-catalog's seatgen (join-mesh-catalog ccb7eaff); seatgen
-check passes; fixtures for the answer and the event in each seat.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
seatgen writes a string's enum as Go constants, so the sweep names
RemoveInputReasonRetention instead of the literal. release of what is not
held is no error. The package seats' fixtures name a package as design 32
does (git.novox.be/novox/mesh-sdk/go, @novox/mesh-sdk), name says so, and
module equals name for a Go package. Generated with mesh-catalog's seatgen
(wip/registry-a3); seatgen -check passes.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
One @novox/mesh-contracts would rebuild every TypeScript user at any seat's change, since the indexer
counts the npm package a lock resolves. Generated by seatgen c1fdd7c; ts/ keeps the seat list alone.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig