Conversation
…onViewProps Co-Authored-By: yujonglee <yujonglee.dev@gmail.com>
🤖 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 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for hyprnote-storybook ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
📝 WalkthroughWalkthroughConsolidates the Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
plugins/extensions/js/index.ts (1)
3-6: SharedExtensionViewPropsexport looks correctCentralizing this interface in the plugin package makes the extension surface clearer and avoids drift with desktop types. The shape is minimal and appropriate for a shared boundary;
Record<string, unknown>is a good choice here.If you later need stronger typing for per-extension state, you could consider a generic (e.g.,
ExtensionViewProps<TState = Record<string, unknown>>), but that’s strictly optional for now.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
apps/desktop/src/components/main/body/extensions/registry.ts(1 hunks)apps/desktop/src/types/extensions.d.ts(0 hunks)plugins/extensions/js/index.ts(1 hunks)tsconfig.json(1 hunks)
💤 Files with no reviewable changes (1)
- apps/desktop/src/types/extensions.d.ts
🧰 Additional context used
📓 Path-based instructions (2)
**/*.ts
📄 CodeRabbit inference engine (CLAUDE.md)
**/*.ts: Agent implementations should use TypeScript and follow the established architectural patterns defined in the agent framework
Agent communication should use defined message protocols and interfaces
Files:
apps/desktop/src/components/main/body/extensions/registry.tsplugins/extensions/js/index.ts
**/*.{ts,tsx}
📄 CodeRabbit inference engine (AGENTS.md)
**/*.{ts,tsx}: Avoid creating a bunch of types/interfaces if they are not shared. Especially for function props, just inline them instead.
Never do manual state management for form/mutation. Use useForm (from tanstack-form) and useQuery/useMutation (from tanstack-query) instead for 99% of cases. Avoid patterns like setError.
If there are many classNames with conditional logic, usecn(import from@hypr/utils). It is similar toclsx. Always pass an array and split by logical grouping.
Usemotion/reactinstead offramer-motion.
Files:
apps/desktop/src/components/main/body/extensions/registry.tsplugins/extensions/js/index.ts
🧠 Learnings (1)
📚 Learning: 2025-11-24T16:32:24.348Z
Learnt from: CR
Repo: fastrepl/hyprnote PR: 0
File: apps/desktop-e2e/AGENTS.md:0-0
Timestamp: 2025-11-24T16:32:24.348Z
Learning: Applies to apps/desktop-e2e/**/*.{test,spec}.{js,ts,tsx} : Refer to `scripts/setup-desktop-e2e.sh` for end-to-end test environment setup if setup is missing
Applied to files:
tsconfig.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
- GitHub Check: Redirect rules - hyprnote
- GitHub Check: Header rules - hyprnote
- GitHub Check: Pages changed - hyprnote
- GitHub Check: ci (macos, depot-macos-14)
- GitHub Check: fmt
- GitHub Check: ci (linux, depot-ubuntu-24.04-8)
- GitHub Check: ci (linux, depot-ubuntu-22.04-8)
🔇 Additional comments (1)
apps/desktop/src/components/main/body/extensions/registry.ts (1)
4-9: ImportingExtensionViewPropsfrom plugin package is a clean consolidationSwitching the source of
ExtensionViewPropsto@hypr/plugin-extensionskeeps host and extensions in sync and removes the local duplicate type. Thetype-only import is also idiomatic and keeps the runtime bundle clean.No further changes needed here.
Summary
Fixes TypeScript IDE errors in the
extensions/folder by adding a roottsconfig.jsonwith project references. This helps VSCode recognizeextensions/tsconfig.jsonas the correct config for files in that folder.Also consolidates the
ExtensionViewPropstype into@hypr/plugin-extensionspackage and removes the redundant local type definition from the desktop app.Changes:
tsconfig.jsonwith project references toapps/desktop,extensions, andpackages/uiExtensionViewPropsinterface toplugins/extensions/js/index.tsregistry.tsto import from@hypr/plugin-extensionsapps/desktop/src/types/extensions.d.tsReview & Testing Checklist for Human
extensions/hello-world/ui.tsxin VSCode and confirm thereact/jsx-runtimeerror is gone. RunTypeScript: Go to Project Configurationcommand to verify it points toextensions/tsconfig.jsonpnpm -F desktop tauri devto ensure the app still works after the import changeExtensionViewPropsfrom@hypr/plugin-extensionssince that package has Tauri dependencies - extension authors will still define this interface locallyNotes
"files": []to prevent it from becoming a catch-all projectLink to Devin run: https://app.devin.ai/sessions/aeff7a7a730f458bbe86029a3b44b75d
Requested by: yujonglee (@yujonglee)