Commit Graph
1255 Commits
Author SHA1 Message Date
jschoubben f440ffa3fc Merge feat/47-G-fix11-a3 (every-event and approval-mark sdk parts) into feat/47-G-fix11-b4
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 05:29:20 +01:00
jschoubben 6209734dc3 Merge branch 'feat/47-G-fix11-a2' into feat/47-G-fix11-a3 2026-11-12 05:26:58 +01:00
jschoubben df3b732eca MV1: move contracts and sdk under modules/, importers follow
The delivery repository's contracts and SDK live under modules/ as
mesh-delivery-contracts and mesh-delivery-sdk, their Go module paths
renamed to match the folders (the TypeScript names already did), and
every importer in mesh-delivery, mesh-catalog, mesh-host, mesh-tools
and mesh-sdk follows in the same group: a design as it should be, one
path per module, checked by the group's check building every importer.

Builds: design 47 G §427, §88

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 05:09:56 +01:00
jschoubben cfe7eb619c EE-S1: name the mesh's event subjects in one place (issue 1966)
buscompose gains EveryEvent, EventSubjects, EventName and Overlaps, so the
grants part and the tool runner never spell the event namespace themselves.

Builds: design 34 every-event §1, §25, §26, §34, §37 (Overlaps rows)

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 04:59:29 +01:00
jschoubben bc5d6c03ea AM-S3, WirePattern: a per-machine state reaches its machine's keys below it; buscompose exports WirePattern
The per-machine form gains the keys below the machine's own, <node>.>, for every
per-machine state and a membership's too (PerMachineKeys), every module's key keeping
its form; buscompose exports WirePattern, which a reader uses to turn a stream's events
into the bus's subjects (the tool runner's marks).

Builds: design 46 7-approval-mark §13, §5

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 04:59:15 +01:00
jschoubben 762de8bf51 EE-S2: the waits list goes from the manifest and the membership (issue 1966)
The tool runner hears every event, so no manifest names the families a session
may wait on and no membership issues them: Manifest.Waits, Users.Waits, the
type Wait, Membership.Waits and WaitIssued go. A stored manifest still carrying
waits is read without it; the baseline keeps word:waits as retired.

Builds: design 34 every-event §2, §3, §4

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 04:56:31 +01:00
jschoubben 46222b9f0c A7 V-9: a part's first views say its own build (own-build beside their list, kept at start by a process)
Builds: design 47 G §674, §424, §519
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 04:56:21 +01:00
jschoubben fa0a107cf5 A7 P-1: a process reaches kept data through its Binding (show at start, again on recreated and dropped, a wait naming the entry)
Builds: design 47 G §577
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 04:56:21 +01:00
jschoubben d87facbb95 EE-S1: name the mesh's event subjects in one place (issue 1966)
buscompose gains EveryEvent, EventSubjects, EventName and Overlaps, so the
grants part and the tool runner never spell the event namespace themselves.

Builds: design 34 every-event §1, §25, §26, §34, §37 (Overlaps rows)

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 04:55:13 +01:00
jschoubben 09d6070ebd RR2-5: the reader reads a seat-named view in consumes and a seat's views
mesh/delivery-group group fix/47-G-reader-release-2 merged: every member is merged
mesh/delivery merged: source.main moved to novox/mesh-sdk@e42b9491c931
mesh/check checking 09d6070ebd86 on e42b9491c931 | novox/mesh-sdk#188 in group fix/47-G-reader-release-2
G's builder and checker follow the assigner's views by the seat,
seat:mesh-module-assigner.views.assignments; SeatViewConsume splits that
form, and a seat compiled from its definition names the states it offers
as views, which the validator checks the form against.

Builds: design 47 G §621, §616, §699

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 03:09:33 +01:00
jschoubben 98f22ffe72 RR2-4: the manifest reader reads the long form of an invokes entry
The tool runner's invokes hold * beside {verb, fields} entries; Invokes
keeps every verb, so none of its readers changes, and InvokeFields maps a
verb to the fields it names, written back in the long form.

Builds: design 47 G §621, §617

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 03:08:25 +01:00
jschoubben 3747b5f78c RR2-3: the manifest reader reads an artifact's calls and states
mesh-sdk's own manifest names the capability words its packages call, and
the tool runner's artifact the words it states; the running reader refused
both manifests on the unknown word.

Builds: design 47 G §621, §605, §545

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 03:06:59 +01:00
jschoubben c06482f0d4 RR2-2: the manifest reader reads max-mib on an old state section
G's indexer, builder and runner cap their buckets; the running reader
called the word an unknown field and refused the whole manifest. A value
out of the objects section's bounds is refused naming them.

