docs(adr): ADR 009 aligns its ADR 007 statements with the accepted amendment (improvise-felo.4)

CellKey's order is the natural id order, a store reorder reassigns Seq,
CellKey pairs are (CategoryId, ItemHandle), and display suffixes are
computed by the client.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
This commit is contained in:
Claude (adr9-steward)
2026-10-09 13:34:45 -07:00
committed by Edward Langley
parent 491266f2e8
commit 1a7d2fbf85
+10 -4
View File
@@ -61,14 +61,18 @@ is removed once its remaining uses are replaced (open question 3).
`Seq` is a per-cell sequence assigned at insertion, in `IndexMap` order, and kept by an
overwrite. Value identity is bit identity (`f64::to_bits`), so an equal-value overwrite
consolidates to nothing. `CellKey` gains `Ord`. The circuit steps once per model effect.
consolidates to nothing. `CellKey` gains `Ord`, which is its canonical order: the
natural order of ids (ADR 007 amendment 1, clause 4). A store reorder, such as entering
records mode, reassigns `Seq` and rebuilds clause 5's per-record stage. The circuit steps
once per model effect.
The record tier and the dirty flag read this delta instead of scanning the store. The
dirty flag fires on a non-empty `(key, value)` delta, or when a fingerprint of the
formula set moves, because formula edits move no cell.
Under ADR 007, `CellKey` becomes id-based. A rename then emits no delta. The
formula-set fingerprint must use the id form too, or a rename reads as a formula change.
Under ADR 007 and its amendment, `CellKey` pairs are `(CategoryId, ItemHandle)`. So a
rename is a display write and emits no delta. The formula-set fingerprint must use the id
form too, or a rename reads as a formula change.
### 4. Aggregates
@@ -200,7 +204,9 @@ doubling jumps (about 14 to 28 probes at density 10⁻⁴).
client, addressed to none. It carries:
- the stamp `(host instance, document_generation, publication)`. The publication number
increments once per published batch, and the host instance changes on restart;
- axis changes, display relabels, and a flag when the formula set or `measure_agg` moved;
- axis changes, display relabels as `(id, display)`, and a flag when the formula set or
`measure_agg` moved. A shared display's ` #2` suffix is never sent: the client computes
it from the displays in scope;
- the shape keys evicted since the last notice;
- for each live shape key, the moved output keys (cells, formula cells and totals), as
the circuit computes them. Moved records alone would miss formulas with cross-stem