Final round 1 on snapshot10h: Haiku 58/58, terra 57/58 (j7 fail). Fixes in the repo for snapshot10i:

1. j7 (low, G-Code defect): WebSearch left numeric/hex HTML references undecoded ("Neptune&#x27;s").
   src/shared/htmlEntities.ts decodeEntities (one pass: named list, decimal, hex; NUL, surrogates
   and past-Unicode left as written). WebSearchTool stripTags and the fallback title use it;
   WebFetchTool htmlToText uses it (it also double-decoded "&amp;lt;" and cut emoji to a lone surrogate).
   Tests: tests/web-entities.test.ts.
2. Haiku a6 note: "Development server exited before readiness: " ended with nothing.
   src/browser/devServer.ts: "(exit code N)" or "(signal S)", and "it printed nothing". Browser runtime rebuilt.
3. Haiku g6 note: FileEdit's content check named no format for a PNG saved as .txt.
   FileEditTool sniffRefusal names sniffFormat(head) (exported from FileReadTool).
4. Haiku g6 note: FileRead's extension branch said "Binary file detected (.zip)...".
   Now binaryRefusal(format ?? ext), as the content check words it.
   Tests: tests/files-round8.test.ts.

Not changed (model behaviour or deliberate):
- terra g9 refuses a single large FileWrite citing "<=8 KiB chunks" (description kept; user decision in report).
- Haiku g8 spends all 128K on reasoning at max (clear error; heartbeat is a user decision).
- Haiku c1 unfinished within 3 follow-ups (model re-read finished files after handoff).
- failureBudget quotedError keeps "Exit code: N" when the first line does not give it (correct).
