Commit Graph
1608 Commits
Author SHA1 Message Date
jschoubben ee34487126 Merge branch 'feat/47-G-build' into feat/47-G-build-teller 2026-11-11 11:53:45 +01:00
jschoubben 61277b6b9b VW4: the view's manifest says version 0.1, declares its finding stream and hears the keeper's ask
Builds: design 47 G §383, §387, §368, §411

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:53:41 +01:00
jschoubben 55d8e9e73d Merge branch 'feat/47-G-build' into feat/47-G-build-assigner 2026-11-11 11:53:07 +01:00
jschoubben 3b31e6df05 AS1: a want follows a passed pipeline, by compare-and-set per module and watched branch
The assigner hears pipeline-ended and group-ended, keeps the newest end per module and branch in the state written (tool assigner_written), and writes a want only from an end whose required steps passed.

Builds: design 47 G §29, §35, §102, §120, §291, §325, §352, §85

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:53:07 +01:00
jschoubben 799241364f VW0: the view reads the trunk's source by the branch key and the per-branch value
Builds: design 47 G §305 (the state source is kept per watched branch), §431

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:50:04 +01:00
jschoubben 9b9e9f68bb TL4: the teller's manifest says version 0.1, declares its finding stream and hears the keeper's ask
Builds: design 47 G §383, §387, §368, §411

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:48:34 +01:00
jschoubben 735724899b Merge branch 'feat/47-G-build' into feat/47-G-build-contracts 2026-11-11 11:45:50 +01:00
jschoubben 18c954ddcd CT10: meshwantsclient holds a part's view of the assignment half, a first view then assignment-revision
The typed first view and the following of each half sit in the seats' client packages, built on go/views
(design 47 G §245), so no part follows the assignment half by a follower of its own: a newer trunk revision
heard is waited for, said in the status, asked and held; a candidate's, or one held, asks nothing.

Builds: design 47 G §245, §365

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:45:50 +01:00
jschoubben 04c260bb22 Merge branch 'feat/47-G-build' into feat/47-G-build-assigner 2026-11-11 11:45:37 +01:00
jschoubben 154505f451 Assigner: repair against the new contracts (source key per branch, want with digests, seat verbs not yet served)
Builds: design 47 G §15, §95, §353, §379

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:45:37 +01:00
jschoubben 6d53c3987a Merge branch 'feat/47-G-build' into feat/47-G-build-bridge 2026-11-11 11:45:19 +01:00
jschoubben d813ce7e39 FB4a: the forge message forms of an owed act's outcome (owed.ended)
The gate's developer needs OwedEnded and its outcomes; fields are the ones §164 and §168 name (id, outcome, words, the seat that said the act, time).

Builds: design 47 G §164, §168

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:45:19 +01:00
jschoubben e00232dcfb Merge branch 'feat/47-G-build' into feat/47-G-build-builder 2026-11-11 11:44:53 +01:00
jschoubben 74da8116db BL2: the build reserves its version at its start; reserved state, tools, verb and findings
The builder keeps one key per module and MAJOR.MINOR in its state reserved, written by compare-and-set when a trunk
build is claimed; nothing is reserved, and the build says wait-held, before the catalog says versions-filled; the key goes
on version-released; a built reservation unpublished past ten minutes is the finding version-unreleased; builder_reserved,
builder_reserved_drop (hand act, recorded) and the seat mesh-builds' verb reserved.

Builds: design 47 G §369, §372, §52, §85 (reserved)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:44:47 +01:00
jschoubben 839bc4a6e5 TL0: the teller's test follows the contracts, the settle ask gone with the verb settle
Builds: design 47 G §431 (the settle ask goes with the verb settle)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:44:42 +01:00
jschoubben 0d24af4e5b Merge branch 'feat/47-G-build' into feat/47-G-build-contracts 2026-11-11 11:44:06 +01:00
jschoubben 496989ccfb CT10: meshcatalogclient follows the registrations, a first view then each registration-changed
The assigner and the forge module's merge switch on their first registrations (design 47 G §353), so the
seat's client carries the typed follower on go/views: a first view asked of the verb registrations, a newer
version heard asked again until the picture holds it, an answer read before the change asked once more.

Builds: design 47 G §353, §245

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:43:53 +01:00
jschoubben bcd0888928 Merge branch 'feat/47-G-build' into feat/47-G-build-indexer 2026-11-11 11:41:25 +01:00
jschoubben 042800cb2a IX15: the indexer reads a branch's source revision through the seat mesh-delivery's verb source and its event source-moved
The catch-up of the heads the source names runs before a source-moved is read, once per branch; the gate's source bucket is no longer read.
internal/index compiles against the new contracts again (SourceByMainValue is gone); tests of earlier subtasks that
the broken compile hid are fixed (the validator's MAJOR.MINOR version in their manifests).

Builds: design 47 G §15, §115, §362

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:41:21 +01:00
jschoubben fc0cb1873a RN15: the runner's read verbs show, list, stands, why-carried and kept, from its own states (issue 1966)
The runner's tools bundle serves the seat mesh-pipeline-runner's read verbs as tools named
<seat>.<verb>, answered from its own states pipelines and kept, never another part's: show one
pipeline whole with its steps and their outputs' names, list by module, branch, commit or run newest
first, stands every step started and not ended with what it waits on and since when, why-carried the
pipeline a carried step came from, kept the kept results by level, digest or package.

Builds: design 47 G §83, §306, §75 (stands), §25 (why-carried)
Not built, waiting on design answers: show's step log (Q-RN6, the step log's section form) and each
store's fill against its cap in show and kept (Q-RN2, where the caps are declared).

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:37:51 +01:00
jschoubben 5b0f155116 Merge branch 'feat/47-G-build' into feat/47-G-build-runner 2026-11-11 11:32:31 +01:00
jschoubben cafff10266 RN1: the pipeline runner's module, a foundation part with its kept data in old sections (issue 1966)
The module mesh-delivery-pipeline claims the seat mesh-pipeline-runner, serving its twelve verbs,
asks no template, keeps pipelines, kept, aged, findings and its first views in old state sections,
its step log on an old stream (128 MiB) and its step outputs in an old objects section (1 GiB),
hears the events its pipelines start and end on, and needs the assigner's program delivered first.
Its program stops when its state pipelines cannot be read; its own module is its account's.

