Builds: design 47 G §506 (the entry gains manifest-digest, the sha256: digest of the manifest's bytes as the forge answered them, set by the indexer at take-in). Regenerated by seatgen (-check clean).
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
Builds: design 47 G §478 (reserved takes module or name, with version; an unknown or doubled name answered error, §491), §472, §495 (toolchain-agreed carries digests, each with the nodes reporting it, in place of one digest). Regenerated by seatgen (-check clean).
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
The indexer's first views of manifests, modules and graph are replaced by one meshcatalogclient.Catalog per watched branch
(the trunk's from the start, each branch a registration names from then on); the world keeps each branch's modules, graph nodes
and manifests, and a pass splits a module's nodes by the branch their placements name and computes each group's wants from that
branch's half. Not built: AC2 (a composition step on beta only), which is AS5's step.
Builds: design 47 G §14, §184, §191, §194, §195
Tests: TestACommitOnBetaMovesOnlyTheNodeThatChoseBeta (failed with the groups on the trunk alone), TestTheCatalogHalfIsTakenInPerBranch
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
A start writes the pipeline's key (watched branch, source revision, module) only when it is absent and says
pipeline-started; a second start of the same revision and module writes nothing. A package-published asks the
catalog's outdated for that package on that branch, a kept call, and starts a pipeline for each dependent behind
by kind 1, keyed by the publication's branch and source revision. The start on take-in.taken, and a gathered
group's one pipeline per branch, wait for take-in.taken's body (design 47 G §476, in review).
Builds: design 47 G §54, §103, §334, §53, §75
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
The runner follows the registrations (a first view, then registration-changed) and, for each watched branch
they name, that branch's catalog half (a first view, then catalog-revision of that branch), each in its state
first-views, read by pipeline_first_views and asked again by hand with pipeline_first_view_again; past five
minutes without a view it writes view-waits. A step's status is read per module and artifact from the
registration, and the build seat of an artifact from the acting rule build naming its language.
Builds: design 47 G §21, §23, §323, §77, §195, §200
Open: design questions Q-RN7 (where a build seat's holder is read, §323) and Q-RN8 (a status left empty, §23).
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
mesh-wants' Wait gains clock-from, the step enum of section 203 with put, delivery, kept-build and backup,
fingerprint and machines, and requires step, module and since only (a put's wait has no part);
the runner's wait body gains clock-from. The runner's `step` already names pipeline steps: see the report.
Builds: design 47 G §498, §266, §269
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
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
steps callers: the runner, the indexer, the operator and sessions (D-18); BLD12 builds in the fetch;
BLD13 resolved and the toolchain digest; BLD14 the step key <asker>.<node>.<id> beside main's
<node>.<id>; the events toolchain-reported and step-progress on the three build seats, and
step-progress on mesh-wants.
Builds: design 47 G §463, §480, §465, §466, §467, §481, §483, §492, §496
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
The view of a branch is named mesh-catalog.catalog-revisions.<branch>; two branches give two views.
A revision heard and not held asks revision once more, said in the log.
Builds: design 47 G §358, §196, §479, §495
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
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
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
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
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
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
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