Commit Graph
2643 Commits
Author SHA1 Message Date
jschoubben 21eae590e0 Merge the release fix/1921-zero-version-builds into the registry group: mesh-build-go keys a composer by the versions its compose ask names, in the group's typed fetch (issue 1921, issue 1966)
The release read the versions from the untyped fetch's packages argument; the group's ComposeJob carries them in
buildstep.Fetch.Packages, so the group's form stands, and the release's check that the key differs for named versions
joins the existing test.

Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-06 02:33:55 +01:00
jschoubben 3b462cac31 The composer cache key covers the mesh package versions the ask names (issue 1921)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-06 01:55:44 +01:00
jschoubben 051a10d14b The composer cache key covers the mesh package versions the compose ask names (issue 1921)
mesh/delivery merged: source.main moved to novox/mesh-catalog@332d37311485
mesh/delivery-group group fix/1921-zero-version-builds merged: every member is merged
mesh/check checking 051a10d14b99 on 332d37311485 | novox/mesh-catalog#619 in group fix/1921-zero-version-builds
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-06 01:52:05 +01:00
jschoubben e1aab8a892 The composer test lays every repository beside the check as one workspace, as the group places the composer (issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-06 01:41:41 +01:00
jschoubben 50a66399f6 Take tidy's go.mod whole: mesh requirements at the zero version only, unused ones dropped
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-06 00:52:18 +01:00
jschoubben 35f005e53d Complete go.mod and go.sum for the externals each module builds with
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 9c9c8a5631 Merge main (#617, #618) into the registry milestone (issue 1966)
mesh-build-go keeps trunk's zero-version resolution on the group's mesh-delivery sdk types; mesh-build-node keeps per-path packages with the builder's version and seat.

Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-06 00:18:20 +01:00
jschoubben 7a5eef32e7 A zero-version requirement of the checked repository's own module is built from its fetched tree, and a failed latest says what failed (issue 1921)
mesh/delivery merged: source.main moved to novox/mesh-catalog@bc4d43b508cf
mesh/delivery-group group fix/1921-zero-pins-own-packages merged: every member is merged
mesh/check being carried to 7a5eef32e772 on bc4d43b508cf | from df8168f4843f, mesh-delivery c0e5bc2834fe
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 23:34:46 +01:00
jschoubben 5aaafd917f A replacement is refused like any section, and an expired one changes nothing: two cases of ADR 0642 as tests
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 23:19:56 +01:00
jschoubben aa7c9e8924 A removal of a replacement names both fingerprints; the two-texts refusal names the places and the way out
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 23:19:03 +01:00
jschoubben 80f992e367 A removal of a section removed already is refused: the case ADR 0642 names, as a test
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 23:17:22 +01:00
jschoubben b3fc5b4580 A removal of an approved replacement names the registered text's fingerprint; the cases ADR 0642 cites are tests
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 23:16:23 +01:00
jschoubben 6fb27549c9 No checked-out library copy or comment says placement; the claude-code fixture and seat-list test pass at the merge (issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 22:37:09 +01:00
jschoubben d8227222a7 Merge branch 'reg/claude-code-replace' into feat/registry-milestone 2026-11-05 22:32:50 +01:00
jschoubben c9d8950fd0 Every module follows the assigner's new places: the contracts' go/ path, mesh-wants in the delivery contracts, the state and tool assignments (issue 1966)
The legacy key form placement.<node> is gone from the client, so the readers and their fixtures lose it. The check noplacement
now also refuses the assigner's retired names in a manifest.

Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 22:29:07 +01:00
jschoubben 657cb2b6c8 A section registered before the controller's terminal took over, or set there, is replaced or removed by a proposal the operator approves
It could not be changed at all: propose refused a name set there and never replaced one. The ask now says plainly that
it replaces or removes the registered section and binds its text's digest; on Approve every node renders the new text
in the place of the old (a removal leaves it out); a replacement keeps the section's own heading form (issue 340 note 14).

Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 22:14:55 +01:00
jschoubben cbea2470d2 mesh-vault starts its passes once Serve holds the runtime's channel: started earlier every watch is refused and waits for the minute's pass (issue 774)
mesh/delivery merged: source.main moved to novox/mesh-catalog@df8168f4843f
mesh/check being carried to cbea2470d225 on df8168f4843f | from 559939aa8ce1
Checked by TestTheVaultWholeRotatesANodesLoginWithAStandInEngine: the race it met is what this closes.

Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 21:59:15 +01:00
jschoubben 2dc9e07e88 The generated TypeScript parser of a key form names its own parameter and locals apart from the form's parts
A key form such as <node>.<module>.<key> made the parser declare the parameter key and the part key together (TS2300 Duplicate identifier), which the per-package unit level now surfaces. The parameter and the locals are now _key, _rest and _at<n>; a test row with such a form fails on the old output. Issue 1966.

Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 21:24:07 +01:00
jschoubben 1feda1f533 mesh-build-go takes a zero-version requirement from the ask or the trunk, never from the pull request heads (ADR 0573 sections 2 and 4, issue 1966)
mesh/delivery closed: a newer head of the same pull request
mesh/check failed: integration: mesh-vault/cmd/mesh-vault.Tes… | 1feda1f533b8 on 559939aa8ce1 | judged by the candidate's mesh-build-go at 87d30b709d68
A go.mod requirement of a forge module at v0.0.0-00010101000000-000000000000 names no commit; the fetch looked for the commit 000000000000 among the pull request heads and failed. It is now taken from the commit the ask names for the package, else from the head of its repository among the asked versions, else from the latest published version.

Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 21:17:21 +01:00
jschoubben 4b9ea0bf11 mesh-build-node builds and tests each TypeScript package at its own path, with its own lock (ADR 0634 section 8, issue 1966)
A folder module (the contracts folders) declares several package artifacts under ts/seats/<seat>/, each with its own package.json and lock and none at the module directory; the fetch asked for a lock at the module directory and failed the group's check. The fetch installs, the build packs and the test level runs at the artifact's path; an artifact naming no usable path keeps the module directory. The module's .gitignore anchors the binary's name so the command directory is not ignored.

Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 21:14:56 +01:00
jschoubben 625d627794 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 d630635229 RemovedDeliveryVerbs leaves mesh-sdk for the seat mesh-delivery's client (ADR 0634 section 2, issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 18:45:50 +01:00
jschoubben 29bcaf2be5 The wanted accounts' layout leaves mesh-sdk for the grants part's package grantsstate (ADR 0634 section 1, ADR 0635 section 4, issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 18:43:21 +01:00
jschoubben 78a1b5648b 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 720efe6339 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 76e25aeee0 mesh-mail: its go.mod test no longer reads a release out of the mesh-sdk version (the floor version, ADR 0573)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 18:04:55 +01:00
jschoubben fb6bf361e4 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 8a8ad7713e Merge branch 'b9i/registry' into feat/registry-milestone 2026-11-05 17:39:18 +01:00
jschoubben 50acf7c1b4 artifact-store-tools: the sweep seats read the artifact store's form through the registry clients' forms too (S-8; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 17:38:04 +01:00
jschoubben a89aaf5644 nats and mesh-config: their event streams keep their history, the bus's predefined form of an event family, not an age-limited stream of their own (V1; ADR 0592 §6; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 17:30:39 +01:00
jschoubben 82d00aeb5e Builders, the artifact store's tools and distribution read and write the registry reference form through the registry clients' reference package, and name the sweep seat from its contract (ADR 0634 §4, S-8; issue 1966)
catalogue's SeatReference, InRegistrySeat, Routed, Recorded, InArtifactStore and ArtifactSweepSeat leave mesh-sdk;
each package gives the two registry seats' names from their contracts (or the build step's copies of them).

Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 17:26:32 +01:00
jschoubben 2978dd5bed mesh-healers and mesh-self-check use the conditions client's Observation, Finding encoding and Says, not copies of their own (ADR 0634 §4; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 17:05:27 +01:00
jschoubben 1f3a293988 The nats keeper takes the removal grant from the grants part's published busgrants package and names it in packages (ADR 0634 §4; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 17:03:28 +01:00
jschoubben bbcc95e66d Merge branch 'b5/registry' into feat/registry-milestone 2026-11-05 16:52:51 +01:00
jschoubben 37cdf41088 mesh-vault takes the internal name from mesh-wireguard's overlay package; the digest test no longer names mesh-sdk's buildstep, it takes the one package of its go list capture (B5l; ADR 0634 §4; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:51:24 +01:00
jschoubben 6f2e27f59b mesh-hand-acts and mesh-healers take the hand-act names and the act from the seat mesh-hand-acts and its client, not mesh-sdk's handacts (B5l; ADR 0634 §4; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:48:00 +01:00
jschoubben 8d3cffab9a gitea and mesh-provisioner tests name the finding key and the findings state through the conditions client, not mesh-sdk's health (B5l; ADR 0634 §4; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:46:45 +01:00
jschoubben 73eb3bd11c mesh-self-check reads a node's presence through the watchdogs client: a part's key is no node, a refused version is an error (ADR 0634 section 4; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:44:52 +01:00
jschoubben 75959dfa25 seatgen writes a scalar typed [T, null] as *T in Go and T | null in TypeScript, so a declared zero survives with its type (ADR 0634; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:43:19 +01:00
jschoubben 36da33c818 Merge branch 'b5i/registry' into feat/registry-milestone 2026-11-05 16:24:49 +01:00
jschoubben ef81dc2712 mesh-build-go reads a check's toolchain from the job, answers with the Delivery SDK's CheckAnswer and typed FetchAnswer, and takes the toolchains value from the Delivery SDK; askrun_gaps.go and toolchain.go are gone (B5j; ADR 0584 clause 2, ADR 0634 section 6; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:24:13 +01:00
jschoubben 2685b9c749 Merge branch 'b5/registry' into feat/registry-milestone 2026-11-05 16:13:37 +01:00
jschoubben 725ea4dba4 Merge branch 'b5i/registry' into feat/registry-milestone 2026-11-05 16:13:21 +01:00
jschoubben da560f90f8 nats reads manifest-accepted in the seat mesh-catalog's typed event and subject (B5g; ADR 0604, ADR 0634 §1; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:11:13 +01:00
jschoubben df53a0c59e gitea's whole test names the builder's versions address from the builder's builds package (B5g; ADR 0634 §1; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:09:54 +01:00
jschoubben 634abead7d mesh-build-go, -image and -node declare the builder's published package builds, which they now read their forms and keys through (B5i; ADR 0634 §1, §4; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:09:52 +01:00
jschoubben 85999b7efd distribution steps its windows with mesh-delivery's sdk window package (B5g; ADR 0634 §1; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:09:37 +01:00
jschoubben b8642c8b27 mesh-self-check reads the placement, seat holders, presence and health reports through the seats' types and clients; RootContract is the node-engine client's (B5g; ADR 0634 §1, §4; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:09:16 +01:00
jschoubben 8f1581f34a mesh-build-go: a seat's ask type runs as the neutral ask (AskOf, the step description, the fetch arguments) (B5i; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:08:26 +01:00
jschoubben 1e974ce9e8 mesh-config keeps held values in the seat's typed state kept, through the config client's key and codec (B5g, B2f; ADR 0565 §5, ADR 0634 §4; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:08:11 +01:00