2026-03-28 - 2026-09-28

Overview

106 Active Pull Requests
0 Active Issues
Excluding merges, 1 author has pushed 130 commits to main and 384 commits to all branches. On main, 197 files have changed and there have been 36955 additions and 5001 deletions.

105 Pull requests merged by 2 users

Merged #111 The controller follows the subject it decodes 2026-09-28 01:15:19 +00:00

Merged #110 A merge on the forge builds what it moved, bases first 2026-09-28 00:59:04 +00:00

Merged #109 rollout hand: a machine's membership, minted afresh and handed to an operator once 2026-09-28 00:40:26 +00:00

Merged #108 A store row keeps its seat's protocol, and a holder may take work from its queue 2026-09-28 00:09:28 +00:00

Merged #107 The build machine takes work on the bus its credential names, and the work queue has a taker 2026-09-27 23:59:56 +00:00

Merged #106 A principal may hear what its consumer delivers 2026-09-27 23:47:30 +00:00

Merged #105 The bus account has JetStream, and the control plane's client has its own inbox 2026-09-27 23:40:39 +00:00

Merged #104 The control plane pins the bus's certificate, and keeps its password out of errors 2026-09-27 23:35:56 +00:00

Merged #103 The control plane serves and pushes on the bus it is told to 2026-09-27 23:30:52 +00:00

Merged #102 A machine may bind its consumer 2026-09-27 23:18:20 +00:00

Merged #101 The mint leaves the control plane's old-bus secret alone 2026-09-27 23:08:35 +00:00

Merged #100 The control plane mounts the bus secret it reads 2026-09-27 23:03:42 +00:00

Merged #99 The network map resolves each machine with the seat holders on record 2026-09-27 22:56:56 +00:00

Merged #98 The control plane speaks the new bus 2026-09-27 22:38:28 +00:00

Merged #97 The mint names the bus by bare host, and can mint again 2026-09-27 22:37:37 +00:00

Merged #96 The mint finds the bus on the hub 2026-09-27 22:34:42 +00:00

Merged #95 The move mints every credential and tells each machine its membership 2026-09-27 22:30:58 +00:00

Merged #93 The first handover records the standing holder without re-judging it 2026-09-27 21:35:08 +00:00

Merged #92 AMQP is not a provision: the bus seat delivers the bus, and the word is refused 2026-09-27 21:30:09 +00:00

Merged #91 A seat is handed over as one act, and the holder is on record 2026-09-27 21:22:50 +00:00

Merged #90 The move ends with the old broker going, not staying 2026-09-27 21:05:47 +00:00

Merged #89 The store owns the seat set, so only the control plane may judge a claim 2026-09-27 20:00:05 +00:00

Merged #88 The Go base has to be 1.26: the NATS client requires it 2026-09-27 19:00:32 +00:00

Merged #87 The bus on NATS: both transports behind seams, and the rollout switch 2026-09-27 17:36:41 +00:00

Merged #86 The mesh owns the operator's ~/.ssh: account fact + home-scoped resources (to-be 29) 2026-09-27 15:51:55 +00:00

Merged #85 A module declares its fail2ban jail; mesh composes per node (to-be 31 mechanism) 2026-09-27 15:21:03 +00:00

Merged #84 A module can name the mesh's range: ${machine:mesh-range} 2026-09-27 14:52:24 +00:00

Merged #83 Seats keep their former names — a rename is one DB op (ADR 0122, phase 2) 2026-09-27 14:34:45 +00:00

Merged #82 Seats are data the controller owns, loaded from its store (ADR 0122, phase 1) 2026-09-27 14:05:40 +00:00

Merged #81 Name system seats by scope; let a module define its own (ADR 0121) 2026-09-27 12:32:27 +00:00

Merged #80 Facts carry the format as a template, so the control plane holds none (ADR 0120) 2026-09-26 23:51:23 +00:00

Merged #79 The uplink seat (ADR 0117), and the mesh's names written into the hosts file, not over it (hq 128) 2026-09-26 23:00:19 +00:00

Merged #78 The controller marks a deliberately-empty declaration owns_nothing (hq 127) 2026-09-26 21:40:18 +00:00

Merged #77 An empty declaration is sent, so a node drops what it last held (hq 127) 2026-09-26 21:32:43 +00:00

Merged #76 The mesh's interface takes over the found tunnel's MTU 2026-09-26 20:41:00 +00:00

