feat(ui): show host integrations as traffic-light cards - #72
Conversation
20ee95f to
520a957
Compare
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 25 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. 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 Run ID: 📒 Files selected for processing (7)
Comment |
Synara, ChatGPT, Claude Desktop, and Conductor each get their own Integrations card with green/yellow/red status derived from live session attribution, so journal hosts are visible without inventing a separate pairing adapter.
520a957 to
090a0fa
Compare
There was a problem hiding this comment.
Pull request overview
This PR refactors the Settings → Integrations UI to present each supported integration as an individual “traffic-light” card, with status derived from adapter state plus live session attribution (especially for host-attributed apps like Synara/ChatGPT/Claude Desktop/Conductor). It also documents the “hosts vs adapters” distinction to reduce contributor confusion.
Changes:
- Replace the Integrations list UI with per-integration cards (green/yellow/red) using a shared
IntegrationCardcomponent. - Add
integrationView()logic to derive card status/labels/diagnostics from adapter state + session attribution (including “auto-detected threads” messaging for disabled opt-in adapters). - Add/adjust tests and documentation to cover host-attributed behavior and the new UX copy.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/design/README.md | Updates design notes for the Integrations section to reflect per-app cards and host-attributed status-only behavior. |
| docs/adapters.md | Adds “Hosts vs adapters” guidance to prevent incorrect pairing-adapter PRs for host-attributed apps. |
| apps/microbridge-ui/src/surfaces/surfaces.test.tsx | Updates Settings snapshot expectations and adds a Synara attribution test case. |
| apps/microbridge-ui/src/surfaces/Settings.tsx | Switches Integrations rendering to grouped card lists using integrationView() + IntegrationCard. |
| apps/microbridge-ui/src/lib/hosts.ts | Introduces host attribution utilities and the integration traffic-light derivation logic. |
| apps/microbridge-ui/src/lib/hosts.test.ts | Adds unit tests for hostPresence() and integrationView() scenarios. |
| apps/microbridge-ui/src/components/IntegrationCard.tsx | New presentational component for the traffic-light integration cards. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| <div className="flex items-center gap-2 text-[11px] font-semibold uppercase tracking-[0.08em]" style={{ color: t.textSecondary }}> | ||
| <span className="h-2 w-2 rounded-full" style={{ backgroundColor: group.connected ? "#30C463" : t.textMuted }} /> | ||
| {group.label} · {group.integrations.length} | ||
| <span className="h-2 w-2 rounded-full" style={{ backgroundColor: group.items.length ? TRAFFIC_COLORS[group.light].dot : t.textMuted }} /> |
| Desktop, Synara, Conductor, and CNVS are built in. Cursor, Factory, | ||
| T3 Code, and OpenCode connect only after you choose to enable them. | ||
| Every supported app is its own card. Green means live threads or a | ||
| healthy watcher; yellow means waiting or setup; red means error. |
## Summary - Align Rust, Tauri, and npm versions at `0.3.3` - Add user-facing release notes for the Integrations tile grid and host traffic-light status (#72, #73) - No migration; patch release for the installed DMG/updater path ## Test plan - [x] Version sources aligned at 0.3.3 - [x] `npm test -- --run` (16 passed) - [ ] CI green → squash-merge → tag `v0.3.3` to publish signed/notarized assets Made with [Cursor](https://cursor.com)
Summary
Test plan
npm test -- --runinapps/microbridge-ui(16 passed)npm run buildMade with Cursor