Skip to content

feat(ui): show host integrations as traffic-light cards - #72

Merged
DevVig merged 1 commit into
mainfrom
feat/integrations-host-cards
Jul 20, 2026
Merged

feat(ui): show host integrations as traffic-light cards#72
DevVig merged 1 commit into
mainfrom
feat/integrations-host-cards

Conversation

@DevVig

@DevVig DevVig commented Jul 20, 2026

Copy link
Copy Markdown
Owner

Summary

  • Give every Integrations entry its own card with a green / yellow / red status pill
  • Derive Synara / ChatGPT / Claude Desktop / Conductor status from live session attribution (Active · N threads vs Waiting)
  • When Cursor/T3/Factory journals already show threads while the card is disabled, surface “N threads auto-detected — enable for controls”
  • Document hosts vs adapters so contributors don’t open Synara pairing PRs by mistake

Test plan

  • npm test -- --run in apps/microbridge-ui (16 passed)
  • npm run build
  • Open Settings → Integrations with Synara sessions live → Synara card green “Active · N threads”
  • With no Synara sessions → Synara card yellow “Waiting”
  • Cursor/T3 Enable/Pair controls still work

Made with Cursor

Copilot AI review requested due to automatic review settings July 20, 2026 23:27
@DevVig
DevVig force-pushed the feat/integrations-host-cards branch from 20ee95f to 520a957 Compare July 20, 2026 23:27
@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 25 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c739248d-2373-4304-a363-6de82b596bfc

📥 Commits

Reviewing files that changed from the base of the PR and between 4e9c912 and 090a0fa.

📒 Files selected for processing (7)
  • apps/microbridge-ui/src/components/IntegrationCard.tsx
  • apps/microbridge-ui/src/lib/hosts.test.ts
  • apps/microbridge-ui/src/lib/hosts.ts
  • apps/microbridge-ui/src/surfaces/Settings.tsx
  • apps/microbridge-ui/src/surfaces/surfaces.test.tsx
  • docs/adapters.md
  • docs/design/README.md

Comment @coderabbitai help to get the list of available commands.

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.
@DevVig
DevVig force-pushed the feat/integrations-host-cards branch from 520a957 to 090a0fa Compare July 20, 2026 23:27
@DevVig
DevVig merged commit 4ff626d into main Jul 20, 2026
6 of 7 checks passed
@DevVig
DevVig deleted the feat/integrations-host-cards branch July 20, 2026 23:29

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 IntegrationCard component.
  • 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.
@DevVig DevVig mentioned this pull request Jul 21, 2026
3 tasks
DevVig added a commit that referenced this pull request Jul 21, 2026
## 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)
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.

2 participants