Commit Graph
200 Commits
Author SHA1 Message Date
jschoubben 5e95cbed59 A-316: the assigner's candidate gains added, the version and parts the want it would write carries
The state candidates' value (CandidatesByProposalNodeValue) gains `added`, by module name, each an AddedModule
with `version` and `parts` in the want's own forms. It is a copy of the two properties of the seat mesh-wants'
state wants, because the seat-definition format cannot reuse another repository's seat's forms (includes take only
parts/ of the same repository, and a part holds no state value); a fixture holds both to the want's wire.
Regenerated with seatgen. The node names the first round-2 pass left in fixtures lines equal to base lines are
role names now, the generated tests with them.

Builds: design 47 G A-316 (corrected, hq #594), §626
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 22:48:01 +01:00
jschoubben 821d611530 Round 2 T1, T2, T5: the contracts end G with no more tests than at their merge base; fixtures name roles
The test that read every fixture for the operator's account and a node goes (T1); the tests G added
fold into existing ones as subtests, so each module counts its merge base (design 47 G §626, A-306);
node names in the lines G adds are role names (T5).

Builds: design 47 G §626, A-306; review round 2 findings T1, T2, T5
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 22:18:04 +01:00
jschoubben 5cb77ce69f Merge origin/main into the join: node-files list says a place a secret is kept
Brings mesh-contracts #9 (issue 1409): the node-files list verb's text. No conflict.

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 17:01:44 +01:00
mesh-tools e6e90f1bd0 Merge pull request 'node-files: list lists a place a secret is kept, its entries never their content (issue 1409)' (#9) from fix/1409-list-secret-place into main 2026-11-12 15:28:25 +00:00
jschoubben 31e84ba67c mesh-contracts: node-files list text says a place a secret is kept is listed, marked secret-place
mesh/delivery merged: source.main moved to novox/mesh-contracts@e6e90f1bd049
mesh/delivery-group group fix/1409-list-secret-place merged: every member is merged
mesh/check checking 31e84ba67cac on e6e90f1bd049 | novox/mesh-contracts#9 in group fix/1409-list-secret-place
Issue 1409. One line of text; no verb or field changes.

Builds: design 39 parts D3 (§15), bullet 4
2026-11-12 15:45:02 +01:00
jschoubben 181dd3263d G A-230: the seat mesh-recovery's restore point says names, the bus names it took
Point gains names, one per bus object as Aside's (required, at least one), regenerated with seatgen; the kept-points
fixture names its point's bus name, so the fixture test fails without the field.

Builds: design 47 G A-230, §554, §565

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 11:35:10 +01:00
jschoubben 622adcc26c Join 11: merge main (mesh-contracts #8, the engine reads' heard event) 2026-11-12 11:29:23 +01:00
mesh-tools 0e12819cc7 Merge pull request 'enginereads: a reads statement older than a heard reads-changed does not stand (issue 1975)' (#8) from fix/engine-reads-and-compositions into main 2026-11-12 10:23:26 +00:00
jschoubben 04c6a1eead enginereads: the event heard is kept in the node's statement (issue 1975 note 6)
mesh/delivery merged: source.main moved to novox/mesh-contracts@0e12819cc727
mesh/delivery-group group fix/engine-reads-and-compositions merged: every member is merged
mesh/check checking 04c6a1eead98 on 0e12819cc727 | novox/mesh-contracts#8 in group fix/engine-reads-and-compositions
Builds: issue 1975 note 6 (the lead's review round 1; no design line). The engine 'not yet' half is dropped there.

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 11:00:33 +01:00
jschoubben e575659187 enginereads: a statement older than an event heard does not stand (issue 1975)
Builds: issue 1975 note 4 (the lead's handover; no design line)
2026-11-12 10:46:28 +01:00
jschoubben 76d716e021 Merge remote-tracking branch 'origin/main' into feat/47-G-join11 2026-11-12 10:25:48 +01:00
jschoubben 8aa6de9776 Merge branch 'feat/47-G-fix11-a3h' into feat/47-G-join11 2026-11-12 10:25:41 +01:00
jschoubben 62e31e2451 Merge branch 'feat/47-G-fix11-b4b' into feat/47-G-join11 2026-11-12 10:25:41 +01:00
jschoubben bd4d38556c Merge branch 'feat/47-G-fix11-a7' into feat/47-G-join11 2026-11-12 10:25:41 +01:00
jschoubben 886be5cca7 A3h item 2b: NewGateChannel is the gate's operator channel over a process connection
It asks and cancels as accepted kinds of the seat operator-channel through the connection's Accept, and reads the router's
record by a get in the seat holder's state asks, never through a bucket named in code.

Builds: design 47 G §677, §700; lead answers A-272, A-273

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 10:23:22 +01:00
mesh-tools 6a914b1d17 Merge pull request 'node-service-manager: the verb kernel-log reads a node's kernel log, this boot or an earlier one (issue 1975)' (#7) from fix/1975-kernel-log into main 2026-11-12 08:40:39 +00:00
jschoubben dbb197b0c7 AM-H1 contract: the node-engine's composition answer names the withheld subjects
A session reads in one composition why a marked tool is not served on a node,
or that the grants part did not answer.

Builds: design 46 7 §6 (the node-engine's composition of the module names the withheld subjects; "withheld unknown: the grants part does not answer"), lead answer A-239 (withheld, withheld-unknown)

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 06:26:10 +01:00
jschoubben 1d3f24250c A3e item 1: operatorchannelclient implements the gate's channel and re-exports its Kept
Builds: design 47 G §677, §700, lead answers A-219, A-224, A-228

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 06:25:56 +01:00
jschoubben 33d9b28869 A3d item 1: operatorchannelclient re-exports mesh-sdk's act and its digest, one form
Builds: design 47 G §677, lead answers A-198, A-219

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 06:09:18 +01:00
jschoubben ff63be3028 AM-D3/AM-H1 path: the node's record carries the runner's reading; mesh-grants gains withheld
The grants part must tell a reading of the running tool runner from an older
one, and the node-engine's composition reads the withheld subjects through a
verb of the seat, never the grants part's state.

Builds: design 46 7 §6 (the node's record takes the runner's capabilities and fingerprint; the seat mesh-grants' verb withheld, class read, callers the node-engine, persons and the operator, input node, with a fixture), lead answer A-203 (runner-capabilities, runner-fingerprint; withheld's input and answer)

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 06:04:56 +01:00
jschoubben 49e26f5d27 Kept: the operator-channel client keeps an asked call's act, arguments and recorded mark
An asker that asks for a call (the tool runner's approval gate) keeps beside the ask the
act its options bind, the call's whole arguments, and whether its run is in the hand-act
log; Take keeps all three as it marks the ask.

Builds: design 46 7-approval-mark §13

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 05:00:12 +01:00
jschoubben 6be23459ab A7: the contracts' fixtures and the tests generated from them name no operator account and no workstation (role names)
Builds: the lead's handover item A7 (fixtures name no operator account or node); no design line names it
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 04:59:34 +01:00
jschoubben 74c157284f Merge branch 'feat/47-G-fix9-recovery' into feat/47-G-join10 2026-11-12 02:39:12 +01:00
jschoubben c4adc618c8 node-service-manager: kernel-log is built on the issue's prepare record (issue 1975)
mesh/delivery merged: source.main moved to novox/mesh-contracts@6a914b1d1747
mesh/delivery-group group fix/1975-kernel-log merged: every member is merged
mesh/check being carried to c4adc618c874 on 6a914b1d1747 | from 29ec1c3df312, mesh-catalog d9f2b7bcfa07
No file change: this commit only names what the first commit builds, as the review asked.

Builds: issue 1975 note 2: lead answers L1-L3 (the verb kernel-log, its boot argument, no scope and no unit), acceptance 1975/AC1-AC5

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 02:24:44 +01:00
jschoubben cdb80ca4d3 node-service-manager: the kernel-log verb beside journal (issue 1975)
The kernel's messages of this boot or an earlier one (boot 0, -1, ...), in a window, narrowed to a
priority and a text, at most 2000 lines, the journal's argument forms; replaces journalctl -k,
journalctl -k -b -1 and dmesg. seatgen -check is clean.

Builds: issue 1975, the operator's request of 2026-11-12 (the lead's handover; no design line names the verb)

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 02:17:28 +01:00
jschoubben 5503882d55 Merge origin/main (licence-put, issue 1409) into feat/47-G-join9
The vault's seat definition keeps retire's class act (G) beside main's licence-put; the
TypeScript contract is regenerated with join 9's seatgen (seatgen -check clean).

Builds: design 47 G §610

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 01:46:17 +01:00
jschoubben 630de8babc G A-129: the seat mesh-recovery's kept-points answers unrestored
The asides whose record ended at removed with no running act holding them, which the recovery
module's health check fails on, are listed in the answer the tool and the check read.

Builds: design 47 G A-129, §554, §657

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 01:29:07 +01:00
jschoubben e3520750d5 G A-124: the seat mesh-recovery's aside says names, a list of the bus names it was live under
Builds: design 47 G A-124, §516, §560

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 01:17:22 +01:00
mesh-tools 29ec1c3df3 Merge pull request 'The vault's seat gains licence-put, so the licence manager keeps its grants in the vault (issue 1409)' (#6) from feat/39-licence-switch into main 2026-11-12 00:13:01 +00:00
jschoubben b58c4e6b14 G A-117: the seat mesh-recovery's ended and restored events gain why, the hand act's words for a cancel
Builds: design 47 G A-117, §560
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 01:06:05 +01:00
jschoubben 30389b2ed9 Merge branch 'feat/47-G-recover-host-contracts' into feat/47-G-join8 2026-11-12 00:11:50 +01:00
jschoubben ed8914974f Merge branch 'feat/47-G-recover-runner' into feat/47-G-join8 2026-11-12 00:11:50 +01:00
jschoubben 97b5f9684e Merge branch 'feat/47-G-placement6' into feat/47-G-join8 2026-11-12 00:11:50 +01:00
jschoubben 8f70f1c5ee Merge branch 'feat/47-G-cond6' into feat/47-G-join8 2026-11-12 00:11:50 +01:00
jschoubben 2ae0c67930 G A-92: the node-engine's seat definition gains the state bounds, key <what>.<id>, in its old section
Builds: design 47 G §560, §557, §627, A-77, A-92

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 23:44:36 +01:00
jschoubben e5b3a89430 A-91: the operator-channel contract's asks value carries the ask's warrant
Builds: design 47 G §700, A-91; the router's record carries its warrant

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 23:27:37 +01:00
jschoubben 3eba6b8299 V-1/B1: the vault's seat definition gains licence-put
mesh/delivery merged: source.main moved to novox/mesh-contracts@29ec1c3df312
mesh/delivery-group group feat/39-licence-switch merged: every member is merged
mesh/check checking 3eba6b8299e0 on 29ec1c3df312 | novox/mesh-contracts#6 in group feat/39-licence-switch
The licence manager hands the vault a licence's grant and access token through a verb of
the seat mesh-vault; the manifest validator refuses a seat verb the definition does not
serve, so the definition carries it, and the generated Go and TypeScript follow.

Builds: design 39 bus-and-switch §15, B1, B4, B5

Claude-Session: https://claude.ai/code/session_01NcbgfHb9d4T9nq5Q6WqdiJ
2026-11-11 23:07:44 +01:00
jschoubben b0be30c267 Contract: the seat mesh-module-assigner gains the read verb placement
Builds: design 47 G A-62 (§704, §402)

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 22:58:13 +01:00
jschoubben c5cf0126f9 K27 (owner change): the seat mesh-conditions' condition-changed gains the change value owner
Builds: design 47 G §540, §685, A-58 (findings-stated's kinds, §580, and attempt-changed, §541/§665, were built by K13 and K12; seatgen -check clean)

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 22:46:44 +01:00
jschoubben cf5590c759 bus5 K27 (§681): mesh-broker's snapshot-get, snapshot-restore, snapshot-restore-cancel, snapshot-remove and snapshot-restored; the format's verb word chunks
Builds: design 47 G §681, §691, A-44
2026-11-11 22:37:57 +01:00
jschoubben 3658ceb1b6 K26 (D-34): the definition format takes a state's view field, and the assigner's assignments and seat-holders carry it
Builds: design 47 G §699 (§616; ADR 0571 §6)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:36:41 +01:00
jschoubben 78e61c9437 K25 (D-33): the node-engine's first-views answers entries and wants, and the seat gains entry-again
Builds: design 47 G §698 (§683, §422)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:36:34 +01:00
jschoubben b76e52d30a K24 (mesh-recovery's hand verbs): take, restore, retry, aside, discard-aside and expire-points, asker and why on every hand verb, one answer form with cancel
Builds: design 47 G §682, §691 (§516, §554, §566, §656, §681)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 20:45:56 +01:00
jschoubben 0ccac1d42a K11 (no named callers): no seat definition names a callers, and the verbs that had one keep their class
Every verb takes its class's default (read: invokers, persons, sessions; act and warrant: operator, sessions, invokers); resync and
retire, which named a caller beside the operator or a seat, are of class act.

Builds: design 47 G §610 (§391, §392, §394, §405, §555, §554, §659, §681, §393, §422, §579)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 20:45:23 +01:00
jschoubben bd038b15a3 K23 (owner and waiting-on of a condition): the seat mesh-conditions' condition and its events carry them
Builds: design 47 G §685 (§451, §540, §678)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 20:44:03 +01:00
jschoubben b2cc72b4a3 K22 (finding helpers gone): meshconditionsclient keeps what concerns conditions, and heard builds the seat's generated finding
The helpers CheckFinding, FindingFor, FindingWriter, FindingState, FindingVersion, Observation, EncodeFinding, DecodeFinding, Says,
FindingBucket, FindingsBucket, Raise, Clear and CallUnanswered go; mesh-sdk's writer is the one writer and checks. Importers
outside this repository move in G's change (named in the line).

Builds: design 47 G §689 (§461, §503, §640, §660)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 20:43:22 +01:00
jschoubben 74b6162807 K21a (regenerate, in between): the generated Go and TypeScript follow the definitions so far
The conditions developer reads kinds, attempt-changed, wait-held and wait-ended from it. K21 regenerates last. The client
meshconditionsclient does not build against the findings state's new layout until the question on it is answered.

Builds: design 47 G §341, §523, §580, §541, §499

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 20:31:55 +01:00
jschoubben 9243f8c44f K7, K8, K9 (the seat mesh-recovery): its verbs, its events and its place in the module
The seat is defined whole in scope mesh: snapshot-kept, restore-kept, kept-points, restore-aside and cancel (the verbs
of the four forms §516 gives and §566 names; take, restore, retry, aside, discard-aside and expire-points wait for D-19),
events ended, restore-started, restored, set-aside, aside-discarded, point-removed (<module>.<kept>) and expiry-ended,
each kept 90 days and last per subject but expiry-ended, which has no parts and so no last-per-subject. The four acts
that a process answers say by-caller; no verb names callers. The artifacts go-meshrecovery and ts-meshrecovery are in
module.json, the seat in seats/index.json. Generated code waits for K21; the generator reads a verb's by-caller only
once mesh-sdk's reader release (§621) knows it.

Builds: design 47 G §516, §517, §523, §551, §554, §560, §563, §566, §567, §656, §659

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 20:31:03 +01:00
jschoubben 9cefd47223 K18 (asker hears refused): Take answers Refused with the router's words for a refused ask
The ask is closed as any ended ask is, then the asker's request ends with why.

Builds: design 47 G §570, §638

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 20:31:03 +01:00
jschoubben 6beae382b3 K17 (refused said): the asks record says when an ask ended
decided already names ask, outcome refused, words and at; the record gains at beside state refused and answer.
Generated code waits for K21.

Builds: design 47 G §570, §638

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 20:31:03 +01:00