Conversation
Adds animation-vocabulary, apple-design, color-system, frontend-workflow, make-interfaces-feel-better, and migrate-radix-to-base skill packages for use during the base-ui migration and general frontend/design work.
…Python actions/setup-python's macOS interpreter has SQLite extension loading compiled out, so uv could grab it instead of its own capable managed Python during `uv sync`. sqlite_vec needs enable_load_extension, so the frozen api/worker binaries crashed on startup on every Mac. Drop the redundant setup-python step and pin UV_PYTHON_PREFERENCE=only-managed so uv never considers a PATH-found interpreter.
…kage ci(release-local): stop macOS builds from picking up a broken system Python
python.org macOS Python omits enable_load_extension, so the packaged API died on migrate. Freeze with uv's Python, refuse to ship without the API, and smoke /health on the frozen binary.
Bundle color-system, make-interfaces-feel-better, apple-design and vercel-react-best-practices under frontend-workflow as color/, polish/, motion/ and react-performance/. Their icon, colour and motion rules overlapped with no shared parent to say which wins; the router now does. Keep shadcn top-level — its allowed-tools grant and live `info --json` substitution only work in a discovered SKILL.md. Drop disable-model-invocation from frontend-workflow, which had kept the router and its precedence rules out of context entirely. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude Code reads CLAUDE.md, not AGENTS.md, and only the repo root had the symlink — so the per-tree AGENTS.md files never loaded, making "nearest AGENTS.md wins" false in practice. Nested memory files load lazily when a file in that directory is read, so each tree's rules now reach an agent working in it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
refactor(skills): consolidate frontend skills into frontend-workflow + per-tree CLAUDE.md symlinks
A leftover ciphertext from a previous install made safeStorage.decryptString throw and the app quit before the window. Mint a new secret instead so startup survives reinstall; stored API keys must be pasted again.
…st pin electron-updater defaults to /releases/latest, which stays on the legacy app, then 404s looking for stable-*.yml. allowPrerelease walks the feed so 2.x updates still resolve.
One VERSION, bump script, draft GitHub Release with notes from the previous 2.x tag, then undraft after CI so Latest stays on 0.0.40.
|
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (117)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
enable_load_extension.secret.bin(reinstall / Keychain rotation); stored API keys must be pasted again.allowPrerelease) so it does not follow the pinned legacy Latest (v0.0.40).surfsense_local/RELEASE.md).Test plan
/healthis ok (sqlite-vec loads).secret.binno longer quits the app.stable-*.ymlwhile Latest stays onv0.0.40.publish=never) still builds; production tag path still signs.High-level PR Summary
This PR fixes three critical Mac desktop issues: freezes from SQLite extension loading failures by pinning to uv's managed Python and adding CI checks, Keychain decryption failures that previously quit the app by recovering gracefully, and the in-app updater 404ing by pointing it at the GitHub releases feed instead of the pinned legacy Latest (
v0.0.40). Additionally, it reorganizes agent skills by bundling frontend guidance underfrontend-workflow(React performance, color system, UI polish, Apple-style motion) with routing to the standaloneshadcnskill, adds a completemigrate-radix-to-baseskill for Base UI migrations, and introduces a desktop release runbook atsurfsense_local/RELEASE.md.⏱️ Estimated Review Time: 1-3 hours
💡 Review Order Suggestion
surfsense_local/VERSIONsurfsense_local/RELEASE.md.github/workflows/release-local.ymlsurfsense_local/backend/scripts/build_binaries.pysurfsense_local/backend/shared/db.pysurfsense_local/backend/shared/sqlite.pysurfsense_local/backend/tests/unit/shared/test_db.pysurfsense_local/backend/tests/unit/shared/test_sqlite.pysurfsense_local/electron/src/main/secret.tssurfsense_local/electron/src/main/secret.test.tssurfsense_local/electron/src/main/updater.tssurfsense_local/electron/src/main/updater.test.ts.agents/skills/frontend-workflow/SKILL.md.agents/skills/frontend-workflow/color/PALETTE.css.agents/skills/frontend-workflow/color/SKILL.md.agents/skills/frontend-workflow/motion/apple-design.md.agents/skills/frontend-workflow/polish/SKILL.md.agents/skills/frontend-workflow/polish/animations.md.agents/skills/frontend-workflow/polish/icons.md.agents/skills/frontend-workflow/polish/performance.md.agents/skills/frontend-workflow/polish/surfaces.md.agents/skills/frontend-workflow/polish/typography.md.agents/skills/frontend-workflow/react-performance/SKILL.md.agents/skills/migrate-radix-to-base/SKILL.md.agents/skills/migrate-radix-to-base/universal-patterns.md.agents/skills/migrate-radix-to-base/overlays.md.agents/skills/migrate-radix-to-base/menus.md.agents/skills/migrate-radix-to-base/form-controls.md.agents/skills/migrate-radix-to-base/disclosure.md.agents/skills/migrate-radix-to-base/display-misc.md.agents/skills/migrate-radix-to-base/consumer-props.md.agents/skills/migrate-radix-to-base/class-mapping.md.agents/skills/migrate-radix-to-base/wrapper-shapes.md.agents/skills/shadcn/SKILL.mdAGENTS.mdsurfsense_local/AGENTS.mdsurfsense_backend/CLAUDE.mdsurfsense_local/CLAUDE.mdsurfsense_mcp/CLAUDE.mdsurfsense_web/AGENTS.mdsurfsense_web/CLAUDE.md.gitignoreSummary by CodeRabbit
Bug Fixes
Reliability
Documentation