Merged #75 A taken tunnel brings its ListenPort, even on a node the hub cannot dial 2026-09-26 20:34:10 +00:00

Merged #74 The broker opening is only on the broker's host, not every node 2026-09-26 20:20:51 +00:00

Merged #73 A carried peer is nameable, and the mesh answers for it (hq 112) 2026-09-26 18:10:00 +00:00

Merged #72 A repeat assignment says nothing changed (ADR 0115) 2026-09-26 17:02:49 +00:00

Merged #71 A collision is two places, not two spellings 2026-09-26 16:25:40 +00:00

Merged #70 The assignment's own root is a place, and the manifest's maps are placed 2026-09-26 16:18:27 +00:00

Merged #69 A directory the mesh places: ${dir:<id>} and the pathless directory resource 2026-09-26 15:52:26 +00:00

Merged #68 A route may say the largest body it carries 2026-09-26 14:01:58 +00:00

Merged #54 mount the broker TLS directory bind, not the old named volume 2026-09-26 12:55:32 +00:00

Merged #63 Seats are a closed set, a seat's holder answers for what it delivers, and a build source may live on the git seat 2026-09-26 12:31:16 +00:00

Merged #67 route-proxy: a policy refusal is also not-my-token 2026-09-26 12:26:19 +00:00

Merged #66 route-proxy: the challenge path falls through for real 2026-09-26 12:22:21 +00:00

Merged #64 route-proxy: a second authority for internal names, and https targets 2026-09-25 19:54:51 +00:00

Merged #65 builder: a clone may offer the forge's credential, through git's own store 2026-09-25 19:54:40 +00:00

Merged #62 An image artifact may name its own build context, apart from the module's repository 2026-09-25 15:39:48 +00:00

Merged #61 route-proxy serves a route's internal-name alias, never certifies it 2026-09-25 15:24:37 +00:00

Merged #60 A route composes its internal-network alias too, not only its public name 2026-09-25 15:24:02 +00:00

Merged #59 gitea's ssh port test matched a manifest mistake; resolver test used Names, not Machines 2026-09-25 15:23:49 +00:00

Merged #58 route-proxy: a route carries the policy applied to a request 2026-09-25 12:21:46 +00:00

Merged #57 contributes: a module's grant carries no value where it contributed several times 2026-09-24 17:39:55 +00:00

Merged #56 plan: show what a module would open and why 2026-09-24 16:42:25 +00:00

Merged #55 contributes: a module may answer one requirement several times 2026-09-24 16:41:58 +00:00

Merged #53 Tell the resolver the machines, not the names the mesh merely serves 2026-09-23 23:32:22 +00:00

Merged #52 Give the resolver the mesh's suffix as a local domain and a module its machine's address 2026-09-23 23:13:03 +00:00

Merged #49 Adopt the predecessor's tunnel in place: its range, its address, its peers (hq ADR 0105) 2026-09-23 22:38:31 +00:00

Merged #50 An address is read from the node's settings where it is used, never recorded with a port (hq issue 102) 2026-09-23 21:55:03 +00:00

Merged #51 The artifact store's seat is one per mesh, and the test says so from the catalogue 2026-09-23 21:42:33 +00:00

Merged #47 A node may move a port a module publishes as a mapping's machine side 2026-09-23 00:33:07 +00:00

Merged #46 A container's environment follows a moved port, as a file already does (hq issue 088) 2026-09-22 21:30:06 +00:00

Merged #45 Hold the forge to being an ordinary provider, in tests (hq issue 085) 2026-09-22 19:59:52 +00:00

Merged #44 Adoption mode: a node in use is adopted before it is converged (hq ADR 0100–0103) 2026-09-22 19:01:51 +00:00

Merged #43 Nothing the control queue carries is lost while the store restarts (issue 083) 2026-09-22 12:42:58 +00:00

Merged #42 A report that arrives while the store restarts is kept, not lost (issue 082) 2026-09-22 11:53:13 +00:00

Merged #41 Every machine was named twice over; only a machine on the private network is named (issue 079) 2026-09-22 00:19:14 +00:00

Merged #40 Multiple fixes: a run-once step may name what it reads (ADR 0099); secret accept refuses an undeclared name (078) 2026-09-21 21:58:47 +00:00

Merged #39 The control plane's recipe declares its base, and an undeclared FROM is refused (ADR 0097 live) 2026-09-21 20:58:22 +00:00

