Write the operator's answers of 12:41 on restore points, the checker's drop and an empty step status

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
This commit is contained in:
2026-11-11 12:42:09 +01:00
parent e41dbeef4a
commit e504dac534
4 changed files with 33 additions and 8 deletions
@@ -200,7 +200,7 @@ check and deliver milestone G itself (ADR 0667 §2); each of them says so in a l
`operator-channel`'s accepted kind `ask`, on its work queue by the runner's name (design 46 §10, *Asks, warrants and answers on the bus*; `operator-channel`'s accepted kind `ask`, on its work queue by the runner's name (design 46 §10, *Asks, warrants and answers on the bus*;
the seat has no verb `ask`), and heard on its event `decided` (ADR 0666 §7, §10). A step with nothing to do ends at once as the seat has no verb `ask`), and heard on its event `decided` (ADR 0666 §7, §10). A step with nothing to do ends at once as
`nothing to run`, never as passed. `nothing to run`, never as passed.
- §23 **The policy.** Each step's status, per module and per artifact, is `required` (runs; holds the delivery until it - §23 **The policy.** (§553) Each step's status, per module and per artifact, is `required` (runs; holds the delivery until it
passes), `optional` (runs; a failure is shown and may be accepted) or `bypass` (nothing runs; said as bypassed), passes), `optional` (runs; a failure is shown and may be accepted) or `bypass` (nothing runs; said as bypassed),
kept in the registration and never in a manifest: the manifest validator refuses a manifest that names a status kept in the registration and never in a manifest: the manifest validator refuses a manifest that names a status
(ADR 0666 §7; research 086, R3). A `required` step that ends `nothing to run` holds the delivery and names the step. (ADR 0666 §7; research 086, R3). A `required` step that ends `nothing to run` holds the delivery and names the step.
@@ -27,7 +27,7 @@ decisions:
One file of milestone G's part of [design 47](../47-delivery-from-commit-to-delivered.md); the part opens at One file of milestone G's part of [design 47](../47-delivery-from-commit-to-delivered.md); the part opens at
[G.md](G.md). Its design lines are numbered across every file of the part and cited as "design 47 G §n". [G.md](G.md). Its design lines are numbered across every file of the part and cited as "design 47 G §n".
*§522 and §542 are the operator's answers of 2026-11-11 at 12:11 and 12:33 CET at lead-47's terminal. §543 to §550 *§522, §542 and §551 to §553 are the operator's answers of 2026-11-11 at 12:11, 12:33 and 12:41 CET at lead-47's terminal. §543 to §550
answer what the four reviewers found in round 3 of [G-13](G-13-review-round-3.md) (§600 to §609), which has no round answer what the four reviewers found in round 3 of [G-13](G-13-review-round-3.md) (§600 to §609), which has no round
of its own after it. Every other line answers a question of its own after it. Every other line answers a question
develop met after [G-11](G-11-develop-answers-review.md), of internal form only (playbook 07, step 0b), each the develop met after [G-11](G-11-develop-answers-review.md), of internal form only (playbook 07, step 0b), each the
@@ -36,7 +36,7 @@ line. Questions that an earlier line already answers have no line here: develop
## Kept data on the bus: restore points and what is set aside ## Kept data on the bus: restore points and what is set aside
- §516 **A restore point's bytes, and the forms of `snapshot-kept` and `restore-kept`.** The seat `mesh-broker`'s two - §516 **A restore point's bytes, and the forms of `snapshot-kept` and `restore-kept`.** (§551) The seat `mesh-broker`'s two
verbs (§405) take and answer the forms its definition in mesh-contracts gives them, which this line makes the verbs (§405) take and answer the forms its definition in mesh-contracts gives them, which this line makes the
design's: `snapshot-kept` takes `module`, `kept` (the kept data's local name), `form`, `fingerprint`, `why` and design's: `snapshot-kept` takes `module`, `kept` (the kept data's local name), `form`, `fingerprint`, `why` and
`catch-up` as `{tool, arguments}` (§451), and answers `point` (the module, the kept data, its form, the `catch-up` as `{tool, arguments}` (§451), and answers `point` (the module, the kept data, its form, the
@@ -58,8 +58,7 @@ line. Questions that an earlier line already answers have no line here: develop
aside's `id` is that directory's name, its `name` the bus name it was live under, its `size` its bytes on disk; aside's `id` is that directory's name, its `name` the bus name it was live under, its `size` its bytes on disk;
nothing of an aside stays on the bus, so it takes none of the bus's storage limit, and the definition's nothing of an aside stays on the bus, so it takes none of the bus's storage limit, and the definition's
description of `name` reads "the bus name it was live under". `discard-aside` removes that directory and nothing description of `name` reads "the bus name it was live under". `discard-aside` removes that directory and nothing
else. No part removes a restore point in G: how long one is kept waits for the operator (issue 1921's note), and else. A restore point is removed only as §551 says. This completes §405 and §406. Why: ADR 0235 has the bus
until the answer is written here every point stays. This completes §405 and §406. Why: ADR 0235 has the bus
module's account write the bus's snapshots into its own directory and the backup holder back that directory up; module's account write the bus's snapshots into its own directory and the backup holder back that directory up;
the server restores a stream only where no stream of that name exists, so the live data is set aside as a the server restores a stream only where no stream of that name exists, so the live data is set aside as a
snapshot before the point takes its name (develop questions BKP1, BKP3 and NATS4's argument names). How it is snapshot before the point takes its name (develop questions BKP1, BKP3 and NATS4's argument names). How it is
@@ -73,7 +72,7 @@ line. Questions that an earlier line already answers have no line here: develop
0619 §1, ADR 0666 §4): a point under `point.<module>.<kept>.<form>.<fingerprint>` with the answer's `point` whole, 0619 §1, ADR 0666 §4): a point under `point.<module>.<kept>.<form>.<fingerprint>` with the answer's `point` whole,
written when `snapshot-kept` answers done; an aside under `aside.<module>.<kept>.<at>` with the answer's `aside` written when `snapshot-kept` answers done; an aside under `aside.<module>.<kept>.<at>` with the answer's `aside`
whole, written when `restore-kept` answers one, each token escaped as a key's name is (§73). The holder deletes an whole, written when `restore-kept` answers one, each token escaped as a key's name is (§73). The holder deletes an
aside's key when `discard-aside` answers done, and deletes no other key in G (§516). `backed-up` lists both from aside's key when `discard-aside` answers done, and a point's key when it hears that point's `point-removed` (§551). `backed-up` lists both from
that state, each with its size (§302), and the holder's read tool of its state reads it. The seat `mesh-broker` that state, each with its size (§302), and the holder's read tool of its state reads it. The seat `mesh-broker`
gains no read verb. The holder's old `state` entry `good` moves to `requires` in the same change, keeping its local gains no read verb. The holder's old `state` entry `good` moves to `requires` in the same change, keeping its local
name and settings, as ADR 0595 §11 moves a module G touches. Why: the holder took each from its own call's answer, name and settings, as ADR 0595 §11 moves a module G touches. Why: the holder took each from its own call's answer,
@@ -452,6 +451,32 @@ line. Questions that an earlier line already answers have no line here: develop
runner's contract had no field for it (develop's note on §334). How it is checked: unit (runner's contract), the runner's contract had no field for it (develop's note on §334). How it is checked: unit (runner's contract), the
field read; whole (runner), a publish's pipeline shows its version. field read; whole (runner), a publish's pipeline shows its version.
## The operator's answers of 12:41 CET
- §551 **A restore point is removed after 90 days, never the newest.** The operator, 2026-11-11 12:41 CET at lead-47's
terminal. The bus module removes a restore point's directory (§516) 90 days after its `at`, as long as delivery
records are kept, unless it is the newest point of its module and kept data, which it never removes; it checks at
its start, once a day and at each `snapshot-kept`, on its own clock and its own directory. Each removal is said as
the seat `mesh-broker`'s event `point-removed` (`module`, `kept`, `form`, `fingerprint`, `snapshot`, `at`), declared
in its definition; the backup holder consumes it and deletes that point's key in `bus-points` (§517), and its
repository's copy goes by the repository's own rotation (ADR 0235 §4). Data set aside is removed only by
`discard-aside` (§516). This completes §516 and answers issue 1921's note on the retention of restore points. Why:
the operator's answer; the event, the checks and the holder's deletion are the design's. How it is checked: whole
(bus module, backup holder), a point older than 90 days is removed and said and its key deleted, and the newest
point of a kept data, older than 90 days, stays.
- §552 **The checker may drop its own asks until its removal.** The operator, 2026-11-11 12:41 CET at lead-47's
terminal: the build seats' verb `drop` (§338) gains the checker as a caller until its entry is removed with its
buckets and bus account (ADR 0667 §12), as `run` has it, so the validator accepts the checker's manifest's
`invokes` of `seat:node-build-go.drop` and `seat:node-build-node.drop`. This amends §338. How it is checked: unit
(manifest validator), the checker's manifest accepted; whole (grants part), the checker's drop granted and another
module's refused.
- §553 **A step status left empty is `optional`.** The operator, 2026-11-11 12:41 CET at lead-47's terminal: a step
whose status a registration's policy (module-level `policy.steps`, or an artifact's) leaves empty is read as
`optional`: it runs, and a failure is shown and holds nothing (§23); `register` and `policy` accept such a policy
and refuse nothing for it, and the runner, `registrations` and `show` say the step `optional`. This completes §23.
How it is checked: unit (runner), a step with no status runs and its failure holds no want; unit (mesh-catalog's
contract), a registration with an empty status accepted.
## Questions an earlier line answers ## Questions an earlier line answers
These write nothing new; develop reads the line named. These write nothing new; develop reads the line named.
@@ -165,7 +165,7 @@ record it follows from, and replaces the builder's own choice where one was made
and restore a module's kept data on the bus name `holder:node-backup@same-node`. Why: only that holder takes them and restore a module's kept data on the bus name `holder:node-backup@same-node`. Why: only that holder takes them
(*A backup before the apply: kept data on the bus*). How it is checked: a call from another node's `node-backup` (*A backup before the apply: kept data on the bus*). How it is checked: a call from another node's `node-backup`
holder is refused by the bus. holder is refused by the bus.
- §338 **Callers on accepted kinds.** (§480, §481, §543) An accepted kind of a work queue carries `callers` as a verb does, and the grants part - §338 **Callers on accepted kinds.** (§480, §481, §543, §552) An accepted kind of a work queue carries `callers` as a verb does, and the grants part
grants publish on its subject to them alone: the build seats' `step` the runner; `run` the runner, the indexer and grants publish on its subject to them alone: the build seats' `step` the runner; `run` the runner, the indexer and
the assigner, and the checker until its entry is removed with its buckets and bus account (ADR 0667 §12); `mesh-wants`'s the assigner, and the checker until its entry is removed with its buckets and bus account (ADR 0667 §12); `mesh-wants`'s
`step` the runner. Verbs: `steps` the runner and the indexer (its seed); `drop` the runner and the builder; both `step` the runner. Verbs: `steps` the runner and the indexer (its seed); `drop` the runner and the builder; both
+1 -1
View File
@@ -89,5 +89,5 @@ The part is thirteen files, each read whole, its design lines numbered across th
- [G-9-prepare-answers](G-9-prepare-answers.md): the answers to the questions of G's final prepare and develop's first questions (§391 to §455). - [G-9-prepare-answers](G-9-prepare-answers.md): the answers to the questions of G's final prepare and develop's first questions (§391 to §455).
- [G-10-develop-answers](G-10-develop-answers.md): the answers to develop's second batch of questions, the operator's and those of internal form only (§456 to §479). - [G-10-develop-answers](G-10-develop-answers.md): the answers to develop's second batch of questions, the operator's and those of internal form only (§456 to §479).
- [G-11-develop-answers-review](G-11-develop-answers-review.md): the operator's answers of 2026-11-11 noon, the review of §456 to §479, and develop's next questions (§480 to §515). - [G-11-develop-answers-review](G-11-develop-answers-review.md): the operator's answers of 2026-11-11 noon, the review of §456 to §479, and develop's next questions (§480 to §515).
- [G-12-develop-answers-fourth](G-12-develop-answers-fourth.md): the operator's words of 2026-11-11 and develop's fourth batch of questions (§516 to §550). - [G-12-develop-answers-fourth](G-12-develop-answers-fourth.md): the operator's answers of 2026-11-11 noon, round 3's leftovers and develop's fourth batch of questions (§516 to §553).
- [G-13-review-round-3](G-13-review-round-3.md): the review of §480 to §515, rounds 2 and 3 (§600 on). - [G-13-review-round-3](G-13-review-round-3.md): the review of §480 to §515, rounds 2 and 3 (§600 on).