jschoubben
0ae418b43c
mesh-watcher names the self-check seat and its event from the seat's contract (B5d; ADR 0634 §1; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:07:01 +01:00
jschoubben
1d3ed6e78e
messenger, desk-channel, telegram, mesh-config take the channel benches' shapes from the operator-channel contract and its client (B5d; ADR 0634 §1, §6; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:03:24 +01:00
jschoubben
f61760f738
seatgen writes a date-time as time.Time (a string in TypeScript), by value when required, by pointer when optional (B5d; ADR 0634; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:01:10 +01:00
jschoubben
c46009709d
The key keeper is ssh-client's published package sshkeys, taken by series by the three build modules; Said, KindBuilder, ExecRunnerClean from the Delivery sdk (B5d; ADR 0634 §1; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 14:55:59 +01:00
jschoubben
b4dbda287b
Findings are written and read in the seat mesh-conditions' layout: gitea, distribution, mesh-config, artifact-store-tools (B5b Left 5 part; ADR 0634 §4; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 14:50:35 +01:00
jschoubben
e0eecbf3c8
Readings and last good nights are the owners' published packages: disk-load's diskreadings and restic's backupgood, taken by series (B5b Left 3; ADR 0634 §4; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 14:48:10 +01:00
jschoubben
c7ae96414f
claude-code: the again tool answers every operator's session and the healers; the seat-list case waits on the reader's Ready (ADR 0636 §7; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 14:42:32 +01:00
jschoubben
9017edaf9e
seatgen: a client may import its contracts module's domain SDK (-domain-sdk; ADR 0634 §2; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 14:41:28 +01:00
jschoubben
75cf83a656
The seat-list case waits for the reader's change instead of racing it; the node build's generated-package fixture carries its domain (issue 1966)
2026-11-05 14:40:30 +01:00
jschoubben
059fa5d4c4
Seat fixtures of the claude-code and node-build tests carry their domain (ADR 0636 §5; issue 1966)
2026-11-05 14:39:49 +01:00
jschoubben
60c66a3641
messenger: the ask-events entry's grant is the config value readers, as the events template takes it (K-24; ADR 0595; issue 1966)
2026-11-05 14:36:29 +01:00
jschoubben
631f689f40
gofmt of the files the hand-acts and conditions clients touched (issue 1966)
2026-11-05 14:34:18 +01:00
jschoubben
500154b865
The gate accepts the bridge's published forgemsg by its series (K-22; ADR 0634 §3, F3; issue 1966)
2026-11-05 14:33:24 +01:00
jschoubben
12b5c62304
Seat fixtures of the build module's tests carry their domain (ADR 0636 §5; issue 1966)
2026-11-05 14:31:58 +01:00
jschoubben
b2db504ab2
Build, image, node, distribution and gitea take parts, buildstep and composer from mesh-delivery-sdk; seatgen's client check allows a client's own packages and its -go-module has no root default; the build module writes its finding through the conditions client (K-4..K-20 part; ADR 0634 §3, §4, ADR 0635 §4; issue 1966)
2026-11-05 14:31:04 +01:00
jschoubben
e8f93d5db0
Provision and provider users take the provisioner's client; mesh-vault writes its findings through the conditions client (K-4..K-20, K-21 part; ADR 0634 §4; issue 1966)
2026-11-05 14:26:48 +01:00
jschoubben
7c617bb085
Merge b4/registry ( 9fafbcfd): the renamed seats (issue 1966)
2026-11-05 14:22:14 +01:00
jschoubben
87388b9046
Eleven modules record hand acts through the hand-acts client, the finding writers are the conditions client's, nats takes the broker seat's name from its package (K-21 part, K-4..K-20 part; ADR 0634 §4, ADR 0635 §4; issue 1966)
2026-11-05 14:21:57 +01:00
jschoubben
9fafbcfd58
The seats are called mesh-module-assigner and mesh-node-enroller in mesh-cli, claude-code, the checks, mesh-config, mesh-vault, conditions, self-check and the provisioner client (ADR 0634 §9; K-21; issue 1966)
2026-11-05 14:19:32 +01:00
jschoubben
2f7ff1c911
claude-code: the seat list is read from the seat mesh-catalog and followed on its events, the hand acts go through the hand-acts client, the seat is mesh-module-assigner (K-23, K-21 part, K-4..K-20 part; ADR 0635 §1, ADR 0634 §9; issue 1966)
2026-11-05 14:14:32 +01:00
jschoubben
7ae2ed88c0
messenger: the asks it says are a bus-state entry of the events template, not a stream of its own (K-24, F6, ADR 0595, ADR 0619; issue 1966)
2026-11-05 14:09:44 +01:00
jschoubben
a86e2ff1fc
Mesh-catalog modules import operator-channel from its domain's contracts module and the registry seats from mesh-delivery's (K-4..K-20 first part; ADR 0634 §7, ADR 0636; issue 1966)
...
The group's module paths are placeholders the re-pin rewrites.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-05 14:07:30 +01:00
jschoubben
518539f3d1
Merge mesh-catalog main ( 559939aa) into the registry branch: gate reads forgemsg, messenger narrows asks (K-0; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-05 14:05:04 +01:00
jschoubben
a2272916a0
mesh-build-go: a real-git test that a root module's source leaves out its nested module folders and a folder module is narrowed like a root one (D-I4, ADR 0634 §8; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-05 13:25:09 +01:00
jschoubben
2b2b3e4b8c
mesh-build-go: the generated-files compare finds a contracts module in any folder; a folder module's Go packages each publish under their own module path (ADR 0634 §8; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-05 13:23:00 +01:00
jschoubben
1abae72457
seatgen: no seat list and no root package, definitions in any folder, seat-list-grain files generate nothing, packages with a dependency-free lock (ADR 0635 §1, ADR 0634 §8, F7; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-05 13:21:04 +01:00
jschoubben
0beef7ff9c
seatgen: a seat's states give a constant, key builders and parsers and strict value types, Go and TypeScript (ADR 0634 §6; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-05 12:50:59 +01:00
mesh-tools
559939aa8c
Merge pull request 'nfs-server: the look below a share runs beside the pass, so a long walk no longer fails its health (issue 1971)' ( #616 ) from fix/1971-nfs-walk-beside-look into main
2026-11-05 10:02:10 +00:00
jschoubben
87fd0cd8b9
nfs-server: a pending share is carried only by the export line for the same folder (issue 1971, review round 2)
...
mesh/delivery merged: source.main moved to novox/mesh-catalog@559939aa8ce1
mesh/check pass 87fd0cd8b985 on 559939aa8ce1 | carried from 211186edd769 | unit 625 run, 4127 kept, 13 skipped | integration 676 run, 4136 kept, 22 sk…
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-05 10:45:30 +01:00
jschoubben
279ac41087
nfs-server: a share the export file carries stays exported while its first look runs after a restart (issue 1971, review round 1)
...
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-05 10:43:50 +01:00
jschoubben
b0bdcd02c9
nfs-server: the look below a share runs beside the pass, so the status is written every pass (issue 1971)
...
A walk of minutes inside the pass held the status back until the module was found unhealthy and the assigner held the version.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-05 09:39:24 +01:00
mesh-tools
211186edd7
Merge pull request 'Gate reads the forge bridge's own messages and passes a group's end by; operator-channel.asks narrows its answer (issues 1585, 595; ADR 0633)' ( #615 ) from feat/take-in into main
2026-11-05 00:33:41 +00:00
jschoubben
5ceb6e9e38
Gate: pin forgemsg at mesh-delivery c78941e8, the head whose take-in events need no stream (issue 1585)
...
mesh/delivery merged: source.main moved to novox/mesh-catalog@211186edd769
mesh/delivery-group group feat/take-in merged: every member is merged
mesh/check being carried to 5ceb6e9e38a4 on 211186edd769 | from fd4931a75261, mesh-delivery ae31b66a9e33 | novox/mesh-catalog#615 in group feat/take-in
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-05 00:59:56 +01:00
jschoubben
d023a25849
Gate and keeper, review round 1: a group's end is told by its whole event, the gate pinned at mesh-delivery 7b7096f3, the keeper's row dropped (issue 1585, ADR 0633)
...
mesh/delivery-group group feat/take-in rejected: composed together: the checker's verdict at the members' heads (38623984d6ad): mesh-build-go
mesh/delivery closed: a newer head of the same pull request
mesh/check failed (2): mesh-build-go: the indexer's judge at the group's mesh-delivery head 7b7096f37ea76e1…; and 1 more | d023a25849f3 on fd4931a75261
The gate passes by a group's end only when the event is the forge bridge's forge.group.merged whole, so the merged message
of a repository named forge/group is read as one; row in the holder test. The keeper's take-in-waits row (T26) is dropped:
it showed nothing the keeper does not already hold. The gate pins forgemsg at mesh-delivery 7b7096f3.
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-05 00:29:37 +01:00
jschoubben
ebe1248f0b
Gate: read the forge bridge's messages from its own package forgemsg, and pin mesh-sdk at main (issue 1585, ADR 0633)
...
Forge, its kinds and the group's end moved out of mesh-sdk into the forge bridge's own package (mesh-delivery
modules/mesh-delivery-forge-bridge/forgemsg, the operator, 2026-11-04: logic one module owns lives with it). The gate
imports it at the mesh-delivery head 4e4601a1 that holds the move, and the suffix it passes by before decoding is the
package's own ForgeGroupEndEvent, not a constant of its own. mesh-sdk is pinned at 5a38a12, origin/main.
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-05 00:06:59 +01:00
jschoubben
8377f8a878
operator-channel.asks: key, state, since and bound narrow its answer, which says when it cut it short (issue 595)
...
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-04 23:14:17 +01:00
jschoubben
796fb69d17
Gate ignores a group's end on FORGE before decoding; keeper row for take-in-waits (issue 1585, ADR 0633)
...
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-04 22:47:56 +01:00
jschoubben
236ce2fe12
mesh-conditions: the indexer's manifest-held has its home (ADR 0632 §2; issue 1966)
...
A module's new entry held from the whole mesh past its bound is a finding of
the indexer's; without a home the keeper would not raise it.
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-04 21:38:14 +01:00
jschoubben
bbb9e37df4
docker: trust the store at the image seat's reach (ADR 0632 §1; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 21:11:15 +01:00
jschoubben
1bf98663c6
artifact-store-tools: read the store through the registry seats' list, never its files or its read side (ADR 0632 §1, §4; issue 1966)
...
The docker exec listing and the HTTP door go; held and the sweep's index
skip ask the seat's list too. The store's address file is the image seat's
reach, used for the catalogue's definitions only.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 21:11:15 +01:00
jschoubben
541c2e02d9
distribution: provide and serve no artifact-store, and answer the seats' list from the store's own files (ADR 0632 §1, §3, §4; issue 1966)
...
The store is found by the seats' holder and its listen registry; list says,
per repository, each manifest's digest, whether it is an index and what it
names, its tags, its size and whether it is held, so the sweep reads the
store through the seat. E15 now asks that nothing is provided or served.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 21:11:15 +01:00
mesh-tools
fd4931a752
Merge pull request 'mesh-build-go: a merge preview names a path and a path inside it (mesh-contracts' go), and a step's cause keeps the module Go could not find (issue 1966)' ( #613 ) from fix/buildstep-preview into main
2026-11-04 19:44:20 +00:00
jschoubben
64cb7ecc53
health-undeclared: 56, the artifact store's container now says how it is ready (issue 1966)
...
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 20:30:48 +01:00
jschoubben
10bbbadcf2
artifact-store-tools: require no artifact-store; the sweep reaches the store through the registry seats (issue 1966)
...
The operator's decision of 2026-11-04: the store's clean-up asks the registry seats' verbs and is no consumer of the
provision.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 20:28:37 +01:00
jschoubben
3dfc3533be
distribution: the store's /v2/ checked over http through the front, beside the program's tool check (issue 1966)
...
A tool check alone is refused by the indexer's judge (ADR 0227 rule 8, ADR 0240 rule 2); the operator chose a check of
another kind on 2026-11-04.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 20:28:37 +01:00
jschoubben
da2aa91832
Keep Go's indented continuation in a step's cause: the composer's reason ended at "requires" and hid the module that could not be found (issue 1966)
...
mesh/delivery merged: source.main moved to novox/mesh-catalog@fd4931a75261
mesh/check being carried to da2aa9183221 on fd4931a75261 | from 8acad77d33f9
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 20:19:16 +01:00
jschoubben
1332f8b523
Ask git ls-tree for nested named paths in rounds: given go and go/seats/x together it lists go's children, so mesh-contracts' preview failed (issue 1966)
...
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 20:19:16 +01:00
jschoubben
af487d38ed
mesh-vault: adopt from the bus node's kept have when the placement names it
...
A have of the bus module heard while the placement did not yet name its node as holding the bus
adopted nothing, and nothing adopted it again until the have changed, so a vault could stay without
the bus node's adoption and the loaded list's revision for good. The vault now keeps each node's
latest have and, on the placement's next change, adopts from the bus node's kept have if it was not
adopted: the placement's event, no timer. The rotation test now writes the have before the
placement (its wait for the vault's picture is gone), so it takes this path every run.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 20:04:06 +01:00
jschoubben
cea09d8a36
Make five manifests the milestone changed pass the indexer's judge: an event in one place, one form per state, a digest of a text field, trusted and runtime config values (issue 1966)
...
messenger's refusal took its declaration of operator-channel out of the judged catalogue, so claude-code's use of it
was refused too. distribution's two remaining refusals (its program builds beside the artifact store it provides,
and its only health check is its own tool) are a design question left to the lead.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 19:55:36 +01:00
jschoubben
b4e0518282
mesh-vault: the player holds a family's events until the vault subscribes, and the rotation test waits for the vault's placement
...
The rotation test failed twice under parallel runs ("never: the rotation begins"), from two races in
its player. The player refused mesh/subscribe, so the placement events it said never reached the
vault: when the vault's first view was answered before the test wrote the placement, the vault never
knew the bus node. And the test wrote the bus node's have right after the placement, so the vault
could hear the have before it applied the placement, adopt nothing, and never learn the loaded list's
revision. The player now answers mesh/subscribe and holds a family's events until it is subscribed,
as the module's consumer does; the test writes the placement only after the vault's first view and
the have only once the vault's picture holds every placement key (vault_first_views), so both orders
are fixed rather than waited out.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 19:54:27 +01:00