Commit Graph
62 Commits
Author SHA1 Message Date
jschoubben ab9b8d3471 CT5: the build seats accept step on check and on delivery, and run on check, each kind by its stream; regenerated
A kind's subject is <stream>.<kind>: check.step, delivery.step (a recovery's steps, the
runner alone) and check.run (node-build-go). Regenerated with seatgen at mesh-catalog
b5aebbbe (GEN4); its fixture rows for the three subjects fail to compile against the
contract before.

Builds: design 47 G §415, §455, §22, §206, §86, §338.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:29:13 +01:00
jschoubben 349a3519ef CT10: meshdeliveryclient reads the source per watched branch; SourceMainKey and the removed-verb rows retire
Builds: design 47 G §15, §305 (a reader names a branch's source revision: SourceKey, the
value SourceByBranchValue), §431 (the five verbs of release 6 leave the definition, so the
list RemovedVerbs and its test go; the settle ask goes with the verb settle).

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:05:56 +01:00
jschoubben e1df6af536 CT7: the seat mesh-delivery keeps the state turns, and asks until their last users go; regenerated
Left in the definition: no line of the contracts part removes the state turns, and the
state asks is read by the teller, the forge bridge, the view and the indexer, whose rows
remove their reads; it is removed in the head where its last reader goes (design 47 G §431).

Builds: design 47 G §305, §431.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:05:56 +01:00
jschoubben 3883667254 CT10: meshwantsclient compares wants that now carry their parts by value
The want gained the released version and each part's digest (CT4), so two wants are
compared by value; a table row writes and reads one back. Failed to compile before.

Builds: design 47 G §379, §308.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:56:59 +01:00
jschoubben 90b8ba6461 CT10: the client meshpipelinerunnerclient: the runner's event subjects built and parsed, its bodies decoded
Builds: design 47 G §73, §74, §332 (every subject built and parsed back; group-ended
under branch and group with no module part). The rule Passed of the dev branch is not
built: no line of the contracts part names it.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:50:30 +01:00
jschoubben 72ac9b09cb CT11: regenerate the Go and TypeScript contracts from CT1 to CT9; each TypeScript contract as index.js with index.d.ts
Generated by seatgen (mesh-catalog, GEN1 and GEN2 on its worktree) from the
definitions of CT1 to CT9; module.json names the artifacts of the new seats
mesh-builds, mesh-pipeline-runner and git. seatgen -check is clean; every seat
package's generated fixture test passes.

Builds: design 47 G §341 (a TypeScript contract is emitted as index.js with
index.d.ts), §196, §339 (the generator refuses an unknown callers entry),
§260, §331.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:48:56 +01:00
jschoubben 15c065d2bb CT8: the seat mesh-delivery-checker: the events owed per repository and number, and checked
Builds: design 47 G §162, §164, §260 (owed on mesh.seat.mesh-delivery-checker.event.owed.<repository>.<number>, kept 7 days and 64 MiB per §396; checked).

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:47:35 +01:00
jschoubben 71afa10f4d CT7: the seat mesh-delivery: source, recovery, groups with acts, owed and the record events; table, recheck, close and the milestone events removed
Builds: design 47 G §304, §305 (verbs source with a branch, recovery; groups; events
owed, pinned, freed, heads-replaced, record-opened, record-ended, filling, full, room,
source-moved, recovery-merged; table, recheck, close and the three milestone events
removed), §15, §162 (owed per repository and number, 7 days, 64 MiB), §431 (asks,
turns and the five verbs of release 6, checks and settle leave the definition),
§394 (recovery is of class act: the operator and sessions), §391 (class).

