Repository navigation
feat(desktop-cards): add chart templates and React compatibility fixes - #3541
Merged
Merged
Conversation
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
Add built-in desktop-card charts for measured amounts that currently require custom HTML or a note full of numbers. Support bar, column, line, donut, and stacked charts with static or JSON Pointer-bound data, localized formatting, totals/remainders, per-item hints, and captions. Extend the tool schema, presets, capability documentation, and all three locales.
A separate commit preserves
inertattributes and Tooltip child refs across React 18 and 19, keeping retained or collapsed shared UI content non-interactive.Type and Areas
Type: Feature, compatibility fix
Areas: Rust core DesktopCard contract/tool, Web UI, shared design system, locales, generated capability catalogs
Motivation / Impact
Agents can show breakdowns, proportions, and trends using templates that follow the app theme. Data limits, validation, missing-path feedback, and explicit unsupported-style states keep chart payloads predictable. Existing card records retain their defaults and unknown template fields survive persistence round trips.
Verification
Passed locally:
pnpm run fmt:rsandgit diff --checkcargo test --locked -p openbitfun-core --no-default-features --features agent-runtime,git --lib desktop_card— 33 testspnpm --dir design-system/packages/ui run test— 345 tests plus package buildspnpm --dir src/web-ui run test:run src/app/components/DesktopCard src/flow_chat/tool-cards/builtinToolCardModel.test.ts src/shared/ui/OverlayStack.test.tsx src/shared/ui/OverlayOwnership.contract.test.ts src/shared/ui/Dialog.test.tsx src/shared/ui/MenuPopover.test.tsx src/shared/ui/SplitView.test.tsx src/infrastructure/appearance/runtime/AppearanceOverlayHost.test.ts src/shared/notification-system/components/NotificationContainer.test.tsx src/shared/context-menu-system/components/ui/ContextMenu.test.tsx src/infrastructure/design-system/IconUsageIntegration.test.tsx src/app/startup/startupPreload.test.ts— 181 tests across 15 filespnpm run check:web— type checking, Appearance contracts, typography, theme color audits, and theme visual governancepnpm run capabilities:check && pnpm run capabilities:test— generated catalogs verified; 16 testspnpm run i18n:audit— zero warningspnpm --dir src/web-ui run icons:checkpnpm run motion:audit— inventory completed; not a pass/fail gateReviewer Notes
Local unit tests exercise remote-control refusal and remote-workspace command-source refusal. Live remote workspace, mobile/bot remote control, Peer Device Mode, and Detached Dispatch were not exercised. Native desktop rendering was not manually verified in this submission pass.
The changes are separated into two commits for chart support and React compatibility. Merge with a merge commit to preserve both commits.
Checklist