Design 47: milestone G's part complete, every operator answer and three review rounds written in #539

Merged
mesh-tools merged 13 commits from feat/47-G into main 2026-11-11 01:34:17 +00:00
Member

Design 47's milestone G (pipelines per module, dependencies per artifact, the delivery system's seams), written as a part a builder reads whole: G.md and G-1..G-8, lines §1-§390, with design 51 amended to match.

  • The operator's answers of 2026-11-10/11 are design lines: one semantic version per module, released versions only in the catalog, edges judged by digest, a dependent waits for its dependency on every present machine, the lint scan for fixed names dropped, callers of open verbs (invokers; the 15 connectivity verbs also persons and sessions), and findings heard as events (G-8: each observer says its findings on its own stream and states them whole at every start, so a restart never leaves a condition standing, the kind of issue 1966 note 199).
  • The operator, 2026-11-11: no new decision records. A line that departs from an accepted record by the operator's answer says so in its Why.
  • Review by architectural domain: rounds 1, 2 and 3 (the last), all findings answered; round 3's record is kept beside the milestone's working files.
  • G's part file sizes are each under 60 KB; design 47's main file stays over its 80 KB bound (bent and said in round 1).

Next: design 46's milestone 7 (the approval mark) and design 34's every-event milestone join G by the operator's answer of 2026-11-11 02:26 CET, in a second pull request after their own review; then G's prepare (playbook 07).

Reviewed-by: review-security-and-upgrade, review-seams-and-tools, review-running-and-testing, review-health-and-events (round 3) for lead-47@shanks at 87827ebb82

https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ

