Skip to content

feat: ship v0.2.1 tray, adapters, lighting, and release recovery - #46

Merged
DevVig merged 3 commits into
mainfrom
t3code/adapter-settings-homebrew-fix
Jul 18, 2026
Merged

feat: ship v0.2.1 tray, adapters, lighting, and release recovery#46
DevVig merged 3 commits into
mainfrom
t3code/adapter-settings-homebrew-fix

Conversation

@DevVig

@DevVig DevVig commented Jul 18, 2026

Copy link
Copy Markdown
Owner

Summary

  • make left-click open the content-sized adapter popover while right-click keeps the utility menu
  • ship Cursor lifecycle support inside Microbridge with consented one-click local installation and removal
  • add live adapter capability/state reporting and paired, version-pinned T3 Code support
  • complete opt-in hardware input routing and normalize persistent Codex/Phosphor/custom lighting palettes
  • harden the signed v0.2.1 and Homebrew publication workflow through public-install verification

Cursor does not require a separate Marketplace download. The runtime files live in this repository, are bundled in Microbridge.app, and are installed into Cursor only after the user clicks Enable Cursor.

Validation

  • cargo fmt --all --check
  • cargo test --workspace (49 tests)
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test --manifest-path apps/microbridge-ui/src-tauri/Cargo.toml (2 installer tests)
  • cargo clippy --manifest-path apps/microbridge-ui/src-tauri/Cargo.toml --all-targets -- -D warnings
  • npm test and npm run build in apps/microbridge-ui
  • node --test adapters/cursor/hooks/microbridge-event.test.mjs
  • local Tauri app bundle inspection confirmed cursor-plugin runtime resources and version 0.2.1

Release boundary

Hardware control remains off by default pending physical Codex Micro verification. Cursor lifecycle is capability-gated as Limited for unsupported IDE controls. T3 Code remains opt-in and requires a pairing link. The v0.2.1 tag will publish signed artifacts as a prerelease, open the tested formula PR, verify public Apple Silicon and Intel installs, then promote the release.

Copilot AI review requested due to automatic review settings July 18, 2026 18:44
@coderabbitai

coderabbitai Bot commented Jul 18, 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: 32 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: 01c380ee-212c-461b-bfcc-0cd7875ebb5b

📥 Commits

Reviewing files that changed from the base of the PR and between bcb46cc and 6d27bc8.

⛔ Files ignored due to path filters (3)
  • Cargo.lock is excluded by !**/*.lock
  • apps/microbridge-ui/package-lock.json is excluded by !**/package-lock.json
  • apps/microbridge-ui/src-tauri/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (46)
  • .github/workflows/ci.yml
  • .github/workflows/finalize-release.yml
  • .github/workflows/release.yml
  • Cargo.toml
  • INSTALL.md
  • Makefile
  • PRIVACY.md
  • README.md
  • adapters/cursor/.cursor-plugin/plugin.json
  • adapters/cursor/README.md
  • adapters/cursor/hooks/event.mjs
  • adapters/cursor/hooks/hooks.json
  • adapters/cursor/hooks/microbridge-event.mjs
  • adapters/cursor/hooks/microbridge-event.test.mjs
  • adapters/cursor/index.mjs
  • adapters/t3code/README.md
  • adapters/t3code/index.mjs
  • apps/microbridge-ui/package.json
  • apps/microbridge-ui/src-tauri/Cargo.toml
  • apps/microbridge-ui/src-tauri/src/bus.rs
  • apps/microbridge-ui/src-tauri/src/lib.rs
  • apps/microbridge-ui/src-tauri/tauri.conf.json
  • apps/microbridge-ui/src/lib/bus.ts
  • apps/microbridge-ui/src/lib/threads.ts
  • apps/microbridge-ui/src/lib/types.ts
  • apps/microbridge-ui/src/surfaces/Popover.tsx
  • apps/microbridge-ui/src/surfaces/Settings.tsx
  • apps/microbridge-ui/src/surfaces/surfaces.test.tsx
  • apps/microbridge-ui/vite.config.ts
  • crates/mb-device/src/lib.rs
  • crates/mb-protocol/src/lib.rs
  • crates/microbridgectl/src/main.rs
  • crates/microbridged/Cargo.toml
  • crates/microbridged/src/config.rs
  • crates/microbridged/src/lib.rs
  • crates/microbridged/src/main.rs
  • crates/microbridged/src/socket.rs
  • crates/microbridged/src/state.rs
  • crates/microbridged/src/t3code.rs
  • docs/adapters.md
  • docs/architecture.md
  • docs/device-hid.md
  • docs/governance.md
  • docs/protocol.md
  • scripts/bump-formula.sh
  • scripts/smoke-formula.sh

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

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 prepares the v0.2.1 release by expanding Microbridge’s adapter model (consent + capabilities), bundling/installing Cursor lifecycle hooks, adding a daemon-owned paired T3 Code integration, normalizing hardware-control and lighting behavior, and hardening the Homebrew + release publication workflow with smoke/verification steps.

Changes:

  • Adds adapter consent/capability gating across protocol, daemon state, UI, and tooling (including lifecycle leases for managed IDE hooks).
  • Introduces T3 Code pairing + pinned-contract HTTP orchestration inside microbridged, with Keychain credential storage and UI controls.
  • Strengthens release + Homebrew publication with prepublish/public-asset smoke tests, version validation, and post-Homebrew finalization automation.

Reviewed changes

