5718add8c3
Merge pull request 'A cross-node module reaches the broker by the hub's overlay name' (#27) from multi-node/broker-reaches-over-overlay into main
jschoubben2026-09-17 01:44:41 +02:00
afce2a5f41
A cross-node module reaches the broker by the hub's overlay name, not the public address
jschoubben2026-09-17 01:34:11 +02:00
68201c6478
Merge pull request 'Self-upgrade installer: SDK-by-version, mesh-controller rename, foundation adopted' (#26) from feat/a-bed-that-hands-over-nothing into main
jschoubben2026-09-16 23:21:34 +02:00
dda001d64b
The firewall opens the port the mesh itself runs on
jschoubben2026-09-15 00:54:31 +02:00
5062c36fc9
A binding answered on this very node still carries an address
jschoubben2026-09-14 21:11:37 +02:00
30dfc9969c
Merge pull request 'Only a thing built and never run is unassignable' (#25) from fix/only-a-build-input-is-unassignable into main
jschoubben2026-09-14 17:33:02 +02:00
25d2fe1308
Only a thing built and never run is unassignable
jschoubben2026-09-14 17:32:43 +02:00
68e9a16c57
Merge pull request 'ssh is never left without a rule' (#24) from fix/ssh-is-never-left-with-no-rule into main
jschoubben2026-09-14 17:16:31 +02:00
55d468798d
ssh is never left without a rule
jschoubben2026-09-14 16:53:39 +02:00
844dd09434
Merge pull request 'The firewall governs what is forwarded, and never closes ssh' (#23) from feat/the-firewall-covers-forwarded-traffic into main
jschoubben2026-09-14 15:27:34 +02:00
c8d8211385
The firewall governs what is forwarded, and never closes ssh
jschoubben2026-09-14 15:27:10 +02:00
260447282e
Merge pull request 'A module that puts nothing on a machine cannot be assigned to one' (#22) from feat/a-module-that-runs-nowhere-is-not-assignable into main
jschoubben2026-09-14 11:09:20 +02:00
95a9da8bdb
A module that puts nothing on a machine cannot be assigned to one
jschoubben2026-09-14 11:08:32 +02:00
91db25389e
Merge pull request 'An artifact may name which stage of its recipe to stop at' (#21) from feat/build-and-run-are-two-images into main
jschoubben2026-09-14 02:02:28 +02:00
811b805c67
An artifact may name which stage of its recipe to stop at
jschoubben2026-09-14 01:57:07 +02:00
cfe2816495
A module names the module its build stands on, not a copy of it
jschoubben2026-09-13 23:53:22 +02:00
cb5108a864
Merge pull request 'A module is a repository and a path, the builder announces what it made, and the mesh acts on it' (#20) from feat/a-module-is-a-repository-and-a-path into main
jschoubben2026-09-13 11:16:32 +02:00
21abd948aa
Say that a module is unbuilt, rather than letting a machine call it malformed
jschoubben2026-09-13 04:56:00 +02:00
3a08789d3c
The control plane's declaration lives with the control plane
jschoubben2026-09-13 03:27:10 +02:00
1a48214ef0
Flags may sit on either side of the repository
jschoubben2026-09-13 03:26:02 +02:00
603be706fc
The builder builds one module and stops, with no broker and no registry
jschoubben2026-09-13 03:24:10 +02:00
588aa424e2
The mesh acts on what the catalogue decided a build meant
jschoubben2026-09-13 01:55:07 +02:00
ca689073c4
A build says which machine made it, in the mesh's name for that machine
jschoubben2026-09-13 01:05:40 +02:00
3ffddff8ed
The builder announces what it built, and what it was built on top of
jschoubben2026-09-13 00:57:41 +02:00
f151de103f
Build a module from a repository and a path within it
jschoubben2026-09-12 16:45:50 +02:00
c4030947b0
The routing record is 0066, not 0056
jschoubben2026-09-11 00:09:56 +02:00
522d8be925
Read a context's store connection from a file, not only from the environment
jschoubben2026-09-10 23:40:37 +02:00
c6029504e4
Merge branch 'fix/settings-assign-and-cli' into feat/adr-0056-compose-and-propagate
jschoubben2026-09-10 21:17:46 +02:00
72f30e9c29
overlay: placing a node with nothing said no longer unplaces it
jschoubben2026-09-10 21:17:09 +02:00
0be227bd7e
status: one machine that cannot be worked out no longer takes the answer from the rest
jschoubben2026-09-10 21:12:06 +02:00
946fddd622
catalogue: a module may name the machine it was assigned to
jschoubben2026-09-10 21:12:04 +02:00
acbb8cf6da
node public-domain: asking what it is no longer takes it away
jschoubben2026-09-10 21:11:48 +02:00
d032fe6e8d
assign: what it checks is the mesh, not the one machine
jschoubben2026-09-10 21:11:33 +02:00
f5f860fd2b
inventory: forgetting a module says what goes with it, and refuses until told
jschoubben2026-09-10 21:11:15 +02:00
9fab0b731a
catalogue: a contribution reaches the port its own machine published, from any machine
jschoubben2026-09-10 21:08:09 +02:00
e78c849002
catalogue: a provider that names a provision and says nothing is not the answer
jschoubben2026-09-10 21:04:01 +02:00
76fcbda9a7
route-proxy: an ACME account belongs to the authority that issued it
jschoubben2026-09-10 21:02:00 +02:00
54cb915c4e
push: one machine that cannot be worked out no longer holds back the mesh
jschoubben2026-09-10 20:59:21 +02:00
b824c65ab0
catalogue: a co-located provider's served values, and a co-located contribution's port
jschoubben2026-09-10 20:57:14 +02:00
0fb2ab7716
catalogue: composeName handles the apex label '@' (bare public domain)
jschoubben2026-09-10 00:27:11 +02:00
98f5d34610
route-proxy: an empty ACME_CA_BUNDLE means the system trust store
jschoubben2026-09-10 00:22:06 +02:00
232862315c
catalogue: compose a route's name from a label and its node's domain, and resolve it in-mesh
jschoubben2026-09-09 23:27:35 +02:00
c147a26138
catalogue: announce a same-node provider at the port it is published on
jschoubben2026-09-09 23:02:50 +02:00
9e29772ed4
Merge pull request 'resolve: one un-hostable assignment no longer takes down a whole node's push' (#19) from feat/assign-hostability into main
jschoubben2026-09-08 18:45:21 +02:00
a92c11be12
Resolve: one un-hostable assignment no longer refuses the whole node
jschoubben2026-09-08 18:37:41 +02:00
474382c141
Merge pull request 'catalogue: deliver a keyless same-node provider's served facts' (#18) from feat/serve-here-keyless into main
jschoubben2026-09-07 05:25:57 +02:00
b78a911e34
catalogue: deliver a keyless same-node provider's served facts
jschoubben2026-09-07 05:08:04 +02:00
e5eaa0478a
Merge pull request 'adapters: openai is a static-key vendor' (#17) from feat/openai-access into main
jschoubben2026-09-07 04:25:53 +02:00
55753d5cfd
adapters: openai is a static-key vendor
jschoubben2026-09-07 04:25:26 +02:00
e03833ec40
Merge pull request 'catalogue: give host-network containers the mesh's names too' (#16) from feat/usage-store into main
jschoubben2026-09-07 04:08:19 +02:00
958bef56c7
catalogue: give host-network containers the mesh's names too
jschoubben2026-09-07 03:44:28 +02:00
d9c4818e6d
Merge pull request 'model-access: refreshable-grant — manager holds the refresh token, control plane never reads it' (#15) from feat/model-access-submit into main
jschoubben2026-09-07 02:48:49 +02:00
33fd28ffa6
licences: deliver the refresh token by the ordinary sealed path, not a bespoke envelope
jschoubben2026-09-07 01:55:08 +02:00
8e0c22fc2e
licences: submit-refresh, the module-produced refresh entry point
jschoubben2026-09-07 01:00:27 +02:00
59faa150ac
Merge pull request 'model-access B: the refreshable-grant machinery (ADR 0050 carve-out)' (#14) from feat/model-access-refreshable into main
jschoubben2026-09-07 00:25:15 +02:00
163200c4dd
Merge pull request 'model-access A: provider→vendor + adapter dispatch + static-key (ADR 0050 foundation)' (#13) from feat/model-access-vendor into main
jschoubben2026-09-07 00:02:27 +02:00
ddb41baaf4
Model access is vendor-agnostic: rename provider→vendor, add adapter seam (Phase A)
jschoubben2026-09-06 23:49:12 +02:00
671fb4f8f3
Merge pull request 'fix: a require-only consumer of a parameterless provision still asks (mint gap)' (#12) from fix/require-only-mint into main
jschoubben2026-09-06 23:21:25 +02:00
d0ef659824
fix: a require-only consumer of a parameterless provision still asks (and is minted a credential)
jschoubben2026-09-06 23:20:58 +02:00
b69fbc0e86
Merge pull request 'schedule: parse + validate a cron on a container, refuse run-once+schedule (ADR 0053)' (#11) from feat/schedule-container into main
jschoubben2026-09-06 14:27:41 +02:00
78b8b6e256
catalogue: carry and validate a container schedule (ADR 0053)
jschoubben2026-09-06 14:08:51 +02:00
dc65440e31
Merge pull request 'fix: a ${secret:} placeholder must fill from the file-owner's credential (provider-seal-key gate)' (#10) from fix/secret-per-consumer into main
jschoubben2026-09-06 13:47:22 +02:00
99a753994e
fix: fill a ptr-secret placeholder from the file-owner's credential, not the last consumer's
jschoubben2026-09-06 13:46:55 +02:00
3b0f17b8fd
Merge pull request 'run-once: a container the host runs to completion (ADR 0052)' (#9) from feat/lifecycle-run-once into main
jschoubben2026-09-06 00:05:06 +02:00
f96c247c5f
catalogue: run-once is a step the host runs to completion (ADR 0052)
jschoubben2026-09-05 23:57:33 +02:00
6bb9434298
Merge pull request 'A module accesses operator-owned data, it does not own it (ADR 0051)' (#8) from feat/shared-data-access into main
jschoubben2026-09-05 22:48:11 +02:00
bcdde475cd
Merge pull request 'A bare alive moves last_seen and nothing else (convergence race fix)' (#7) from fix/service-only-converge into main
jschoubben2026-09-05 22:47:23 +02:00
cae9a3e54f
A bare alive moves last_seen and nothing else
jschoubben2026-09-05 22:37:53 +02:00
aeb65a3e1d
catalogue: a module accesses operator-owned data, and does not own it
jschoubben2026-09-05 22:10:58 +02:00
59fcb41855
Merge pull request 'Resync hq ADR references (0044-0054 -> 0039-0049)' (#6) from feat/adr-ref-resync into main
jschoubben2026-09-05 12:47:52 +02:00
87c193b202
Resync hq ADR references 0044-0054 -> 0039-0049 after the hq record reconciliation
jschoubben2026-09-05 12:47:13 +02:00
5541949b59
Merge pull request 'broker: a module account scopes its tool serve queues + mesh.rpc (ADR 0052)' (#5) from events/tool-account-scope into initialization
jschoubben2026-09-05 03:06:51 +02:00
9b7ba2e20c
identity: a consumer's identity fits the tightest backend, via a slug (ADR 0054)
jschoubben2026-09-05 02:51:39 +02:00
b1bf1659d9
broker: a module account scopes its tool serve queues and mesh.rpc (ADR 0052)
jschoubben2026-09-04 21:56:05 +02:00
b306c74467
filtering: a per-node 'expose' setting overrides a listen's source (ADR 0051)
jschoubben2026-09-04 21:12:33 +02:00
931ca6f01e
cli: module issue seals the node and module into the credential
jschoubben2026-09-04 01:53:23 +02:00
64496f0335
broker: the substrate pre-declares a consumer's dead-lettered queue (ADR 0048)
jschoubben2026-09-04 01:51:17 +02:00
f41d280e66
cli: module issue — deliver a module its scoped broker account (ADR 0048)
jschoubben2026-09-04 01:33:03 +02:00
47bbb0cca6
broker: a generic module account, scoped by emits and consumes (ADR 0048)
jschoubben2026-09-04 01:31:19 +02:00
2c06c0d663
manifest: emits and consumes — the event relationship
jschoubben2026-09-03 23:44:30 +02:00
68a9235792
The mount gate knows a facility from a directory
jschoubben2026-09-02 02:09:10 +02:00
d278edabe0
Three more: nodered, icecast, portainer
jschoubben2026-09-02 02:08:33 +02:00
1c4e10e0d8
The cache keeps no ACL file, and the watch keeps the cache
jschoubben2026-09-02 01:23:38 +02:00