Design 47's milestone G (pipelines per module, dependencies per artifact, the delivery system's seams), written as a part a builder reads whole: G.md and G-1..G-8, lines §1-§390, with design 51 amended to match. - The operator's answers of 2026-11-10/11 are design lines: one semantic version per module, released versions only in the catalog, edges judged by digest, a dependent waits for its dependency on every present machine, the lint scan for fixed names dropped, callers of open verbs (`invokers`; the 15 connectivity verbs also `persons` and `sessions`), and findings heard as events (G-8: each observer says its findings on its own stream and states them whole at every start, so a restart never leaves a condition standing, the kind of issue 1966 note 199). - The operator, 2026-11-11: no new decision records. A line that departs from an accepted record by the operator's answer says so in its Why. - Review by architectural domain: rounds 1, 2 and 3 (the last), all findings answered; round 3's record is kept beside the milestone's working files. - G's part file sizes are each under 60 KB; design 47's main file stays over its 80 KB bound (bent and said in round 1). Next: design 46's milestone 7 (the approval mark) and design 34's every-event milestone join G by the operator's answer of 2026-11-11 02:26 CET, in a second pull request after their own review; then G's prepare (playbook 07). Reviewed-by: review-security-and-upgrade, review-seams-and-tools, review-running-and-testing, review-health-and-events (round 3) for lead-47@shanks at 87827ebb82a2edf5b8ab4a6bd0ea77b5b0ff2523 https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
mesh-tools added 13 commits 2026-11-11 01:31:35 +00:00
G's builders read a 443 KB design by searching it and filled what they did not find; playbook 02's shape gives
each milestone a part read whole. G's lines move whole into 47-milestones/G.md, numbered as design lines, and
the questions G's prepare and develop met within the records are written as the design's own choices
(the operator, 2026-11-10: small design choices are the design's, only architectural ones are asked).
The size bounds are bent for this split on the lead's word; research 087 takes them up.

Claude-Session: https://claude.ai/code/session_01JG73KK8HD1gufnqyFxMFdW
The four reviewers by architectural domain found retentions judged from another part's records, unbounded aging,
waits and stores no condition names, a kept artifact checked against the builder's key, and caller limits left
open; each is now a design line with its reason. The part is six files under 60 KB, one milestone still, with
G.md as its index; the main file stays over its bound on the lead's word.

Claude-Session: https://claude.ai/code/session_01JG73KK8HD1gufnqyFxMFdW
A Go module zip and a TypeScript package hold their version inside the file, so a number given at publication
could not be valid for a digest built before it (gaps items 22, 23, 43). The operator chose on 2026-11-10: the
manifest says MAJOR.MINOR, the build system reserves the next patch at the build's start, the catalog holds and
says released versions only, the first watched branch alone releases, and Go packages are tagged, departing from
ADR 0573 §2 until a later research brings the record in line.

Claude-Session: https://claude.ai/code/session_01JG73KK8HD1gufnqyFxMFdW
Design 51 still numbered a package at its publication and said `version.numbered`, which the operator's choice
of 2026-11-10 replaces: the catalog's released versions are the one list, and a packed file carries its version.
The catalog's first versions are filled from what is published, so numbering continues above today's.

Claude-Session: https://claude.ai/code/session_01JG73KK8HD1gufnqyFxMFdW
The operator's answer of 2026-11-10 allows no custom version, and a tagged version is one: a group's run on
request delivers nothing, so it builds its members against each package member's build by digest and publishes
no version, and `tag-wanted` and `tag-asks` go with G's delivery.

Claude-Session: https://claude.ai/code/session_01JG73KK8HD1gufnqyFxMFdW
The operator chose on 2026-11-10 that the catalog of versions keeps a lockfile per released version (issue
1961): each edge's dependency version, so one query answers what is outdated after a restart or a missed event,
while each edge kind is still started by its own event, a release or a delivery.

Claude-Session: https://claude.ai/code/session_01JG73KK8HD1gufnqyFxMFdW
A module's version can change without changing the part an edge points to, a delivery happens per node, a build
of another branch has no version, and acting and serving are facts, not versions: the lead's review of §374 to
§376 found each would mark edges behind wrongly or redo work. A first fill keeps the first query from finding
the whole mesh behind.

Claude-Session: https://claude.ai/code/session_01JG73KK8HD1gufnqyFxMFdW
The operator answered on 2026-11-10 that only an imported package and the build toolchain make a dependent stale,
every other edge only ordering, that a dependent waits for its dependency's delivery to every present machine,
that a want names the released version and each part's digest, and that one tool answers a part's edges both
ways. G's answers move into a file of their own so each file of the part stays under 60 KB.

Claude-Session: https://claude.ai/code/session_01JG73KK8HD1gufnqyFxMFdW
The four reviewers found two triggers for one rebuild, digests read from the builder's own keys, a mesh-wide wait
with no owner, bound or tool, new states with no retention or cap, a first fill the builder could race, and a
registry check whose source goes; each is now a design line with its reason, and test 60 follows section 271.

Claude-Session: https://claude.ai/code/session_01JG73KK8HD1gufnqyFxMFdW
The operator, 2026-11-11: the scan was a flaky check, and the rule is a guideline, not a decision. The names
G's own work removes are removed by its subtasks; the exemption line and the scan's checks go with it.

Claude-Session: https://claude.ai/code/session_01JG73KK8HD1gufnqyFxMFdW
The condition keeper read other modules' findings states, which only their owner may reach; a node-engine
restarted with the full seat list never cleared its own finding, because only its process remembered writing it.
Observers now say each finding as an event and state all they own at each start and on the keeper's ask, so the
keeper's view is rebuilt from events alone. The `invokers` form is the operator's choice, and the tool runner's
shared account stays as it is in G, named as a known limit.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
The keeper finds its sources in the catalog and names none in its manifest, so one generic consumes form with its
validator rule and per-module grant carries the finding events; the operator's answer that a verb open today stays
open covers the connectivity verbs that name no callers; and findings of a module no longer placed on a node would
otherwise stand forever.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
Answer round 3 of the review of milestone G: a home and trust for the finding events, restarts that keep standing faults
mesh/delivery merged: source.main moved to novox/hq@c74546a16f78
mesh/check checking 87827ebb82a2 on c74546a16f78
87827ebb82
The finding events lacked a stream, a consumer per source, a rule against a restart clearing what still stands, a
take-over rule and presence events; the 2026-11-11 answers move to a part file of their own so each stays under its
size. The test budget is counted per module, the upgrade window between the builder and the registry holders gets
its edge, and the readers of the new manifest words come first.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
Author
Member

Delivery novox/hq@87827ebb82a2 — merged since 2026-11-11T01:34:19Z

Source — source.main moved to novox/hq@c74546a16f. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.

Transitions

  • 2026-11-11 01:31 (new) → proposed (announced): novox/hq#539's head announced
  • 2026-11-11 01:31 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
  • 2026-11-11 01:34 ready → merged (merged): on the trunk its modules follow: merged there

The commit's note under refs/notes/mesh-plan keeps every transition of this change up to its merge: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/hq@87827ebb82a2` — **merged** since 2026-11-11T01:34:19Z **Source** — source.main moved to novox/hq@c74546a16f78. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Transitions** - 2026-11-11 01:31 (new) → proposed (announced): novox/hq#539's head announced - 2026-11-11 01:31 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false) - 2026-11-11 01:34 ready → merged (merged): on the trunk its modules follow: merged there The commit's note under `refs/notes/mesh-plan` keeps every transition of this change up to its merge: `git log --notes=mesh-plan`.
mesh-tools merged commit c74546a16f into main 2026-11-11 01:34:17 +00:00
mesh-tools deleted branch feat/47-G 2026-11-11 01:34:17 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/hq#539