Builds: design 47 G §1, §21, §27, §59, §85, §95, §101, §130, §333
Not built, waiting on design answers: §76's health check (its tool's name), §85's caps of the old
state sections (no size field on an old state), step-log's 100 days (the validator's 30-day bound),
and §59's sent-objects (the objects template's cap the design names has no default).

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:32:31 +01:00
jschoubben 1ba1c487c7 Merge branch 'feat/47-G-build' into feat/47-G-build-indexer 2026-11-11 11:32:10 +01:00
jschoubben 540b88a946 IX21: the validator reads a manifest's version MAJOR.MINOR and the finding stream and ask of a findings state
The refusal of a status in a manifest (IX20) relies on strict decoding: a manifest
field naming a status is an unknown field and is refused. The `*` emitter of
consumes (design 47 G §386) is held for the design writer's answer on model-usage's
`*.usage.*`.

Builds: design 47 G §89, §368, §387

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:32:05 +01:00
jschoubben 337e620cf1 Merge branch 'feat/47-G-build' into feat/47-G-build-contracts 2026-11-11 11:31:16 +01:00
jschoubben eca4320d1c CT1: the runner's step outcome not asked, a pipeline's end count, and the step log kept 100 days; regenerated
An approval step after a failed required step ends not asked, naming that step (the
fixture of a failed pipeline said waiting before); Pipeline and PipelineEnded carry
end-count, one higher at each end again after a passing rerun. The fixture rows fail
against the contract before (end-count dropped on read).

Builds: design 47 G §24, §325 (not asked), §29, §85, §325 (the end count), §85 (step-log,
100 days).

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:31:09 +01:00
jschoubben 0ae849b1df Merge branch 'feat/47-G-build' into feat/47-G-build-builder 2026-11-11 11:30:12 +01:00
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 bc77fabdad BL15: the gate's source is watched by every watched branch's key; SourceMainKey retired
Builds: design 47 G §15 (source.<branch> in place of source.main), §431 (readers of the source move off the main key)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:28:36 +01:00
jschoubben 6b85c9045e IX20: the validator's tests hold a step's status out of a manifest and read the build seats' new accepts
A manifest naming a status is refused as an unknown field (strict decoding); the
two seat-table tests read the seat definitions as contracts now answer them.

Builds: design 47 G §6, §21, §23, §28, §101, §95 test

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:26:51 +01:00
jschoubben 6bbbceb55f A-D29: a template in the runner's manifest is refused, as in every part on the validator's list (issue 1966)
Design 47 *A module's registration* (b229f5c4 lines 480-481): a unit test of the manifest validator
refuses a template in the manifest of every part on its list, the runner's included. The row of
TestTheIndexerJudgesEveryManifestOnce now judges mesh-delivery-pipeline beside mesh-config; it fails
with the list as it stood before 0ad243c1.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:25:45 +01:00
jschoubben 86eb29f243 A-D29: the pipeline runner joins the validator's foundation list (ADR 0666 §4; issue 1966)
Builds ADR 0666 §4 (the runner is a foundation part: the bus module's own delivery waits on its
pipeline), changing ADR 0619 §1 and §3: judge.Foundation, the one list in code, gains
mesh-delivery-pipeline, so its manifest keeps its state in the old sections and a request of
new-form bus state by it is refused.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:25:45 +01:00
jschoubben c77e747f4e SD2, SD3: the kept-artifact judgement and the neutral pipeline step ask and its end, shared by the runner and the three build modules
Ported from the dev branch (192f6ab2, 4f013f44, dc0df1b5) into the package sdk/buildstep where
they were built; the package is not named by a design line (see below).

Builds: design 47 G §271 (a module claiming oci-artifact-registry but not its holder in the seat
list is refused), §24 (a step's end is published on its node's subject), §416 (the step ask carries
the kept results), §370 (the version).

Not decided: the package of SD2 and SD3. G-9 §420 names sdk/steprun only for the step-run code
(SD1); no line places the kept-artifact judgement or the step ask.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:06:27 +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
mesh-tools 532e4d740f Merge pull request 'A take-in wait ends whoever learnt of it: taken under every key, and the watchman's seed ends what the indexer no longer holds (issue 1966)' (#202) from fix/1966-take-in-ends-every-wait into main 2026-11-10 22:50:33 +00:00
jschoubben e82da39d29 Test that a seed indexer_pending could not answer ends nothing (issue 1966, note 197)
mesh/delivery merged: source.main moved to novox/mesh-delivery@532e4d740fdd
mesh/check checking e82da39d2999 on 532e4d740fdd
seedTakeIn with a failing call and with an unreadable answer leaves a previous run's take-in-waits finding
and a held wait standing; it fails if the error path seeded an empty answer.

Builds: design 47 "Taken in by the indexer it names" (A wait is bounded, said and recoverable); 1966/AC195-5

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-10 23:48:45 +01:00