Tick 18, moving its text to todo-history.md
This commit is contained in:
@@ -820,6 +820,29 @@ The done `todo.md` items in full, as they were written. `todo.md` keeps a one-li
|
||||
dropping the outer link silently as `closeLink`'s `applyMark` does today, with a
|
||||
normalization fixture per shape (the stability-reviewer, 2026-09-16; the maintainer,
|
||||
2026-09-17).
|
||||
- [x] **18 — The subtree the directive spelling asks about (`0.2.0`).** The parser asks
|
||||
`commonMarkSpelling` at every directive-spelled block and the answer emits the whole subtree
|
||||
below, so a node at depth d is spelled d times: three nested rule-first directive lists cost
|
||||
18 asks over 10 nodes, and 250 levels parse in 1.2 s at 16.4 kB, 4.9 s at 261 kB with a
|
||||
kilobyte of content per level. The depth guard bounds the levels at about 250, never the
|
||||
content, so this is the pipeline persona's hang on an input nobody typed (§11). Keeping each
|
||||
child's emitted result for its parent's ask is not a straight handover: the same node object
|
||||
is asked at different depths — 4, 3 and 2 for the innermost list of three — because the
|
||||
parser counts a list and its item as two levels where the emitter's readable list counts one
|
||||
(4b), and `headroom` is that guard's slack. The parts that survive the measurement: the paths
|
||||
agree, `text` and `spelling` carry no depth, `headroom` is affine in it, and the parser asks
|
||||
first at the deepest of them, so a kept result rebases by the difference. Either rebase and
|
||||
record that argument in `AGENTS.md`, or give both directions one list accounting so a node
|
||||
has one depth and nothing needs rebasing — which reopens 4b. A single post-build walk was
|
||||
rejected: it reports the outer offender where the build reports the inner one (the
|
||||
maintainer, 2026-09-18).
|
||||
**Measured** (2026-09-19): the parse keeps each node's readable spelling (AGENTS.md §11), and
|
||||
250 nested directive lists fall from 1.22 s to 0.07 s at 16.1 kB and from 5.20 s to 0.19 s at
|
||||
261 kB; a panel between every pair of lists 1.00 s to 0.07 s, an opaque carry in every item
|
||||
1.08 s to 0.04 s. The two depth-boundary tests are what pin the rebase — dropping it reddens
|
||||
both — so no figure enters the gate (§14), as 4c settled for a behaviour-preserving cost fix.
|
||||
The one list accounting was not taken: 4b settled that accounting the day this was filed, and
|
||||
reopening it is an ask rather than a chunk.
|
||||
|
||||
## 5 — Ship `0.1.0`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user