Commit Graph
1694 Commits
Author SHA1 Message Date
jschoubben 7a7b504836 W5.10 (base): the module graph's node of a catalog entry is read in the domain SDK's graph, for every reader of the catalog half
graph.NodeOf moves from the indexer's own package to sdk/graph, since the assigner reads its verb edges from the catalog
half too (a second reader).

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ

Builds: design 47 G §47 to §50, §121, §122, §378
2026-11-11 14:36:24 +01:00
jschoubben 941af88086 The indexer follows its seat list through the wiring every part shares, seatlist.Part, not a copy of its own (milestone 47/G W4.10, W1.9)
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ

Builds: design 47 G §204
2026-11-11 14:36:10 +01:00
jschoubben 86d13a41a3 W4.15: a commit the forge does not have is the seat git's kind not-found, never a 404 in the error's words (milestone 47/G)
askGit wraps the kind not-found as index.ErrNotFound; order.go's notFound reads only that. Needs feat/47-G-seats'
seat git at 3b355a35 at the join.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ

Builds: design 47 G §310, §317
2026-11-11 14:36:10 +01:00
jschoubben 91791fdabd The indexer reads the forge through the seat git alone: trees, file, contains and open-pulls, an answer's error a failure (milestone 47/G W4.15a)
The forge module's own tools leave the program and its invokes. The seat's Go contract is feat/47-G-seats' (contracts/go/seats/git); this branch builds against it at the join.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ

