Commit Graph
1371 Commits
Author SHA1 Message Date
jschoubben 2c1f5a4033 VW1: the view reads the modules from the catalog half of the trunk, by meshcatalogclient.Catalog
The view's process follows the trunk's catalog half (first view of the seat mesh-catalog's verb revision, then each
catalog-revision of branch main) and hands each changed entry to its model in the form of the value it always kept; its tools
read the newest trunk revision through the verb. The manifest invokes seat:mesh-catalog.revision and consumes
mesh-catalog.catalog-revision instead of the indexer's modules read tool and views family.

Builds: design 47 G §196, test 61

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 12:21:20 +01:00
jschoubben 1ec1e0a224 Merge branch 'feat/47-G-build' into feat/47-G-build-watchman 2026-11-11 12:14:30 +01:00
jschoubben 5fc1dbd264 WM11, CK12, EN1 (manifest half): finding stream, the keeper's ask and MAJOR.MINOR version in the manifests of the watchman, the checker and enrolment
Builds: design 47 G §383, §387, §368 (the findings writer half waits for the generated writer of §439)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 12:14:24 +01:00
jschoubben c3068b15e1 CK1: the checker reads no merge turn of the gate and claims a new check at once
Builds: design 47 G §278, §197 (test 52)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 12:10:49 +01:00
jschoubben 21195a06be CK2: the checker takes the trunk heads from the catalog half's revision and catalog-revision, not the gate's source (repairs the checker against the new contracts)
Builds: design 47 G §197, §195, §200

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 12:08:09 +01:00
jschoubben 190fdef8b3 AS19 (the seat list): the assigner wires its seat list reader through mesh-sdk's seatlist.Part
Its hand-wired seatGate goes; the reader, its tools assigner_seat_list and assigner_seat_list_again and the
re-read when the events are live are the SDK's Part. A test searches the code for a wiring of its own.
Left of AS19: the indexer's views and the gate's reads, which wait for AS4's catalog half.

Builds: design 47 G §204
Test: TestTheSeatListIsWiredByTheSDKAlone

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 12:07:39 +01:00
jschoubben 60937e2526 Merge branch 'feat/47-G-build' into feat/47-G-build-assigner 2026-11-11 12:05:11 +01:00
jschoubben ec14823429 AS15, AS16: a provider counts healthy by the node-engine seat's running, and a put ends on it
The assigner hears running.<node>.<module> through its durable consumer on the seat's stream (last message per
subject), counts a provider healthy while its running build is not stopped whatever a newer want of it waits for,
and ends a put when running names the put's fingerprint (a running without one, or stopped, ends none); the have
no longer ends a put. With the stream not heard, rule 5 reads the have as before.

Builds: design 47 G §199, §309; main file "A provider before its consumers" and "Until milestone G, from the have; from G, from running"
Tests: TestAProviderRunsHealthyByItsRunning, the put rows of TestTheBusMovesByTheRulesAndItsUserListRevisionIsWrittenAtOnce, TestAnAnswerCountsOnlyForTheAskingItAnswered (running ends the put)
Manifest: consumes node-engine.running; validator: no finding new against trunk.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 12:05:11 +01:00
jschoubben fdc2cec328 Merge branch 'feat/47-G-build' into feat/47-G-build-watchman 2026-11-11 11:59:01 +01:00
jschoubben cbbb971d35 WM12: the watchman's manifest says its version as MAJOR.MINOR
Builds: design 47 G §368, §372 (0.1 for a module with none published)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:58:33 +01:00
jschoubben 7d1ce3296d Merge branch 'feat/47-G-build' into feat/47-G-build-assigner 2026-11-11 11:58:00 +01:00
jschoubben b1fcabcebe AS3: a placement's branch and build, set by a proposal, bound by the ask, and its build a held put
A proposal sets a module's watched branch and build (a re-place keeps them), the changes digest an ask binds to
carries both, and a placement's build is a held put of that build, released when the placement drops it while a
person's put stays. Taken over from 6bc6fe53 and b8e50fff.

