Adopt Grove TypeScript Packages - #114
Conversation
Signed-off-by: Paul Schmiedmayer <PSchmiedmayer@users.noreply.github.com>
|
Warning Review limit reached
Next review available in: 15 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (20)
📒 Files selected for processing (59)
📝 WalkthroughWalkthroughThe web UI migrates from Stanford Spezi to Grove for dependencies, configuration, providers, components, and styles. It adds system-aware light and dark themes with persisted selections and a session-header toggle. Internal refs are renamed without changing asynchronous session behavior. Sheet-closing helpers now verify hidden state in smoke and end-to-end tests. Test doubles retain readonly connection-instance arrays. Sequence Diagram(s)sequenceDiagram
participant Browser
participant useColorTheme
participant WorkspaceHeader
Browser->>useColorTheme: Provide system appearance or stored preference
useColorTheme->>Browser: Apply document theme
WorkspaceHeader->>useColorTheme: Toggle theme
useColorTheme->>Browser: Persist selected theme
Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
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 |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/dependabot.yml:
- Around line 28-30: Keep ESLint major updates ignored in the Dependabot
configuration at .github/dependabot.yml:28-30, so ESLint remains coupled to a
compatible Grove configuration release. The references at
packages/webui/package.json:56 and packages/webui/package.json:66 require no
direct change; they document the pinned Grove configuration and ESLint
relationship.
In `@packages/webui/eslint.config.mjs`:
- Around line 72-79: Update the ESLint rule overrides in the web UI
configuration by replacing import/no-default-export with
import-x/no-default-export and prefer-arrow/prefer-arrow-functions with
prefer-arrow-functions/prefer-arrow-functions. Alternatively, register
compatible aliases before retaining the existing names, ensuring both overrides
resolve to Grove’s supported rule namespaces.
In `@packages/webui/src/grove.css`:
- Line 12: Update the Stylelint configuration for the grove.css stylesheet so
the intentional Tailwind `@source` directive is accepted by
scss/at-rule-no-unknown. Prefer adding source to the allowed at-rule
configuration; otherwise add a narrowly scoped suppression immediately before
the `@source` directive.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 6e5f9422-8dee-48c3-aab9-898bbb19a182
⛔ Files ignored due to path filters (1)
packages/webui/package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (18)
.github/dependabot.ymlAGENTS.mddocumentation/contribute/development.mdpackages/webui/.prettierrc.mjspackages/webui/eslint.config.mjspackages/webui/package.jsonpackages/webui/scripts/smoke-reference-analysis.cjspackages/webui/src/App.tsxpackages/webui/src/client.test.tspackages/webui/src/components/CodeViewer.tsxpackages/webui/src/components/ConversationWorkspace.tsxpackages/webui/src/components/ProjectWorkspace.tsxpackages/webui/src/components/SessionRail.tsxpackages/webui/src/components/UtilitySheet.tsxpackages/webui/src/components/WorkspaceHeader.tsxpackages/webui/src/e2e/app.spec.tspackages/webui/src/grove.csspackages/webui/src/main.tsx
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/webui/src/colorTheme.ts`:
- Around line 42-64: Update the theme state flow around toggleTheme and the
system-theme useEffect so an explicit user selection is tracked independently of
localStorage persistence. Mark the theme as explicitly selected before setItem,
and have the storedTheme checks also honor that in-memory selection so
media-query changes cannot overwrite it when storage writes throw. Add a
regression test that makes localStorage.setItem throw, toggles the theme,
dispatches a media-query change, and verifies the explicit theme remains active.
In `@packages/webui/src/e2e/app.spec.ts`:
- Around line 44-47: Update the Escape-dismissal checks in the test around the
existing Close button locators so each Close button is first proven attached or
visible before pressing Escape, then retain the hidden assertion afterward.
Apply this to both dismissal steps, or remove the second Escape step if the
setup sheet should not reopen after reload.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 39c925e5-c28b-4c34-9e9c-4f16ad91425b
⛔ Files ignored due to path filters (1)
packages/webui/package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (11)
documentation/use/browser.mdpackages/webui/eslint.config.mjspackages/webui/package.jsonpackages/webui/src/App.tsxpackages/webui/src/colorTheme.test.tsxpackages/webui/src/colorTheme.tspackages/webui/src/components/CodeViewer.tsxpackages/webui/src/components/WorkspaceHeader.tsxpackages/webui/src/e2e/app.spec.tspackages/webui/src/styles.csspackages/webui/src/test/setup.ts
🚧 Files skipped from review as they are similar to previous changes (3)
- packages/webui/package.json
- packages/webui/eslint.config.mjs
- packages/webui/src/App.tsx
♻️ Current situation & Problem
Heartwood still depended on the previous shared web packages, which blocked ESLint 10 and kept obsolete naming in the repository. This follows Grove #34.
⚙️ Release Notes
📚 Documentation
README and browser documentation now use current generated desktop screenshots in both light and dark appearances, selected according to the viewer theme.
✅ Testing
Code of Conduct & Contributing Guidelines
By creating and submitting this pull request, you agree to follow our Code of Conduct and Contributing Guidelines: