Commit Graph
25 Commits
Author SHA1 Message Date
jschoubben cc2d3aafdb SD-M2b, SD-M2d: the checker's and mesh-config's events kept in their own streams are mesh.stream.<holder>.event.*
verdict, tag-wanted and preview.written ride the checker's own streams, renamed, retiring and retired
mesh-config's config-events stream, whose subjects are mesh.stream.<module>.event.<event>.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 13:17:26 +01:00
jschoubben 323e6a6be2 SD-M2a: mesh-broker's Held says the entry's state and why, so show says why an entry is in its state
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 13:15:18 +01:00
jschoubben b5db9466c2 ADR 0627 §1: operator-channel's client holds the asking and the warrant's checks over the contract's types
mesh-sdk's asks logic (an ask's check and digest, the act's digest, a warrant's For and Says, the condition's
encoding) and its asker client move here, over operatorchannel's generated Ask, Option, Warrant and Condition; the
digests are those asks gave (a row holds two of them), so a router and an asker of either build agree.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 13:13:59 +01:00
jschoubben a1ef06b20e ADR 0627 §1: the four registry seats' clients publish a file in parts over their own seat
Each client binds mesh-sdk's seat-neutral parts sender to its own seat's publish and publish-part and types, so no
client uses another seat's; each is a Go module and a package artifact of its own (ADR 0625 §3).

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 13:08:59 +01:00
jschoubben f32ea4ba75 SD-M2d: the checker's tag-wanted names the pull request's branch
The lead's ruling of 13:0x: the builder removes the tag when the branch ends, so it needs the branch.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 12:53:49 +01:00
jschoubben 96b7eeeaf7 SD-M2b: mesh-broker's events on the shared events stream, 7 days
The lead's ruling of 13:0x replaces 12:5x's said-subject: mesh-broker's events follow every seat, on
mesh.seat.mesh-broker.event.<event> in the shared events stream, 7 days; the bus module keeps a longer history on a
stream of its own module. So every seat family is that stream filtered to the seat's subjects: a definition says 7
days and no cap of its own, and the reader refuses anything else.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 12:53:19 +01:00
jschoubben c62ce1c309 ADR 0625: each seat defined whole is a Go module and a package artifact of its own
ADR 0625 §1-§3 (accepted 12:45): the seat set stays the root Go module's package; each seat defined whole is a Go
module of its own, since the fingerprint counts a Go module's go.mod and go.sum, so a change of one seat moves only
its importers. A seat's module imports nothing: the registry part's types are written into each registry seat whole,
so no seat module requires a sibling's version.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 12:48:57 +01:00
jschoubben 87412fd307 SD-M2d: operator-channel's decided kept 7 days, on the shared events stream
The lead's ruling of 12:5x: no record fixes 30 days; decided rides the shared events stream, 7 days, as on the bus today.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 12:42:35 +01:00
jschoubben f31de828e9 SD-M2b: mesh-broker's events on mesh.seat.mesh-broker.said.<event>
The lead's ruling of 12:5x (design 25 § 12.3): mesh-broker's events ride the bus module's own stream, 30 days,
on mesh.seat.mesh-broker.said.<event>, outside the shared events stream's mesh.seat.*.event.>, so the bus never
refuses the two as overlapping.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 12:42:16 +01:00
jschoubben f3a9cd17d6 SD-M2b: mesh-broker's events carry the binding and the verdict's revision (the lead's ruling, 12:4x)
The binding a module receives is one named type, Binding, the provision's form and each event's binding.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 12:35:30 +01:00
jschoubben e9c97f9e9f SD-M2a, SD-M2b: the registry and broker verbs are optional until their holders serve them (design 33 §7)
The deciding parts built with this seat list judge the running nats and gitea before their new builds are delivered;
a required verb they do not serve yet would refuse them as the seats' holders (mesh-host's composition and the grants
part's last-holder rule, read in their suites). The mark goes once every holder serves the verbs.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 12:33:59 +01:00
jschoubben 52b05d50cb SD-M4: mesh-contracts declares its Go and TypeScript packages, series 0.1, generated from its definitions (design 26)
Each package carries the contracts marker generated-from naming the module's root, where seats/, parts/ and format/
are. No merge-check.sh: the checker runs every repository's tests by Go's convention (ADR 0529).

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 12:27:55 +01:00
jschoubben 88972faf08 SD-M2a: a publish-part chunk is at most 760 KiB, so its message stays under the bus's 1 MiB with its fields
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 12:26:44 +01:00
jschoubben 5b4239e6d9 SD-M3: the node-engine seat's read-only verb pull-waits (design 51, A7's ENG-9)
Optional until every engine serves it; answers each failed pull waiting on a store's holder.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 12:19:52 +01:00
jschoubben 7f0b0f3b42 SD-M2c: retire takes ask
The ask's id beside the warrant (the hand act's id), as own-retired carries it (A4's request).

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 12:01:18 +01:00
jschoubben a6e3b3bb4f SD-M2a, SD-M2b: keep the record that made npm-package-registry and mesh-broker seats as their decision
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 11:55:32 +01:00
jschoubben f0a2feb778 SD-M3: each whole seat's package lists its verbs and events
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 11:54:38 +01:00
jschoubben c7fb8d6689 SD-M3: the Go and TypeScript generated from the definitions (design 26 *The generator*)
go/seats the seat list every reader compiles and every seat's name; a package per whole seat with its names, subjects,
types and a test of its fixtures; ts/ the same as a TypeScript package. Written by seatgen, never by hand.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 11:50:54 +01:00
jschoubben df74b712c0 SD-M3: every other seat at the seat list's grain, in its reading order (ADR 0613 §2)
Converted mechanically from mesh-sdk's compiled list at 5a38a12 by a program kept out of the repository; the three new
registry seats follow npm-package-registry, operator-channel the mesh's own seats.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 11:50:54 +01:00
jschoubben bf880e9f7f SD-M2d: mesh-delivery-checker and operator-channel whole (ADR 0620 §1, §2)
The checker's verdict and tag-wanted on its own family checker.asks, preview.written on its stream checks;
operator-channel written from the messenger's seat entry, decided its only seat event, offered and closed beside it.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 11:50:54 +01:00
jschoubben f7b3744a90 SD-M2c: mesh-config and mesh-vault whole, renames and retire new; the holders' own events beside them (ADR 0620 §1-§3, design 32)
The vault's definition leaves out accept and move-asks, which no holder served and nothing called.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 11:50:54 +01:00
jschoubben 4f37cc2db9 SD-M2b: mesh-broker whole: its eight verbs, nine events and the bus-state binding (design 25 § 12.3, ADR 0595 §5, §6)
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 11:50:54 +01:00
jschoubben 2fade8d603 SD-M2a: the four registry seats whole, their shared verbs written once (design 51, ADR 0605, ADR 0611, ADR 0617 §2)
publish, publish-part, versions and remove in the part registry; mirror and tags on the image seat; hold and release on
the two seats distribution holds; published, refused, removed, held and released on each seat's own family.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 11:50:54 +01:00
jschoubben 166aad0a99 SD-M1: the seat definition's format and its own schema (ADR 0608 §1, design 26)
One seat.json per seat at the whole grain or the seat list's, parts taken in whole, fixtures as data, an index for the
seat list's reading order; read strictly, at most 256 KiB.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 11:41:29 +01:00
jschoubben f9c3be614f Start the seat contracts' repository (ADR 0608 §5)
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 11:39:11 +01:00