Commit Graph
2247 Commits
Author SHA1 Message Date
jschoubben 541eaa20fe Bridge for G's take-in: the pre-G package directories contracts/go and sdk again, unused
mesh/delivery merged: source.main moved to novox/mesh-delivery@21eaa55b277a
mesh/delivery-group group fix/47-G-bridge merged: every member is merged
mesh/check checking 541eaa20fec4 on 21eaa55b277a
The running pre-G indexer publishes a repository's packages only when every package directory it published last is
still in the tree; G moved contracts/go and sdk to modules/, so mesh-delivery's packages, G's renamed paths among them,
are never published and nothing importing them builds (2026-11-13, indexer journal 'its packages are not published').
These are the trees of e70754ef, unchanged, without sdk/module.json (no second module). Nothing imports them; they go
once G's indexer runs and publishes without them.

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-13 14:34:40 +01:00
mesh-tools 93e222a8a8 Merge pull request 'Milestone 47 G: mesh-delivery's part of the one release' (#214) from feat/47-G-join12 into main 2026-11-13 13:08:58 +00:00
jschoubben bc8126efef Count a bus module's running build as offering bus-state while its newer build waits for a yes (ADR 0614 §5, A-352)
mesh/delivery merged: source.main moved to novox/mesh-delivery@93e222a8a8b6
mesh/delivery-group group feat/47-G-join12 merged: every member is merged
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
2026-11-13 13:11:28 +01:00
jschoubben 8d40d90950 Fill the catalog's versions from every number the builder gave, numbered or published (design 47 G §372, A-350)
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
2026-11-13 13:06:53 +01:00
jschoubben ff9f089dd8 Merge main into feat/47-G-join11: reader release 3 (D1-D6); G's validator holds
The release copied G's judge rules (D1 queue invokes, D2 seat reads, D3 objects cap, D5 process bus consumes) and
added a transition, foundationAtG, for the parts G puts on the foundation list. Every conflict (busstate.go,
judge_test.go, rules.go, rules_test.go) and the two files merged cleanly (oldsections.go, busstate_test.go) are
resolved to G's form: G's foundation list holds and foundationAtG goes; G's g_words_test rows judge the objects cap.
The tree is G's head 8899b62c.