Builds: design 47 G §494, §469, §621

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 03:05:33 +01:00
jschoubben 028f93575f RR2-1: the seat-definition reader reads by-caller and chunks on a verb, view on a state
A definition G writes marks a verb by-caller (mesh-recovery, mesh-broker, the
gated verbs) or chunks, and a state as a view; the running reader refused
each as a field the format does not know, so every such definition.

Builds: design 47 G §621, §697, §681, §699

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 03:04:05 +01:00
jschoubben 18c9ae04a0 Merge branch 'feat/47-G-fix9-recovery' into feat/47-G-join10 2026-11-12 02:39:12 +01:00
jschoubben 1bae840487 Fix 10: the catalogue reads a seat's views and stream-ridden accepts, and a consumed view of a seat
Builds: design 47 G §616, §699, A-102, A-131

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 02:17:44 +01:00
jschoubben a8be5acd80 Recovery3 item 1: a seat verb's chunks in mesh-sdk's one form, sent and received
The bus module sends snapshot-get's file in chunks and the recovery module
receives them; both now use buscalls.SeatChunks (subjects, body, receive),
so the form lives once in mesh-sdk.

Builds: design 47 G §681, A-64, A-139

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 02:12:15 +01:00
jschoubben cd4baef750 Merge branch 'feat/47-G-fix9-checker' into feat/47-G-join9 2026-11-12 01:42:59 +01:00
jschoubben 838ae22aa2 Merge branch 'feat/47-G-fix9-builder2-sdk' into feat/47-G-join9 2026-11-12 01:42:59 +01:00
jschoubben d3fe811819 Merge branch 'feat/47-G-fix9-serves' into feat/47-G-join9 2026-11-12 01:42:59 +01:00
jschoubben e4c7648074 Merge branch 'feat/47-G-fix9-builder2-sdk' into feat/47-G-fix9-checker 2026-11-12 01:34:12 +01:00
jschoubben c07b82e0eb Merge feat/47-G-fix9-routeproxy: the seat-holder helper (A-126) the recovery module reads the bus module with 2026-11-12 01:32:46 +01:00
jschoubben d025dfd409 A-125: the restore of one stream lives in mesh-sdk's bussnap beside its snapshot
The bus module's keeper restores a protected snapshot in place and the recovery module restores
its points: one copy, in mesh-sdk, imported by both. The snapshot takes the bus module's newest
form (an entry's file named to the microsecond).

Builds: design 47 G §655, A-125

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 01:26:38 +01:00
jschoubben d6a4e8ceb5 Merge branch 'feat/47-G-fix9-serves' into feat/47-G-fix9-builder2-sdk 2026-11-12 01:23:00 +01:00
jschoubben 67971c509d Fix 9.7b: one reading of who holds a seat, beside the seat list; operatorask takes it
Builds: design 47 G A-126

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 01:21:42 +01:00
jschoubben 31fe1f1adb Fix 9.7c: a read of a seat holder's state is its own kind, seat:<seat>.<state>
Builds: design 47 G A-128 (A-116)

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 01:18:57 +01:00
jschoubben bc5d6948ec Fix 9.7b: one reading of who holds a seat, beside the seat list; operatorask takes it
Builds: design 47 G A-126

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 01:18:57 +01:00
jschoubben 8af92dedac fix9-serves-1: mesh-sdk reads a process's serves beside its bus (ProcessServes); a serves inside bus is refused
Builds: design 47 G A-115, A-127

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 01:18:50 +01:00
jschoubben c263ce1fbd Fix 9.4c: views: entry-not-found is one of a views reader's finding kinds
Builds: design 47 G A-103, §639

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 01:12:29 +01:00
jschoubben c995030a96 Fix 9.4a: views: the entry-not-found finding and a reader's first views say added lists (entries by fingerprint)
Builds: design 47 G A-103, A-15, §614

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 01:08:53 +01:00
jschoubben 9545fad65b Merge branch 'feat/47-G-serve8' into feat/47-G-join8 2026-11-12 00:11:47 +01:00
jschoubben 9d3376b887 Merge branch 'feat/47-G-asker7' into feat/47-G-join8 2026-11-12 00:11:47 +01:00
jschoubben 5f605b2e1c Merge branch 'feat/47-G-catchup7' into feat/47-G-join8 2026-11-12 00:11:47 +01:00
jschoubben ff0e4c625e Merge branch 'feat/47-G-maxmib6' into feat/47-G-join8 2026-11-12 00:11:47 +01:00
jschoubben db73c7a629 serve8: a process's bus declares the seat verbs it serves
Builds: design 47 G A-107, A-109, A-110
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 23:58:13 +01:00
jschoubben ba6c2a5207 process: AnswerSeat answers a seat's verbs over the bus with the proved caller
A process answers its seat's verbs through one call: caller-named and
unproven subjects, one queue group per seat, reply {result, error, node}.
The rule that a process answers no call (issue 1171 AC3) is replaced by one
that AnswerSeat is the only way to serve. A compare-and-set write on a
process's own state already exists (State.Create, Update).

Builds: design 47 G A-107 (G-20-lead-answers)

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 23:50:15 +01:00
jschoubben a67213a17e operatorask: one operator-channel asker helper (holder on the seat list, publish, router's warrant, decided)
Builds: design 47 G A-101, §700, A-74, A-89
2026-11-11 23:36:05 +01:00
jschoubben a2df6f3653 stdio: TopicMatches understands the bus's > so an adopted follower hears every event
Builds: design 47 G A-101, §532, §521
2026-11-11 23:35:55 +01:00
jschoubben ff2c940627 Catalogue: a kept data's catch-up is {tool, arguments}, a string reads as the tool alone
Builds: design 47 G §631, §451
2026-11-11 23:21:51 +01:00
jschoubben 1dc848d7ed An old state section entry takes max-mib; buscompose caps the bucket at it
Builds: design 47 G §469, §695
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-11 22:46:28 +01:00
jschoubben ab3e7a7ec3 bus5 S-chunks (§681): the seat definition reader reads a verb's chunks; mesh-broker's bootstrap copies laid again from contracts cf5590c7
Builds: design 47 G §681, A-44
2026-11-11 22:38:16 +01:00
jschoubben bb7bd8dac3 Fix the kind: the seat set a host gives (catalogue.UseSeats) is held atomically, so a reload never races a lookup
Builds: design 47 G §419
2026-11-11 22:21:38 +01:00
jschoubben c0d8ebc5d9 Fix the kind: the package's test-replaced functions (clock, waitBound, subscribe) are held atomically
A test replaced a package function while a goroutine of an earlier subtest still called it (a data race under -race, a timing flake
otherwise). Each is a swappable value now, so no replacing races a call; -race -count=5 of the views tests is green.

Builds: design 47 G §419 (the tests of this package run in one test function)
2026-11-11 22:19:30 +01:00
jschoubben e72d258eec G A-40: the held writer seeds what it holds from its state at Start
Builds: design 47 G A-40, A-29
2026-11-11 22:16:50 +01:00
jschoubben 9b48c66c04 G A-38: HeldWriter.Held answers the findings it holds
Builds: design 47 G A-38, A-29
2026-11-11 22:11:37 +01:00
jschoubben 203b5d5bb7 G A-37: views.NewStdioHeldWriter, and the held writer holds the findings a reader writes through it
A stdio module's held writer fills Publish and Listen as NewStdioWriter does; HeldWriter.WriteWire holds the finding as Write does,
so a views reader's first-view findings are in the held set and in findings-stated.

Builds: design 47 G A-37, A-29, A-16
2026-11-11 22:08:21 +01:00
jschoubben a59ccad8e3 G B-1 (TypeScript): the tests G added are merged into existing ones, so mesh-sdk ends G with 49 TypeScript tests as it started
Builds: design 47 G §419, §626
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 22:03:50 +01:00
jschoubben 63a290db3d G B-1 (Go): the tests G added are merged into existing ones as subtests, so mesh-sdk ends G with the tests it started with
unit 302 and integration 34, as at the merge base 45e143f; the buscalls test moves beside busstate's.

Builds: design 47 G §419, §626
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 22:03:15 +01:00
jschoubben adf7392651 G A-29: views.HeldWriter, the writer of a part whose findings are raised as they happen, observes the findings it holds
Seeded from the state's keys before it starts, held under a lock of its own, its Observe answers them; Write and Clear keep the
held set. The watchman's copy moves here.

Builds: design 47 G A-29, §686
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 22:02:02 +01:00
jschoubben 513f5ee88f G M-8: an artifact takes calls, and mesh-sdk's package artifacts name the capability words their code calls
Go: finding-calls, ledger-upkeep-calls, put-sessions, sent-objects-calls; npm: finding-calls.

Builds: design 47 G §605, §622, §488
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 21:59:44 +01:00