Merged #38 Multiple fixes: several secrets per module (069), ask a module's tool (049), copy an upstream image (046), declare a vendor image (064) 2026-09-21 19:05:11 +00:00

Merged #37 Multiple fixes: a stuck machine is said to be one (065), an undeclared mount is refused (026), an operator delivers a pair credential (070) 2026-09-21 17:23:34 +00:00

Merged #36 The link knows a superseded report (issue 031) 2026-09-21 11:48:43 +00:00

Merged #35 A secret reaches a process as a file (ADR 0086, closes issue 041) 2026-09-21 09:59:02 +00:00

Merged #34 Secrets vault: operator key, a second seal on every secret, recovery and export 2026-09-21 07:34:48 +00:00

Merged #33 The catalogue moves out, to novox/mesh-catalog 2026-09-20 20:13:39 +00:00

Merged #32 The consistency cascade sends tolerantly and stops loudly (057 review) 2026-09-20 11:41:55 +00:00

Merged #31 One push leaves the mesh consistent; the foundation's ports are forwarded (057, 063) 2026-09-20 10:53:15 +00:00

Merged #30 The broker credential resolves the seat, not the hub (issue 059) 2026-09-17 23:12:50 +00:00

Merged #29 The network carries the registry trust (ADR 0082, issues 042/048/062) 2026-09-17 23:00:37 +00:00

Merged #28 The controller's seat is mesh-controller; second-node assignment refused 2026-09-17 00:16:05 +00:00

Merged #27 A cross-node module reaches the broker by the hub's overlay name 2026-09-16 23:44:42 +00:00

Merged #26 Self-upgrade installer: SDK-by-version, mesh-controller rename, foundation adopted 2026-09-16 21:21:34 +00:00

Merged #25 Only a thing built and never run is unassignable 2026-09-14 15:33:03 +00:00

Merged #24 ssh is never left without a rule 2026-09-14 15:16:31 +00:00

Merged #23 The firewall governs what is forwarded, and never closes ssh 2026-09-14 13:27:35 +00:00

Merged #22 A module that puts nothing on a machine cannot be assigned to one 2026-09-14 09:09:21 +00:00

Merged #21 An artifact may name which stage of its recipe to stop at 2026-09-14 00:02:29 +00:00

Merged #20 A module is a repository and a path, the builder announces what it made, and the mesh acts on it 2026-09-13 09:16:33 +00:00

Merged #19 resolve: one un-hostable assignment no longer takes down a whole node's push 2026-09-08 16:45:22 +00:00

Merged #18 catalogue: deliver a keyless same-node provider's served facts 2026-09-07 03:25:58 +00:00

Merged #17 adapters: openai is a static-key vendor 2026-09-07 02:25:54 +00:00

Merged #16 catalogue: give host-network containers the mesh's names too 2026-09-07 02:08:19 +00:00

Merged #15 model-access: refreshable-grant — manager holds the refresh token, control plane never reads it 2026-09-07 00:48:49 +00:00

Merged #14 model-access B: the refreshable-grant machinery (ADR 0050 carve-out) 2026-09-06 22:25:15 +00:00

Merged #13 model-access A: provider→vendor + adapter dispatch + static-key (ADR 0050 foundation) 2026-09-06 22:02:28 +00:00

Merged #12 fix: a require-only consumer of a parameterless provision still asks (mint gap) 2026-09-06 21:21:25 +00:00

Merged #11 schedule: parse + validate a cron on a container, refuse run-once+schedule (ADR 0053) 2026-09-06 12:27:42 +00:00

Merged #10 fix: a ${secret:} placeholder must fill from the file-owner's credential (provider-seal-key gate) 2026-09-06 11:47:23 +00:00

Merged #9 run-once: a container the host runs to completion (ADR 0052) 2026-09-05 22:05:06 +00:00

Merged #8 A module accesses operator-owned data, it does not own it (ADR 0051) 2026-09-05 20:48:11 +00:00

Merged #7 A bare alive moves last_seen and nothing else (convergence race fix) 2026-09-05 20:47:23 +00:00

Merged #6 Resync hq ADR references (0044-0054 -> 0039-0049) 2026-09-05 10:47:53 +00:00

Merged #5 broker: a module account scopes its tool serve queues + mesh.rpc (ADR 0052) 2026-09-05 01:06:52 +00:00

1 Pull request proposed by 1 user

Proposed #94 The two seat commands appear in the usage text 2026-09-27 21:48:19 +00:00