Builds: design 47 G (the milestone's mesh-delivery part, as at 8899b62c)

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-13 12:50:29 +01:00
mesh-tools e70754ef56 Merge pull request 'Reader release 3 before G: today's manifest validator accepts G's forms' (#212) from feat/47-G-reader-release-3 into main 2026-11-13 11:04:19 +00:00
jschoubben 4b29e43ca1 D6 judge-release-whole: the release's judge accepts all of G and keeps today's verdicts
mesh/delivery merged: source.main moved to novox/mesh-delivery@e70754ef562b
mesh/delivery-group group feat/47-G-reader-release-3 merged: every member is merged
mesh/check checking 4b29e43ca1f4 on e70754ef562b | novox/mesh-delivery#212 in group feat/47-G-reader-release-3
A run, no code: the prepare's probe (reader-release runs/rrprobe.go.txt) built in the indexer module at this head
against mesh-sdk 9e5bd7e. G's 193 manifests with G's 65 seat definitions: 193 accepted the checker's way, 0 refused and
0 waiting the indexer's way (today: 15 refused). Today's 191 manifests with today's 60 seats: 189 accepted, f1-circuits
and link2pay refused, output identical to today's; today's manifests with G's seats: identical to today's.

Builds: design 47 G §50, §340, A-343, A-347

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-13 11:47:46 +01:00
jschoubben 1a16fb55da D4 judge-foundation-list: the pipeline runner keeps its old sections before G too
The lead's A-349 names the pipeline runner beside the forge module, the image registry module and the node-engine's
module: its old `objects` section and its findings stream are accepted before G puts it on the foundation list. It is
new in G, so no trunk verdict moves.

Builds: design 47 G §529, A-345, A-349

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-13 11:47:21 +01:00
jschoubben b30232298c D4 judge-foundation-list: the parts G puts on the foundation list keep their old sections before it
Before G's merge the foundation list stays as it is; the forge module, the image registry module and the node-engine's
module are accepted with their old `objects` section, their stream `<module>-findings` and their bus state in
`requires`, as G's judge accepts them, and are counted as today, so no other module's verdict moves.

Builds: design 47 G §584, §627, §529, A-343, A-345

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-13 11:45:26 +01:00
jschoubben 771471c83b D3 judge-objects-cap: a state may name objects-max-mib for its objects store
The state template takes the option `objects-max-mib` (mesh-sdk S5's name and bounds): within the objects' bounds it is
accepted, outside them refused; every other option of today keeps its verdict.

Builds: design 47 G §513, §547, A-343

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-13 11:44:20 +01:00
jschoubben cee3102568 D2 judge-seat-reads: a read of a seat holder's state is judged against the seat's states
`reads` `seat:<seat>.<state>` (split by mesh-sdk's SeatRead since S4) is accepted where the seat declares the state and
refused, naming it, where it does not or the seat is unknown; a module's read is judged as today.

Builds: design 47 G A-116, A-128, A-343, A-344

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-13 11:43:47 +01:00
jschoubben 3543e7818b D5 judge-process-bus-consumes: a process hears only what its module consumes
A process's `bus.consumes` (read by mesh-sdk since S2) is judged as V5 judges what a process names of its module's
`requires`: an event its module consumes is accepted, another is refused, naming it.

Builds: design 47 G A-340, A-343

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-13 11:42:54 +01:00
jschoubben 4ce2d82645 D1 judge-queue-invokes: an asker's queue and a seat's accepted kind are judged against the seat
The third reader release reads G's invokes `seat:<seat>.accept.<queue>` and `seat:<seat>.<stream>.<kind>` with G's
check of them: a queue or kind the seat's definition does not accept is refused, naming it.

Builds: design 47 G §601, A-231, A-102, A-343, A-344

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-13 11:42:08 +01:00
jschoubben 8899b62cd4 A-342 judge-node-env: a resource's own MESH_NODE is refused
mesh/delivery-group group feat/47-G-join11 checking: composed again for its members' new heads
mesh/delivery closed: the pull request closed unmerged
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
2026-11-13 09:20:46 +01:00
jschoubben 7044bf5024 A-340 process-bus-consumes: a process hears only what its module consumes, and is granted exactly that
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
2026-11-13 09:16:25 +01:00
jschoubben 48c7d8252e Merge main into feat/47-G-join11: the zfs group's validator rules and process-bus grants (issue 1979)
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
2026-11-13 09:10:44 +01:00
mesh-tools 7c0492b06c Merge pull request 'The validator judges if-config, config-lines, config-json and a process's bus on requires; grants follow (issue 1979)' (#211) from feature/1979-zfs-owns-zfs into main 2026-11-13 08:00:36 +00:00
jschoubben 9e98b28844 Validator (A-337): the trunk case counts and declares by every manifest that decodes
mesh/delivery-group group feat/47-G-join11 checking: 15 of 17 member(s) ready
mesh/delivery closed: a newer head of the same pull request
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
2026-11-13 02:53:57 +01:00
jschoubben bf852f27aa Runner (A-336): a publish heard before its branch's half starts with no steps
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
2026-11-13 02:43:18 +01:00
jschoubben d827d1abf0 Runner (A-336): a take-in heard before its branch's half starts with no steps
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
2026-11-13 02:41:39 +01:00
jschoubben 8af822e3fd SDK (A-324, A-325): one PackedOrFetched for the seed and the runner
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
2026-11-13 02:33:38 +01:00
jschoubben 59b46be0d2 Indexer (A-326): a branch take-in keeps no revision with a refused cycle
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
2026-11-13 02:32:23 +01:00
jschoubben 78cf4e7666 Assigner (A-334): hold a group member's end until the graph says which module is the runner
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
2026-11-13 02:30:13 +01:00
jschoubben 8ef266ad6f Runner (A-327): a registration heard before the runner can place from it is not lost
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
2026-11-13 02:30:13 +01:00
jschoubben 36be6f31df Merge main into feat/47-G-join11 (G takes in main before its push)
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-13 02:16:56 +01:00
jschoubben c68d51b8b5 Assigner (A-334): in a group that changes the runner, the runner's member is wanted on its own end
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
2026-11-13 02:16:00 +01:00
jschoubben a90412c7a6 Runner (A-328): never hold the runner's own pipeline for its new version
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
2026-11-13 02:12:39 +01:00
jschoubben e557168e6e Runner (A-327): a registration-changed places the steps of its module's pipelines started before it
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
2026-11-13 02:11:28 +01:00
jschoubben c2e2ac82fa Indexer (A-333): a package-only cycle is not refused, and no delivery edge ends at a package
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
2026-11-13 02:09:34 +01:00
jschoubben df02ee40fd Indexer (A-326): refuse at take-in a cycle with a build edge no build seat's running version breaks
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
2026-11-13 02:06:23 +01:00
jschoubben 73582f92e1 Assigner: the node-engine's want first; the acting-wait check sees cycles across steps
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
2026-11-13 01:56:48 +01:00
jschoubben ab31847d4e Seed and runner: an archive or upstream artifact has no steps; a module no seat builds is left out by name
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
2026-11-13 01:52:07 +01:00
jschoubben 5812a2f97d Runner: an image artifact's steps are asked of the seat on kind:image
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
2026-11-13 01:47:23 +01:00
jschoubben ad7e580918 G1 grants-process-bus-requires: a process's account publishes on the events stream and writes the states its module asks for in requires
mesh/delivery merged: source.main moved to novox/mesh-delivery@7c0492b06c37
mesh/delivery-group group feature/1979-zfs-owns-zfs merged: every member is merged
mesh/check being carried to ad7e58091801 on 7c0492b06c37 | from 7221a1e5cd7f, mesh-catalog 117f933dacf0, mesh-host 0193949efe9f, mesh-sdk e42b9491c931…
Builds: design 42 zfs-owns-zfs §25, §26, A-37, A-38
2026-11-13 01:27:58 +01:00
jschoubben 3aca67b9d0 V5 judge-process-bus-requires: a process's bus may name the events and states its module asks for in requires
Builds: design 42 zfs-owns-zfs §25, §26, A-37, A-38
2026-11-13 01:27:58 +01:00
jschoubben e1db8701b5 V4 judge-not-managed: a config value with neither a default nor required is accepted
Builds: design 42 zfs-owns-zfs §11; answer A-14
2026-11-13 01:27:58 +01:00
jschoubben e9eac06e5d V3 judge-config-json: a file holding ${config-json} places every config value of its module
Builds: design 42 zfs-owns-zfs §9; answers A-15, A-24
2026-11-13 01:27:58 +01:00
jschoubben ff76ee95ad V2 judge-config-lines: the form ${config-lines:<key>:<prefix>[:mib-bytes]} is judged and places its key
Builds: design 42 zfs-owns-zfs §3; answers A-4, A-5, A-24
2026-11-13 01:27:58 +01:00
jschoubben 27c3b9a860 V1 judge-if-config: a resource's if-config names a declared config value and places it
Builds: design 42 zfs-owns-zfs §2; answer A-24
2026-11-13 01:27:58 +01:00
mesh-tools 7221a1e5cd Merge pull request 'checker_ask_again recovers a lost check that names no ask, when no check ask waits in any build stream' (#210) from fix/1373-ask-again-no-ask into main 2026-11-12 23:53:51 +00:00
jschoubben 2ab74991b8 checker_ask_again: an unread backlog and a recheck ask refuse too (issue 1373, review)
mesh/delivery merged: source.main moved to novox/mesh-delivery@7221a1e5cd7f
mesh/check checking 2ab74991b856 on 7221a1e5cd7f
Principle 3: unread is never empty. build_usage's notes refuse; a waiting or held recheck ask refuses like a check ask.

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-13 00:48:36 +01:00
jschoubben b6e61fe63d checker_ask_again ends a lost check that names no ask when no check ask waits in any build seat's stream (issue 1373)
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
2026-11-13 00:43:32 +01:00
jschoubben 63f944b525 B2 (watchman): invoke the branches follower's three seat verbs
mesh/delivery-group group feat/47-G-join11 rejected: composed together: the checker's verdict at the members' heads (69ffef340e92): mesh-delivery-checker
mesh/delivery closed: a newer head of the same pull request
mesh/check failed (2): mesh-delivery-checker: no published of the tagged version of go-meshconditions of me…; and 1 more | 63f944b52564 on 7221a1e5cd7f
Builds: design 47 G (A-296, A-298)

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 23:59:37 +01:00
jschoubben ec7e672c1f B2 (watchman): the wants are followed at the holder of the seat mesh-wants, the indexer's tools at the holder of mesh-catalog
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
2026-11-12 23:47:59 +01:00
jschoubben 8e06b6af65 B1 (enrolment): the enrolment's own module is the one the runtime serves it as
enrolment.Module is gone: the finding writer, the reader, the warrant record, the log lines and the ask's bound act name
the served-as module (ownModule, the holder's Module).

Builds: design 47 G A-296, §428

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 23:39:54 +01:00
jschoubben 09e736a687 B1 (view): the view's module is its credential's, in the process and in the tools
viewstate.ViewModule is gone; the process takes cred.Module for its reader and emitter, the tools the served-as module.

Builds: design 47 G A-296, §428

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 23:38:40 +01:00
jschoubben 0fffea89b1 B1 (indexer): the indexer's own name is its credential's module, no constant
index.Module is gone: the indexer and its registry carry the credential's module (findings' observer and ids, its own
entry and graph key, the history subject, the views emitter and reader), the tools take the served-as module.

Builds: design 47 G A-296, §428

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 23:37:54 +01:00
jschoubben 1db4728081 B1 (checker): the checker's own buckets, events and asker are named from its credential's module
CheckerModule and the buckets built on it are gone; check.Bucket names a state of the credential's module, the examiner
takes the module as its asker, the tools take the served-as module, and the tools ask the indexer's read tools of the
holder of the seat mesh-catalog on each call (B2's tool addresses for the checker).

Builds: design 47 G A-296, A-210, §428

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 23:35:14 +01:00
jschoubben 07c13b0b9c B1 (builder): the builder's own buckets are named from its credential's module
The versions, bounds, reserved, publish-queue, acted, toolchains-heard and instances buckets were constants naming
mesh-delivery-builder; ownBucketsOf takes them from the module the credential names.

Builds: design 47 G A-296, §428

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 23:32:42 +01:00
jschoubben 33991dafa9 A3: the view tools' usage reader is built by one function main and its test use
Builds: design 47 G A-128
2026-11-12 23:29:33 +01:00