Skip to content

feat(desktop-cards): add chart templates and React compatibility fixes - #3541

Merged
bobleer merged 2 commits into
GCWing:mainfrom
bobleer:bob/desktop-card-charts
Oct 24, 2026
Merged

bobleer merged 2 commits into
GCWing:mainfrom
bobleer:bob/desktop-card-charts

Conversation

@bobleer

@bobleer bobleer commented Oct 24, 2026

Copy link
Copy Markdown
Collaborator

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 inert attributes 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:rs and git diff --check
  • cargo test --locked -p openbitfun-core --no-default-features --features agent-runtime,git --lib desktop_card — 33 tests
  • pnpm --dir design-system/packages/ui run test — 345 tests plus package builds
  • pnpm --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 files
  • pnpm run check:web — type checking, Appearance contracts, typography, theme color audits, and theme visual governance
  • pnpm run capabilities:check && pnpm run capabilities:test — generated catalogs verified; 16 tests
  • pnpm run i18n:audit — zero warnings
  • pnpm --dir src/web-ui run icons:check
  • pnpm run motion:audit — inventory completed; not a pass/fail gate

Reviewer 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

  • This PR is focused and does not include secrets, temporary prompts, generated scratch files, or unrelated artifacts.
  • Relevant verification is recorded above, or skipped checks are explained.
  • User-facing strings, docs, and locales are updated where applicable.

@bobleer
bobleer merged commit a89fa6a into GCWing:main Oct 24, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant