Issues 106 and 138 resolved (ADR 0161 built and live); 187 notes a report lost without retry
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
---
|
---
|
||||||
status: located
|
status: resolved
|
||||||
opened: 2026-09-23
|
opened: 2026-09-23
|
||||||
located-in: [mesh-controller internal/catalogue/seats.go (the seed lacks mesh-vault), mesh-catalog modules/mesh-vault/module.json (claims nothing)]
|
located-in: [mesh-controller internal/catalogue/seats.go (the seed lacks mesh-vault), mesh-catalog modules/mesh-vault/module.json (claims nothing)]
|
||||||
fixed-by:
|
fixed-by: mesh-controller PR 192 (the seat row), mesh-catalog PR 205 (the claim; the vault's events renamed to its own)
|
||||||
amended-design: [03-DESIGN/01-to-be/26-the-seats.md]
|
amended-design: [03-DESIGN/01-to-be/26-the-seats.md]
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -39,3 +39,11 @@ own set, mesh-scoped, delivering `secret`, and the vault claims it; a second pro
|
|||||||
claimant, refused by name. The record also answers the second question: a provision the mesh's own
|
claimant, refused by name. The record also answers the second question: a provision the mesh's own
|
||||||
code dereferences by name gets a seat, every other mesh-scoped provision may have several providers.
|
code dereferences by name gets a seat, every other mesh-scoped provision may have several providers.
|
||||||
Design 26's *reserved* for `secret` named an effect no rule produced; corrected there.
|
Design 26's *reserved* for `secret` named an effect no rule produced; corrected there.
|
||||||
|
|
||||||
|
## Resolved, 2026-10-01
|
||||||
|
|
||||||
|
`seats` on the live mesh lists `mesh-vault` at mesh scope, delivering `secret`, held by the vault on
|
||||||
|
the control node. A second provider of `secret` is now a second claimant and refused by name
|
||||||
|
(`CanHold`'s test). Found on the way: the vault's definition could not be rebuilt at all — it emitted
|
||||||
|
`secret.provisioned` and the like, which the builder reads as another module's events — so the events
|
||||||
|
are now the vault's own, `provisioned`, `rotated`, `deprovisioned`.
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
---
|
---
|
||||||
status: located
|
status: resolved
|
||||||
opened: 2026-09-28
|
opened: 2026-09-28
|
||||||
located-in: [mesh-host internal/profile/detectors.go (no detector for the network manager), mesh-host cmd/mesh-host (the profile is detected at enrolment only), mesh-controller internal/link (a report carries no profile), mesh-catalog modules/networkmanager, systemd-networkd, dhcpcd (declare no capability of their own)]
|
located-in: [mesh-host internal/profile/detectors.go (no detector for the network manager), mesh-host cmd/mesh-host (the profile is detected at enrolment only), mesh-controller internal/link (a report carries no profile), mesh-catalog modules/networkmanager, systemd-networkd, dhcpcd (declare no capability of their own)]
|
||||||
fixed-by:
|
fixed-by: mesh-controller PR 192 (a report carries the profile), mesh-host PR 61 (uplink-<manager> detected and reported with every apply), mesh-catalog PR 206 (each holder declares its own)
|
||||||
amended-design: [03-DESIGN/01-to-be/26-the-seats.md]
|
amended-design: [03-DESIGN/01-to-be/26-the-seats.md]
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -63,3 +63,16 @@ capability refusal does the rest, naming it. The profile is detected again by ev
|
|||||||
travels in the report, so a machine that switches managers is refused at its next push. The uplink
|
travels in the report, so a machine that switches managers is refused at its next push. The uplink
|
||||||
stays one seat; the capability picks the dialect. Order of building: controller (a report may carry
|
stays one seat; the capability picks the dialect. Order of building: controller (a report may carry
|
||||||
a profile), host, then the three definitions.
|
a profile), host, then the three definitions.
|
||||||
|
|
||||||
|
## Resolved, 2026-10-01
|
||||||
|
|
||||||
|
Every machine now reports which network manager it runs — the control node `uplink-systemd-networkd`,
|
||||||
|
the laptop and the workstation `uplink-networkmanager`, the home server both `uplink-dhcpcd` and
|
||||||
|
`uplink-networkmanager`, which is its truth — renewed with every report, and each holder declares the
|
||||||
|
capability it needs, so the wrong holder is refused on assignment with the capability named. The uplink
|
||||||
|
stays one seat; the capability picks the dialect. A machine that switches managers is a machine whose
|
||||||
|
holder lacks a capability at its next push.
|
||||||
|
|
||||||
|
*How it is checked:* the host's detector test per manager; the controller's test that a report's
|
||||||
|
profile replaces the enrolled one; the capability refusal's existing tests; live, `node show <machine>`
|
||||||
|
lists `uplink-<manager>` for each.
|
||||||
|
|||||||
@@ -30,6 +30,10 @@ it began, and each invisible to every surface the mesh offers:
|
|||||||
In every case the designed fallback held — runtimes served the derived shape, a push later carried
|
In every case the designed fallback held — runtimes served the derived shape, a push later carried
|
||||||
what an earlier one had not — which is why the mesh kept working and why nobody was told.
|
what an earlier one had not — which is why the mesh kept working and why nobody was told.
|
||||||
|
|
||||||
|
One more the same evening: the laptop applied a declaration and logged *applied, and could not tell
|
||||||
|
the mesh: reporting: context canceled*. The report was not retried; the mesh went on believing the
|
||||||
|
machine's previous state until the next push, and nothing on either side counted the loss.
|
||||||
|
|
||||||
## Why this is here
|
## Why this is here
|
||||||
|
|
||||||
The repository's own rule is that a rule states how it is checked, and every record here does. But
|
The repository's own rule is that a rule states how it is checked, and every record here does. But
|
||||||
|
|||||||
Reference in New Issue
Block a user