d8888d14
docs: two assumptions the narration work rests on
a73x 2026-08-11 18:44
Commit message
docs/assumptions.md
| Old | New | ||
|---|---|---|---|
| @@ -528,3 +528,27 @@ one principal, and every client path (`eitri ssh`, the console recipe, the | |||
| 528 | manual flow) dials that name with `StrictHostKeyChecking=yes`. False if a | 528 | manual flow) dials that name with `StrictHostKeyChecking=yes`. False if a |
| 529 | deployment ever fronts the gate at a second name — that needs a second | 529 | deployment ever fronts the gate at a second name — that needs a second |
| 530 | principal on the cert, not a second address in the config. | 530 | principal on the cert, not a second address in the config. |
| 531 | |||
| 532 | ### Narration is commentary, not state | ||
| 533 | |||
| 534 | A creating VM's `status_detail` is published from inside a running reconcile | ||
| 535 | pass — the one moment the agent knows it is 1.2 GiB into a download — and the | ||
| 536 | pass's own result lands on top when it ends, so nothing said mid-pass can | ||
| 537 | outlive the pass that said it. Underpins letting a report row exist for work | ||
| 538 | that has not finished without weakening the level-triggered contract: the row | ||
| 539 | carries the same address and host key the final row would, and a v0.0.5 agent | ||
| 540 | that never narrates produces exactly the old silence. False if anything ever | ||
| 541 | reads `status_detail` to decide — it is written for eyes, dropped on | ||
| 542 | completion, and absent on any agent that predates it. | ||
| 543 | |||
| 544 | ### Exposure counters start at the agent, not at zero forever | ||
| 545 | |||
| 546 | An exposure's session counts — the active gauge, and the cumulative refusals | ||
| 547 | and drops — live in agent memory and reset when the agent restarts. Underpins | ||
| 548 | answering "did the datagram arrive" from the console without a metrics store: | ||
| 549 | a counter that survives rebinds but not restarts is enough to read a live | ||
| 550 | incident, and the console labels the totals "since agent start" so a reset | ||
| 551 | reads as what it is. The counters ride a nested message, so an agent that | ||
| 552 | never counted stays distinguishable from a port that counted zero. False if | ||
| 553 | anything alerts or bills on these numbers — that needs durable counters with | ||
| 554 | an epoch, which these are deliberately not. | ||