Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/finalize-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ jobs:
syspolicy_check distribution "$APP"
SERVICE_STATE=""
for _ in {1..30}; do
SERVICE_STATE="$(brew services list | awk '$1 == "microbridge" { print $2; exit }')"
SERVICE_STATE="$(brew services list --json | jq -r 'map(select(.name=="microbridge")) | .[0].status // empty')"
[[ "$SERVICE_STATE" == "started" || "$SERVICE_STATE" == "scheduled" ]] && break
sleep 1
done
Expand All @@ -95,7 +95,7 @@ jobs:
wait "$APP_PID" || true
brew services stop DevVig/microbridge/microbridge
HOMEBREW_NO_INSTALL_CLEANUP=1 brew uninstall DevVig/microbridge/microbridge
if brew services list | grep -q '^microbridge[[:space:]]'; then
if brew services list --json | jq -e '.[] | select(.name=="microbridge")' >/dev/null; then
echo "microbridge service is still registered after uninstall" >&2
exit 1
fi
Expand Down
4 changes: 2 additions & 2 deletions apps/microbridge-ui/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion apps/microbridge-ui/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "microbridge-ui"
version = "0.3.6"
version = "0.3.7"
Comment thread
DevVig marked this conversation as resolved.
description = "Microbridge menu bar app (primary UI)"
authors = ["Microbridge contributors"]
edition = "2021"
Expand Down
24 changes: 24 additions & 0 deletions crates/microbridged/src/state.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1090,6 +1090,30 @@ mod tests {
assert!(!state.adapter_txs.contains_key(&24));
}

#[test]
fn route_action_open_focused_thread_uses_focus_uri() {
let mut state = state();
let mut sess = session("cursor:one", AgentState::Working);
sess.focus_uri = Some("cursor://file/test".into());
state.upsert_session(sess, 0);

#[cfg(target_os = "macos")]
{
assert!(state
.route_action("cursor:one", Action::OpenFocusedThread)
.is_ok());
}

#[cfg(not(target_os = "macos"))]
{
let error = state
.route_action("cursor:one", Action::OpenFocusedThread)
.unwrap_err();
assert!(error.contains("only supported on macOS"));
assert!(error.contains("cursor://file/test"));
}
}

#[test]
fn route_action_rejects_unadvertised_capability() {
let mut state = state();
Expand Down
30 changes: 30 additions & 0 deletions docs/releases/v0.3.7.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Microbridge 0.3.7 (2026-07-21)

Integration expansion release with auto-discovery, embedded MCP, universal
focus deep-linking, and a community adapter SDK.

## Highlights

- **Auto-Discovery Engine:** Scans for installed agent runtimes (Cursor,
OpenCode, VS Code, Zed, Windsurf, Goose, Factory) on daemon startup.
- **Embedded MCP Server:** Local HTTP MCP JSON-RPC endpoint at
`http://127.0.0.1:9190/mcp` for Claude Desktop, Goose, Roo Code, and
Continue.dev.
- **Universal Focus Deep-Linking:** Agent key press launches focus URIs such as
`cursor://file/...` and `vscode://file/...` on macOS.
- **Community Adapter SDK:** Published `@microbridge/adapter-sdk` under
`adapters/sdk/`.
- **CI hardening:** Homebrew finalize and formula smokes read service state via
`brew services list --json` to avoid Intel pipefail flakes.

## Upgrade notes

- No migration. Install this DMG (or `brew upgrade` after the formula bump).
- Reconnect opt-in integrations under Settings → Integrations after upgrading
if adapters were disabled during the update.

## Risk / notes

- Focus deep-linking via `OpenFocusedThread` is macOS-only; other platforms
return a clear error when a focus URI is present.
- T3 Code server contract remains at `0.0.28` / `0.0.29` (see `0.3.6` notes).
4 changes: 2 additions & 2 deletions scripts/smoke-formula.sh
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ syspolicy_check distribution "$APP"

SERVICE_STATE=""
for _ in {1..30}; do
SERVICE_STATE="$(brew services list | awk '$1 == "microbridge" { print $2; exit }')"
SERVICE_STATE="$(brew services list --json | jq -r 'map(select(.name=="microbridge")) | .[0].status // empty')"
[[ "$SERVICE_STATE" == "started" || "$SERVICE_STATE" == "scheduled" ]] && break
sleep 1
done
Expand All @@ -99,7 +99,7 @@ wait "$APP_PID" || true
brew services stop "$TAP/microbridge"
HOMEBREW_NO_INSTALL_CLEANUP=1 brew uninstall "$TAP/microbridge"
test ! -e "$(brew --cellar)/microbridge/$VERSION"
if brew services list | grep -q '^microbridge[[:space:]]'; then
if brew services list --json | jq -e '.[] | select(.name=="microbridge")' >/dev/null; then
echo "microbridge service is still registered after uninstall" >&2
exit 1
fi
Expand Down
Loading