Merge pull request 'Design 47 G: lead answers A-321 and A-322, the watchman follows wants by seat' (#598) from design/47-G-lead-answers-25 into main

This commit was merged in pull request #598.
This commit is contained in:
2026-11-12 23:07:47 +00:00
@@ -578,3 +578,11 @@ the principle that settles it, cited as "design 47 G A-n".
`cmd/mesh-host/recovery_integration_test.go` is that form), and the whole undo end to end belongs to the test lab (the
operator, 2026-11-12: paused until its performance is fixed), not to a check and not to a live node. No check
fetches or starts real builds.
- **A-321** (A-210, A-303; principles 3 and 7) The watchman awaits a followed state by its seat and state
(`mesh-wants`, `wants`) and resolves the bucket name at each use through the process reader's holder accessor; a start
never waits for a holder. A seeded pulse, stuck key or finding of a bucket not yet resolved is kept, and closed only
after the late read of the resolved bucket.
- **A-322** (A-298, A-321; principle 7) A message on a process's event hub has one taker. The watchman replaces its
catch-all of seat events by one handler per seat it consumes; for the seat `mesh-catalog` it takes each event it
consumes except `registration-changed`, which the branches follower takes, and whatever the watchman needs of that event
it takes from the follower. The SDK's hub keeps one taker per message.