From 4d4f292fbecf5207f89279614de406fe843c8e0e Mon Sep 17 00:00:00 2001 From: Lilleman auf Larv Date: Mon, 5 Oct 2026 08:58:54 +0200 Subject: [PATCH] Answer prose round 1: item 72 waits on the rest of 0.2.0, item 77 counts its values; answer product-owner round 1: link the goals the quick start serves --- README.md | 2 +- todo.md | 22 ++++++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 6345f54..9bdee02 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ if (result.ok) { } ``` -Serves Goals 1, 2 and 8. Pure functions, each taking a whole document and returning a whole +Serves [Goals](#goals) 1, 2 and 8. Pure functions, each taking a whole document and returning a whole result; no I/O, no configuration. `markdownToHtml` and `htmlToMarkdown` convert through ADF: they keep only what ADF holds, and refuse what `markdownToAdf` or `htmlToAdf` refuses. diff --git a/todo.md b/todo.md index 7d22981..8beba96 100644 --- a/todo.md +++ b/todo.md @@ -113,9 +113,11 @@ accessor property, or a Proxy trap that throws, is `not-an-adf-document`. The co enumerable keys, as `JSON.stringify` does, so an inherited or non-enumerable key drops. The reader reads arrays by index, so no custom iterator runs. Every later step works on the copy. A Proxy can still claim unbounded width, which the 500-level limit does not cover, so the copy reads at most 10 -million values (the maintainer, 2026-10-05): roughly 50 to 100 MB of JSON, far past any real page, -where 10 000 would refuse a 500-row table. Before reading an array, the reader checks its `length` -against the values left, so a Proxy claiming 2³² elements is refused at once. Found by the +million JSON values, each object, array, string, number, boolean and null counting one (the +maintainer, 2026-10-05): roughly 50 to 100 MB of JSON, far past any real page, where 10 000 would +refuse a 500-row table. Before reading an array, the reader checks its `length` against the values +left, so a Proxy claiming 2³² elements is refused at once. The code that refusal takes follows +`docs/decisions.md` §Which code a cause takes; where it reads two ways, the chunk asks. Found by the technical-principles audit, 2026-10-04. ### 71. Add a README table comparing the package with the other ADF converters, each cell checked against that package's own docs or behaviour. @@ -205,13 +207,13 @@ of one character from each of its characters. ### 72. Re-create `gitea.larvit.se/larvit/adf-codec` as a read-only pull mirror of GitHub, its issues and Actions off and its description pointing at GitHub. -Lands when `0.2.0` is getting ready to be cut (the maintainer, 2026-10-05). The maintainer does -this. Gitea cannot convert an existing repository to a mirror, so -the copy is deleted and re-created. That drops the copy's commit hashes from before the 2026-10-04 -history rewrite, and its Actions secrets. The Gitea copy holds no issues or releases to move. -Actions stay off on the mirror: Gitea runs `.github/workflows/` when `.gitea/workflows/` is absent, -and the mirrored `publish` job would otherwise run there. When this lands, the `docs/decisions.md` -entry "GitHub is canonical" loses its interim sentence. +Lands after every other `0.2.0` item (the maintainer, 2026-10-05). The maintainer does this. Gitea +cannot convert an existing repository to a mirror, so the copy is deleted and re-created. That drops +the copy's commit hashes from before the 2026-10-04 history rewrite, and its Actions secrets. The +Gitea copy holds no issues or releases to move. Actions stay off on the mirror: Gitea runs +`.github/workflows/` when `.gitea/workflows/` is absent, and the mirrored `publish` job would +otherwise run there. When this lands, the `docs/decisions.md` entry "GitHub is canonical" loses its +interim sentence. ### 52. Spell `colwidth` as a comma list, `colwidth="340,420"`.