Pass-5 carried cleanup: current-state audit — 2026-09-22

Scope: recommendation #8, not the whole review. The September 8 status table in fable-review.md still calls the 09a/09c3 split open. Inspection at 84b5fa4f shows that this is obsolete. The shared review file has another agent's pending edits, so this audit is recorded separately.

Requirement Current evidence Finding
Split 09a/09c3 09a-handlers.wat is 877 lines and 09c3-controls.wat is 3,011, rather than about 39,000 combined. a1caff00 split core handlers into sound, USER, runtime, sync and late fragments. 3539626f split wndprocs into control-family fragments; dialog fragments are separate too. src/main.watx explicitly includes them. Addressed; not a demand to minimize every source file.
Shared readSyncObjectName lib/mem-utils.js owns the bounded decoder. Browser readSyncName delegates to it; CLI event/mutex create/open calls use it directly. test/test-sync-object-name.js checks A/W and mutex flags, bounds, buffer types and the two callers. Addressed for this duplication requirement, not a proof of all named-object semantics.
Shared PNG inspectors All seven legacy commands delegate to tools/png-inspect.js. test/test-png-inspect.js checks delegation and exercises every entry point on a generated image, including crop exports. Addressed; test executed on the shared tree, including another agent's pending inspector/test changes.
Obsolete cache fallback description 04-cache.wat describes the direct directory and explicitly says there is no second cache/lookup fallback. Remaining fallback references concern displaced-stream storage, not the deleted hash lookup. Addressed; this is a documentation check, not cache-correctness or performance proof.
Silent-handler changelog outside gate Regression found: 85 dated entries occupied the gate again. 58 already existed in the document; 27 additional entries are now preserved there verbatim and all 85 are removed from executable source. Repaired in this change, with a regression test.

Verification performed:

These findings close the enumerated Pass-5 #8 cleanup scope. They do not close earlier passes wholesale, guarantee that every diagnostic tool works, or constitute a new full-build/browser/performance result. In particular, shared-core conversions (#5), quiet-handler behavior and metadata work (#7), guest-buffer addressing, and mapped-view dirty-write correctness remain open. The historical API claims moved to the inventory document were preserved, not re-verified as part of this cleanup.