perf(renderer): consolidate Raycast runtime hot paths#599
Conversation
|
Reviewed the full diff. This is a well-scoped consolidation of six wave4 hot-path fixes (canvas async I/O + streamed Strengths
Concerns / potential bugs
Suggestions (optional)
Verdict: 🟡 Approve with minor comments — the core API-behavior-preservation is solid (grid memo, frecency, form snapshot, i18n fallback all verified correct); the only open item is the redundant/fragile registry unmount guards, which are dev-only and likely self-healing but worth trimming or verifying under StrictMode. 🤖 Automated review by Claude Code (Opus 4.8). |
|
Addressed the registry teardown feedback from the review. What changed:
Proof/tests run locally:
Also re-ran |
What changed
sc-asset://canvas-lib/*files through the protocol helper and move scene/thumbnail reads to async filesystem paths.Why
These are the clean wave4 renderer/Raycast hot-path fixes from the granular PRs, consolidated onto current
mainwithout the inherited broad-branch noise, pnpm artifacts, coordinator notes, prompt/playbook files, or generated locks.Compatibility impact
Raycast API behavior is preserved. Storage changes keep legacy frecency data via migration, locale loading still falls back to English while async catalogs load, canvas asset URLs remain under the existing
sc-assetscheme, and the registry/form cleanup paths only affect teardown behavior.How tested
git diff --checknode --test scripts/test-i18n-locale-loading.mjs scripts/test-use-frecency-sorting.mjs scripts/test-canvas-asset-serving.mjs scripts/test-form-runtime-snapshot-cleanup.mjs scripts/test-registry-microtask-lifecycle.mjs./node_modules/.bin/vite buildnpm run typecheck:renderercould not run through this machine's npm shim: npm is intentionally disabled and the pnpm fallback stops on ignored native build scripts before script dispatch. The package also has notypecheck:rendererentry inpackage.json. I ran the renderer compiler equivalent directly with./node_modules/.bin/tsc -p tsconfig.renderer.json --noEmit; it still fails on existing repo-wide diagnostics outside this wave4 branch, includingsrc/renderer/src/App.tsx,CameraExtension.tsx,components/LiquidGlassSurface.tsx, launcher browser search model/control types, Raycast API index/toast/type issues, oauth access-token types, settings voice types, and quicklink icon option typing. Touched files are clean under LSP.Performance evidence
Stack validation
This branch is
origin/mainplus seven commits: the six selected wave4 implementation commits and one finisher validation commit. It intentionally does not include pnpm workspace/lock artifacts or the broader historical renderer stacks. PRs #533, #555, and #572 are not claimed as replaced because they cover broader work not fully included here.Replaces