Record the staged approach for locking the Apple Silicon scan flow with browser coverage before moving deeper into the TypeScript conversion. Keeping this plan separate from the test commit preserves a clean non-runtime history.
Constraint: Plan should not change runtime behavior or blur code-review scope
Rejected: Fold the plan into the browser-test commit | mixes delivery guidance with executable changes
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Revisit the worker-based scanner path only after the legacy app-test route has stable browser coverage
Tested: Document reviewed against current staged test coverage and repo layout
Not-tested: Plan execution beyond the committed browser-test slice
Lock the Apple Silicon upload flow behind a real browser regression and migrate the Pagefind browser regression onto a shared typed harness. This keeps the branch non-runtime and repairs the targeted pagefind script alias after moving the browser test to TypeScript.
Constraint: Must avoid runtime code changes on this branch
Rejected: Ship the app-test coverage without fixing script aliases | leaves a broken targeted check in package.json
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep browser-only support helpers under test/playwright/support until runtime code is typed separately
Tested: pnpm run typecheck; pnpm run test:browser; pnpm run test:browser:pagefind
Not-tested: pnpm run test:browser:pagefind:live
Keep the Pagefind bootstrap path from rewriting the remote sitemap
payload locally when the static JSON file is absent. GitHub-hosted runs
only need the fetched data in memory, and stringifying the 385 MB payload
was exhausting Node during netlify-build.
Cover the Native Support filter with a Playwright-backed Vitest case
that can boot the local dev server or attach to a deployed URL so the
same regression can gate post-deploy verification.
Resolve the Pagefind browser loader in Vite dev and cap filter-only
result hydration so broad filters render promptly instead of stalling
behind thousands of fragment fetches.
Add Pagefind indexing and browser search adapters behind a provider switch.
This lets prebuild generate either Stork or Pagefind search artifacts and lets the existing search UI run against Pagefind while preserving scoped filters, excerpts, and result metadata.
Share filter parsing and provider mapping logic between Stork and upcoming search adapters.
This keeps the existing Stork API stable while adding Pagefind-oriented filter serialization under test.
Capture user-visible parity requirements for a future Pagefind migration.
This keeps the earlier viability memo focused on engine fit and documents the recommended adapter approach, carry-over patterns, and remaining prototype risks around ranking and title highlighting.
The generic
> doesitarm@1.0.0 test /Users/athena/Code/doesitarm
> vitest run
Running Astro Config File
RUN v4.1.0 /Users/athena/Code/doesitarm
Test Files 7 passed (7)
Tests 20 passed | 3 todo (23)
Start at 13:00:20
Duration 1.76s (transform 317ms, setup 138ms, import 1.23s, tests 2.55s, environment 2ms) entrypoint assumes artifacts that only exist after the repo's full Netlify-style build. Run the real end-to-end Netlify build in GitHub Actions instead so the hosted Node 24 check matches the supported build surface.
Install pnpm before enabling setup-node's pnpm cache in the Cloudflare deploy job, and make the Node 24 check workflow self-contained by providing the public build URLs directly.
These fixes address the first GitHub-hosted failures that surfaced after the Node 24 migration push without changing the application runtime.
Align local version markers and GitHub Actions with Node 24, switch the default test entrypoint to the maintained Vitest runner, and replace pnpm-incompatible npm helpers in repo scripts.
This also removes the obsolete AVA plus esm path and excludes disabled test fixtures from generic Vitest discovery so CI reflects the supported test surface.
Clean list-specific JSON endpoint directories before rewriting them so local and deploy-style API builds do not fail on leftover files from older runs.
Keep the count check, but count only generated JSON outputs so the verification reflects the actual endpoint set.
Switch Stork downloads to artifacts that match current runtimes and fix the runtime detection path that Node 22 changed.
This keeps the existing Stork pipeline working on Netlify's Noble image and on Apple Silicon development machines.