Builds: design 47 G A-372 (G-22-lead-answers-2.md, hq design/47-G-lead-answers-31)
Also: Ready reads what the first views hold, since a first view closes before the follower's change is taken into the branches followed; Branches.FirstViews says when both are in.
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
The graph left out only invoked verbs on a cycle, so a package's seat call word's kind-6 edge stayed on a cycle (the
gate and the indexer, the gate and mesh-hand-acts at every SDK release). The module graph's LeaveOut now runs over the
entries with each package's seat call words counted among the invokes of every module built against it, and what it
leaves out joins each entry's LeftOut.
Builds: design 47 G A-361, A-357; ADR 0614 §3
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
The grants part follows the first view modules on the indexer's views family after its first ask. G's indexer keeps
no state modules, so nothing said its changes and a newly merged module reached grants only when it asked again. A
new trunk revision that changes the modules is now said as the mark of modules at that revision's number (the number
the first view answers every value at), after which a reader short of it asks the first view once; views.modules is
among the indexer's emits.
Builds: design 47 G A-360, A-354
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
A package's `calls` names the seat verbs its code calls on a module's behalf in the invokes form; the indexer derives
an edge of kind 6 from such a word against the verb's server, as from `invokes`, so every module built against the
SDK is delivered after the running versions that serve its start. The path for stated capability words stays.
Builds: design 47 G A-357, §47 (kind 6)
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
The grants part reads mesh-delivery-indexer.modules as one of its five first views; G's indexer stopped serving it
(deb88b17), so the read is a failed gap and grants issues no new right once G's indexer runs. The tool comes back in
its form before G (the first-view tool over the state modules, its callers list), answered from the newest trunk
revision, until grants reads the catalog half.
Builds: design 47 G A-354
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
cmd/mesh-delivery-watchman imports the seats nodebuildimage and nodebuildnode, but its go.mod named only
nodebuildgo, so the watchman did not build from main. Every G part builds from main before any is placed.
Builds: design 47 G A-355
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
mesh/check checking bc8126efefa9 on 93e222a8a8b6 | novox/mesh-delivery#214 in group feat/47-G-join12
A have in phase waiting-yes keeps the build that still runs and that build's health (the node-engine writes the
running fingerprint and composition, and its check's health), and that build serves the bus state. So the
bus-state rule no longer holds a consumer that needs none of the newer build's forms: live, zfs on ace waited
while nats on novox waited for a yes with its old build running. A consumer of a form only the newer build reads
still waits by its kind-4 edge (§50), unchanged.
Builds: ADR 0614 §5 and §2, A-352
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
The builder numbers fresh versions without publishing them, so a fill from published alone would number again
below what the builder already said, and one version would name two contents. The fill and its kind 1 and 3 edges
take numbered and published alike; the version-form check and the claimed cut stay. A version the builder numbered
without a digest is filled with none.
Builds: design 47 G §372, A-350, A-351
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
mesh/check checking 8899b62cd430 on 7c0492b06c37 | novox/mesh-delivery#209 in group feat/47-G-join11
The node-engine sets MESH_NODE to its node's name in every process it runs; the judge refuses a resource whose env sets it, so the mesh's value is the only one.
Builds: design 47 G A-342
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
The judge refuses a process's bus consumes its module does not consume (beside V5). The grants part gives such a process the subjects of those events, its own durable <node>_<module>_<process> on EVENTS and on each kept seat event's stream, and their consumer grants, and makes those consumers, as G1 gives the publish.
Builds: design 47 G A-340, A-339; design 42 zfs-owns-zfs V5, G1
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
The grants of a process's bus on requires (G1) join G's process principal: BusStreams beside G's Serves (AnswersSeat) and MarkedVerbs, and the emits of a requires stream split from the old emits as main does. The rules V1-V5 merged into G's judge whole.
Builds: design 47 G §383 (form kept); design 42 zfs-owns-zfs V1-V5, G1, A-38
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
mesh/check checking 9e98b2884440 on 7c0492b06c37 | novox/mesh-delivery#209 in group feat/47-G-join11
A change of migrated manifests was refused against an unmigrated trunk: the
old sections were counted and the seats declared only by the trunk manifests
the new rules accept, so every count was 0 and every declarer gone. The
trunk case now counts and declares by each manifest that decodes, and one
that does not decode is named in the trunk case's verdict.
Builds: design 47 G §712, A-337
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
A-336 holds for every start of a pipeline: a package-published heard before
its branch's catalog half was held still placed steps from empty entries. Its
pipelines now start with no steps, placed by A-327's path once the half is
held. The hand start already refuses a branch whose half is not held.
Builds: design 47 G §200, A-327, A-336
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
A take-in heard before its branch's catalog half was held placed steps from
empty entries, acting on a branch §200 says nothing new of is acted on. Its
pipelines now start with no steps, and the half becoming held places them by
A-327's path, also when the first view was none yet and the first half comes
from a later catalog-revision.
Builds: design 47 G §200, A-327, A-336
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
The rule of an artifact the builder packs or fetches itself was written twice,
in the indexer's seed and in the runner's placing; both now read the one in
mesh-delivery-sdk's buildstep, the contract of a build step every delivery
part reads.
Builds: design 47 G A-324, A-325
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
The trunk's take-in refused a cycle with a build edge, but a branch other
than the first kept its revision with one. The branch path now applies the
same rule before keeping its entries and says the cycle, as it says heads it
could not read.
Builds: design 47 G §49, §51, A-326
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
The runner was learnt in memory at the first pass, so a group's runner
pipeline-ended heard before it was acknowledged and dropped, and the runner
was never wanted ahead of its group. Such an end is now kept unacknowledged
until a pass reads the runner from the acting edges, then taken.
Builds: design 47 G §29, §65, §268, A-334
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
A registration-changed heard before the registrar was stored, or before the
branch's catalog half was held, placed nothing and was gone: its pipelines kept
no steps. The half becoming held and the registrations' first view now place
every running pipeline with no steps whose registration is held (Waiting), and
the first view also picks up each held branch whose readiness came before the
resume callback was stored.
Builds: design 47 G §21, §23, §54, §88, A-327
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
In a group take-in that changes the runner, the other members' pipelines are held for the new runner, so the
group never ended before the bound and the new runner was never wanted. The runner is the acting part the
others wait on, so it goes first as the node-engine does: its member (the holder of the seat
mesh-pipeline-runner, read from the acting edges) is wanted on its own pipeline-ended once that passed, ahead of
the group; the other members keep the group's end.
Builds: design 47 G §29, §65, §268; A-328, A-334
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
A take-in that changes the runner held its own pipeline with the others, so its new version could not be wanted
before the 30-minute bound and its change was judged by the old runner. The runner's own pipeline now runs on the
running runner, as a build module's running version builds its successor; its pass lets the new runner be wanted,
whose running releases the held ones. The bound stays as the failure bound, with its finding.
Builds: design 47 G §29, §65, §270; A-328
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
A pipeline started before its module had a registration kept no step for ever: Resume asks only placed steps.
On registration-changed the runner now places, from the registration, the steps of every running pipeline of
that module that has none, by compare-and-set so once each, asks them and says it; until then the start says
the pipeline waits on its module's registration.
Builds: design 47 G §21, §23, §54; A-327
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
The cycle rule A-326 built refused today's trunk catalogue and G's own: a cycle of package edges alone (imports given to
every artifact of a module) and a kind-6 edge into a contracts package closing a cycle. A package is delivered only inside
what uses it, so no edge of kinds 2, 4, 5 or 6 is made into one, and a cycle of kind-1 edges alone is left to the
language's build. The dry run's entries of both catalogues are kept as test data and accepted.
Builds: design 47 G §47, §49, §51; A-326, A-333
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
The take-in computes the revision's catalog graph over its dry run and refuses one whose edges hold a cycle with
a build edge (kind 1 or 3), naming every artifact on it, as a refusal by its validation is said; a kind-3 edge out
of a module holding a build seat into an artifact that seat builds breaks the cycle at the running version.
Builds: design 47 G §49, §51, §270; A-326
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
The assigner and the node-engine on one node waited for each other for ever: the assigner's
want in step compose for the new node-engine, the node-engine's in step place for the new
assigner, and the cycle check counted one step at a time, so nothing said it. The node-engine's
own want (the holder of the seat node-engine on the node, read from the acting edges' seat) is now
held by no acting edge, so it is written first and the node's other wants, the assigner's own
included, wait for it. Cycles finds a cycle across steps as well as within one, and a want held
on a cycle no rule breaks is the finding acting-cycle (scope module, id <node>.<module>), naming
each edge's step, cleared by the next pass that finds it on none.
Builds: design 47 G §49, §268, §272, A-323, A-330
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
The seed refused whole at the first artifact with no build seat: 134 archives and upstream
artifacts have none, so no first registrations were ever proposed. The seed now calls no build
seat's steps for an archive or upstream artifact with no language and seeds its lint, unit and
integration as bypass; the runner places those steps bypassed, asked of no one. A module with an
artifact whose language or kind no build seat serves is left out of the seed alone, named in the
ask beside the unprotected branches, with the finding seed-left-out (scope module, id the module)
naming the artifact; it clears only when a later seed finds a build seat for every artifact of
it, or the module left the catalogue.
Builds: design 47 G §8, §23, §28, §535, §704, A-324, A-325, A-329
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
Place named an image's build seat by "kind: image", a form no seat definition writes, so every
image artifact's lint, unit and integration steps ended could not run. It now uses the seat
definition's own form, seatdef.OnKindImage ("kind:image"). No other kind constant has the space.
Builds: design 47 G §324, §397
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
mesh/check being carried to ad7e58091801 on 7c0492b06c37 | from 7221a1e5cd7f, mesh-catalog 117f933dacf0, mesh-host 0193949efe9f, mesh-sdk e42b9491c931…
Quick fix: a running verdict whose asks state names no ask is asked again when mesh-delivery-view's build_usage backlog shows
every check stream with 0 waiting and 0 held and no unreadable row, and no step of the candidate runs; otherwise it refuses,
naming the stream that holds asks. Adds the invoke mesh-delivery-view.build_usage to the checker's manifest.
Thorough fix (not built): a group check asked while a lone member's own ask ran was swallowed by the checker's claim of one
check per candidate; noted on issue 1373.
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
mesh/delivery-group group feat/47-G-join11 rejected: composed together: the checker's verdict at the members' heads (69ffef340e92): mesh-delivery-checker
mesh/check failed (2): mesh-delivery-checker: no published of the tagged version of go-meshconditions of me…; and 1 more | 63f944b52564 on 7221a1e5cd7f
FollowSeat(mesh-wants, wants) replaces the follow by the assigner's module; the pulse and stuck keys name the holder's real
bucket taken at each use (WantsAt, AwaitsWants), a start never waiting for it and the seeded keys of any `<holder>_wants`
kept until the late read (A-321). indexer_pending and indexer_verdicts are asked of the holder of mesh-catalog on each
call. The one catch-all of the seats' events is one handler per seat (A-322), source-moved taken from the branches
follower (AdoptEvent). The manifest consumes the seat's views and the seat-holders view.
Builds: design 47 G A-210, A-318, A-321, A-322, §428
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h