jschoubben
119e0a6f13
A-C2: a build module runs the pipeline step kind step and says its end on its node (issue 1966)
...
The runner asks a lint or test step of an artifact as the build seat's accepted kind step, and
hears its end as the seat's step-ended on the node that ran it (ADR 0666 sections 7, 8, 21;
design 47 *The steps and who serves them* line 571 and *Asked on a work queue, ended by an event*
lines 583-590 at hq b229f5c4). The build modules' shared package runs a test step as a check of
its one level, carries the packages whose digest the ask names kept, keeps what it passed and
says the counts; a level with no tests ends nothing to run, a source fault could not run, and a
transport fault or an end that could not be said is handed back unsaid, so the work queue gives
the step again and it ends once under its ask's id. The neutral forms are the domain SDK's
(sdk/buildstep pipelinestep.go, mesh-delivery dc0df1b5); the Go module says the end through the
runtime's seat publish.
Milestone 47/G, research 086 area A.
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
(Joined from 72fee3c6.)
Builds: design 47 G §22, §24, §86, §116, §140 (BLD3, BLD4)
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 14:32:36 +01:00
jschoubben
b5aebbbe91
GEN4: the seat generator emits the types of bodies, resolves #/bodies/ refs and names an accepted kind by its stream
...
Builds: design 47 G-9 §452, §454, §455 (§391: no verb is refused for a missing class)
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:27:17 +01:00
jschoubben
357967308f
BLD11: the three build modules take the version from the ask as MESH_VERSION; version.numbered is no longer heard
...
The Go compile, the Node tsc/esbuild/npm and the image's buildah bud get the
build argument MESH_VERSION from the version the build ask carries. The late
publish on version.numbered goes (code, tests, the consumes of the Go and
image manifests). The image's label and tag and a program's stamp are open
(question to the lead): the design names no key or symbol.
Builds: design 47 G §349, §370, §413
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:00:52 +01:00
jschoubben
c62650e4ff
GEN3: the seat generator reads acts, subject, keep and callers and writes each event's subject and stream
...
An event whose subject carries parts is published by a function taking each part and heard by a filter with a * per
part; an event naming keep gets the stream SEAT_<seat>_<event>, in Go and in the TypeScript contract. The reader of the
sdk's reader release reads acts (every, a language, kind:image), keep as an object and callers as a list.
Builds: design 47 G §89, §203, §238, §260, §324, §331, §396, §397
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:40:42 +01:00
jschoubben
fe8c41928d
GEN2: the seat generator emits each TypeScript contract as index.js with its index.d.ts
...
A seat's npm package holds index.js, index.d.ts and parts/<part>.js with .d.ts, with no TypeScript source and no
tsconfig.json, so a TypeScript module imports it with no build step and no tsc of the contract.
Builds: design 47 G §341
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:37:07 +01:00
jschoubben
50677b204b
GEN1: the seat generator refuses a definition whose callers entry is no form of the format
...
The generator checks each verb's and accepted kind's callers in a definition and a part before reading it, naming the
file, the verb and the entry; text is refused as one entry; the contracts it writes carry no caller check.
Builds: design 47 G §336, §339, §392
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:35:33 +01:00
jschoubben
e712cd227f
C5: the integration row reads the dropped step as dropped (ADR 0664 §4, issue 1748 review 1)
...
mesh/delivery-group group fix/1748-transport-retry merged: every member is merged
mesh/delivery merged: source.main moved to novox/mesh-catalog@a39b72c377a5
mesh/check checking e712cd227f37 on a39b72c377a5 | novox/mesh-catalog#649 in group fix/1748-transport-retry
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:44:08 +01:00
jschoubben
6a29e41175
F3: mesh-build-go and mesh-build-node follow the drops other holders write, and a module with no watch says so (ADR 0664 §4, issue 1748 review 1)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:42:13 +01:00
jschoubben
1948da9cb4
F8, dropped: the build module's drop uses the generated contracts' Drop and ends the step dropped, with the named cause (ADR 0664 §4, issue 1748 review 1)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:41:10 +01:00
jschoubben
6b8e7fc621
C1c, C6: any holder serves drop and every node follows it by a watch of the shared pauses; the build modules serve drop and ask the tool runner's seat-settle-delay (ADR 0664 §1, §4, §5, issue 1748)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:19:28 +01:00
jschoubben
3c3fdd3446
C5: an integration test of the delayed redelivery and the drop of a running step against the real bus (ADR 0664 §1, §5, issue 1748)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:16:09 +01:00
jschoubben
06f28fbadb
C4: the conformance kit gains Passing with the words of each runner when the network did not answer; each build module's tests call it and checks/failurekit refuses one that does not (ADR 0664, issue 1748)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:15:35 +01:00
jschoubben
89ec9429db
C2b: a seat verb's no responders is a transport fault when the assigner names a holder of the seat; a seat nothing holds fails at once (ADR 0664 §1, issue 1748)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:12:35 +01:00
jschoubben
b9cfa4fe16
C2: mesh-build-go says a failure of the network as a transport fault: one download, no retry of its own (ADR 0664 §1, issue 1748)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:10:16 +01:00
jschoubben
02d57c4a53
C1b, C1c: the seat's verb drop refuses a dropped ask at pull, ends one that runs, and the start sweeps old drops (ADR 0664 §5, issue 1748)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:07:49 +01:00
jschoubben
5a7561fe1d
C1: a build step that ends on a transport fault below its last run is written again and handed back to the bus with a delay (ADR 0664 §1, issue 1748)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:04:44 +01:00
jschoubben
7bf15a3dc4
The unread-ask test and the ReadManifest note follow the delivery domain SDK's names and the ask to the indexer (issue 1921, issue 1966)
...
mesh/delivery-group group feat/registry-milestone rejected: composed together: the checker's verdict at the members' heads (616c42434ac2): ace
mesh/delivery closed: a newer head of the same pull request
mesh/check failed (3): ace: the check of novox/mesh-catalog#612 failed: the unit level: the candidate's mes…; and 2 more | 7bf15a3dc4db on f2b332de73d6
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-07 03:15:18 +01:00
jschoubben
ba17347518
mesh-build-go runs a program on the contract's run ask: the delivery domain SDK's job, key and bound, and the checker client's input ask (issue 1921, issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-07 02:41:39 +01:00
jschoubben
8c67c224c2
Merge the trunk (B0) into the registry group: one invokes list in mesh-build-go's manifest, the manifest asked of its owner and the checker's input asked of the seat (issue 1921, issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-07 02:18:55 +01:00
jschoubben
da1356cd7c
Bind a run's heads read-only over its workspace, read its input from the state the ask names, and prove the kept programs' sweep (issue 1921, review round 1)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-06 23:24:48 +01:00
jschoubben
fa73674e22
A run ask builds a checking program once and runs it over its heads and input; compose keeps seats (issue 1921, C1-C3)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-06 22:20:25 +01:00
jschoubben
0220dfa92b
Answer an ask the build module cannot read on its step key as refused (issue 1921, seams must 1)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-06 22:03:51 +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
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
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
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
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
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
941959198e
mesh-build-node runs its asks on the Delivery SDK's neutral build ask, step and answer forms instead of mesh-sdk's go/delivery; its state names are its seat's; the three build modules require the contracts they import (B5i; ADR 0634 §1, §6; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:07:50 +01:00
jschoubben
cfde90906f
mesh-build-go: the imports the move added sit in the module group (B5i; issue 1966)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:06:24 +01:00
jschoubben
8786bb3ba1
mesh-build-go runs its asks on the Delivery SDK's neutral build ask, step and answer forms instead of mesh-sdk's go/delivery: the Puller takes buildstep.StepAsk (the read bridge is the form's own AskAs), the toolchains value is the build runner's own, the stale-step part is buildrun's, keys and values come from the seats and clients (B5i; ADR 0634 §1, §6; issue 1966)
...
The part build-step lacks the check job's toolchain and types the check answer's fetch as the fetch arguments; both are kept in askrun_gaps.go until the part has them.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:05:34 +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
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
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
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
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
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
680da05c4c
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 19:38:50 +01:00
jschoubben
d8af436536
Pin mesh-sdk 05b3e2e1b94f and mesh-contracts ae5266e77639, the group's final heads, in every Go module (issue 1966)
...
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 18:46:38 +01:00
jschoubben
5ab349df6c
Pin mesh-sdk e5d89c5eedb5 and mesh-contracts 347a3053580a, the group's heads after review round 2, in every Go module (issue 1966)
...
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 18:25:28 +01:00
jschoubben
80cdcbfa2f
Pin mesh-sdk c54648e74346 and mesh-contracts ec9529022c44, the group's heads, in every Go module (issue 1966)
...
Every module that imports mesh-sdk requires its group head; each requires the mesh-contracts seats and clients it
imports, and mesh-contracts/go through the SDK's seat list. The placeholder versions are gone.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 17:43:43 +01:00
jschoubben
b5644829d3
F-catalog-B: the catalogue's Go is as gofmt writes it, and checks/gofmt holds it so
...
buildstep's generated.go and generated_test.go and claude-code's config_test.go reached the join
unformatted: the second of a kind, which no check caught since each module's tests hold only themselves.
All three are formatted, and checks/gofmt refuses a Go file of the catalogue gofmt would change.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 17:18:45 +01:00
jschoubben
9d09aeddb1
buildstep requires the registry clients and seats it imports
...
Placeholder versions, as for the other contracts modules; the group's pin
writes the real ones.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 16:33:49 +01:00
jschoubben
9c8d64e28c
seatgen: a string's enum is one Go constant per value
...
A caller names a value the seat definition gives, such as the removal
reason retention, and never writes it by hand.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 16:29:57 +01:00