-
Notifications
You must be signed in to change notification settings - Fork 450
feat: add downloadable extensions support #2132
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
- Update extensions_cd.yaml to package extensions into zip archives - Generate registry.json with extension metadata and checksums - Add R2 upload support with publish flag - Add Rust commands: fetch_registry, download_extension, uninstall_extension - Add SHA-256 checksum verification for security - Add frontend Store tab for browsing and installing extensions - Regenerate TypeScript bindings with new types Co-Authored-By: yujonglee <[email protected]>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
✅ Deploy Preview for hyprnote-storybook ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for hyprnote ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
Warning Rate limit exceeded@yujonglee has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 14 minutes and 0 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (7)
✨ Finishing touches
🧪 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 |
Summary
This PR adds the ability to download and install extensions from a central registry hosted on Cloudflare R2. The implementation includes:
CI/CD Changes:
extensions_cd.yamlto package extensions into versioned zip archivespublishinput flag)Backend (Rust):
fetch_registrycommand to retrieve available extensions from R2download_extensioncommand with SHA-256 checksum verification and zip extractionuninstall_extensioncommand to remove installed extensionsFrontend:
store.tsxcomponent showing available extensions with install/uninstall buttonsReview & Testing Checklist for Human
hyprnote-extensionsbucket and secrets (CLOUDFLARE_R2_ENDPOINT_URL,CLOUDFLARE_R2_ACCESS_KEY_ID,CLOUDFLARE_R2_SECRET_ACCESS_KEY). Confirm these exist or update accordingly.extensions_cd.yamlwithpublish: falsefirst to verify packaging and registry generation work correctly before enabling R2 uploads.ONBOARDING=0 pnpm -F desktop tauri devand navigate to Extensions to verify the Store tab loads and install/uninstall work.enclosed_name()and skips the first path component - verify this handles all edge cases for path traversal protection.https://pub-hyprnote.r2.dev/extensions/registry.jsonis hardcoded incommands.rs:148- confirm this matches your R2 public URL.Notes
publish: trueand extensions are uploaded to R2