Commit Graph
2674 Commits
Author SHA1 Message Date
jschoubben b4abb98aaa Give the record writer a definition, as a role started more than once
mesh/delivery merged: source.main moved to novox/hq@6280fc3a3e2e
mesh/check checking b4abb98aaabc on 6280fc3a3e2e
The lead started an agent that proposes a record from a draft by hand in two sessions; agents-have-a-home asks a definition.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 14:17:07 +01:00
mesh-tools 1c6fe9611c Merge pull request 'Design 25 bindings-first-view §9: compose a bucket's binding from the bus module's list answer, breaking the registry circle (issue 1966)' (#549) from design/25-bindings-from-the-list into main 2026-11-11 12:50:07 +00:00
jschoubben f65acb98c7 Compose a bucket's binding from the bus module's existing list answer, breaking the registry circle
mesh/delivery merged: source.main moved to novox/hq@1c6fe9611ccc
mesh/check checking f65acb98c742 on 1c6fe9611ccc
The bus module's new build cannot be built: its image needs the registry's
mirror, which the registry holder serves only with a state binding the grants
part never heard and waited for that very build to say. The operator chose
(2026-11-11 13:30 CET) to compose key-value and object-store bindings from the
fields the running bus module already answers, delivered with the grants part
alone. Records that §7's 'needs no edge' missed the bus module's own build
through the registry.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 13:48:10 +01:00
mesh-tools 51b43dfb10 Merge pull request 'Design 47 milestone G: develop answers batch 4 (G-12, G-14), the recovery module and the operator's answers of 2026-11-11' (#548) from design/47-G-develop-answers-4 into main 2026-11-11 12:14:42 +00:00
jschoubben 040ad22e69 Keep setting aside and discarding an aside on the operator's hand tools, refused by restore-kept
mesh/delivery merged: source.main moved to novox/hq@51b43dfb10d1
mesh/check checking 040ad22e691d on 51b43dfb10d1
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 13:12:42 +01:00
jschoubben e164a66362 Write the operator's 13:10 answer: a restore asked is done, identity being the one check
mesh/delivery closed: a newer head of the same pull request
mesh/check checking e164a6636261 on cbafc7556a40
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 13:08:53 +01:00
jschoubben caa7a9265c Make identity the one check of the recovery module's callers, and give a bundle's finding writer its two runtime calls
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 13:08:11 +01:00
jschoubben 0b90251098 Write the operator's answers of 13:06 on setting aside and on discard-aside's check
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 13:06:37 +01:00
jschoubben a3d9975e4b Answer the last review round of batch 4: the recovery module's acts, order, callers and grants
Its verbs answer on acceptance and its events carry the act's form and fingerprint,
it never restores beside the nightly dump either way, a node-engine may call it only
for a want its node holds, and its grants are listed whole as ADR 0672 has them; the
long form of an invokes entry is read by the second reader release first.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 13:06:14 +01:00
mesh-tools cbafc7556a Merge pull request 'Design 47 milestone G: develop answers batch 3 (G-10, G-11, G-13), with the operator's answers of 2026-11-11' (#547) from design/47-G-develop-answers-3 into main 2026-11-11 11:57:47 +00:00
jschoubben 6d0506402d Put restoring kept data on a recovery module, and answer round 1 of the review of batch 4
The operator chose a module of its own for snapshotting and restoring a module's
kept data on the live bus, so the bus module and the snapshot account keep their
narrow grants; the reviewers' musts are written into the lines they name, and the
new lines go to G-14 so G-12 stays within a part's size.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 12:57:01 +01:00
jschoubben e504dac534 Write the operator's answers of 12:41 on restore points, the checker's drop and an empty step status
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 12:42:09 +01:00
jschoubben e41dbeef4a Write the operator's answer on an Approve before G, and answer round 3's leftovers of the third batch
The operator made an old Approve that pull request's approval step, decided by the
registration's policy, so §510's carried act and §608's merge wait go; round 3 of
the third batch has no fourth round, so its findings are answered here (§543 to §550).

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 12:40:58 +01:00
jschoubben 05b16d63bb Answer develop's fourth batch of questions on milestone G, and write the operator's words for the teller
Develop met questions the design did not answer on restore points, a bundle's
channel to the tool runner, the want's new fields, the finding stream's form
under ADR 0595 and ADR 0666, and per-branch views; each is now a design line
(G-12, §516 to §541) with its reason and check, so develop builds them and
decides nothing.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 12:38:56 +01:00
jschoubben 529cba366b Answer the last review round of milestone G's third batch, in G-13 from §600
mesh/delivery merged: source.main moved to novox/hq@cbafc7556a40
mesh/check being carried to 529cba366b07 on cbafc7556a40 | from ec6be19b1138
The four reviewers' round-2 findings are answered as design lines: the build seats' accept subjects, workers and
grants and the rollout's order as one seam, an ask's start and end outside a pipeline, the builder's heard
toolchains, the tool runner's order from the package a build resolved, the step log's single write, the objects
stores' caps and a carried merge's wait.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 12:29:39 +01:00
jschoubben 298e68c71f Write the operator's noon answers, the review of §456 to §479, and develop's next answers into milestone G
The operator answered who may drop a build seat's steps, whose name a step key carries, and that a review in G
refuses no one for authorship. The four reviewers' musts on G-10 are answered as design lines, and develop's next
questions of internal form (the watchman's, builder's, indexer's, forge bridge's, assigner's, view's, bus module's,
keeper's and node-engine's) in the new part file G-11 (§480 to §515); the teller's words wait for the operator.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 12:08:39 +01:00
jschoubben e9ae4afc12 Answer develop's third batch of questions on milestone G, and let the design writer answer internal forms
The operator answered D-12, D-13 and D-19 at the terminal, and ruled on 2026-11-11 that a question touching nothing
the operator sees, no permission and no data kept is answered as a design line by the design writer and read by the
reviewers by architectural domain. The new part file G-10 carries those answers and the internal-form ones (§456 to
§479), the earlier lines point to them, and playbooks 02, 07 and 08 and the glossary say who answers a design
question now. The questions that touch who may call or what the operator sees are left for the operator.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:52:51 +01:00
mesh-tools ec6be19b11 Merge pull request 'A developer reads its build map and the design lines it cites, not the whole design' (#546) from process/developer-reads-its-lines into main 2026-11-11 10:32:29 +00:00
jschoubben ae1b5ee957 A developer reads its build map and the design lines it cites, not the whole design
mesh/delivery merged: source.main moved to novox/hq@ec6be19b1138
mesh/check checking ae1b5ee957ad on ec6be19b1138
Four developers of design 47's milestone G ran out of context on 2026-11-11 after one or two subtasks: the
milestone part and the main file they were told to read whole come to about 580 KB.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:31:14 +01:00
mesh-tools 9ca4757357 Merge pull request 'Design 47 milestone G: develop answers D-7 to D-10, and design 25's types wording' (#545) from design/47-G-develop-answers-2 into main 2026-11-11 09:56:58 +00:00
jschoubben 073160ca46 Answer develop's next questions on G's contracts, and correct design 25 on the bus module's types
mesh/delivery merged: source.main moved to novox/hq@9ca4757357d2
mesh/check checking 073160ca46f1 on 9ca4757357d2
The generator emits body types and sending stays mesh-sdk's, the reader release reads needs-approval and the
bodies map, an accepted kind's name is separate from its stream, and the bus module's created and recreated do
carry types.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:55:20 +01:00
mesh-tools a1cbcfb23f Merge pull request 'Design 47 milestone G: answers to develop's first questions (callers of the bus module's acts, the node-engine's verbs, small body forms)' (#544) from design/47-G-develop-answers into main 2026-11-11 09:46:41 +00:00
jschoubben 4976caa124 Answer develop's six questions on milestone G's contracts, so the seat definitions are written from the design
mesh/delivery merged: source.main moved to novox/hq@a1cbcfb23f69
mesh/check checking 4976caa12443 on a1cbcfb23f69
Develop met verbs and events in mesh-contracts whose callers, classes, states or bodies no line named: the bus
module's acting verbs, the node-engine's thirteen verbs, the keeper's findings-views, the grants part's fill
events, two answers and three field forms.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:45:18 +01:00
mesh-tools 6c1e759e26 Merge pull request 'Design 25: the grants part takes a first view of the bus module's bindings at every start, so a missed created event is recovered (issue 1966)' (#543) from design/25-bindings-first-view into main 2026-11-11 09:27:00 +00:00
jschoubben d0760629e5 Shape the seat's Binding as the bus module sends it
mesh/delivery merged: source.main moved to novox/hq@6c1e759e267b
mesh/check being carried to d0760629e5fe on 6c1e759e267b | from f1fe609b3e85
The seat definition's Binding named a bus name and subjects while
created and recreated carry mesh-sdk's membership binding, which the
grants part needs; one form for the events and list's answer means the
generated contract must decode what is on the wire, unchanged.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:14:07 +01:00
jschoubben 27ec6f8500 Make the grants part one of G's observers, so its waits are findings
mesh/delivery closed: a newer head of the same pull request
mesh/check pass 27ec6f8500da on f1fe609b3e85 | unit 43 run, 0 kept, 1 skipped | integration 43 run, 0 kept, 1 skipped | composition passed in 91s on 3…
G-4 §200 already had the grants part write view-waits as a finding, while
G-8 §387 left it out of the observers that say findings as events. Adding
it, with its state findings and finding stream in its old sections, lets
the bindings first view's two conditions move to findings at G's delivery.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:08:04 +01:00
jschoubben c098518cc8 Design 25: the grants part asks the bus module for every binding at its start
A binding was written only on the bus module's live created event, so one
event the grants part never heard lost the binding for good (issue 1966):
a registry holder lacked three entries the bus held, and its publishes
were never said published. The operator chose to ask the bus module: at
every start and on a re-ask the grants part takes a first view from the
seat mesh-broker's list, whose entries now carry their binding, and
composes the bindings from it; a binding the bus no longer lists is kept
and said, never removed by a first view.

The same change puts design 25 in playbook 02's shape: section 12.2 to
12.6 move, unchanged and numbered, into the part of milestone bus-state,
so the main file falls from 104 KB to about 71 KB.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:08:04 +01:00
mesh-tools f1fe609b3e Merge pull request 'The approval mark and every-event: the prepare's answers, so both parts are complete for develop with milestone G' (#542) from design/34-wait-on-any-event into main 2026-11-11 08:56:23 +00:00
jschoubben 8e9116469a Answer step 0b's review of the approval mark and marked waits
mesh/delivery merged: source.main moved to novox/hq@f1fe609b3e85
mesh/check being carried to 8e9116469a0a on f1fe609b3e85 | from fbd7981b7be2
The served version comes from what the bundle runs and a reading from the
runner that made it, so no placement or clock lifts a deny; the runner's
state takes the old form the bus module can create; kept calls stay open on
their key; and the closed directory's mode is read by node-files.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 03:26:27 +01:00
jschoubben 28c22c65cb Answer the prepare's questions on the approval mark and marked waits
Each of the 25 recommendations becomes a design line with its question id,
so the builders find every field, test and source named; the live readings
of the credentials go into the gate's stated bound.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 03:24:13 +01:00
mesh-tools fbd7981b7b Merge pull request 'Design 47 milestone G: the prepare's answers, so the design is complete for develop' (#541) from design/47-G-prepare-answers into main 2026-11-11 02:17:01 +00:00
jschoubben b4a07c1de6 Answer the step-0b review of G-9: the catalog entry carries its manifest, grants follow the placed build
mesh/delivery merged: source.main moved to novox/hq@fbd7981b7be2
mesh/check checking b4a07c1de6f6 on fbd7981b7be2
The review found that reading the catalog graph instead of manifests needed the entry to carry the manifest and
stay while a build names it, the grants to follow the wanted build, the pre-G node-engines their manifests by
digest, and the restore, caller, stream, finding and test-budget lines a name for every field they left open.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 03:15:45 +01:00
jschoubben 30b29a58a4 Have only the indexer read manifests, and settle the four prepare items that contradicted each other
The operator's rule is that the indexer alone uses manifests to build the catalog graph, so every other part's
read of a manifest becomes a read of the catalog half. Lead-47's rulings settle the finding layout as a seat
contract with generated writers, process-builds as a node-engine seat verb, a grants-for read on mesh-grants for
widens, and aside on node-backup.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 03:15:45 +01:00
jschoubben b08147e531 Answer the questions of milestone G's final prepare in its part, so develop starts from the design alone
The prepare found about a hundred places where G's lines left the builder a choice. Each answer is now a line of
G-9 with its question and its check: one default of callers per verb class, so no verb is closed for lack of a
list; the seat-definition forms; kept data and restore points; versions; steps and test counting; the readers and
the gate's remaining parts. Earlier lines the answers change are amended in place.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 03:15:45 +01:00
mesh-tools 7dfb6f0b7b Merge pull request 'Designs 34 and 46: sessions wait on any event, and the approval mark gates calls and marked waits, delivered with design 47's milestone G' (#540) from design/34-wait-on-any-event into main 2026-11-11 02:08:01 +00:00
jschoubben 95ae1dd6ed Read the secrets list and every mark from the module catalog alone
mesh/delivery merged: source.main moved to novox/hq@7dfb6f0b7b15
mesh/check being carried to 95ae1dd6ed90 on 7dfb6f0b7b15 | from c74546a16f78
The operator answered that only the indexer uses the manifests, to build
the module catalog; so the secrets review and the tool runner read the
catalog revision, and the bus read and its nats tool extension go.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 03:03:00 +01:00
jschoubben de62fe5852 Answer round 3 of the domain review of the approval mark
mesh/delivery closed: a newer head of the same pull request
mesh/check pass de62fe58523a on c74546a16f78 | unit 43 run, 0 kept, 1 skipped | integration 43 run, 0 kept, 1 skipped | composition passed in 69s on 4…
The client's node prefix stays on its own keys, so the router's record is
still read where the router writes it; the remaining notes say where the
runner's version is read and what each limit costs.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 02:53:20 +01:00
jschoubben bddf6ce95a Answer round 2 of the domain review of the approval mark
A stuck state recovers as a kept call, a node with no or stale readings is
denied, the caller-named subjects are withheld too, and the per-machine key
form and the client's prefix are named, so no path serves a marked tool
unasked; the forge's loosening is marked by the operator's answer.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 02:51:24 +01:00
jschoubben 636b2be7ac Write the operator's answers on the approval mark into milestone 7
Call again stands by the operator's choice; the credential file's reach is
a known limit, as G's shared account is; and the forge's two loosening acts
move to a marked tool of their own, so tightening stays unasked.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 02:48:10 +01:00
jschoubben a6c9b96be3 Answer round 1 of the domain review of the approval mark and marked waits
The bus withholds a marked subject from a runner that does not honour the
mark again, as ADR 0286 has it; marks follow G's catalog half; a recording,
a stuck gate, an absent router and a start before the marks are read each
have a stated answer, so nothing runs unasked and nothing fails silently.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 02:46:01 +01:00
jschoubben ca1fbf7867 Build the approval mark in milestone G and let a marked wait use it
The operator answered "Build the gate in G" and wants no new records: the
marked-wait lines now hold by the operator's answers, each departure said in
its Why, and design 46's milestone 7 becomes a part a builder reads whole,
written to the mesh as built (marks read from the bus, the capability hold,
the client's claim in bus state, the hand-act seat), delivered with G and
every-event.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 02:41:11 +01:00
jschoubben aec610a6f4 Design 34 every-event: hear every module stream, and gate a marked wait on the operator's warrant
The operator chose every module stream, mail too (ADR 0671), so the stream
lines hold and the restricted-stream deny goes. The operator also asked that
a wait respect the approval mark; that extends ADR 0286 to events and has the
tool runner's gate hold it, so those lines are written pending the record.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 02:41:11 +01:00
jschoubben d758964ca9 Design 34 every-event: the review reads a stream's subjects with nats_streams
No tool answered which subjects a stream holds, so the secret review could not find an
event the list missed; a module's tools read everything it holds, so the nats module's
tool gains that read, built first as a small fix.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 02:41:11 +01:00
jschoubben c232b1fb81 Design 34 every-event: write in the four domain reviews' findings
The reviews found waits that time out for ever on a misspelt name, refusals that would
loop a watcher, an acceptance no answer could prove, readers still describing the list,
and no way back said. Each is now a design line; the stream-events lines are written for
the recommended option and marked pending the operator's answer.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 02:41:11 +01:00
jschoubben 024627f658 Design 34: a session waits on any event, the tool runner hearing every one (ADR 0670)
Watchers reread on a timer because mesh_wait refuses every event outside a list of five,
and the delivery status view's events, which playbooks have watchers wait on, are not on
it. ADR 0670 grants the tool runner every event subject and drops the list; this writes
that as milestone every-event, one delivery group of mesh-sdk, mesh-delivery and
mesh-tools, and puts design 34 in the main-file-and-parts shape.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 02:41:11 +01:00
mesh-tools c74546a16f Merge pull request 'Design 47: milestone G's part complete, every operator answer and three review rounds written in' (#539) from feat/47-G into main 2026-11-11 01:34:16 +00:00
jschoubben 87827ebb82 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
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
2026-11-11 02:30:59 +01:00
jschoubben bfd5fd2c0b Hear an event every declaring module says, keep the connectivity verbs open, and clear findings of a node a module left
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
2026-11-11 02:21:43 +01:00
jschoubben 9f9cb58f54 Write the operator's answers into milestone G's part: findings heard as events, invokers chosen, the shared account a known limit
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
2026-11-11 02:20:24 +01:00
jschoubben 9bcd0ad197 Drop the lint scan for fixed names and keep "no part fixes a name" as a guideline the code review reads
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
2026-11-11 02:06:46 +01:00