feat: add native CNVS integration - #66
Conversation
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 39 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 ignored due to path filters (1)
📒 Files selected for processing (19)
Comment |
There was a problem hiding this comment.
Pull request overview
Adds a first-party (in-process) CNVS integration to Microbridge by polling CNVS’s authenticated loopback control API, modeling sessions by stable canvas + node identity, and routing focus/interrupt actions back to the exact CNVS terminal. The PR also introduces reconciliation between CNVS-hosted terminals and raw Codex/Claude journal observations, plus UI/state/docs updates to disclose CNVS capabilities and setup/security constraints.
Changes:
- Implement native CNVS adapter (discovery + focus/interrupt actions) and wire it into the daemon runtime.
- Extend adapter observation model with
ObservedSession+SessionContextand add reconciliation logic to avoid duplicating CNVS-hosted sessions. - Update UI snapshots/tests and documentation to reflect CNVS capabilities, privacy, and operational behavior.
Reviewed changes
Copilot reviewed 19 out of 20 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Mentions CNVS support and clarifies local-only network posture. |
| INSTALL.md | Adds CNVS integration setup and capability notes. |
| docs/architecture.md | Updates architecture/footprint budgets and CNVS security guarantees. |
| docs/adapters.md | Documents CNVS as preferred official API integration and daemon-owned boundary. |
| crates/microbridged/src/state.rs | Adds observed-session caching + hosted-claim reconciliation and CNVS adapter registration. |
| crates/microbridged/src/main.rs | Wires CNVS internal adapter and routes observed sessions through the new API. |
| crates/microbridged/src/lib.rs | Exposes the new cnvs module. |
| crates/microbridged/src/cnvs.rs | New CNVS loopback API integration (polling, targeting, actions, endpoint validation). |
| crates/microbridged/src/app_match.rs | Recognizes CNVS for app-family matching. |
| crates/microbridged/Cargo.toml | Adds percent-encoding dependency for stable CNVS session IDs. |
| crates/mb-protocol/src/lib.rs | Enables CNVS by default in adapter preferences. |
| crates/mb-adapters/src/lib.rs | Introduces ObservedSession + SessionContext; updates adapter event contract. |
| crates/mb-adapters/src/codex.rs | Emits observed sessions (session + optional runtime/cwd context). |
| crates/mb-adapters/src/claude.rs | Emits observed sessions (session + optional runtime/cwd context). |
| Cargo.lock | Locks new dependency additions. |
| apps/microbridge-ui/src/surfaces/surfaces.test.tsx | Updates Settings surface expectations for CNVS adapter presence/capabilities. |
| apps/microbridge-ui/src/surfaces/Settings.tsx | Updates adapter explanatory text and focused-app hint to include CNVS behavior. |
| apps/microbridge-ui/src/lib/bus.ts | Adds CNVS to the demo snapshot adapter list. |
| adapters/README.md | Reorganizes adapter catalog; lists CNVS integration. |
| adapters/cnvs/README.md | New CNVS adapter documentation (setup, capabilities, privacy/footprint, reconciliation behavior). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| let normalized = SessionContext { | ||
| runtime: context.runtime.clone(), | ||
| cwd: normalize_cwd(&context.cwd), | ||
| }; | ||
| self.hosted_claims | ||
| .values() | ||
| .any(|claims| claims.contains(&normalized)) | ||
| } |
| ("codex".into(), native("codex", "Codex CLI")), | ||
| ("synara".into(), native("synara", "Synara")), | ||
| ("conductor".into(), native("conductor", "Conductor")), | ||
| ("cnvs".into(), native("cnvs", "CNVS")), |
| pub fn upsert_observed_session(&mut self, mut observed: ObservedSession, owner: u64) { | ||
| if let Some(context) = observed.context.as_mut() { | ||
| context.cwd = normalize_cwd(&context.cwd); | ||
| } | ||
| let id = observed.session.id.clone(); |
## Summary - bump Rust workspace, Tauri bundle, npm package, and lockfiles to `0.3.1` - add curated `v0.3.1` release notes for native CNVS support - leave Homebrew at `0.3.0` until tagged assets pass prepublish/public smoke tests ## Release range - `v0.3.0..22f7375` - includes native CNVS integration from #66 - no breaking changes or migrations ## Checks - `cargo test --workspace` (76 tests) - `cargo clippy --workspace --all-targets -- -D warnings` - `cargo fmt --all -- --check` - `npm test -- --run` (9 tests) - `npm run build` - Tauri crate `cargo check` with local sidecars - version consistency across Rust, npm, Tauri, and lockfiles ## Review note The CNVS implementation had a clean local CodeRabbit pass before #66 merged. The additional version-only release-diff review is temporarily rate-limited by CodeRabbit; it will be retried before the public tag.
Summary
Live verification
ProjectHeimdall, selected nodeE23E16FA-A24D-44B0-AD0F-3854AD463294, and became frontmostChecks
cargo test --workspace(76 tests)cargo clippy --workspace --all-targets -- -D warningscargo fmt --all -- --checknpm test -- --run(9 tests)npm run buildcargo checkwith local sidecars