diff --git a/Cargo.lock b/Cargo.lock index 7851b8b..fe4aa61 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -616,7 +616,7 @@ dependencies = [ [[package]] name = "mb-adapters" -version = "0.3.1" +version = "0.3.2" dependencies = [ "mb-protocol", "notify", @@ -628,7 +628,7 @@ dependencies = [ [[package]] name = "mb-device" -version = "0.3.1" +version = "0.3.2" dependencies = [ "hidapi", "mb-protocol", @@ -639,7 +639,7 @@ dependencies = [ [[package]] name = "mb-protocol" -version = "0.3.1" +version = "0.3.2" dependencies = [ "serde", "serde_json", @@ -653,7 +653,7 @@ checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" [[package]] name = "microbridgectl" -version = "0.3.1" +version = "0.3.2" dependencies = [ "mb-device", "mb-protocol", @@ -663,7 +663,7 @@ dependencies = [ [[package]] name = "microbridged" -version = "0.3.1" +version = "0.3.2" dependencies = [ "keyring", "mb-adapters", diff --git a/Cargo.toml b/Cargo.toml index ebb95bf..cbee71e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ members = [ ] [workspace.package] -version = "0.3.1" +version = "0.3.2" 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 4d1222b..48702ae 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.1", + "version": "0.3.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "microbridge-ui", - "version": "0.3.1", + "version": "0.3.2", "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 7b122c8..f81f563 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.1", + "version": "0.3.2", "type": "module", "scripts": { "dev": "vite", diff --git a/apps/microbridge-ui/src-tauri/Cargo.lock b/apps/microbridge-ui/src-tauri/Cargo.lock index ca8d0f4..9e8e6f6 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.1" +version = "0.3.2" dependencies = [ "serde", ] @@ -1853,7 +1853,7 @@ dependencies = [ [[package]] name = "microbridge-ui" -version = "0.3.1" +version = "0.3.2" dependencies = [ "mb-protocol", "serde", diff --git a/apps/microbridge-ui/src-tauri/Cargo.toml b/apps/microbridge-ui/src-tauri/Cargo.toml index 1eb8a7b..8aae603 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.1" +version = "0.3.2" 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 97f6831..e11d858 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.1", + "version": "0.3.2", "identifier": "ai.microbridge.ui", "build": { "beforeDevCommand": "npm run dev", diff --git a/docs/releases/v0.3.2.md b/docs/releases/v0.3.2.md new file mode 100644 index 0000000..7efc491 --- /dev/null +++ b/docs/releases/v0.3.2.md @@ -0,0 +1,62 @@ +# Microbridge 0.3.2 (2026-07-20) + +This patch release makes every supported host visible in one Integrations +catalog and adds opt-in OpenCode support. + +## Highlights + +- **One integrations catalog:** Settings now lists every supported host under + Connected or Not connected, with live capability limits and setup guidance. +- **Desktop apps are first-class:** ChatGPT and Claude Desktop are identified + separately from Codex CLI and Claude Code for session labels, deck focus, and + focused-app key assignment. +- **OpenCode:** Enable the bundled dependency-free global plugin from Settings + to receive lifecycle state and route Interrupt to the exact OpenCode session. + +## Integration clarity + +- The user-facing term is now **Integrations** throughout the app and primary + documentation. `adapter` remains only the technical name of the local socket + protocol role. +- Synara, Conductor, CNVS, ChatGPT, Claude Desktop, Codex CLI, and Claude Code + continue to use built-in attribution or local control paths. +- Cursor, Factory, T3 Code, and OpenCode show their explicit enable, pairing, + repair, disconnect, or removal steps where applicable. + +## Privacy and footprint + +- The OpenCode plugin sends only session identifier, title, state, and update + time over Microbridge's local mode-`0600` Unix socket. +- It does not send prompts, responses, transcripts, source code, files, or tool + arguments and introduces no additional resident helper process. +- Reconnection to the local daemon uses bounded exponential backoff. + +## Upgrade notes + +- No migration or manual configuration is required. +- OpenCode remains disabled until explicitly enabled in **Settings → + Integrations**. Restart OpenCode once after enabling or removing the plugin if + OpenCode was already running. +- Direct installs can use **Check for Updates…**. Homebrew installs update with + `brew update && brew upgrade microbridge` after formula promotion completes. + +## Verification + +- 76 Rust workspace tests, strict Clippy, and formatting. +- 4 native Tauri tests, including OpenCode install/update/remove ownership + protection. +- 9 UI tests and a production frontend build. +- 6 OpenCode/Cursor Node integration tests. +- A debug macOS app bundle was built and verified to contain the OpenCode + resource. +- Local CodeRabbit review raised 0 issues; required GitHub CI passed on macOS, + Linux, UI, and integration jobs. + +## Risk / notes + +- Existing `v0.3.1` installations do not contain this integration until + upgraded. +- OpenCode currently exposes lifecycle and exact-session interrupt. Focus/open, + approvals, new-session, and reasoning-effort remain disabled until OpenCode + exposes stable supported targets for them. +- Physical Codex Micro behavior remains a separate real-device validation gate.