Builds: design 47 G §310, §312, §317, §428
2026-11-11 14:32:33 +01:00
jschoubben 42785f6fa2 Merge origin/main into feat/47-G-build 2026-11-11 14:31:52 +01:00
mesh-tools 2f1b60f2a2 Merge pull request 'Registry recovery: break the circle, and let a cut part be sent again (issue 1966)' (#204) from fix/1966-registry-circle into main 2026-11-11 13:18:27 +00:00
jschoubben b4a512e627 Merge branch 'feat/47-G-build' into feat/47-G-build-indexer 2026-11-11 14:14:12 +01:00
jschoubben 7db5b0dfe4 1966 review round 1: Composed counts the bindings written or rewritten from fields; wrap Take's comment
mesh/delivery merged: source.main moved to novox/mesh-delivery@2f1b60f2a231
mesh/check checking 7db5b0dfe479 on 2f1b60f2a231
Builds: design 25 bindings-first-view §6, §8, §9

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 14:12:25 +01:00
jschoubben 3cdecff518 IX26: the indexer's manifest says version 0.1 (none published), checked as MAJOR.MINOR
Builds: design 47 G §368, §299, §295

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 14:11:08 +01:00
jschoubben 5009bb9256 IX23: the indexer keeps no mesh-wide hold, serves no tool or view of modules, and hears no engine's manifest reads
Builds: design 47 G §196, §185, §364

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 14:09:55 +01:00
jschoubben 83b5275fe2 IX22: a test that a merged revision naming a newer indexer is the previous catalog graph revision with only the indexer's entry replaced
Builds: design 47 G §273, §237

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 14:05:04 +01:00
jschoubben 1425374d27 Merge branch 'feat/47-G-build' into feat/47-G-build-watchman 2026-11-11 14:04:20 +01:00
jschoubben ad6c793a2f CK10 (tags): the checker asks no group build through tagged versions
The checker built from G's heads makes no tag-wanted and waits on no published
of a tagged version: tagwanted.go and tags.go go (the verdict sayer stays, in
verdictsay.go), with st.tagged, groupVersions, Case.Tagged, TagAsks, the
PublishedHeard wiring, the group path's tagged Node package and Go packages,
the manifest's two published consumes and the tag-wanted event of asks.

Builds: design 47 G §528, §373, §321

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 14:04:15 +01:00
jschoubben ae8a6f1a6d IX16: the indexer's manifest test lets the assigner's invoke of modules stand until the assigner's own subtask moves it to revision
Builds: design 47 G §263

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 14:03:28 +01:00
jschoubben bcca6028db Merge branch 'feat/47-G-build' into feat/47-G-build-indexer 2026-11-11 14:03:01 +01:00
jschoubben 6a14c1c0af Take out the stand-in for CatalogEntry.ManifestDigest: the contracts developer's field replaces it
Builds: design 47 G §506

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 14:02:47 +01:00
jschoubben 5f64c25935 Merge branch 'feat/47-G-build' into feat/47-G-build-builder 2026-11-11 13:58:44 +01:00
jschoubben ca9aad9757 1966 subtask 2: the grants part composes a binding from an answer of mesh-broker's list without binding
An answer no entry of which carries binding gets, for a key-value or object-store
entry whose settings hold the bus object its bus-name names, the binding composed
from the answer's own fields; a stream, a ledger and an entry not held stay
unbound and are logged once per answer; grants_first_views shows composed and
unbound (1966/AC203-3..n). An answer where any entry carries binding is applied
by §4 alone.

Builds: design 25 bindings-first-view §9, §4, §6, §7, §8

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 13:58:23 +01:00
jschoubben f30c54faa1 IX16: the catalog graph revisions as objects (the research 085 half joined), an entry carrying its manifest whole and the digest of its bytes, a full store holding the take-in's merges
Builds: design 47 G §173, §174, §175, §176, §177, §178, §179, §180, §181, §194, §200, §209, §210, §263, §443, §506

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 13:58:09 +01:00
jschoubben 3442b7af37 TEMPORARY stand-in for CT: CatalogEntry.ManifestDigest in the Go contract only (design 47 G §506); the contracts developer's field replaces it, take theirs at the merge
Builds: design 47 G §506

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 13:58:08 +01:00
jschoubben cb6dc7c320 BL4: the git tag go/vMAJOR.MINOR.PATCH is written on the catalog's version-released, at the commit the version was reserved from
The reservation keeps the repository and commit of the build and whether the module has a Go package; version-released writes
the tag through the seat git's verb tag before the key goes, and a tag the forge did not write leaves the release to be heard again.

Builds: design 47 G §370

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 13:57:54 +01:00
jschoubben aa1ebee3cc Merge branch 'feat/47-G-build' into feat/47-G-build-contracts 2026-11-11 13:57:11 +01:00
jschoubben 73d15c08f2 CT3 (answers): the catalog graph entry carries manifest-digest
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
2026-11-11 13:57:00 +01:00
jschoubben 83ff5c747d Merge branch 'ix16-wip' into feat/47-G-build-indexer 2026-11-11 13:55:20 +01:00
jschoubben fbe34bcf07 Merge branch 'feat/47-G-build' into feat/47-G-build-watchman 2026-11-11 13:54:53 +01:00
jschoubben 276412d7ff 1966 subtask 1: a chunk 0 again starts a part afresh in parts.Receiver.Take
A part the holder lacks travels again whole from chunk 0, so its earlier
chunks are dropped and chunk 0 is taken; any other chunk that is not the
cursor is still refused, naming the cursor (1966/AC203-1, AC203-2).

Builds: design 51 Publishing, the bullet "The file travels in parts through the seat"

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 13:54:40 +01:00
jschoubben 9f43e927e4 WM7 (store-filling): a store clears below 80 % of its cap, not 70 %
Builds: design 47 G §181, §263

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 13:53:50 +01:00
jschoubben 9d79964487 CT2 (answers): mesh-builds' reserved takes a package's name, toolchain-agreed carries digests with their nodes
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
2026-11-11 13:53:17 +01:00
jschoubben 33d9e942f2 Merge branch 'feat/47-G-build' into feat/47-G-build-assigner 2026-11-11 12:37:06 +01:00
jschoubben 846340c553 AS4: the assigner computes a node's entries from the catalog half of the branch its placement names
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
2026-11-11 12:37:06 +01:00
jschoubben 38a2492394 RN3 (publish half): a pipeline starts by compare-and-set on its key, and a package-published starts one per dependent behind
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
2026-11-11 12:34:26 +01:00
jschoubben 68c10c5664 RN24: the runner's manifest says version 0.1, declares its finding stream and hears the keeper's ask
Builds: design 47 G §368, §383, §387

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 12:31:58 +01:00
jschoubben 7fcf1ce9ee Merge branch 'feat/47-G-build' into feat/47-G-build-runner 2026-11-11 12:28:08 +01:00
jschoubben 2b052791da RN2: the runner reads its policy from the registrations and each watched branch's catalog half, and says when it waits for a view
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
2026-11-11 12:28:00 +01:00
jschoubben 8688e62cd8 Merge branch 'feat/47-G-build' into feat/47-G-build-contracts 2026-11-11 12:21:56 +01:00
jschoubben e1499f0617 CT4: a wait names its clock and its kind: clock-from, step of the acting steps, a put's fingerprint, a delivery wait's machines; regenerated
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
2026-11-11 12:21:56 +01:00
jschoubben de66361014 Merge branch 'feat/47-G-build' into feat/47-G-build-teller 2026-11-11 12:21:37 +01:00
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 940d42c659 CT5: the build seats' steps takes drop and why, fetch gains builds, a build names what it resolved, steps are keyed by asker, toolchain-reported and step-progress; regenerated
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
2026-11-11 12:20:54 +01:00
jschoubben ce286795e0 CT10: a branch with no revision yet is a ready, empty catalog view
Builds: design 47 G §479, §495

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 12:17:16 +01:00
jschoubben dd8c4d405a Merge branch 'feat/47-G-build' into feat/47-G-build-contracts 2026-11-11 12:15:39 +01:00
jschoubben 5e0c04c3cf CT10: meshcatalogclient follows the catalog half per watched branch, a first view then each catalog-revision of that branch
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
2026-11-11 12:15:39 +01:00
jschoubben 8cfc24fc2e Remove a binary built by mistake in the checker's folder
Builds: none (housekeeping of CK2)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 12:14:50 +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