jschoubben
d86a46e5d8
C7: node-backup backs up and restores a module's kept data on the bus: aside, discard-aside, ended and restored
...
now, restore and aside are of class act; discard-aside is the operator's alone; ended and restored carry the
node, module and kept data in their subject and the module, kept data, form, fingerprint and outcome.
Builds: design 47 G §296, §297, §302, §405
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:40:23 +01:00
jschoubben
a904102a07
C6: a placed module and a place change name the watched branch and the build's fingerprint
...
Builds: design 47 G §14, §78, §114, §402
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:39:46 +01:00
jschoubben
91818305e7
C5: the node-engine seat says composed, running (kept last per subject, no age limit, or stopped) and capabilities-changed, acts in compose, and serves process-builds
...
Rewritten from the earlier branch to the final lines: keep as an object, stopped on running, process-builds a
read for persons, sessions and healers and not optional, the compose rule with the step's default bound.
The eleven verbs' callers (§393) wait on a question; the generated Go and TypeScript wait on the generator.
Builds: design 47 G §177, §199, §203, §260, §261, §266, §396, §404, §440
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:39:23 +01:00
jschoubben
f33c1d4b78
C3: the callers of mesh-broker's four reads, mesh-config's renames, mesh-vault's retire and node-engine's seat-list verbs are lists
...
mesh-broker list, show, check, orphans and mesh-config renames name invokers; mesh-vault retire names
seat:mesh-config; node-engine seat-list names persons and healers, seat-list-again the operator and the
healers. mesh-broker create, apply, recreate and drop keep their text: the design names no form for them.
Builds: design 47 G §336, §392, §204
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:38:50 +01:00
jschoubben
8d8a28934c
AM-C2: the login shell's verb execute is marked needs-approval
...
Builds: design 46 milestone 7 §21, §2
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:37:48 +01:00
jschoubben
a711302323
C1, C2 (format): the schema names a verb's class and callers list, an accepted kind's callers, a kept event, acts and bodies
...
A verb gains class (read, act, warrant), callers as a list of the forms of §336/§392 and needs-approval; an
accepted kind gains callers; an event gains subject and keep as an object (max-age-days, max-mib,
last-per-subject), a dot only without keep; the seat gains acts (steps incl. pipeline, on every|language|
kind:image, bound) and bodies.
Builds: design 47 G §68, §203, §336, §338, §391, §392, §396, §397, §439; design 46 milestone 7 §2
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:37:48 +01:00
jschoubben
ada45be38b
AM-C1: the operator-channel client puts a key prefix before every key of its own state
...
Client.KeyPrefix is put before the keys the client writes and reads in its own State; empty for every
asker today, so today's keys stay; Where still reads the router's record under <module>.<id>.
Builds: design 46 milestone 7 §10, §22 (design 47 G, approval mark)
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:35:35 +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/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
mesh/check checking c9ffed70421a on f5d76e84ca71 | novox/mesh-contracts#4 in group fix/1966-engine-reads-asked-again
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/delivery merged: source.main moved to novox/mesh-contracts@7fbfd77a76cb
mesh/delivery-group group fix/1966-call-made-once merged: every member is merged
mesh/check checking bb16f99e2d5e on 7fbfd77a76cb | novox/mesh-contracts#3 in group fix/1966-call-made-once
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