mesh-tools
3c0b4d29a8
Merge pull request 'Fill gitea's pool keys in the provisioner client's gitea tests, which fail on main since 4becc7bd (issue 1966)' ( #653 ) from fix/1966-provisioner-client-pool-config into main
2026-11-10 14:49:01 +00:00
mesh-tools
7cc81512a3
Merge pull request 'The Go fetch takes zero-version requirements from the module graph and proves them with a shut-off load; mesh-build-image and -node name nodebuildgo (issue 1966)' ( #654 ) from fix/1966-fetch-module-graph into main
2026-11-10 14:48:41 +00:00
mesh-tools
462db1c257
Merge pull request 'Play the config watch in the package seats' whole test, so the held callers list is proven (issue 1966)' ( #652 ) from fix/1966-registry-test-watch into main
2026-11-10 14:40:51 +00:00
jschoubben
4a3914ee1c
S4: the fetch proves with a shut-off package load that it downloaded all a step loads (issue 1966)
...
mesh/delivery merged: source.main moved to novox/mesh-catalog@7cc81512a389
mesh/check checking 4a3914ee1ce7 on 3c0b4d29a8ea
go mod download loads only the module graph a go.mod names; a vet, a test or a build then loads
packages shut off from the network and failed far from the fetch, in fewer words (the builder's
"pull_drop.go:11:2: module lookup disabled by GOPROXY=off"). After each directory's download the
fetch loads its packages with their tests shut off and fails naming each package whose load
would reach the network. The graph of a sibling laid beside is loaded once with the network
first, so a go.mod the composer's build reads and the graph's download skipped is fetched, then
proven the same way.
1966/AC178-2: a row of TestAVerifyThatFailsEndsTheStepNamingTheDirectoryAndTheLine; the beside
case in TestTheFetchDownloadsTheGraphOfASiblingModuleLaidWithTheTreesItRequires.
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-10 13:10:44 +01:00
jschoubben
ce3284fc8f
S3: the fetch takes a module's zero-version requirements from its module graph (issue 1966)
...
ADR 0573 §2 builds every module against the latest published version of each mesh package it
uses, whatever its go.mod names. The fetch took versions only for packages the directory's own
go.mod names, so a package only a module it replaces by a directory requires (mesh-build-image
replacing buildstep, which imports the node-build-go seat package) was never taken: go mod
download passed and every shut-off step looked it up on the network. Now the requirements of
each module the directory replaces by a directory count too, taken the same way (the ask, its
repository's asked head, else the latest) and said as named by that directory.
1966/AC178-1: rows of TestARequirementAtTheZeroVersionIsTakenFromTheAskOrTheTrunk.
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-10 13:08:00 +01:00
jschoubben
ad6e813fb0
S2: mesh-build-image and mesh-build-node name nodebuildgo, which buildstep imports (issue 1966)
...
Since buildstep's drop verb imports the node-build-go seat package, both modules' shut-off vet,
test and build looked it up on the network: their go.mod did not name it, so the fetch took no
version for it. go mod tidy adds it as an indirect requirement.
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-10 13:04:39 +01:00
jschoubben
b373e34b29
Fill gitea's pool keys in the provisioner client's gitea tests (issue 1966)
...
mesh/check checking b373e34b29ec on 3c0b4d29a8ea
mesh/delivery merged: source.main moved to novox/mesh-catalog@3c0b4d29a8ea
The template gained three config keys the tests' bus held no values for, so the client rightly never wrote server.env.
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-10 12:51:37 +01:00
jschoubben
067b9a47da
Play the config watch in the package seats' whole test, so the held callers list is proven (issue 1966)
...
mesh/delivery merged: source.main moved to novox/mesh-catalog@462db1c25719
mesh/check checking 067b9a47dafd on 462db1c25719
The holder holds its callers by a config watch since the callers were moved off per-call reads; the test's player answered only provision.get.
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-10 11:00:57 +01:00
mesh-tools
bfa4a0851a
Merge pull request 'Review parts are asked one at a time: the node judges one at a time (issue 1966, quick fix)' ( #651 ) from fix/1966-kb-one-part into main
2026-11-10 07:33:48 +00:00
jschoubben
b7f78d47c5
Review parts are asked one at a time: the node judges one at a time, a second ask only spent its bound waiting (issue 1966, quick fix)
...
mesh/check checking b7f78d47c5c4 on bfa4a0851acf
mesh/delivery merged: source.main moved to novox/mesh-catalog@bfa4a0851acf
Claude-Session: https://claude.ai/code/session_01JG73KK8HD1gufnqyFxMFdW
2026-11-10 03:00:58 +01:00
mesh-tools
c4463ba47f
Merge pull request 'The condition keeper reads the node-engine's findings; claude-code's seat-list again answers the operator's sessions (issue 1966; group fix/1966-seat-list-unread)' ( #650 ) from fix/1966-seat-list-unread into main
2026-11-10 00:44:30 +00:00
jschoubben
c39503e322
S7: claude-code's seat-list again answers a proved operator's session
...
mesh/delivery merged: source.main moved to novox/mesh-catalog@c4463ba47fcf
mesh/delivery-group group fix/1966-seat-list-unread merged: every member is merged
mesh/check checking c39503e3227c on c4463ba47fcf | novox/mesh-catalog#650 in group fix/1966-seat-list-unread
claude_code_seat_list_again answered person.<name> and the healers, but every
call through the mesh MCP server is proved as its machine's tool runner
(issue 627); node-tools now stands for that session (issue 1966).
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-10 00:59:07 +01:00
jschoubben
6c61d9facf
S6: the condition keeper reads the node-engine's findings
...
ace's node-engine wrote seat-list-unread in its state findings, and no
condition rose: the keeper's observers did not name the node-engine. It now
reads mesh-host.findings, so ADR 0636 §1's condition is raised and clears at
the first full read (issue 1966).
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-10 00:49:55 +01:00
mesh-tools
a39b72c377
Merge pull request 'The build modules end a transport fault's run again, serve drop, and are held to the transport-fault classes (issue 1748; group fix/1748-transport-retry, merge last)' ( #649 ) from fix/1748-transport-retry into main
2026-11-09 22:58:43 +00:00
jschoubben
e712cd227f
C5: the integration row reads the dropped step as dropped (ADR 0664 §4, issue 1748 review 1)
...
mesh/check checking e712cd227f37 on a39b72c377a5 | novox/mesh-catalog#649 in group fix/1748-transport-retry
mesh/delivery-group group fix/1748-transport-retry merged: every member is merged
mesh/delivery merged: source.main moved to novox/mesh-catalog@a39b72c377a5
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:44:08 +01:00
jschoubben
12059ad3cc
F5: the failurekit check refuses a build module whose manifest does not ask seat-settle-delay (ADR 0664 §5, issue 1748 review 1)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:42:46 +01:00
jschoubben
6a29e41175
F3: mesh-build-go and mesh-build-node follow the drops other holders write, and a module with no watch says so (ADR 0664 §4, issue 1748 review 1)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:42:13 +01:00
jschoubben
1948da9cb4
F8, dropped: the build module's drop uses the generated contracts' Drop and ends the step dropped, with the named cause (ADR 0664 §4, issue 1748 review 1)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:41:10 +01:00
jschoubben
b84a2f4dc1
F6b: merge main ( #647 ) into the transport retry: unknownRevision reads the transport words, the row says passing (issue 1748 review 1)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:33:33 +01:00
mesh-tools
9c42423d58
Merge pull request 'The knowledge base's review knows its round: from round 3 only a wrong record asks changes, at round 5 the operator decides (issue 784)' ( #648 ) from fix/784-review-round into main
2026-11-09 22:26:59 +00:00
jschoubben
c12f1a16db
get shows a round only for a proposed version (issue 784, ADR 0665)
...
mesh/delivery merged: source.main moved to novox/mesh-catalog@9c42423d5821
mesh/check checking c12f1a16db83 on 9c42423d5821
Claude-Session: https://claude.ai/code/session_01JG73KK8HD1gufnqyFxMFdW
2026-11-09 23:22:46 +01:00
jschoubben
09ea4a40bf
A closing keeps the review round, get says the round, a close waits for the operator's round-5 answer (issue 784, ADR 0665)
...
Claude-Session: https://claude.ai/code/session_01JG73KK8HD1gufnqyFxMFdW
2026-11-09 23:20:22 +01:00
jschoubben
6b8e7fc621
C1c, C6: any holder serves drop and every node follows it by a watch of the shared pauses; the build modules serve drop and ask the tool runner's seat-settle-delay (ADR 0664 §1, §4, §5, issue 1748)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:19:28 +01:00
jschoubben
3c3fdd3446
C5: an integration test of the delayed redelivery and the drop of a running step against the real bus (ADR 0664 §1, §5, issue 1748)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:16:09 +01:00
jschoubben
06f28fbadb
C4: the conformance kit gains Passing with the words of each runner when the network did not answer; each build module's tests call it and checks/failurekit refuses one that does not (ADR 0664, issue 1748)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:15:35 +01:00
jschoubben
62644aa012
The knowledge base's review knows its round: from round 3 only a wrong record asks changes, at round 5 the operator decides (issue 784, ADR 0665)
...
Claude-Session: https://claude.ai/code/session_01JG73KK8HD1gufnqyFxMFdW
2026-11-09 23:13:55 +01:00
jschoubben
bdfd8db265
C3: mesh-build-node and mesh-build-image say a failure of the network as a transport fault (npm ci, buildah bud, the image seat's mirror) (ADR 0664 §1, issue 1748)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:13:45 +01:00
jschoubben
89ec9429db
C2b: a seat verb's no responders is a transport fault when the assigner names a holder of the seat; a seat nothing holds fails at once (ADR 0664 §1, issue 1748)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:12:35 +01:00
jschoubben
b9cfa4fe16
C2: mesh-build-go says a failure of the network as a transport fault: one download, no retry of its own (ADR 0664 §1, issue 1748)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:10:16 +01:00
mesh-tools
8b184d8322
Merge pull request 'mesh-build-go reaches the forge's git when the public proxy is unreachable, and a network failure is no pin (issue 1966)' ( #647 ) from fix/1966-contracts-goproxy into main
2026-11-09 22:08:33 +00:00
jschoubben
02d57c4a53
C1b, C1c: the seat's verb drop refuses a dropped ask at pull, ends one that runs, and the start sweeps old drops (ADR 0664 §5, issue 1748)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:07:49 +01:00
jschoubben
5a7561fe1d
C1: a build step that ends on a transport fault below its last run is written again and handed back to the bus with a delay (ADR 0664 §1, issue 1748)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 23:04:44 +01:00
mesh-tools
5e537f851f
Merge pull request 'Distribution and the forge hold their caller list from its config watch, not an ask per call (issue 1966; group with mesh-sdk)' ( #646 ) from fix/1966-callers-config-read into main
2026-11-09 22:00:48 +00:00
mesh-tools
0a6a5aba68
Merge pull request 'mesh-build-image names its copy wait's ownership mark nonce, so the state takes it and nats images are stored again (issue 1966)' ( #645 ) from fix/1966-mirror-waits-token into main
2026-11-09 22:00:32 +00:00
jschoubben
407fc6c9e6
The Go seat goes on to the public proxy only on a 404, the public proxy to direct on any failure (issue 1966, review 1)
...
mesh/delivery merged: source.main moved to novox/mesh-catalog@8b184d83222c
mesh/check checking 407fc6c9e625 on 9c42423d5821
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 22:55:53 +01:00
jschoubben
6299b47f4f
A mesh package the Go seat lacks is fetched from the forge's git, not stopped by an unreachable public proxy (issue 1966)
...
GOPROXY joined the Go seat, the public proxy and direct with commas, so go went on only after a 404 or 410: a contracts
package the seat does not hold, and a public proxy a node cannot reach, ended the fetch before direct. It joins them
with | now, so any failure goes on to the next. go words a proxy it cannot reach as "invalid version", which the pin
path read as an unknown revision and labelled "on no pull request head"; a network failure is never that now
(network is unreachable and no route to host are network failures).
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 22:42:09 +01:00
jschoubben
24bf59219e
Distribution and the forge hold their caller list from its config watch, not an ask per call (issue 1966)
...
mesh/delivery merged: source.main moved to novox/mesh-catalog@5e537f851f08
mesh/delivery-group group fix/1966-callers-config-read merged: every member is merged
mesh/check checking 24bf59219ee5 on 9c42423d5821 | novox/mesh-catalog#646 in group fix/1966-callers-config-read
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 22:42:00 +01:00
jschoubben
e3b4ecde8c
Name the copy wait's ownership mark nonce, not token, so the state accepts it; the copy test's state refuses credential names as the bus does (issue 1966)
...
mesh/delivery merged: source.main moved to novox/mesh-catalog@0a6a5aba682e
mesh/check checking e3b4ecde8cf2 on 5e537f851f08
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 22:42:00 +01:00
mesh-tools
fd9147087e
Merge pull request 'The bus module reads a consumer's counts and a stream's events, so a lost event can be traced' ( #644 ) from fix/1966-nats-consumer-read into main
2026-11-09 21:27:30 +00:00
jschoubben
a3d141e793
nats_stream_messages shows a body only for the stream EVENTS (issue 1966, review 1)
...
mesh/check checking a3d141e79351 on fd9147087ef6
mesh/delivery merged: source.main moved to novox/mesh-catalog@fd9147087ef6
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 21:21:03 +01:00
jschoubben
4fbe6e347f
nats_stream_messages shows a body only on an event stream (issue 1966, review 1)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 21:20:19 +01:00
jschoubben
3d70bd3660
nats_stream_messages refuses a module's kept state (KV_*, OBJ_*), which can hold secrets (issue 1966, review 1)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 21:18:43 +01:00
jschoubben
a4e5a8ffef
Format the bus tools' new test (issue 1966)
...
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 21:14:00 +01:00
jschoubben
13dea6b1aa
The bus module reads one consumer in full and a stream's messages by subject (issue 1966)
...
A lost event between a shared stream and a module's consumer could not be located: no tool read a consumer's delivered and acknowledged sequence or a stream's messages for one subject. nats_consumer reads from the monitoring document; nats_stream_messages asks STREAM.MSG.GET on the module's own credential, newest first and bounded.
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 21:13:02 +01:00
mesh-tools
6d2ce96630
Merge pull request 'The resolver module's tests hold its configuration's guards' ( #643 ) from fix/1966-resolver-test into main
2026-11-09 20:09:34 +00:00
jschoubben
a7dc4534d7
Hold the resolver's configuration guards in the dnsmasq module's tests (issue 1966)
...
mesh/check checking a7dc4534d73a on 6d2ce96630f0
mesh/delivery merged: source.main moved to novox/mesh-catalog@6d2ce96630f0
mesh/delivery-group group fix/1966-resolver-test merged: every member is merged
Moved from mesh-sdk's catalogue tests, which read a literal the file no longer has.
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 20:59:46 +01:00
mesh-tools
4387e77f28
Merge pull request 'mesh-hand-acts answers bounded, newest first; mesh-healers seeds from a partial answer (issue 1966 S8, recovery)' ( #642 ) from fix/1966-s8-hand-acts-window into main
2026-11-09 17:55:10 +00:00
jschoubben
443a340f06
Listing.Complete comment says what the field means now (issue 1966 S8 review 2)
...
mesh/check checking 443a340f06cc on 4387e77f2899
mesh/delivery merged: source.main moved to novox/mesh-catalog@4387e77f2899
Claude-Session: https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
2026-11-09 18:23:33 +01:00
jschoubben
15f81780b9
hand-acts: no entry skipped by an early-ended page, the answer counted as sent, completeness for the window asked (issue 1966 S8 review 1)
...
Claude-Session: https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
2026-11-09 18:23:33 +01:00
jschoubben
ea4dfaa5a2
mesh-hand-acts answers bounded, newest first; mesh-healers seeds from a partial answer (issue 1966 S8)
...
hand-acts read the whole log (84k entries, 47 MB) on every call and could never answer inside the call bound or
the bus payload. It now reads from the newest entry backwards, page by page, and stops at the window's start, at
900 KiB of acts or at 20 s, saying complete: false, cut and why. warrants is bounded the same way. mesh-healers'
start-up seed takes a partial answer and logs it, instead of retrying forever.
Quick fix: this (mesh-catalog only, about 1.5 h). Thorough fix: also the tool runner never freezing on an oversized
bundle line and logging unanswered calls (mesh-tools, a separate fix by another developer, lead's ruling Q3), and an
SDK-side bound. Chosen here: quick for this module, the thorough part running beside it; the byte cap is the
module's own (lead's ruling Q1, a `limit` argument is a later note).
Claude-Session: https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
2026-11-09 18:23:33 +01:00