b36f822cb6
Facts carry the format as a template, so the control plane holds none (ADR 0120)
jschoubben2026-09-27 01:33:20 +02:00
7180a273a2
The enrolment user is per token, and it has an inbox
jschoubben2026-09-27 01:31:34 +02:00
e65b3950cc
A node's declaration consumer, which only the mesh can make
jschoubben2026-09-27 01:24:46 +02:00
a0e09695e5
Merge pull request 'The uplink seat (ADR 0117), and the mesh's names written into the hosts file, not over it (hq 128)' (#79) from feat/the-uplink-seat-and-the-hosts-region into main
jschoubben2026-09-26 23:00:19 +00:00
88bef39952
The consume side on NATS, and the window held by the server
jschoubben2026-09-27 00:53:33 +02:00
06cf3c04e5
The consume side behind a seam, and the window wiring into the loop
jschoubben2026-09-27 00:44:16 +02:00
7a8a19b11b
A person's account (step 4.4, the account half)
jschoubben2026-09-27 00:17:52 +02:00
2fad32767e
The controller's outbound link behind a seam, with both transports
jschoubben2026-09-26 23:47:15 +02:00
51163b9f14
The mesh's names are written into the hosts file, not over it (hq 128)
jochen2026-09-26 23:46:51 +02:00
6557aca750
A machine's uplink is a seat (hq ADR 0117)
jochen2026-09-26 23:45:47 +02:00
1801f1178e
Hold the Go emitter to the shared fixtures
jschoubben2026-09-26 23:40:59 +02:00
f21a84c510
Merge pull request 'The controller marks a deliberately-empty declaration owns_nothing (hq 127)' (#78) from feat/controller-marks-owns-nothing into main
jschoubben2026-09-26 21:40:18 +00:00
e14b02991e
The controller marks a deliberately-empty declaration owns_nothing (hq 127)
jschoubben2026-09-26 23:40:04 +02:00
bf82805cfd
A manifest holds no subject, checked across all 72
jschoubben2026-09-26 23:34:42 +02:00
08ebb8c999
Merge pull request 'An empty declaration is sent, so a node drops what it last held (hq 127)' (#77) from fix/127-an-empty-declaration-is-sent into main
jschoubben2026-09-26 21:32:43 +00:00
0a8a592ef4
An empty declaration is sent, so a node drops what it last held (hq 127)
jschoubben2026-09-26 23:32:30 +02:00
173c8c7c21
Rename the mesh's seats to mesh-*, keeping their interfaces
jschoubben2026-09-26 23:07:09 +02:00
98d348d5b9
Merge pull request 'The mesh's interface takes over the found tunnel's MTU' (#76) from feat/controller-carries-tunnel-mtu into main
jschoubben2026-09-26 20:41:00 +00:00
7fc5fd02fd
The mesh's interface takes over the found tunnel's MTU
jschoubben2026-09-26 22:40:24 +02:00
50878a9d98
Merge pull request 'A taken tunnel brings its ListenPort, even on a node the hub cannot dial' (#75) from fix/a-taken-tunnel-brings-its-port into main
jschoubben2026-09-26 20:34:10 +00:00
cc252472e2
A taken tunnel brings its ListenPort, even on a node the hub cannot dial
jschoubben2026-09-26 22:33:27 +02:00
aa74bd86ca
Derive a seat's stream and a module's consumer, and wire JetStream
jschoubben2026-09-26 22:28:42 +02:00
d2ab0b2b82
Merge pull request 'The broker opening is only on the broker's host, not every node' (#74) from fix/foundation-opening-only-on-the-broker-host into main
jschoubben2026-09-26 20:20:50 +00:00
48d8c89749
The broker opening is only on the broker's host, not every node
jschoubben2026-09-26 22:20:10 +02:00
7232d6df4b
A module may declare its own seats (novox/hq ADR 0118)
jschoubben2026-09-26 22:17:17 +02:00
112cbd294d
Per-subject caps on EVENTS, and a comment corrected against the server
jschoubben2026-09-26 21:49:55 +02:00
553814b6eb
The mesh bus seat is one per mesh, and the amqp broker does not contend
jschoubben2026-09-26 21:40:03 +02:00
1f36787d75
The mesh's four streams, asserted on every start
jschoubben2026-09-26 21:02:18 +02:00
c753f9d5c0
Compose the bus's accounts instead of calling a management API
jschoubben2026-09-26 20:58:49 +02:00
2f7b407000
Merge pull request 'A carried peer is nameable, and the mesh answers for it (hq 112)' (#73) from feat/112-a-carried-peer-is-nameable into main
jschoubben2026-09-26 18:10:00 +00:00
952092ccb3
A carried peer is nameable, and the mesh answers for it (hq 112)
jschoubben2026-09-26 20:09:42 +02:00
fb87f9f7d6
The mesh-broker seat delivers nothing
jschoubben2026-09-26 19:34:14 +02:00
ed08cc1adc
Merge pull request 'A repeat assignment says nothing changed (ADR 0115)' (#72) from feat/a-second-assignment-says-so into main
jschoubben2026-09-26 17:02:49 +00:00
95426e25cf
Merge pull request 'A collision is two places, not two spellings' (#71) from fix/collisions-compare-placed-paths into main
jschoubben2026-09-26 16:25:40 +00:00
fda47558d5
A collision is two places, not two spellings
jschoubben2026-09-26 18:25:28 +02:00
8ea80f9584
Merge pull request 'The assignment's own root is a place, and the manifest's maps are placed' (#70) from feat/the-assignment-root-and-the-manifests-maps into main
jschoubben2026-09-26 16:18:27 +00:00
2e3b13c0f8
The assignment's own root is a place, and the manifest's maps are placed
jschoubben2026-09-26 18:18:13 +02:00
cd2481dcd8
Merge pull request 'A directory the mesh places: ${dir:<id>} and the pathless directory resource' (#69) from feat/a-directory-the-mesh-places into main
jschoubben2026-09-26 15:52:25 +00:00
d2cbc9dbdc
A directory the mesh places: ${dir:<id>} and the pathless directory resource
jschoubben2026-09-26 17:51:54 +02:00
e88d3bd485
Merge pull request 'A route may say the largest body it carries' (#68) from feat/a-route-may-limit-the-body-it-carries into main
jschoubben2026-09-26 14:01:56 +00:00
a287812e14
A route may say the largest body it carries
jochen2026-09-26 16:01:21 +02:00
557f419e71
Merge pull request 'mount the broker TLS directory bind, not the old named volume' (#54) from fix/own-broker-tls-mount-is-the-directory-bind into main
jschoubben2026-09-26 12:55:32 +00:00
71c8080359
Declare the broker's TLS directory as an access, not an undeclared bind
jochen2026-09-26 14:55:04 +02:00
0944311f86
Merge pull request 'Seats are a closed set, a seat's holder answers for what it delivers, and a build source may live on the git seat' (#63) from feat/seats-are-a-closed-set into main
jschoubben2026-09-26 12:31:16 +00:00
41de152739
Merge pull request 'route-proxy: a policy refusal is also not-my-token' (#67) from fix/a-policy-refusal-is-also-not-my-token into main
jschoubben2026-09-26 12:26:19 +00:00
dad0a153ff
route-proxy: a policy refusal is also not-my-token
jschoubben2026-09-26 14:26:01 +02:00
345722a4fd
Merge pull request 'route-proxy: the challenge path falls through for real' (#66) from fix/the-challenge-path-falls-through-for-real into main
jschoubben2026-09-26 12:22:21 +00:00
f145d17fc8
route-proxy: the challenge path falls through for real
jschoubben2026-09-26 14:21:52 +02:00
c3458a2546
Merge pull request 'route-proxy: a second authority for internal names, and https targets' (#64) from feat/route-proxy-internal-acme into main
jschoubben2026-09-25 19:54:51 +00:00
f8919e2079
Merge pull request 'builder: a clone may offer the forge's credential, through git's own store' (#65) from feat/builder-clones-with-the-forges-credential into main
jschoubben2026-09-25 19:54:39 +00:00
6ac9013d6e
builder: a clone may offer the forge's credential, through git's own store
jschoubben2026-09-25 21:47:32 +02:00
97448194ac
Seats are a closed set, a seat's holder answers for what it delivers, and a build source may live on the git seat
jochen2026-09-25 20:48:10 +02:00
5fad1f89cf
route-proxy: a second authority for internal names, and a target a route names the scheme of
jschoubben2026-09-25 20:37:03 +02:00
7ffe6ce21b
Merge pull request 'An image artifact may name its own build context, apart from the module's repository' (#62) from feat/an-artifact-may-name-its-own-build-context into main
jschoubben2026-09-25 15:39:45 +00:00
20e57c3f51
an image artifact may name its own build context, apart from the module's repository
jschoubben2026-09-25 17:39:27 +02:00
7bf23ea052
Merge pull request 'route-proxy serves a route's internal-name alias, never certifies it' (#61) from feat/route-proxy-serves-internal-alias into main
jschoubben2026-09-25 15:24:36 +00:00
6da55bdfea
route-proxy serves a route's internal-name alias, never certifies it
jschoubben2026-09-25 17:16:37 +02:00
752abaa81d
Merge pull request 'A route composes its internal-network alias too, not only its public name' (#60) from feat/route-carries-internal-alias into main
jschoubben2026-09-25 15:24:01 +00:00
2652287fe1
Merge pull request 'gitea's ssh port test matched a manifest mistake; resolver test used Names, not Machines' (#59) from fix/gitea-ssh-port-and-resolver-machines-test into main
jschoubben2026-09-25 15:23:48 +00:00
af26ed2e07
gitea's ssh port test matched a manifest mistake; resolver test used Names, not Machines
jschoubben2026-09-25 17:07:24 +02:00
f996a6707e
a route composes its internal-network alias too, not only its public name
jschoubben2026-09-25 16:51:38 +02:00
506426cf94
Merge pull request 'route-proxy: a route carries the policy applied to a request' (#58) from issue/116-route-proxy-has-no-auth-or-ip-restriction into main
jschoubben2026-09-25 12:21:43 +00:00
e11e1374bd
route-proxy: a priority is an ordering, not a port
jochen2026-09-25 14:20:06 +02:00
008ce39ec0
route-proxy: a route carries the policy applied to a request
jochen2026-09-25 14:00:57 +02:00
856fabda04
Merge pull request 'contributes: a module's grant carries no value where it contributed several times' (#57) from fix/several-contributions-collide-in-grants-v2 into main
jschoubben2026-09-24 17:39:55 +00:00
8fa5443862
contributes: a module's grant carries no value where it contributed several times
jschoubben2026-09-24 18:54:35 +02:00
3ece1a86d7
Merge pull request 'plan: show what a module would open and why' (#56) from feat/plan-shows-what-a-module-would-open into main
jschoubben2026-09-24 16:42:24 +00:00
dc8839246b
Merge pull request 'contributes: a module may answer one requirement several times' (#55) from feat/several-route-contributions-per-module into main
jschoubben2026-09-24 16:41:58 +00:00
524cc2a3ec
plan: show what a module would open and why
jschoubben2026-09-24 18:40:30 +02:00
f4bcb320fe
contributes: a module may answer one requirement several times
jschoubben2026-09-24 18:36:08 +02:00
caf9746759
mesh-controller: mount the broker TLS directory bind, not the old named volume
jschoubben2026-09-24 17:19:48 +02:00
6090953843
Merge pull request 'Tell the resolver the machines, not the names the mesh merely serves' (#53) from fix/the-resolver-is-told-machines-not-routes into main
jschoubben2026-09-23 23:32:22 +00:00
2277583e99
Tell the resolver the machines, not the names the mesh merely serves
jschoubben2026-09-24 01:31:11 +02:00
6bf42025e1
Merge pull request 'Give the resolver the mesh's suffix as a local domain and a module its machine's address' (#52) from convert/dnsmasq-from-hal into main
jschoubben2026-09-23 23:13:03 +00:00
0d8264ff55
Give the resolver the mesh's suffix as a local domain and a module its machine's address
jschoubben2026-09-23 23:55:34 +02:00
6073e94a4f
Merge pull request 'Adopt the predecessor's tunnel in place: its range, its address, its peers (hq ADR 0105)' (#49) from feat/adopt-the-tunnel into main
jschoubben2026-09-23 22:38:31 +00:00
4566c5c9aa
Adopt the tunnel as a mesh fact, refuse a mismatched takeover, and rekey after enrolment
jschoubben2026-09-24 00:02:07 +02:00
7ef7669c0c
Merge pull request 'An address is read from the node's settings where it is used, never recorded with a port (hq issue 102)' (#50) from fix/addresses-follow-the-node into main
jschoubben2026-09-23 21:55:03 +00:00
cdd3638312
The control plane's own manifest says where the node put the store and the broker
jschoubben2026-09-23 23:49:55 +02:00
e07b56ce43
An address is read from the node's settings where it is used, never recorded with a port
jschoubben2026-09-23 23:49:31 +02:00
1b5ccf4165
Merge pull request 'The artifact store's seat is one per mesh, and the test says so from the catalogue' (#51) from fix/the-artifact-store-is-one-per-mesh into main
jschoubben2026-09-23 21:42:33 +00:00
26690d89f1
The artifact store's seat is one per mesh, and the test says so from the catalogue
jschoubben2026-09-23 23:40:53 +02:00
3c836f0abb
Adopt the predecessor's tunnel in place: its range, its address, its peers
jschoubben2026-09-23 23:26:34 +02:00
8fb32d7ee0
Merge pull request 'A node may move a port a module publishes as a mapping's machine side' (#47) from fix/move-a-published-machine-port into main
jschoubben2026-09-23 00:33:06 +00:00
7d6f37af54
One entry per mapping, under the name the module itself uses
jschoubben2026-09-23 02:32:28 +02:00
58644fd282
A node may move a port a module publishes as a mapping's machine side
jschoubben2026-09-23 02:08:35 +02:00
91a41b7d20
Merge pull request 'A container's environment follows a moved port, as a file already does (hq issue 088)' (#46) from feat/forge-address into main
jschoubben2026-09-22 23:30:06 +02:00
f0049190d7
Prove the untouched environment is the same map, not an equal one
jschoubben2026-09-22 23:29:28 +02:00