From 79bafeb4f8b1889ca60680169bd6dbedea130ff4 Mon Sep 17 00:00:00 2001 From: Kuba Sunderland-Ober Date: Sun, 27 Sep 2026 13:16:47 +0200 Subject: [PATCH 01/27] wip: the file tools decode a \u escape; say so, and what to write instead --- WIP.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/WIP.md b/WIP.md index 800d8275..69549926 100644 --- a/WIP.md +++ b/WIP.md @@ -565,6 +565,12 @@ they are. through `<<'EOF'` had every `"\\s+"` delivered as `"\s+"`, matched nothing, and reported **444 unclassifiable fences against a true 32** --- a number that reads as a finding about the corpus and was a finding about the quoting. + + **The file tools decode a `\u` escape of four hex digits** into the character it + names: a BOM, an em-dash and a replacement character all arrived raw, and only NUL was + left as written. A doubled backslash arrives doubled, which is a different string. + Write the brace form, `\u{FEFF}`, which arrives intact (a regex needs the `u` flag + for it), and check a file you have written for raw non-ASCII. - Don't push or force-push without explicit user request. - Don't leave a remote image URL in a finished page. A pasted `https://github.com/user-attachments/assets/...` link is fine to write --- [builder/vendor-assets.mjs](builder/vendor-assets.mjs) downloads it to `docs/assets/attachments/gh-.` on the next local build and rewrites the render to point there; commit the downloaded file with the edit. Any other remote host has no such handling: download it yourself and commit it under the section's `Images/` folder. Remote images cost a network round trip per page view, break the `file://` offline mirror, and **abort the PDF book render** -- the forked paged.js in `book/lib/` dropped async image loading, so an image still in flight when the page-breaking pass runs raises instead of degrading. The build enforces this unconditionally (see [Site integrity check](#site-integrity-check)); `--check-remote-assets` is the standalone checker's flag, not a `tbdocs` one. The check is scoped to ``; `