Designs 51, 32: cite ADR 0618 for the windows' wake and the reference form
ADR 0618 is accepted: the node-engine seat's manifest-reads verb and its manifest-reads-changed event wake the old seat name's, the old-form and the rename windows, and the builder writes a new form only once every present node-engine states it. The next delivered stays only for the rename window's case the record does not cover. Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
This commit is contained in:
@@ -18,6 +18,7 @@ decisions:
|
|||||||
- "ADR 0609"
|
- "ADR 0609"
|
||||||
- "ADR 0612"
|
- "ADR 0612"
|
||||||
- "ADR 0613"
|
- "ADR 0613"
|
||||||
|
- "ADR 0618"
|
||||||
- "ADR 0606"
|
- "ADR 0606"
|
||||||
- "ADR 0595"
|
- "ADR 0595"
|
||||||
- "ADR 0596"
|
- "ADR 0596"
|
||||||
@@ -516,10 +517,14 @@ value it holds under the old name to the new name in its own state, without the
|
|||||||
module reports applied a build of it that reads the new name. mesh-config hears the status view's `delivered`
|
module reports applied a build of it that reads the new name. mesh-config hears the status view's `delivered`
|
||||||
events and, at its start and on each, asks its `node_haves` for every node, away ones included, since `delivered`
|
events and, at its start and on each, asks its `node_haves` for every node, away ones included, since `delivered`
|
||||||
counts only the nodes present (design 47); until then mesh-config answers both names. A node away when the last
|
counts only the nodes present (design 47); until then mesh-config answers both names. A node away when the last
|
||||||
`delivered` was said should close its window when it returns, with no other delivery: what wakes mesh-config then
|
`delivered` was said should close its window when it returns, with no other delivery: mesh-config also wakes on
|
||||||
is to be decided in ADR 0618 (reserved), the node-engine seat's event for a node's stated manifest-reads, said also
|
the node-engine seat's event `mesh.seat.node-engine.event.manifest-reads-changed`, said when a node's stated
|
||||||
on its return, as for the old seat name (design 51), never a watch of the node-engine's have state (ADR 0596).
|
capabilities change and when it returns after being away (ADR 0618 §4), as for the old seat name (design 51), and
|
||||||
**Until ADR 0618 is accepted**, such a node closes the window on the next `delivered`, whichever delivery says it. A node holding a window open
|
on it reads that node's stated capabilities through the seat's verb `manifest-reads` (ADR 0618 §3) and its applied
|
||||||
|
builds through `node_haves`, never a watch of the node-engine's have state (ADR 0596). ADR 0618 does not cover a
|
||||||
|
returned node that applies the module's new build only after its return event, since that build changes what the
|
||||||
|
module reads, not what the node-engine states: such a node closes the window on the next `delivered`, whichever
|
||||||
|
delivery says it. A node holding a window open
|
||||||
for seven days is mesh-config's finding naming the node, cleared when the window closes; `config_rename_close`
|
for seven days is mesh-config's finding naming the node, cleared when the window closes; `config_rename_close`
|
||||||
drops a node from a window by hand, recorded as a hand act.
|
drops a node from a window by hand, recorded as a hand act.
|
||||||
- **The checker asks the seat, never the module.** The seat `mesh-config` gains the optional verb `renames` (the
|
- **The checker asks the seat, never the module.** The seat `mesh-config` gains the optional verb `renames` (the
|
||||||
@@ -572,8 +577,8 @@ holder that does not serve it refuses `renamed-from` naming the verb, one meetin
|
|||||||
`renamed-from` naming the nodes, and a check that cannot ask fails saying so; `retire` with the warrant removes the
|
`renamed-from` naming the nodes, and a check that cannot ask fails saying so; `retire` with the warrant removes the
|
||||||
secret and emits `retired` and `own-retired`, without it, with a warrant for another name, or from a caller not on the list it is
|
secret and emits `retired` and `own-retired`, without it, with a warrant for another name, or from a caller not on the list it is
|
||||||
refused; a waiter on the vault's `rotated` or `own-replaced` does not wake on `own-retired`; a node that was away,
|
refused; a waiter on the vault's `rotated` or `own-replaced` does not wake on `own-retired`; a node that was away,
|
||||||
returning with a build that reads the new name, closes the rename window on the next `delivered` (until ADR 0618 is
|
returning with a build that reads the new name, closes the rename window on its `manifest-reads-changed` event when
|
||||||
accepted); `config_rename_close` drops a node from a window and records the hand act; a window held seven days and a
|
it applied that build before the event (ADR 0618 §4), and on the next `delivered` when it applies it after; `config_rename_close` drops a node from a window and records the hand act; a window held seven days and a
|
||||||
retirement held seven days each write their finding naming the node, cleared when it closes.
|
retirement held seven days each write their finding naming the node, cleared when it closes.
|
||||||
|
|
||||||
### The mesh delivery cases this design carries
|
### The mesh delivery cases this design carries
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ decisions:
|
|||||||
- "ADR 0614"
|
- "ADR 0614"
|
||||||
- "ADR 0613"
|
- "ADR 0613"
|
||||||
- "ADR 0617"
|
- "ADR 0617"
|
||||||
|
- "ADR 0618"
|
||||||
- "ADR 0606"
|
- "ADR 0606"
|
||||||
- "ADR 0607"
|
- "ADR 0607"
|
||||||
- "ADR 0610"
|
- "ADR 0610"
|
||||||
@@ -79,11 +80,13 @@ it open for seven days is a finding naming the node, cleared when the window clo
|
|||||||
`distribution`'s own family `distribution.events`, kept seven days and capped at 16 MiB, dropping its oldest when
|
`distribution`'s own family `distribution.events`, kept seven days and capped at 16 MiB, dropping its oldest when
|
||||||
full (it carries a handful of events per window), never on a seat's `<seat>.events`: it is one module's window, not
|
full (it carries a handful of events per window), never on a seat's `<seat>.events`: it is one module's window, not
|
||||||
the seats' contract. A node away when the last `delivered` was said should close the window when it returns and
|
the seats' contract. A node away when the last `delivered` was said should close the window when it returns and
|
||||||
applies the new build, with no other delivery: what wakes `distribution` then is to be decided in ADR 0618
|
applies the new build, with no other delivery: `distribution` also wakes on the node-engine seat's event
|
||||||
(reserved), the node-engine seat's event for a change of a node's stated manifest-reads and the delivery view's read
|
`mesh.seat.node-engine.event.manifest-reads-changed`, which each node-engine says when the capabilities it states
|
||||||
of them, never a watch of the node-engine's have state (ADR 0596). **Until ADR 0618 is accepted**, such a node closes
|
change and when its node returns after being away (ADR 0618 §4), and on it reads that node's stated capabilities
|
||||||
the window on the next `delivered`, whichever delivery says it: `distribution` asks `node_haves` then, finds the
|
through the seat's verb `manifest-reads` (ADR 0618 §3), and its applied build through `node_haves`, never a watch of
|
||||||
returned node's new build, and closes. `cargo-package-registry` stays
|
the node-engine's have state (ADR 0596). A returned node that then applies the build whose node-engine reads the new
|
||||||
|
names says the event again, as its stated capabilities change, so ADR 0618 covers every node of this window and no
|
||||||
|
`delivered` is waited for. `cargo-package-registry` stays
|
||||||
named, without a holder, until a build module publishes cargo packages.
|
named, without a holder, until a build module publishes cargo packages.
|
||||||
|
|
||||||
**One contract, a seat definition** (design 26, *A seat's definition*). Verbs: `publish`, `publish-part` (ADR 0611), `versions`, `remove` (a
|
**One contract, a seat definition** (design 26, *A seat's definition*). Verbs: `publish`, `publish-part` (ADR 0611), `versions`, `remove` (a
|
||||||
@@ -373,14 +376,16 @@ publish of mesh-sdk or `mesh-contracts` triggers their users (ADR 0614 §6). The
|
|||||||
build and adds none (ADR 0613 §1). ADR 0614 bounds nothing here; a bound, such as a settle before building a
|
build and adds none (ADR 0613 §1). ADR 0614 bounds nothing here; a bound, such as a settle before building a
|
||||||
fingerprint whose inputs still move, is a question for a record, put to the operator, and is not designed here.
|
fingerprint whose inputs still move, is a question for a record, put to the operator, and is not designed here.
|
||||||
|
|
||||||
**The node-engine's own build keeps the old reference form** until every node-engine states the capability to read
|
**The node-engine's own build keeps the old reference form** until every present node-engine states the capability
|
||||||
the new one: a node-engine away across the milestone must be able to read the build it wakes to, or it could never
|
to read the new one (ADR 0618 §2): the builder writes a new reference form, in the node-engine's done key as in every
|
||||||
update itself (ADR 0603 §7, §9). The builder writes the node-engine's done key in the old form until the stated
|
other build's, only once every node-engine on a node present states it, so no build, the node-engine's own included,
|
||||||
capabilities show it on every node; this is a window like the old seat name's. What should wake the builder for a
|
needs a form no running node-engine reads (ADR 0603 §7, §9). Each build names with it the reader capabilities its
|
||||||
node that returns is to be decided in ADR 0618 (reserved): the node-engine seat's event for a change of a node's stated
|
forms need, and the assigner holds a node's want while that node's engine does not state one (ADR 0618 §1), so a node
|
||||||
manifest-reads and the delivery view's read of them, never a watch of the node-engine's have state (ADR 0596). **Until
|
that was away is held, never handed a form it cannot read. This is a window like the old seat name's. The builder
|
||||||
ADR 0618 is accepted**, the builder hears the status view's `delivered` events, asks `node_haves` at its start and on
|
reads each node's stated capabilities through the node-engine seat's verb `manifest-reads` (ADR 0618 §3) at its start,
|
||||||
each, and a node that was away closes the window on the next `delivered`. Its tool `builder_old_form` lists whether the
|
and wakes on the seat's event `mesh.seat.node-engine.event.manifest-reads-changed`, said when a node's stated
|
||||||
|
capabilities change and when the node returns after being away (ADR 0618 §4), never on a watch of the node-engine's
|
||||||
|
have state (ADR 0596) and never on a timer. Its tool `builder_old_form` lists whether the
|
||||||
window is open and the nodes whose node-engine does not yet state the capability, and drops a retired node from it by
|
window is open and the nodes whose node-engine does not yet state the capability, and drops a retired node from it by
|
||||||
hand, recorded as a hand act; a node holding it open for seven days is the builder's finding naming the node, cleared
|
hand, recorded as a hand act; a node holding it open for seven days is the builder's finding naming the node, cleared
|
||||||
when the window closes. Closing it says so in the build log and emits `old-form-closed` (the time, the nodes that held
|
when the window closes. Closing it says so in the build log and emits `old-form-closed` (the time, the nodes that held
|
||||||
@@ -415,8 +420,8 @@ reports (ADR 0610 §4). The revert's order is the module graph's, as the move's
|
|||||||
is delivered before a build module's reverted build only where that build module's reverted manifest requires or
|
is delivered before a build module's reverted build only where that build module's reverted manifest requires or
|
||||||
invokes something only `distribution`'s reverted build offers; the milestone's prepare step checks the build
|
invokes something only `distribution`'s reverted build offers; the milestone's prepare step checks the build
|
||||||
modules' manifests for such an edge. The done keys written in the new form stay in the builder's state after a
|
modules' manifests for such an edge. The done keys written in the new form stay in the builder's state after a
|
||||||
revert and are not built again for their form; whether an older reader can read them is to be decided in ADR 0618
|
revert and are not built again for their form; each names the forms it needs, so a node whose node-engine does not
|
||||||
(reserved). **On a fresh mesh** the foundation's bootstrap (research 075) pushes the holders' own images
|
state them is held by the assigner, never handed them (ADR 0618 §1). **On a fresh mesh** the foundation's bootstrap (research 075) pushes the holders' own images
|
||||||
with a one-off credential of the bootstrap, discarded once the holders serve `publish`.
|
with a one-off credential of the bootstrap, discarded once the holders serve `publish`.
|
||||||
|
|
||||||
### Acceptance tests
|
### Acceptance tests
|
||||||
@@ -466,7 +471,7 @@ test).
|
|||||||
module publishing through the seats, and refused after, naming `publish`, with `direct-writes-closed` emitted and
|
module publishing through the seats, and refused after, naming `publish`, with `direct-writes-closed` emitted and
|
||||||
its log line written; `registry_direct_writes` names the node still running an old build module, and drops it by
|
its log line written; `registry_direct_writes` names the node still running an old build module, and drops it by
|
||||||
hand with a hand act; a node that was away, returning with the new build, closes the old seat name's window on
|
hand with a hand act; a node that was away, returning with the new build, closes the old seat name's window on
|
||||||
the next `delivered` (until ADR 0618 is accepted); a waiter on a build's `published` does not wake on `held`,
|
its `manifest-reads-changed` event with no `delivered` said (ADR 0618 §4); a waiter on a build's `published` does not wake on `held`,
|
||||||
`released`, `old-name-closed` or `direct-writes-closed`.
|
`released`, `old-name-closed` or `direct-writes-closed`.
|
||||||
- **Builder, added for the milestone, integration** (cases of the builder's whole-module test): with the seat's
|
- **Builder, added for the milestone, integration** (cases of the builder's whole-module test): with the seat's
|
||||||
holder down at a first claim, a bundle's trunk build is built unnumbered and published by its digest, the holder's
|
holder down at a first claim, a bundle's trunk build is built unnumbered and published by its digest, the holder's
|
||||||
@@ -477,8 +482,9 @@ test).
|
|||||||
clears (no timer runs), and is then numbered and published by version; `builder_floor_again` asks the three
|
clears (no timer runs), and is then numbered and published by version; `builder_floor_again` asks the three
|
||||||
sources at once and records the hand act; the node-engine's done key stays in the old form while one node's
|
sources at once and records the hand act; the node-engine's done key stays in the old form while one node's
|
||||||
node-engine lacks the capability and is written in the new form once every node states it, `builder_old_form`
|
node-engine lacks the capability and is written in the new form once every node states it, `builder_old_form`
|
||||||
naming that node meanwhile and dropping it by hand with a hand act; a node that was away, returning with the
|
naming that node meanwhile and dropping it by hand with a hand act; a present node gaining the capability closes
|
||||||
capability, closes that window on the next `delivered` (until ADR 0618 is accepted), with `old-form-closed` emitted
|
that window on its `manifest-reads-changed` event with no `delivered` and no timer (ADR 0618 §2, §4), while a node
|
||||||
|
away is held by the assigner from builds in the new form (ADR 0618 §1), with `old-form-closed` emitted
|
||||||
and its build-log line written, and a waiter on a build's end does not wake on it; with the image's own seat silent
|
and its build-log line written, and a waiter on a build's end does not wake on it; with the image's own seat silent
|
||||||
at the claim of `distribution`'s own image, the image is still built, published by its digest, and numbered once
|
at the claim of `distribution`'s own image, the image is still built, published by its digest, and numbered once
|
||||||
its new build answers (ADR 0617 *How it is checked*).
|
its new build answers (ADR 0617 *How it is checked*).
|
||||||
|
|||||||
Reference in New Issue
Block a user