Copilot reviewed 46 out of 49 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
scripts/smoke-formula.sh Adds a Homebrew formula lifecycle smoke test for macOS installs/services/app bundle.
scripts/bump-formula.sh Allows overriding release asset base URL (e.g., file:// for CI smoke validation).
README.md Updates project positioning/status and documents Cursor integration shipping model.
PRIVACY.md Updates privacy posture to reflect opt-in update checks and opt-in paired T3 networking.
Makefile Runs Cursor hook tests and UI tests in CI target.
INSTALL.md Documents hardware-control toggle and Cursor integration install/remove behavior.
docs/protocol.md Updates NDJSON protocol spec for capabilities, adapter consent, pairing, and adapter state events.
docs/governance.md Updates Homebrew upgrade steps and clarifies marker-owned app refresh behavior.
docs/device-hid.md Updates HID claim guidance to UI consent + diagnostic env override.
docs/architecture.md Updates footprint/network/security posture for opt-in hardware polling + paired T3 refresh.
docs/adapters.md Updates adapter guidelines for capability advertising and declared/opt-in network access.
crates/microbridged/src/t3code.rs Adds daemon-owned T3 Code pairing + polling/dispatch adapter implementation.
crates/microbridged/src/state.rs Adds adapter registry/status, consent persistence, leased lifecycle sessions, HID input routing, and capability-gated action routing.
crates/microbridged/src/socket.rs Enforces role/handshake rules and adds consent/pairing/lifecycle ingestion operations.
crates/microbridged/src/main.rs Enables claimed device open with consent, spawns T3 adapter, and adds periodic HID input + lease expiry tick.
crates/microbridged/src/lib.rs Exposes new t3code module.
crates/microbridged/src/config.rs Normalizes config on load to backfill defaults and enforce invariants.
crates/microbridged/Cargo.toml Adds reqwest/url/time and macOS keyring dependency for T3 integration.
crates/microbridgectl/src/main.rs Adds cursor-event helper and updates UI handshake hello fields.
crates/mb-protocol/src/lib.rs Extends protocol types (capabilities, adapter status, consent/pairing ops, lifecycle ingestion, config normalization).
crates/mb-device/src/lib.rs Adds explicit “open with claim” API and expands HID input mapping/routing.
Cargo.toml Bumps workspace version to 0.2.1.
Cargo.lock Updates lockfile for new Rust dependencies.
apps/microbridge-ui/vite.config.ts Switches to vitest-aware config and configures test inclusion.
apps/microbridge-ui/src/surfaces/surfaces.test.tsx Adds UI surface tests for lighting presets, adapter state rendering, and popover scrolling.
apps/microbridge-ui/src/surfaces/Settings.tsx Adds adapter controls (enable/pair/remove), capability display, lighting preset UX, and hardware-control toggle.
apps/microbridge-ui/src/surfaces/Popover.tsx Fits popover to content via Tauri command and makes thread list the only scrollable area.
apps/microbridge-ui/src/lib/types.ts Adds adapter/capability/config schema and typed lighting palette model.
apps/microbridge-ui/src/lib/threads.ts Removes thread truncation and returns full ranked list.
apps/microbridge-ui/src/lib/bus.ts Adds Tauri commands for adapter operations and popover fitting; updates demo snapshot schema.
apps/microbridge-ui/src-tauri/tauri.conf.json Bumps app version and bundles Cursor plugin/hook resources.
apps/microbridge-ui/src-tauri/src/lib.rs Implements Cursor integration installer/remover, adapter commands, popover fitting, and tray click debounce.
apps/microbridge-ui/src-tauri/src/bus.rs Adds adapter-operation plumbing and handles new config/adapters events.
apps/microbridge-ui/src-tauri/Cargo.toml Bumps UI crate version to 0.2.1.
apps/microbridge-ui/src-tauri/Cargo.lock Updates lock for protocol version bump.
apps/microbridge-ui/package.json Adds vitest and npm test script; bumps version to 0.2.1.
apps/microbridge-ui/package-lock.json Updates lock for vitest and version bump.
adapters/t3code/README.md Documents daemon-owned pairing/contract/version pin behavior.
adapters/t3code/index.mjs Replaces scaffold with a pointer to daemon-owned adapter behavior.
adapters/cursor/README.md Documents bundled Cursor lifecycle integration, consent model, and capability boundary.
adapters/cursor/index.mjs Points legacy entrypoint at the managed hook implementation.
adapters/cursor/hooks/microbridge-event.test.mjs Adds Node tests for Cursor hook payload sanitization and socket behavior.
adapters/cursor/hooks/microbridge-event.mjs Implements non-blocking Cursor hook that sends lifecycle events to the local socket.
adapters/cursor/hooks/hooks.json Declares Cursor-managed lifecycle hooks invoking Microbridge hook script.
adapters/cursor/hooks/event.mjs Implements event shaping + protocol messages for lifecycle ingestion.
adapters/cursor/.cursor-plugin/plugin.json Adds Cursor local plugin manifest for bundled integration.
.github/workflows/release.yml Adds asset assembly/validation, formula smoke (prepublish + public), prerelease publish, and PR automation.
.github/workflows/finalize-release.yml Finalizes prerelease after Homebrew PR merge + verified clean installs.
.github/workflows/ci.yml Hardens checkout credentials and adds UI + adapter hook tests.
Files not reviewed (1)
  • apps/microbridge-ui/package-lock.json: Generated file

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread crates/microbridged/src/t3code.rs Outdated
Comment thread scripts/smoke-formula.sh
@DevVig
DevVig merged commit d13db7b into main Jul 18, 2026
7 checks passed
@DevVig
DevVig deleted the t3code/adapter-settings-homebrew-fix branch July 18, 2026 18:50
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