Commit Graph
1791 Commits
Author SHA1 Message Date
jschoubben 160961a1f4 §535, §647, A-77, A-104: an ask no build seat holder takes within five minutes ends its step
The runner arms, before it puts an ask on a build seat's work queue, a key of its new state bounds (key-ttl) for five
minutes, deletes it when the holder's ask-taken is heard, and ends the step could not run naming the seat when the bus's
marker of the key's expiry is heard: no timer, and no look at the seat list.

Builds: design 47 G §32, §535, §602, §647, A-77, A-104

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 23:42:12 +01:00
jschoubben db942e9204 §88: a restarted runner asks the steps placed and not yet asked
Starter.Resume asks again each running step of a branch's running pipelines under the id it was placed under; the branch
view tells Views.OnReady once when it holds its first half, and the runner resumes that branch then.

Builds: design 47 G §22, §24, §88

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 23:40:22 +01:00
jschoubben f067f2cdb0 A-104: an optional step still waiting does not hold a pipeline's end
Only a required step still waiting or running holds endPipeline; a code review nobody gave on an optional policy no
longer keeps the pipeline open. The review verb itself is not built: see the report.

Builds: design 47 G §22, §70, §482, A-104

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 23:39:07 +01:00
jschoubben 53db5c8dd9 A-102: the runner names the accepted kinds it puts steps on in invokes, and build joins the step inputs
The manifest's invokes names seat:mesh-builds.step, seat:mesh-wants.step and each build seat's check.step; the seat's
definition gives rerun, accept and why-carried inputs and the started pipeline's steps the value build, as the result's
step enum has it.

Builds: design 47 G §22, §24, A-97, A-99, A-102

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 23:38:37 +01:00
jschoubben 977b69ce07 RN3: the runner asks the seat mesh-wants for the composition step and hears its step-ended
Place puts composition running, asked of mesh-wants at its accepted kind step with the pipeline's commit,
fingerprint, revision and source; the hearer takes mesh-wants' step-ended as the build seats' ends.

Builds: design 47 G §22, §24

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 23:37:55 +01:00
jschoubben 92ce8c777c A-99: the build is every pipeline's first step, asked of mesh-builds for the module's own entry
The runner's step enum gains build; Place puts the build first, required whatever the policy names, and asks it of the
seat mesh-builds naming the module's own entry by fingerprint; the hearer takes mesh-builds' step-ended as the other
seats' ends, held to its one entry.

Builds: design 47 G §230, A-91, A-97, A-99

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 23:34:17 +01:00
jschoubben 6bd156e4a6 A-97: the seat mesh-builds accepts the build step and says its end
The accepted kind step (body StepRun: the pipeline, the branch, the source revision and each entry by module and
fingerprint) and the event step-ended.<node> (StepEnded: the same entries, the outcome), as mesh-wants has for its
composition step.

Builds: design 47 G A-97 (§230, §194, §473)

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 23:32:53 +01:00
jschoubben fdf7387b8e §610: the runner's seat definition drops every verb's named callers
Builds: design 47 G §610, A-75

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 23:31:26 +01:00
jschoubben cdd1169bd4 RN3 (asking half): the runner places a pipeline's steps from the policy and asks each build seat for its step
A step the module's policy does not name is no step (A-91); a bypassed step is asked of no one; an artifact no
build seat names ends its step could not run naming it; an approval due at the start is asked there. The hearer is
named by the runner's own module, the asker the router's decided names.