Builds: design 47 G §14, §78, §114, §360, §361
Tests: TestAssignments (place change branch, build, digest rows), aPlacementsBuildIsPut. Test 77 (§79) covered by the put row.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:57:53 +01:00
jschoubben 5fcd76a9f9 WM7: the watchman raises record-open 24 hours after a merge unless another condition covers it, and store-filling from the seats' filling, full and room
Builds: design 47 G §148, §160, §181, §218, §263

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:56:50 +01:00
jschoubben 51e34d5369 Merge branch 'feat/47-G-build' into feat/47-G-build-bridge 2026-11-11 11:56:06 +01:00
jschoubben 4866f7097a Merge branch 'feat/47-G-build' into feat/47-G-build-teller 2026-11-11 11:55:32 +01:00
jschoubben 91a9c41290 gofmt 2026-11-11 11:55:02 +01:00
jschoubben 0b597eb417 FB3, FB4, FB5: the bridge performs what the gate owes through the seat git and says each outcome, reads groups from the seat, and its owed tools
Taken over from the join (6ada2089, f1417ab0, 6e162a60, 3a4e62b0, 73fb42d7, ee15a280, a5476f62, 94a4e62a, 33907a81, e519cc87, e8f268c1) and fitted to the final
contracts: the seat's events are pull-updated, pull-merged, pull-closed, forge-delete; OwedEnded keeps only the fields §164 names; merge-pull
takes no ask. A merge act is performed only as a switched act (§169); from G the gate owes none (§167).

Builds: design 47 G §43, §45, §157, §161, §162, §163, §164, §167, §168, §169, §171, §250

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:54:56 +01:00
jschoubben d7c8fdd0ed Merge branch 'feat/47-G-build' into feat/47-G-build-assigner 2026-11-11 11:54:50 +01:00
jschoubben 1778888acc AS2: the wants keep the trunk-only form until the first registration, and follow the pipelines' ends from it
Builds: design 47 G §95, §130, §353, §352

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:54:50 +01:00
jschoubben a227e061ec Merge branch 'feat/47-G-build' into feat/47-G-build-indexer 2026-11-11 11:53:52 +01:00
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 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 43bebef626 WM3: the watchman says machine-away and machine-back of the seat mesh-watchdogs when a machine's presence expires and when it is heard again
Builds: design 47 G §389, §436

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:52:13 +01:00
jschoubben e7bd54e67b IX19: the indexer reads every contracts module's trunk definitions at its start before judging, waits for the seat git at most two minutes, says view-waits past five and judges again once it answers
Taken from the join base (6ce86c96, ff6e74f9) onto the build branch.

Builds: design 47 G §198, §248, §316, §255, §57 (tests 54, 57)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:51: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 69aeb817e2 WM2: the watchman raises build-capacity-waits for a build seat whose oldest queued step has waited 60 minutes
Builds: design 47 G §86

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:49:32 +01:00
jschoubben 0f618f1998 WM1 (head half): the watchman raises pipeline-stands for a watched branch's head with no pipeline within five minutes
Builds: design 47 G §12, §75, §112 (the head half; the step half waits on a design question)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:48:38 +01:00
jschoubben 3a4768ab43 FB6a: the forge bridge reads trees, files, pulls and tags through the seat git and hears its pull and delete events
Taken over from the join's 473f9323, 5f40d230, 159a679b; the events are the seat's pull-updated, pull-merged, pull-closed and forge-delete.

Builds: design 47 G §252, §310, §312, §317

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 11:48:36 +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 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 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 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 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
jschoubben 3ed2a3dd33 The indexer says take-in.taken under every claimed entry's own key too (issue 1966, note 195)
A merge waiting behind a gathered group is named by indexer_pending under its own key; when the
group ends it joins the group's revision under the oldest member's key, so its own key was never
said taken. takenWaits now also says every claimed entry's key, no key twice. T8 checks the merge
behind the group ends under its own key.

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

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