diff --git a/Cargo.lock b/Cargo.lock index fc79eb4..7851b8b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -616,7 +616,7 @@ dependencies = [ [[package]] name = "mb-adapters" -version = "0.3.0" +version = "0.3.1" dependencies = [ "mb-protocol", "notify", @@ -628,7 +628,7 @@ dependencies = [ [[package]] name = "mb-device" -version = "0.3.0" +version = "0.3.1" dependencies = [ "hidapi", "mb-protocol", @@ -639,7 +639,7 @@ dependencies = [ [[package]] name = "mb-protocol" -version = "0.3.0" +version = "0.3.1" dependencies = [ "serde", "serde_json", @@ -653,7 +653,7 @@ checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" [[package]] name = "microbridgectl" -version = "0.3.0" +version = "0.3.1" dependencies = [ "mb-device", "mb-protocol", @@ -663,7 +663,7 @@ dependencies = [ [[package]] name = "microbridged" -version = "0.3.0" +version = "0.3.1" dependencies = [ "keyring", "mb-adapters", diff --git a/Cargo.toml b/Cargo.toml index 2c0282c..ebb95bf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ members = [ ] [workspace.package] -version = "0.3.0" +version = "0.3.1" edition = "2021" license = "MIT" repository = "https://github.com/DevVig/microbridge" diff --git a/apps/microbridge-ui/package-lock.json b/apps/microbridge-ui/package-lock.json index f3db517..4d1222b 100644 --- a/apps/microbridge-ui/package-lock.json +++ b/apps/microbridge-ui/package-lock.json @@ -1,12 +1,12 @@ { "name": "microbridge-ui", - "version": "0.3.0", + "version": "0.3.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "microbridge-ui", - "version": "0.3.0", + "version": "0.3.1", "dependencies": { "@tauri-apps/api": "^2", "@tauri-apps/plugin-dialog": "^2", diff --git a/apps/microbridge-ui/package.json b/apps/microbridge-ui/package.json index b02ae9d..7b122c8 100644 --- a/apps/microbridge-ui/package.json +++ b/apps/microbridge-ui/package.json @@ -1,7 +1,7 @@ { "name": "microbridge-ui", "private": true, - "version": "0.3.0", + "version": "0.3.1", "type": "module", "scripts": { "dev": "vite", diff --git a/apps/microbridge-ui/src-tauri/Cargo.lock b/apps/microbridge-ui/src-tauri/Cargo.lock index 7d3af1c..ca8d0f4 100644 --- a/apps/microbridge-ui/src-tauri/Cargo.lock +++ b/apps/microbridge-ui/src-tauri/Cargo.lock @@ -1831,7 +1831,7 @@ dependencies = [ [[package]] name = "mb-protocol" -version = "0.3.0" +version = "0.3.1" dependencies = [ "serde", ] @@ -1853,7 +1853,7 @@ dependencies = [ [[package]] name = "microbridge-ui" -version = "0.3.0" +version = "0.3.1" dependencies = [ "mb-protocol", "serde", diff --git a/apps/microbridge-ui/src-tauri/Cargo.toml b/apps/microbridge-ui/src-tauri/Cargo.toml index a81d819..1eb8a7b 100644 --- a/apps/microbridge-ui/src-tauri/Cargo.toml +++ b/apps/microbridge-ui/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "microbridge-ui" -version = "0.3.0" +version = "0.3.1" description = "Microbridge menu bar app (primary UI)" authors = ["Microbridge contributors"] edition = "2021" diff --git a/apps/microbridge-ui/src-tauri/tauri.conf.json b/apps/microbridge-ui/src-tauri/tauri.conf.json index 66e1830..7708db0 100644 --- a/apps/microbridge-ui/src-tauri/tauri.conf.json +++ b/apps/microbridge-ui/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "Microbridge", - "version": "0.3.0", + "version": "0.3.1", "identifier": "ai.microbridge.ui", "build": { "beforeDevCommand": "npm run dev", diff --git a/docs/releases/v0.3.1.md b/docs/releases/v0.3.1.md new file mode 100644 index 0000000..03e292b --- /dev/null +++ b/docs/releases/v0.3.1.md @@ -0,0 +1,50 @@ +# Microbridge 0.3.1 (2026-07-20) + +This patch release adds native CNVS support without changing existing adapter +configuration or installation paths. + +## Highlight + +- **CNVS:** Microbridge now discovers agent terminals through CNVS's + authenticated local control API. Each session is tied to its exact canvas + and terminal node, so an Agent Key can switch to the correct workspace, + select the intended terminal, and bring CNVS forward. + +## Controls + +- Agent lifecycle state drives the existing key assignment and LED pipeline. +- Double-press/open focuses the exact CNVS canvas and terminal. +- Interrupt routes to the exact running terminal. +- Approval, new-session, and reasoning-effort controls remain disabled because + CNVS does not expose stable targets for them through this contract. + +## Privacy and footprint + +- No CNVS plugin, pairing code, private database access, or workspace changes. +- The short-lived CNVS token is read from its endpoint descriptor for each + scan or action and is never logged or persisted by Microbridge. +- Only loopback endpoints are accepted. Snapshot refreshes are adaptive and + publish only changed sessions. + +## Upgrade notes + +- No migration or manual configuration is required. CNVS support is enabled by + default and connects automatically while CNVS is running. +- Direct installs can use **Check for Updates…**. Homebrew installs update with + `brew update && brew upgrade microbridge` after the formula promotion finishes. + +## Verification + +- Live CNVS test across 8 canvases and 9 agent terminals. +- Agent Key routing switched to ProjectHeimdall, selected the exact requested + Codex terminal node, and brought CNVS to the foreground. +- Rust workspace tests, strict Clippy, formatting, UI tests/build, Tauri compile, + macOS CI, Linux CI, and a clean local CodeRabbit review. + +## Risk / notes + +- Existing `v0.3.0` installations do not contain CNVS support until upgraded. +- Cursor-hosted CNVS terminals may appear twice because Cursor's current managed + lifecycle payload does not expose enough stable workspace identity for exact + reconciliation. Codex and Claude journal duplicates are reconciled safely. +- Physical Codex Micro behavior still requires validation on real hardware.