From c7d9b716e4de0a7d168d315f61bca19eed2cb44e Mon Sep 17 00:00:00 2001 From: DevVig <193979007+DevVig@users.noreply.github.com> Date: Sat, 18 Jul 2026 19:27:39 +0000 Subject: [PATCH 1/2] chore(brew): bump formula to v0.2.1 --- Formula/microbridge.rb | 18 +++--- candidate/microbridge.rb | 119 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 128 insertions(+), 9 deletions(-) create mode 100644 candidate/microbridge.rb diff --git a/Formula/microbridge.rb b/Formula/microbridge.rb index 9a09317..426eede 100644 --- a/Formula/microbridge.rb +++ b/Formula/microbridge.rb @@ -16,7 +16,7 @@ class Microbridge < Formula desc "Open-source control plane for the Codex Micro (menu bar + daemon)" homepage "https://github.com/DevVig/microbridge" - version "0.2.0" + version "0.2.1" license "MIT" head "https://github.com/DevVig/microbridge.git", branch: "main" @@ -24,22 +24,22 @@ class Microbridge < Formula on_macos do on_arm do - url "https://github.com/DevVig/microbridge/releases/download/v0.2.0/microbridge-v0.2.0-aarch64-apple-darwin.tar.gz" + url "https://github.com/DevVig/microbridge/releases/download/v0.2.1/microbridge-v0.2.1-aarch64-apple-darwin.tar.gz" # sha256 filled by scripts/bump-formula.sh after each release - sha256 "4cecb8382298e3a0f2e70ef6e69371a5f656ef156b06ef0861e9ac82036ccdab" + sha256 "719043b66a30803554e579b77c50236176651ca16711ed6b39de3e181e928d55" resource "ui" do - url "https://github.com/DevVig/microbridge/releases/download/v0.2.0/microbridge-ui-v0.2.0-aarch64-apple-darwin.tar.gz" - sha256 "92d40dcfcdfff31bfdb31dfe0ff0463e0a20ac051c6733a0253cb388eaf6cd19" + url "https://github.com/DevVig/microbridge/releases/download/v0.2.1/microbridge-ui-v0.2.1-aarch64-apple-darwin.tar.gz" + sha256 "acc8333ab671b995b4fefaa9a1eef42a6e3089954b6400f7e9115551e8b51708" end end on_intel do - url "https://github.com/DevVig/microbridge/releases/download/v0.2.0/microbridge-v0.2.0-x86_64-apple-darwin.tar.gz" - sha256 "30233d0e97806e19e772acc68347ba5e5909f8fd6abe8ea9fe0f32789972e069" + url "https://github.com/DevVig/microbridge/releases/download/v0.2.1/microbridge-v0.2.1-x86_64-apple-darwin.tar.gz" + sha256 "41579d1f88dffb8aa8cb347a58ed8d398fc59c57cf8ea094fb05dd5f2e857b31" resource "ui" do - url "https://github.com/DevVig/microbridge/releases/download/v0.2.0/microbridge-ui-v0.2.0-x86_64-apple-darwin.tar.gz" - sha256 "cf05d452d8fdc60970b9caf512f1777e989453772897f538ed6e45aac87dc758" + url "https://github.com/DevVig/microbridge/releases/download/v0.2.1/microbridge-ui-v0.2.1-x86_64-apple-darwin.tar.gz" + sha256 "1ee39f84a983ee5178522b9fb6b8db9a1d1e88d9bb200f5ceddf52ad8709c7a0" end end end diff --git a/candidate/microbridge.rb b/candidate/microbridge.rb new file mode 100644 index 0000000..426eede --- /dev/null +++ b/candidate/microbridge.rb @@ -0,0 +1,119 @@ +# typed: false +# frozen_string_literal: true + +# Homebrew formula for Microbridge — menu bar app + daemon (not CLI-only). +# Installs prebuilt GitHub Release assets (fast). Source builds: use HEAD or +# clone + ./scripts/install.sh. +# +# brew tap DevVig/microbridge https://github.com/DevVig/microbridge +# brew install microbridge +# brew services start microbridge +# open ~/Applications/Microbridge.app +# +# Upgrade: +# brew update && brew upgrade microbridge +# +class Microbridge < Formula + desc "Open-source control plane for the Codex Micro (menu bar + daemon)" + homepage "https://github.com/DevVig/microbridge" + version "0.2.1" + license "MIT" + head "https://github.com/DevVig/microbridge.git", branch: "main" + + depends_on :macos + + on_macos do + on_arm do + url "https://github.com/DevVig/microbridge/releases/download/v0.2.1/microbridge-v0.2.1-aarch64-apple-darwin.tar.gz" + # sha256 filled by scripts/bump-formula.sh after each release + sha256 "719043b66a30803554e579b77c50236176651ca16711ed6b39de3e181e928d55" + + resource "ui" do + url "https://github.com/DevVig/microbridge/releases/download/v0.2.1/microbridge-ui-v0.2.1-aarch64-apple-darwin.tar.gz" + sha256 "acc8333ab671b995b4fefaa9a1eef42a6e3089954b6400f7e9115551e8b51708" + end + end + on_intel do + url "https://github.com/DevVig/microbridge/releases/download/v0.2.1/microbridge-v0.2.1-x86_64-apple-darwin.tar.gz" + sha256 "41579d1f88dffb8aa8cb347a58ed8d398fc59c57cf8ea094fb05dd5f2e857b31" + + resource "ui" do + url "https://github.com/DevVig/microbridge/releases/download/v0.2.1/microbridge-ui-v0.2.1-x86_64-apple-darwin.tar.gz" + sha256 "1ee39f84a983ee5178522b9fb6b8db9a1d1e88d9bb200f5ceddf52ad8709c7a0" + end + end + end + + def install + # Release tarball layout: microbridge-vX.Y.Z-/{microbridged,microbridgectl,…} + bin.install Dir["**/microbridged"].first + bin.install Dir["**/microbridgectl"].first + + resource("ui").stage do + app = Dir["**/Microbridge.app"].first + odie "Microbridge.app missing from UI release archive" if app.nil? + prefix.install app + end + + # INSTALL.md ships inside the daemon archive when present. + doc.install "INSTALL.md" if File.exist?("INSTALL.md") + + # Homebrew sandboxes formula post_install and forbids writes to $HOME. + # The launch-agent runs in the user's session, so this wrapper performs the + # marker-guarded app copy immediately before starting the daemon. + service_script = libexec/"microbridge-service" + service_script.write <<~SH + #!/bin/sh + set -eu + source_app="#{opt_prefix}/Microbridge.app" + apps_dir="${HOME}/Applications" + dest="${apps_dir}/Microbridge.app" + marker="${dest}/.microbridge-brew" + /bin/mkdir -p "${apps_dir}" + if [ -e "${dest}" ] && [ ! -f "${marker}" ]; then + echo "Microbridge: preserving unowned ${dest}" >&2 + else + if [ -e "${dest}" ]; then + /bin/rm -rf "${dest}" + fi + /usr/bin/ditto "${source_app}" "${dest}" + /usr/bin/touch "${marker}" + fi + exec "#{opt_bin}/microbridged" + SH + service_script.chmod 0755 + end + + service do + run [opt_libexec/"microbridge-service"] + keep_alive true + log_path var/"log/microbridge.log" + error_log_path var/"log/microbridge.log" + environment_variables RUST_LOG: "info" + end + + def caveats + <<~EOS + Microbridge is the menu bar app + a local daemon (not CLI-only). + + App: ~/Applications/Microbridge.app + Daemon: brew services start microbridge + Status: microbridgectl status + Config: ~/.microbridge/ + + Start the service once to install the marker-owned app, then open it: + brew services start microbridge + open ~/Applications/Microbridge.app + + Hardware LEDs/keys need a connected Codex Micro and explicit consent in + Microbridge Settings → Device → Enable hardware control. + + Upgrade: brew update && brew upgrade microbridge + EOS + end + + test do + assert_match "Usage", shell_output("#{bin}/microbridgectl help") + assert_path_exists prefix/"Microbridge.app" + end +end From 93e153672980c3983f8edf611d09798630f1dbb8 Mon Sep 17 00:00:00 2001 From: Jonathan Borgwing Date: Sat, 18 Jul 2026 15:28:39 -0400 Subject: [PATCH 2/2] fix: keep formula PR scoped to formula --- candidate/microbridge.rb | 119 --------------------------------------- 1 file changed, 119 deletions(-) delete mode 100644 candidate/microbridge.rb diff --git a/candidate/microbridge.rb b/candidate/microbridge.rb deleted file mode 100644 index 426eede..0000000 --- a/candidate/microbridge.rb +++ /dev/null @@ -1,119 +0,0 @@ -# typed: false -# frozen_string_literal: true - -# Homebrew formula for Microbridge — menu bar app + daemon (not CLI-only). -# Installs prebuilt GitHub Release assets (fast). Source builds: use HEAD or -# clone + ./scripts/install.sh. -# -# brew tap DevVig/microbridge https://github.com/DevVig/microbridge -# brew install microbridge -# brew services start microbridge -# open ~/Applications/Microbridge.app -# -# Upgrade: -# brew update && brew upgrade microbridge -# -class Microbridge < Formula - desc "Open-source control plane for the Codex Micro (menu bar + daemon)" - homepage "https://github.com/DevVig/microbridge" - version "0.2.1" - license "MIT" - head "https://github.com/DevVig/microbridge.git", branch: "main" - - depends_on :macos - - on_macos do - on_arm do - url "https://github.com/DevVig/microbridge/releases/download/v0.2.1/microbridge-v0.2.1-aarch64-apple-darwin.tar.gz" - # sha256 filled by scripts/bump-formula.sh after each release - sha256 "719043b66a30803554e579b77c50236176651ca16711ed6b39de3e181e928d55" - - resource "ui" do - url "https://github.com/DevVig/microbridge/releases/download/v0.2.1/microbridge-ui-v0.2.1-aarch64-apple-darwin.tar.gz" - sha256 "acc8333ab671b995b4fefaa9a1eef42a6e3089954b6400f7e9115551e8b51708" - end - end - on_intel do - url "https://github.com/DevVig/microbridge/releases/download/v0.2.1/microbridge-v0.2.1-x86_64-apple-darwin.tar.gz" - sha256 "41579d1f88dffb8aa8cb347a58ed8d398fc59c57cf8ea094fb05dd5f2e857b31" - - resource "ui" do - url "https://github.com/DevVig/microbridge/releases/download/v0.2.1/microbridge-ui-v0.2.1-x86_64-apple-darwin.tar.gz" - sha256 "1ee39f84a983ee5178522b9fb6b8db9a1d1e88d9bb200f5ceddf52ad8709c7a0" - end - end - end - - def install - # Release tarball layout: microbridge-vX.Y.Z-/{microbridged,microbridgectl,…} - bin.install Dir["**/microbridged"].first - bin.install Dir["**/microbridgectl"].first - - resource("ui").stage do - app = Dir["**/Microbridge.app"].first - odie "Microbridge.app missing from UI release archive" if app.nil? - prefix.install app - end - - # INSTALL.md ships inside the daemon archive when present. - doc.install "INSTALL.md" if File.exist?("INSTALL.md") - - # Homebrew sandboxes formula post_install and forbids writes to $HOME. - # The launch-agent runs in the user's session, so this wrapper performs the - # marker-guarded app copy immediately before starting the daemon. - service_script = libexec/"microbridge-service" - service_script.write <<~SH - #!/bin/sh - set -eu - source_app="#{opt_prefix}/Microbridge.app" - apps_dir="${HOME}/Applications" - dest="${apps_dir}/Microbridge.app" - marker="${dest}/.microbridge-brew" - /bin/mkdir -p "${apps_dir}" - if [ -e "${dest}" ] && [ ! -f "${marker}" ]; then - echo "Microbridge: preserving unowned ${dest}" >&2 - else - if [ -e "${dest}" ]; then - /bin/rm -rf "${dest}" - fi - /usr/bin/ditto "${source_app}" "${dest}" - /usr/bin/touch "${marker}" - fi - exec "#{opt_bin}/microbridged" - SH - service_script.chmod 0755 - end - - service do - run [opt_libexec/"microbridge-service"] - keep_alive true - log_path var/"log/microbridge.log" - error_log_path var/"log/microbridge.log" - environment_variables RUST_LOG: "info" - end - - def caveats - <<~EOS - Microbridge is the menu bar app + a local daemon (not CLI-only). - - App: ~/Applications/Microbridge.app - Daemon: brew services start microbridge - Status: microbridgectl status - Config: ~/.microbridge/ - - Start the service once to install the marker-owned app, then open it: - brew services start microbridge - open ~/Applications/Microbridge.app - - Hardware LEDs/keys need a connected Codex Micro and explicit consent in - Microbridge Settings → Device → Enable hardware control. - - Upgrade: brew update && brew upgrade microbridge - EOS - end - - test do - assert_match "Usage", shell_output("#{bin}/microbridgectl help") - assert_path_exists prefix/"Microbridge.app" - end -end