fix(ci): restore file-size budget, deflake codepoint test, retry asset uploads
CI has been red since 9ebbe3c and the weekly snapshot build lost its
binaries on 2026-08-02. Three independent causes.
1. File-size budget. The last seven commits pushed three files past the
400-line ceiling. Rather than raise the baselines, the growth moved to
where it belongs:
- repos/search.js 424 → 340: the shared column projection, filter
predicate block, and param builder now live in repos/search-sql.js.
They are the surface all four search variants must agree on, so a
schema or filter change lands in one file instead of four.
- apple-symbols/sync.js 409 → 336: the Swift worker (spawn plus the
length-prefixed frame protocol) moved to symbol-worker.js, matching
the pattern already used for codepoint-stamp.js and snapshot-meta.js.
- storage/database.js 446 → 400: the +40 was real logic in a file whose
exemption exists specifically because it is a *thin delegation*
facade. The root-by-id memo moved into repos/roots.js (next to the
statement it memoizes, and self-invalidating on upsertRoot) and page
tombstoning into storage/tombstones.js. The facade keeps one-line
pass-throughs. Baseline ratcheted 406 → 400 and its rationale now
says outright that bodied logic does not belong there.
2. codepoint-stamp-skip flake. "does not skip while any public symbol
lacks a codepoint" passed appPath: '/nonexistent' on the assumption
that no SF Symbols.app means no font resolves. But resolveSymbolFontPath
falls back to DEFAULT_APP_PATH, so on any machine that HAS the app —
developer Macs, and macOS runners — the test resolved real paths and
spawned the actual Swift worker: 5001 ms against a 5000 ms timeout. It
now injects fontPath + spawn and asserts the unstamped symbol was
really requested. 4.09 s → 130 ms, and no longer environment-dependent.
3. Release asset uploads had no retry. The binaries job died on a
transient undici "Headers Timeout Error" and a 70-minute snapshot build
shipped without binaries. Both upload paths now use `gh release upload
--clobber` in a 5-attempt backoff loop; --clobber makes a retry after a
partial upload idempotent. Creating the release stays on the pinned
action — only the byte-pushing moved.
Full suite green: 2508 pass, 11 skip, 0 fail. G
Gigi committed
a1901ee055d31addc78ce0237529f93ccc92c064
Parent: 5a7ead5