Say the uplink verbs shipped optional, not staged: a progressive insight in ADR 0241, corrected in to-be 48
The controller that merged (mesh-controller #116) dropped the staged seat and marked both verbs optional, stored in the seat's row and read back optional.
This commit is contained in:
+12
@@ -144,6 +144,18 @@ Nobody opens a terminal on the machine. The verbs are *staged*: promised and rou
|
|||||||
of holding the seat, and never stored in the seat's row. A controller older than them reads the row and
|
of holding the seat, and never stored in the seat's row. A controller older than them reads the row and
|
||||||
would refuse every holder of its time. A later change requires them once both holders serve them.
|
would refuse every holder of its time. A later change requires them once both holders serve them.
|
||||||
|
|
||||||
|
> **Progressive insight — 2026-10-07.** The verbs did not ship *staged*. This rule said they were
|
||||||
|
> "promised and routed, but not yet a condition of holding the seat, and never stored in the seat's row",
|
||||||
|
> and the check for rule 8 in the table below said "a staged verb is never seeded into the row and comes
|
||||||
|
> back from the binary". The controller that merged (mesh-controller #116) has no staged seat. It marks
|
||||||
|
> both verbs optional (`Verb.Optional`). An optional verb is promised, so a claim serving it is accepted,
|
||||||
|
> but it is not required, so a holder serving neither still holds the seat. It is seeded into the seat's
|
||||||
|
> row like any verb, and it stays optional when read back, because the mark is taken from the seat as
|
||||||
|
> compiled. Mesh-controller's `TestTheUplinkVerbsReadBackFromTheRowStayOptional` holds that. The
|
||||||
|
> decision is unchanged: promised now, required once both holders serve them. The general rule for a verb
|
||||||
|
> added to a held seat is [ADR 0246](0246-a-seats-new-verb-is-promised-before-it-is-required.md), from
|
||||||
|
> [issue 298](../04-ISSUES/298-a-new-seat-verb-deadlocks-across-two-repositories/00-report.md).
|
||||||
|
|
||||||
## Consequences
|
## Consequences
|
||||||
|
|
||||||
- **The VPN rewriting the laptop's file is said within about a minute,** naming FortiClient from its
|
- **The VPN rewriting the laptop's file is said within about a minute,** naming FortiClient from its
|
||||||
|
|||||||
@@ -261,7 +261,10 @@ the machine itself, beside its liveness looks, and says it in the same statement
|
|||||||
- **It reads and never acts** (§7). The reconcile writes the file back as it always has.
|
- **It reads and never acts** (§7). The reconcile writes the file back as it always has.
|
||||||
- **Asked further through the uplink seat.** `node-uplink` serves `resolvers` (the file, whether it is the
|
- **Asked further through the uplink seat.** `node-uplink` serves `resolvers` (the file, whether it is the
|
||||||
mesh's, its writer) and `links` (each link, its default route, the resolvers its manager knows). They are the
|
mesh's, its writer) and `links` (each link, its default route, the resolvers its manager knows). They are the
|
||||||
same from every holder, and staged until both holders serve them.
|
same from every holder, and optional until both holders serve them: promised, so a holder may serve them,
|
||||||
|
and not yet required to hold the seat (mesh-controller #116; the three steps of an added verb are
|
||||||
|
[ADR 0246](../../02-DECISIONS/0246-a-seats-new-verb-is-promised-before-it-is-required.md), from
|
||||||
|
[issue 298](../../04-ISSUES/298-a-new-seat-verb-deadlocks-across-two-repositories/00-report.md)).
|
||||||
|
|
||||||
## Phases
|
## Phases
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,10 @@ optional verb is promised, so a claim that serves it is accepted, but it is not
|
|||||||
that does not serve it still holds the seat. `failed` was first written as required and refused today's
|
that does not serve it still holds the seat. `failed` was first written as required and refused today's
|
||||||
holder. #114 made it optional and fixed a second hole. The mark was never stored, so a verb seeded into
|
holder. #114 made it optional and fixed a second hole. The mark was never stored, so a verb seeded into
|
||||||
a seat row came back required when the row was read. The working set now takes the mark from the
|
a seat row came back required when the row was read. The working set now takes the mark from the
|
||||||
compiled seat. #116 adds the uplink verbs as optional from the start.
|
compiled seat. #116 adds the uplink verbs as optional from the start. ADR 0241 rule 8 and to-be 48 §10
|
||||||
|
had called those two verbs *staged*, never stored in the seat's row. That was corrected on the day,
|
||||||
|
as a progressive insight in ADR 0241 and in place in to-be 48: they are optional, stored in the row, and
|
||||||
|
read back optional.
|
||||||
|
|
||||||
## Why it is a design issue
|
## Why it is a design issue
|
||||||
|
|
||||||
@@ -62,7 +65,7 @@ controller first promises the verb as optional, the holder serves it, and the co
|
|||||||
- `TestFailedIsAnOptionalVerbOfTheServiceManager`, `TestAnOptionalVerbStaysOptionalInASetReadFromTheStore`
|
- `TestFailedIsAnOptionalVerbOfTheServiceManager`, `TestAnOptionalVerbStaysOptionalInASetReadFromTheStore`
|
||||||
and `TestASeatsVerbGainsTheArgumentsTheBinaryNames` (#114);
|
and `TestASeatsVerbGainsTheArgumentsTheBinaryNames` (#114);
|
||||||
- `TestTheUplinkSeatPromisesItsVerbsAndRequiresNoneYet` and
|
- `TestTheUplinkSeatPromisesItsVerbsAndRequiresNoneYet` and
|
||||||
`TestTheUplinkVerbsReadBackFromTheRowStayOptional` (#116, open).
|
`TestTheUplinkVerbsReadBackFromTheRowStayOptional` (#116).
|
||||||
|
|
||||||
The trail is in [01-diagnosis.md](01-diagnosis.md). This is a core issue: at resolution it names its
|
The trail is in [01-diagnosis.md](01-diagnosis.md). This is a core issue: at resolution it names its
|
||||||
replay, or says in `replay-none:` why none is possible (ADR 0237).
|
replay, or says in `replay-none:` why none is possible (ADR 0237).
|
||||||
|
|||||||
Reference in New Issue
Block a user