mesh-tools
5fd0bf86f1
Merge pull request 'Registry recovery: mesh-broker's list, show and orphans answer each binding (issue 1966)' ( #5 ) from fix/1966-bindings-first-view into main
2026-11-11 10:32:31 +00:00
jschoubben
0167b24b95
mesh-broker's fixtures take a keeper ledger plan's binding with a type and an index, so types survive the round trip
...
mesh/check checking 0167b24b9564 on 5fd0bf86f120 | novox/mesh-contracts#5 in group fix/1966-bindings-first-view
mesh/delivery-group group fix/1966-bindings-first-view merged: every member is merged
mesh/delivery merged: source.main moved to novox/mesh-contracts@5fd0bf86f120
Builds: design 25 bindings-first-view §2
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:54:37 +01:00
jschoubben
ed12ffb387
mesh-broker's Binding is the wire form and Held carries it, so list, show and orphans answer the binding
...
The seat's Binding takes the fields the events carry and the membership holds
(local, storage, template, stream, subject, bucket, object-store, history,
state, indexes, snapshot, types): one form in the events, in list, show and
orphans. Held gains binding, present on an entry the bus holds. Definition,
fixture and generated Go and TypeScript contract.
Builds: design 25 bindings-first-view §2, §7 (hq d0760629, PR 543)
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:14:55 +01:00
mesh-tools
f5d76e84ca
Merge pull request 'The node-engine seat's client asks a node once more when an event came while an ask ran, never dropping it (issue 1966 note 170; group with mesh-delivery)' ( #4 ) from fix/1966-engine-reads-asked-again into main
2026-11-10 10:45:49 +00:00
jschoubben
c9ffed7042
S1-S3: the node-engine seat's client asks a node once more when an ask came while one ran, and shows when the event was heard (issue 1966 note 170)
...
mesh/check checking c9ffed70421a on f5d76e84ca71 | novox/mesh-contracts#4 in group fix/1966-engine-reads-asked-again
mesh/delivery merged: source.main moved to novox/mesh-contracts@f5d76e84ca71
mesh/delivery-group group fix/1966-engine-reads-asked-again merged: every member is merged
An event of manifest-reads-changed heard while an ask of the same node ran was dropped
without a line, so a restated engine could stay read at its first statement (ace,
2026-11-10 07:36). Every reader goes through Keeper.AskNode, so the assigner, the
builder and the indexer are fixed at once (ADR 0668 §4: the caller hears it and calls
again; ADR 0634 §1: the seat's client).
- AskNode: an ask while one runs is asked once more after it, one follow-up however
many came, said in one line (1966/AC170-1, AC170-3). The asks of one node so run one
after another, and take keeps the last answer, as before (no rule on the engine's
clock: review round 1).
- Statement.EventAt (event-at): when the node's event was last heard, read by the
parts' engine-reads tools; forgotten with the node's key.
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-10 11:42:05 +01:00
mesh-tools
7fbfd77a76
Merge pull request 'Engine reads keep the last answer and say an unanswered node; operator-channel asks and watchdogs presence declared (ADR 0668; issue 1966; group fix/1966-call-made-once)' ( #3 ) from fix/1966-call-made-once into main
2026-11-10 07:20:28 +00:00
jschoubben
bb16f99e2d
C7: the node-engine seat's client keeps the wait of every caller's kept manifest-reads calls, ReadsCalls beside Keeper.Unanswered, its bound's end asking once whether the machine is heard (issue 1966, ADR 0668 §3, ADR 0634 §1, ADR 0596 §2; review round 3, findings 1 and 2)
...
mesh/check checking bb16f99e2d5e on 7fbfd77a76cb | novox/mesh-contracts#3 in group fix/1966-call-made-once
mesh/delivery merged: source.main moved to novox/mesh-contracts@7fbfd77a76cb
mesh/delivery-group group fix/1966-call-made-once merged: every member is merged
The assigner, the builder and the indexer share it instead of two copies; it names no other seat's client (the client check), so each caller writes its finding in mesh-conditions' layout through Raise, stamped with ReadsCalls' clock.
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-10 04:54:06 +01:00
jschoubben
11a36eb88c
C6: the watchdogs seat declares presence's answer: with machine, that machine's online and since; without, the keys of the state presence (issue 1966, ADR 0596 §2, ADR 0668 §3; review round 3, finding 1)
...
The builder and the indexer ask whether a node's machine is heard through this verb instead of reading the watchman's state; regenerated with seatgen, whose -check names nothing new.
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-10 04:52:53 +01:00
jschoubben
0ae7cb7a76
C5: the operator-channel seat declares its verb asks' input (key, state, since, bound) and answer (asks with key and state, cut, matched), as the router serves it (issue 1966, ADR 0668 §4; review round 1, finding 5)
...
The assigner's read at its consumer's bind calls the verb with them; regenerated with seatgen, whose -check passes.
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-10 04:20:04 +01:00
jschoubben
c6689bfdb3
C4: a statement keeps since when its engine is unanswered, and the keeper names each node unanswered past a bound while heard (issue 1966, ADR 0668 §3; review round 1, finding 4)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-10 04:15:01 +01:00
jschoubben
c584f4570b
C3: the engine-reads keeper keeps the fallback or the last statement at the first fault while the kept call asks on (issue 1966, ADR 0668 §3; review round 1, finding 1)
...
A part whose node answers nothing waited out busretry.Bound (30 s) before it acted on the node's record: Once asks the verb once, and its fault is taken at once.
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-10 04:11:07 +01:00
jschoubben
e1303f1542
C2: the finding kind call-unanswered of the seat mesh-conditions (issue 1966, ADR 0668 §3)
...
A kept call still unanswered past five minutes is said in the caller's findings, keyed call.<id>.call-unanswered.
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-10 02:54:44 +01:00
jschoubben
5c29bea0b3
C1: the engine-reads keeper calls every node again at its part's consumer bind (issue 1966, ADR 0668)
...
A manifest-reads-changed said before the part's consumer existed was never heard (note 155), and the
statement taken while an engine restarted stood. AtBind is registered on the hub's OnBound.
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-10 02:54:44 +01:00
mesh-tools
66e0c611bf
Merge pull request 'Record a merge through the merge gate (issue 1966, bootstrap)' ( #2 ) from fix/1966-gate-record into main
2026-11-07 20:19:51 +00:00
jschoubben
1aa5dee992
Record a merge through the merge gate so the new indexer reads this repository's seat definitions on its merge (issue 1966, the operator's bootstrap)
mesh/delivery merged: source.main moved to novox/mesh-contracts@66e0c611bf83
mesh/delivery-group group fix/1966-gate-record merged: every member is merged
mesh/check pass 1aa5dee99226 on 66e0c611bf83 | carried from 08580d25d2dc, mesh-networking 5af7189cad82 | unit 14 run, 270 kept | integration 0 run, 27…
2026-11-07 21:13:54 +01:00
mesh-tools
08580d25d2
Merge pull request 'Registry milestone: mesh-contracts (issue 1966)' ( #1 ) from feat/registry-milestone into main
2026-11-07 14:19:16 +00:00
jschoubben
b77560786a
Complete go.mod and go.sum for the externals each module builds with
...
mesh/delivery merged: source.main moved to novox/mesh-contracts@08580d25d2dc
mesh/delivery-group group feat/registry-milestone merged: every member is merged
mesh/check checking b77560786a6a on 08580d25d2dc | novox/mesh-contracts#1 in group feat/registry-milestone
A check's tests run without network, so each module must carry every external module it builds with.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-06 00:51:22 +01:00
jschoubben
76de6889fc
The assigner's seat says assignments throughout: the type, the events and the defs; the legacy key form placement.<node> leaves the client (issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 21:57:16 +01:00
jschoubben
fdcec5d384
The Placement domain goes: the module assigner and the four node seats move to the Core place, the assigner's state and verb placement become assignments, mesh-wants goes to mesh-delivery (issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 21:39:56 +01:00
jschoubben
07ec4b1f31
Regenerate the contracts' TypeScript: the key parsers name their parameter apart from the parts (issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 21:24:07 +01:00
jschoubben
f0ed2d9b12
No client names the holder of the seat mesh-provisioner: each reader keeps its own constant, held to its manifest (ADR 0625 section 4, issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 19:36:21 +01:00
jschoubben
bc7763a9c0
Merge branch 'b9j/registry' into feat/registry-milestone
2026-11-05 19:26:06 +01:00
jschoubben
276e5e2aef
The delivery SDK's enginereads, findings and heard leave for the clients of their seats (ADR 0634 sections 1 and 2, issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 19:22:05 +01:00
jschoubben
828b5b1d38
No client names a holder: each reader keeps its own constant, held to its manifest (ADR 0625 section 4, issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 18:37:28 +01:00
jschoubben
70fe186d7f
Move node-service-manager, node-package-manager, node-container-runtime and node-environment to mesh-placement-contracts: their domain is Placement (ADR 0635 §2, ADR 0636 §5; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 18:23:43 +01:00
jschoubben
a2a321dfa2
Require the external packages a module's build reaches (issue 1966)
...
Versions are the ones the workspace already resolves, with their go.sum lines.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 18:11:56 +01:00
jschoubben
036f39a5a5
Require every mesh package of the group at the floor version (ADR 0573 sections 2 and 4, issue 1966)
...
A member's go.mod names the oldest version a module accepts; the check builds the group's own heads whatever it names. go.sum lines of mesh packages are left out.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:56:39 +00:00
jschoubben
6b8c6e2721
Conditions client: Observation, Raise, Clear, Says, EncodeFinding and DecodeFinding raise and clear an observer's finding in the seat's layout, goldens from go/health's output (B5l; ADR 0634 §4; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:46:25 +01:00
jschoubben
396ccc0e11
Operator-channel client: the bench shapes tested against their written wire, with no mesh-sdk channel import (B6j; ADR 0634 §5; issue 1966)
2026-11-05 16:45:22 +01:00
jschoubben
70da0dd17e
Watchdogs client: the keys, check and codec of presence, pulse and stuck over the seat mesh-watchdogs, goldens from go/delivery's output (B7n2; ADR 0634 §4; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:21:28 +01:00
jschoubben
311654f224
node-engine client: RootContract, the contract from which an engine judges an account's root (B5g; ADR 0634 §4; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:02:42 +01:00
jschoubben
2e0563e983
mesh-config seat: the state kept typed (an approved held value, under owner.repository.number.node.module.key), a fixture from the holder's test values, regenerated; a client meshconfigclient with the keys and the check the checker and the assigner share (B2f; ADR 0565 §5, ADR 0634 §4; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:02:00 +01:00
jschoubben
9c80664492
Wants client: the keys, check and codec of a want, a node's own want and a hold over the seat mesh-wants, goldens from go/delivery's output (B7h; ADR 0634 §4; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:58:13 +01:00
jschoubben
d8d319e3ff
node-engine client: the adoption handing's two ends (HandAccounts, OpenHanded, HandedAccount, KeyFingerprint, IsBcrypt) over the seat's AccountsHanded (B5f; ADR 0634 §4; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:54:21 +01:00
jschoubben
bb2140c236
Module assigner client: the operations of a proposal's change and the states of an open proposal, for its holder and for the enrolment that builds add-node (B7f finding 4; ADR 0634 §4; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:43:25 +01:00
jschoubben
5f8b8edd20
node-engine client: a candidate's composition key is its own, over mesh-sdk keys; the client no longer imports go/delivery (ADR 0634 §4; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:35:17 +01:00
jschoubben
71c8b9f964
Merge branch 'b4/registry' into feat/registry-milestone
2026-11-05 15:35:02 +01:00
jschoubben
54a42db4ec
Module assigner client: the placement and seat-holders states by name, and the machines a placement names (ADR 0634 §4; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:28:18 +01:00
jschoubben
57dd579234
Wants seat: the backup answer of a want is again or skip (ADR 0634; issue 1966)
2026-11-05 15:27:08 +01:00
jschoubben
6d5fe4572d
Placement seat: the tunnel found on a node is a typed record, not a free object (ADR 0634 §1; issue 1966)
2026-11-05 15:25:57 +01:00
jschoubben
8e51d93c2f
node-engine seat: a node's windows, busy, strays and filters are lists, as the engine writes them (the contract said objects and refused every real value; ADR 0634; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:19:03 +01:00
jschoubben
8c5f85e86b
node-engine client: the node key of the have, the codecs of the health report and of the data items (ADR 0634 §1, §4; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:16:39 +01:00
jschoubben
82b02ff099
The Connectivity folder leaves mesh-contracts for mesh-connectivity-contracts, which holds the same seven definitions (ADR 0636 §5, §6; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:14:57 +01:00
jschoubben
ed7cf77659
The Delivery domain's seats leave mesh-contracts for mesh-delivery-contracts: the 13 definitions, the registry part, the four registry clients, the checker's generated packages (ADR 0636 §5; ADR 0634; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:14:57 +01:00
jschoubben
db2a6da471
node-engine client: the codec and the comparison of the have and the node's facts, and the phases and healths a have names (ADR 0634 §1, §4; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:14:16 +01:00
jschoubben
181441e91b
The generated contracts write date-time as time.Time (seatgen of B5d); the conditions and vault clients follow (ADR 0634; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:06:14 +01:00
jschoubben
25da1f8879
node-engine client: the exported fingerprint key part is mesh-catalog's client's, the codec checks the field's form itself (a client imports no other seat's client; ADR 0625 §4, ADR 0634 §2; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:05:08 +01:00
jschoubben
cd2615f094
operator-channel: the times of the bench events are date-time, so the generated types are time.Time (B5d; ADR 0634; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:01:57 +01:00
jschoubben
29dc84a38b
operatorchannelclient: the bench subjects and words the router and the channels share (B5d; ADR 0634 §1; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 14:56:40 +01:00
jschoubben
35aa61f4d9
operator-channel: the state asks typed to the router's projection; mesh-node-enroller: redeem's answer typed, with a fixture and a client test (ADR 0634 §6; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 14:53:24 +01:00