Open, left as the dev branch built it: the state merges is kept (no line says the
merge states of the gate go whole).

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:47:13 +01:00
jschoubben 0c37cd6402 CT6: the seat git: its verbs with callers and error answers, tag, its events with hyphens, branch-moved kept
Builds: design 47 G §310, §311, §312 (an error answer fixture per verb), §313
(status, comment, view, note the forge bridge alone; merge-pull persons and
sessions; the reads invokers), §370 (tag, callers the builder), §396 (event names
with hyphens), §331 (branch-moved 64 MiB, 90 days), §11, §39 (state failed-steps),
§129, §111 (statuses, status), §391 (class).

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:46:26 +01:00
jschoubben cbaa9a35e9 CT4: the seat mesh-wants: input, version-delivered, the accepted step, the want's version and parts, the step place
Builds: design 47 G §308, §22, §24, §116, §338 (accepted kind step from the runner
alone; step-ended.<node>), §331 (step-ended 32 MiB, version-delivered 64 MiB, 90
days), §376, §379 (version-delivered; the want names the released version and each
part's digest), §354 (verb input, callers the holders of the build seats; state
inputs), §184 (assignment revision per watched branch), §398 (the step place
declared here), §400 (no verb optional).

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:45:40 +01:00
jschoubben 17517b9f4e CT5: the build seats' accepted kinds step and run, and the state detected-steps
Builds: design 47 G §22, §338 (accepted kinds step, runner alone; run, node-build-go,
callers the runner, the indexer, the assigner and the checker), §326, §414 (state
detected-steps, one key per artifact, apart from today's step keys steps).

Not built: §415's kind names check.step, check.run, delivery.step (the definition
reader refuses a dotted accepted-kind name); stopped on that question.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:44:58 +01:00
jschoubben 6acad9425d CT9: the registry seats' text callers become lists of the forms of §336
Builds: design 47 G §68, §127, §336, §392 (seat:<seat>, invokers).

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:44:02 +01:00
jschoubben 94f8d3a48c CT5: the build seats: steps, drop, kept-artifact with callers, step-ended on the node, the accepted step
Builds: design 47 G §22, §116, §206, §271, §326, §338 (callers: steps the runner
and the indexer, drop the runner and the builder, kept-artifact the node-engines),
§24, §331 (step-ended.<node>, 128 MiB), §370, §373 (the ask carries the version and
each package member's digest), §203, §324 (acts build on the language).

Not yet in this commit, left as the dev branch built them and not read against the
lines: the accepted kind names (dev's 'step'; G-9 §415 names check.step, check.run,
delivery.step), the state rename detected-steps (G-9 §414).

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:44:02 +01:00
jschoubben c8b11baf04 CT3: the seat mesh-catalog: registrations, versions, outdated, input, entry, version-released, versions-filled, entries with languages
Definition and fixtures; the generated contracts come with CT11 (their fixture
test is the proof: it fails on a fixture the definition does not read).

Builds: design 47 G §2, §3, §4, §100, §108, §394 (registrations read; register,
policy, watch, unwatch act, callers operator and sessions), §349, §372, §375,
§354, §443 (versions, outdated, input, entry; version-released, versions-filled
with no age limit; layouts versions, build-edges, inputs), §307, §260
(catalog-revision.<branch>), §47, §323, §365, §374, §378 (entry: artifacts with
language, edges with stale/order, word and part, the events the streams declare),
§331, §396 (keep objects), §400 (no verb optional), §391 (class).

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:44:02 +01:00
jschoubben 7f0fbf15ae CT2: the seat mesh-builds, held once for the mesh: package-published, toolchain-agreed, reserved
Definition and fixtures; the generated contracts come with CT11.

Builds: design 47 G §52, §307 (seat held once, event package-published), §334
(artifact reference, version, digest, branch, source revision), §374 (resolved
dependencies with version and digest), §376 (toolchain-agreed: language, version,
toolchain digest), §369 (verb reserved, callers the registry seats' holders),
§331, §396 (keep: package-published 128 MiB, toolchain-agreed 16 MiB, 90 days),
§391 (class read).

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:35:25 +01:00
jschoubben 04270ef754 CT1: the seat mesh-pipeline-runner, its twelve verbs with callers and class, its kept events and acts
Definition and fixtures only: the generated Go and TypeScript contracts and the
module.json artifacts come with CT11, once the reader of G-9's forms and the
generator read them (seatgen refuses these forms today).

Builds: design 47 G §306, §394, §391 (verbs, callers, class), §73, §332 (event
subjects; group-ended under branch and group), §331, §396 (each event's keep
object: 90 days and its cap), §65, §203, §266 (acts pipeline, bound 30m), §261
(fixtures name each subject), §419 (pipeline-ended: tests, over-budget yes/no),
§441 (widens says could not run).

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 10:34:52 +01:00
jschoubben a8c8f8fb5a F8, dropped: the Drop layout is the generated contracts' (not the domain SDK's) and the key form sits beside Pause's helpers; a step ended by drop is the state dropped (ADR 0664 §4, issue 1748 review 1)
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:40:29 +01:00
jschoubben 440d02afb3 D1: the build step part gains the state again, run, again-at, passing and the verb drop; the three build seats regenerated (ADR 0664 §1, §4, issue 1748)
Shared lines for the join with milestone G: contracts/parts/build-step.json, the three seats' fixtures and generated contract files.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 22:54:42 +01:00
jschoubben bf7540cd9e The build step part's request names both forms; the three build seats' contracts regenerated (issue 1966)
mesh/delivery merged: source.main moved to novox/mesh-delivery@fc21f2d1bd56
mesh/delivery-group group fix/1966-checker-compositions-objects merged: every member is merged
mesh/check checking bf7540cd9ec2 on fc21f2d1bd56 | novox/mesh-delivery#189 in group fix/1966-checker-compositions-objects
The compose job's `request` description now says it is the request object or the JSON string "gzip+base64:" followed by the
base64 of the gzip-compressed object, as ADR 0634 §1 puts a seat's messages in its contract. The field stays `any`;
seatgen regenerated node-build-go, node-build-node and node-build-image (Go and TypeScript), and its -check is clean.
ask.go's comment says the checker packs every request it sends.

Delivery: an old holder of node-build-go refuses the packed ask loudly (it holds no request object) until it runs the new
mesh-build-go; the checker is built by mesh-build-go after it (module graph edge), and every check composing ace or novox
fails today anyway.

Claude-Session: https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
2026-11-09 16:41:56 +01:00
jschoubben d5d9f0c258 The domain SDK carries the run ask's rules and the checker's client asks a program's input (issue 1921, milestone 47/G D2)
B0's mesh-sdk go/delivery run lines move to their registry homes: the
run job, the one-job rule, the Go check stream alone, the input's bound,
digest and key in sdk/buildstep; AskWhat's run case in sdk/buildrun; the
ask of the verb input and the check of a verdict's judged-by in
meshdeliverycheckerclient. B0's tests come in as rows of the existing
tables.

Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-07 02:35:31 +01:00
jschoubben ea0b6a075b The checker's seat serves a checking program's input, a verdict names the program that judged it, and the build step's part carries the run ask (issue 1921, milestone 47/G D1)
B0's run job, its input verb and judged-by move from mesh-sdk's go/delivery
into the Delivery domain's contracts, with B0's JSON names: the part
build-step carries StepAsk.run and the defs RunJob, RunProgram, RunHead,
RunInput and RunAnswer beside compose (the lead's ruling on Q1), and a
step's result the run's exit, output and said.

Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-07 02:27:44 +01:00
jschoubben 2818edff60 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 ca61a8432c 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 02b81b51c3 gofmt
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 22:22:57 +01:00
jschoubben 369ebd092d mesh-wants is the Delivery domain's seat, defined in the delivery contracts; the indexer knows no Placement domain (issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 21:39:57 +01:00
jschoubben df6d8e1c3b 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 e98f6f30b1 The checker's event layouts are its own published package, the try group key and wording are the mesh-catalog client's; one limit for try (ADR 0634 sections 1 and 2, issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 20:50:14 +01:00
jschoubben 03809d8d83 Merge origin/main into b7/registry: the group try and the successor validation take the group's contracts, clients and seat list (issue 1966, issue 1921)
The seat verb try gains members (ADR 0637 section 6); the try's group name and the missing-preview reason are one definition of mesh-delivery-sdk (ADR 0637 section 8).

Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 20:41:41 +01:00
jschoubben ddaff38e75 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 c8241d0be6 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 2dbb0da8a5 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 e085c0ce22 mesh-catalog seat regenerated with the nullable bounds: a config declaration's minimum and maximum are *float64, so a bound of 0 is kept (issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 17:11:58 +01:00
jschoubben c9279b0795 Merge b7l/registry into the registry milestone's mesh-delivery: the builder and the checker onto the Delivery SDK (issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 17:03:28 +01:00
jschoubben 6b32e8257d Fetch part: the TypeScript module's group package ({name, version} or {repository, commit, ref}), which the checker hands the Node fetch and the part lacked; typed in the three seats and the sdk, a node check ask fixture (B2g gap; ADR 0607 §3, ADR 0500 §5; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:48:37 +01:00
jschoubben b79b94b19d Clients: the kept and preview keys of the checker's states and the candidates key of the catalog's (ADR 0634 §2; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:42:19 +01:00
jschoubben dd6f899b12 Checker client: the codecs of the verdicts, kept and previews states the checker writes and others read (ruling 17:4x; ADR 0634 §2; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:39:50 +01:00
jschoubben 4cd6934842 mesh-catalog seat: a config declaration's minimum and maximum are nullable, so a declared 0 survives the typed state; a fixture row with 0 (third of a kind: a zero or empty optional value dropped; ADR 0634 §2; issue 1966) 2026-11-05 16:36:06 +01:00
jschoubben 0bcc046c3d Merge branch 'b2/registry' into b7/registry 2026-11-05 16:30:17 +01:00
jschoubben dfffaf729e Merge branch 'b2/registry' into b7l/registry 2026-11-05 16:19:05 +01:00
jschoubben baa04d68ce mesh-delivery-contracts, sdk buildstep: the check answer's fetch keeps the fetch tool's whole answer (workspace, commit, modules, merge, conflicts, changed, programs, trees, beside, packages, installed, refused), typed in the seats' StepResult and the sdk's CheckAnswer and StepResult; fixtures from the build modules' captured answers (B2g; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:17:33 +01:00
jschoubben 37ff2ed1d1 mesh-delivery-contracts, sdk buildstep: the check job carries the toolchain the checker agreed (ADR 0584 clause 2) and the node names, so a node on another toolchain declines the check; the part had neither, the sdk's CheckJob lacked the toolchain (B2g; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:16:16 +01:00
jschoubben 8c2d61a2cf Merge b2/registry (B2f: the builder on the generated mesh-artifact-sweep seat, the kept state's client) into b7/registry; the builder keeps the hub for the seats' events (B7j)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 16:03:24 +01:00
jschoubben 7fcd2d0b64 mesh-delivery-contracts: the seat mesh-artifact-sweep is a whole seat: held's answer (HeldAnswer) and the artifacts-gone body (ArtifactsGone) typed, with fixtures from the holder's test values, generated Go and TypeScript (B2f; ADR 0571 §2, ADR 0634 §2; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:58:29 +01:00
jschoubben f938a53e09 Merge b2/registry (B2e: window, buildstep ask, buildrun, gate codecs) into b7/registry
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:58:00 +01:00
jschoubben d0f1afbede mesh-delivery-contracts: the gate's values in the seat's types with their rules (source, merge, ask, owed, turn, answer: encode, decode, check, same), the turns and approved keys, the merge states, and the checker's verdict key, goldens from go/delivery's output; the turns' times are time.Time (B5e ruling 3; ADR 0625 §4, ADR 0634 §2; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:53:23 +01:00
jschoubben 839e27a064 meshcatalogclient: the holder's module name and the addresses of the states others read (modules, manifests), so a reader names them from the client (lead's request; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:41:04 +01:00
jschoubben c16b38bd83 mesh-delivery-contracts: the seat mesh-catalog's events manifest-accepted and manifest-refused, said on the verdicts of a manifest (ADR 0604, ADR 0578; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:10:03 +01:00
jschoubben e2f8ed5de0 mesh-delivery-contracts: the build seats' times are time.Time (seatgen writes date-time so; B5d; ADR 0634; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:07:57 +01:00
jschoubben 6f22665c98 mesh-catalog's client: the manifest digest and key, the modules value's rules, the verdict's rules and the candidate's fingerprint set, over the seat's typed states (ADR 0625 §4, ADR 0634 §2; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:04:06 +01:00
jschoubben 6fb4236eb4 mesh-delivery-contracts: mesh-catalog's modules and module answers typed, a module's toolchains typed, fixtures captured from the seat's own read tools (ADR 0634 §6; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
2026-11-05 15:01:35 +01:00