Builds: design 47 G §22, §24, §26, §44, §54, §103, §323, §476, A-91

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 23:30:41 +01:00
jschoubben 56a6c64586 A-89: the runner asks its approval and reads the warrant from the router's record through the seat holder
Builds: design 47 G §37, §700, A-74, A-89 (routerRecordOf copied from the indexer's b0d2841f, to move into mesh-sdk)

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 23:26:22 +01:00
jschoubben 7ee394b7d9 A-D10, A-D12, A-D13: the runner takes a step's end only as asked, keeps its results, and asks the approval step last, ended by its warrant
The hearer (internal/pipeline/steps.go) takes a build seat's step-ended only from the subject of the node that ran it, for an ask
the runner made of that seat, at the pipeline's commit and fingerprint; a taken end is written by compare-and-set, logged, its
output kept in step-outputs and its passing results in kept. A pipeline ends once every step ended, passed only when every
required step passed or was carried. The approval step is asked as operator-channel's accepted kind ask once every other required
step passed, and ended by the warrant read from the router's record (A-89), the decided event only waking the runner. The program
hears step-ended; the approval's Asker and decided handler wait for the answer on where a process finds the seat holder (A-74).

Builds: design 47 G §24, §26, §27, §37, §700 (A-89, A-74); recovers 18e10200 and 89687404 in today's form

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 23:25:28 +01:00
jschoubben 2c8dff86b5 RN3 (take-in half): the runner starts one pipeline per entry of a take-in.taken, a second start writing nothing
Builds: design 47 G §44, §54, §103, §476 (recovers the start of d8dfc557 in the form the design has today)

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 23:20:32 +01:00
jschoubben 52241e7a17 Merge branch 'feat/47-G-findings4c' into feat/47-G-dev4-join 2026-11-11 22:25:53 +01:00
jschoubben c8fb62c3ad Merge branch 'feat/47-G-findings4' into feat/47-G-dev4-join 2026-11-11 22:25:53 +01:00
jschoubben 598359ff36 Merge branch 'feat/47-G-grants4' into feat/47-G-dev4-join 2026-11-11 22:25:52 +01:00
jschoubben b815b54bff G findings4 indexer: the indexer's findings are the seat's generated finding written through views.NewHeldWriter, its assignments followed through the views reader
The indexer's CAS Findings store is the held writer through the small FindingWriter interface (Write, Clear, Held): the
unread-call, accepted-unsaid, seat-definition and out-of-step findings are raised and cleared through it, the unsaid ones
read from Held. followAssignments follows the assigner's assignments through the module's ProcessReader (the reader raises and
clears the first view's finding), the emitter and the family-not-heard finding write through the same writer, and the
view-waits finding of the seat git is written by hand through Write and Clear (A-28). The old resolved words go (A-22).
The integration bed has the findings stream and the test sees finding-written said on it.

Builds: design 47 G A-29, A-26, A-28, A-22, A-3, A-14, A-17, A-30, A-37, A-38, §689, §687, §461
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 22:19:57 +01:00
jschoubben 00f5c1b821 G findings4 mesh-enrolment: the enrolment's reader writes its findings through views.NewStdioHeldWriter
Builds: design 47 G §639, A-37, A-29
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 22:19:39 +01:00
jschoubben 84d1a5b156 G findings4 builder: the builder's findings are the seat's generated finding written through views.NewHeldWriter, its findings stream in manifest and bed
Builds: design 47 G A-29, A-30, A-17, A-26, A-3, §689, §686, §383
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 22:18:58 +01:00
jschoubben 99b05bbb2e G findings4 buildrun: the checker's and the indexer's reads of the build modules' toolchains keep the gate over the assignments, which BL8 took out with the builder's
BL8 (8255eb28) replaced buildrun's ToolchainGate, ToolchainSet.Put and ToolchainsBucket by PlacedNodes and ToolchainSet.Set for the builder
(§546, §604); no design line removes the checker's and the indexer's toolchain reads, so the three come back beside them, and
FollowAssignments feeds either.

Builds: design 47 G §492, §604, §546, §472, §574
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 22:17:09 +01:00
jschoubben 813963a35a G findings4 buildrun: the checker's and the indexer's reads of the build modules' toolchains keep the gate over the assignments, which BL8 took out with the builder's
BL8 (8255eb28) replaced buildrun's ToolchainGate, ToolchainSet.Put and ToolchainsBucket by PlacedNodes and ToolchainSet.Set for the builder
(§546, §604); no design line removes the checker's and the indexer's toolchain reads, so the three come back beside them, and
FollowAssignments feeds either.

Builds: design 47 G §492, §604, §546, §472, §574
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 22:16:37 +01:00
jschoubben 77772056bd G findings4 assigner: the assigner's findings are the seat's generated finding written through views.NewHeldWriter, its catalog halves adopted through the views reader
Builds: design 47 G A-29, A-26, A-22, A-3, A-14, §689, §687, §461
2026-11-11 22:13:03 +01:00
jschoubben f531d5524d G findings4 watchman: the watchman's findings go through views.NewHeldWriter and its own copy of the held writer goes
Builds: design 47 G A-29, §689, §461
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 22:03:27 +01:00
jschoubben 08fcdac0f8 G findings4: each writer is given the seat's findings-asked subject from the generated contract
Builds: design 47 G §383, §390, A-13, A-17
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:59:17 +01:00
jschoubben 0fdf56f4bb G findings4: the readers' findings go through the part's writer as views.WireWriter; the pipeline runner adopts each branch's catalog view through its reader
Builds: design 47 G §689, §687, A-22, A-26
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:58:50 +01:00
jschoubben 7310af36e6 G findings4 watchman: a finding's id keeps the safe key parts its condition's key had
Builds: design 47 G §689, A-14
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:56:38 +01:00
jschoubben 8cbb86dfbd G findings4 watchman: the watchman's findings are the seat's generated type, written through mesh-sdk's finding writer; the resolved words go
Builds: design 47 G §689, §686 (A-3), §461, §384, A-13, A-14, A-22
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:55:43 +01:00
jschoubben c87fc4e6cf G findings4 checker: the checker's check-could-not-run and its views reader's findings go through mesh-sdk's finding writer, which observes the raised ones
Builds: design 47 G §689, §686 (A-3), §639, §384, A-13
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:50:39 +01:00
jschoubben 8e4039a618 G findings4 view: the status view's views reader writes its findings through mesh-sdk's finding writer
Builds: design 47 G §689, §686 (A-3), §639, A-13
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:49:16 +01:00
jschoubben cd6e0ef317 G findings4 pipeline: the runner's views reader writes its findings through mesh-sdk's finding writer
Builds: design 47 G §689, §686 (A-3), §639, A-13
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:48:49 +01:00
jschoubben 67cec41b9c G findings4 teller: the teller's views reader writes its findings through mesh-sdk's finding writer
Builds: design 47 G §689, §686 (A-3), §639, A-13
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:48:23 +01:00
jschoubben 8b41346466 GR4 (§386, §644): the grants part tells catalogue.Hearing which events are defined
A seat definition's events of the seat list, and mesh-sdk's four finding events (views.FindingSubjects), so a `*` emitter before one reaches each declaring module's own stream; any other `*` entry stays the shared stream's.

Builds: design 47 G §386, §474, §644

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:46:19 +01:00
jschoubben 95e2427553 WM6 (§269): the watchman consumes the seat mesh-grants' wait-held and wait-ended, so a granting wait past its bound is acting-part-late
Its handler already takes any seat's wait events; the manifest's consumes gain the two. Not run here: the watchman does not build
against mesh-contracts' meshconditionsclient as it stands (the findings writer's migration is another developer's).

Builds: design 47 G §266, §269, G-20 A-12

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:45:10 +01:00
jschoubben c1a1b027b3 GR10 (A-12, A-10): the grants part says wait-held and wait-ended as its seat's events, and a release ends the wait as released
A release writes an ask to compose; the pass says wait-ended how released once, and a wait whose grant came says how ran. The events go through Conn.EmitSeat.
The late finding is the watchman's (design 47 G §269), not written here.

Builds: design 47 G §276, §266, §269, G-20 A-10, A-12

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:45:03 +01:00
jschoubben 9c68e42c44 A-5 (§614): meshcatalogclient follows the branches once for every part: registrations, the gate's source, views adopted and dropped, entries by fingerprint
Builds: design 47 G §614, A-5 (G-20)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:44:21 +01:00
jschoubben e635f7ba8f CT15 (take-in bodies, none-yet): the seat mesh-catalog's bodies give take-in.taken and take-in.pending; revision answers none-yet in a field
The seat's bodies hold TakeInTaken (branch, source, entries with repository and pull) and TakeInPending (branch); revision's
answer gains none-yet and its revision is optional; meshcatalogclient reads the field, never the error's words. The holders'
and readers' uses of the answer follow (a pointer revision).

Builds: design 47 G §476, §493, §530, §454, §648

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:44:21 +01:00
jschoubben 7574848c5f §702 the seat mesh-wants' wait gains owner, on and words, and its module is optional
The builder's toolchain wait is said with this type, step build; how may be superseded. Fixtures and generated code follow.

Builds: design 47 G §702, §629, §512

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:44:21 +01:00
jschoubben d637a89b5e §690 the seat mesh-delivery's source takes no branch and answers the branches it keeps
source's input branch is optional; given none it answers branches, the branch of each source key the gate keeps.
Fixtures and generated code follow.

Builds: design 47 G §690, §614

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:44:21 +01:00
jschoubben 7024df820a §693 / A-6: the seat mesh-wants' wanted event gains removed
Builds: design 47 G §693, A-6 (G-20)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:42:07 +01:00
jschoubben 0c28d6a716 A-5 (§614): meshcatalogclient follows the branches once for every part: registrations, the gate's source, views adopted and dropped, entries by fingerprint
Builds: design 47 G §614, A-5 (G-20)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:41:28 +01:00
jschoubben 847ab4e1fb GR10: the grants part holds each entry left without a grant as a granting wait, read and released by its tools
Kept in its own state, clock-from the start of this version's first pass, the bound 10 minutes. The seat's wait-held and
wait-ended events and acting-part-late are not built (see the report).

Builds: design 47 G §276, §266, §269 (G-20 A-7); A-6 needs no change: the part reads the wants view and consumes no wanted

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:39:36 +01:00
jschoubben 97e990c8f8 §556: a reader of a stream kept last per subject is granted its ordered consumer
Builds: design 47 G §556 (G-20 A-4)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:37:12 +01:00
jschoubben aac39f1326 G findings4: gofmt of the indexer's and watchman's manifest_test.go
Builds: design 47 G (lead's handover, round 4: gofmt only, no design line)
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:34:20 +01:00
jschoubben cad384d483 GR9: the grants part reads the stream running whole at each start, then follows its durable
Until the read ends the part acts on none of running and grants_first_views names the stream waiting; an event older by at
than the one held changes nothing. The ordered consumer's grants are not built (a question to the lead).

Builds: design 47 G §556, §199

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:34:08 +01:00
jschoubben 0b81504139 §616: the grants part resolves a consumed seat view to the seat's holder on record
Builds: design 47 G §616

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:32:42 +01:00
jschoubben 33c6fc4f7f CT15 (take-in bodies, none-yet): the seat mesh-catalog's bodies give take-in.taken and take-in.pending; revision answers none-yet in a field
The seat's bodies hold TakeInTaken (branch, source, entries with repository and pull) and TakeInPending (branch); revision's
answer gains none-yet and its revision is optional; meshcatalogclient reads the field, never the error's words. The holders'
and readers' uses of the answer follow (a pointer revision).

Builds: design 47 G §476, §493, §530, §454, §648

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:32:40 +01:00
jschoubben 92d938dd8c §702 the seat mesh-wants' wait gains owner, on and words, and its module is optional
The builder's toolchain wait is said with this type, step build; how may be superseded. Fixtures and generated code follow.

Builds: design 47 G §702, §629, §512

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:31:18 +01:00
jschoubben f0d041b8dc GR9: the grants part follows today's catalogue contracts and reads a stopped running as stopped
SeatsToPassOn takes what each node-engine's running said and a reader of entries, Assignment names the module and its
branch, Hearing takes the defined-events function (nil here: GR4's). HearRunning keeps a stopped running with no
fingerprint and no manifest, and a stopped module claims nothing on its node.

Builds: design 47 G §404, §459, §199, §386 (nil defines none)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:31:10 +01:00
jschoubben f9df426396 §690 the seat mesh-delivery's source takes no branch and answers the branches it keeps
source's input branch is optional; given none it answers branches, the branch of each source key the gate keeps.
Fixtures and generated code follow.

Builds: design 47 G §690, §614

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:30:49 +01:00
jschoubben f8e509ce56 The assigner and the indexer use the catalog key's codec meshcatalogkey; meshcatalogclient's two wrappers go
BL6 (ba43e400) kept KeyPart and ParseKeyPart in meshcatalogclient until the callers moved; they have, so the wrappers and their duplicate test go.

Builds: design 47 G §670

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:18:40 +01:00
jschoubben 4dc67a98fa The pipeline part and the assigner read the runner's events and pipeline by fingerprint, as CT14 names it
The join with CT14 (08812c7f) renames fp to fingerprint in the runner's Pipeline, PipelineStarted, PipelineEnded; the readers follow.

Builds: design 47 G §534, §550, §585, §646

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:17:19 +01:00