Skip to content

packaging(cockpit): install the sovereign cockpit as brew CLIs (OBJ-A last mile)#74

Merged
mdheller merged 1 commit into
mainfrom
feat/cockpit-formula-wiring
Jul 20, 2026
Merged

packaging(cockpit): install the sovereign cockpit as brew CLIs (OBJ-A last mile)#74
mdheller merged 1 commit into
mainfrom
feat/cockpit-formula-wiring

Conversation

@mdheller

Copy link
Copy Markdown
Contributor

The last mile of OBJ-A: the assembled cockpit now installs and runs as one product, not just from a staging dir.

What lands:

  • Homebrew formula — two CLIs alongside the sidecar wrappers:
    • bearbrowser-cockpit-assemble → builds client-vue + the agent-machine sidecar binary
    • bearbrowser-cockpit-up → the governed orchestrator (cockpit → gate → sidecar + receipts)
    • Both target a writable user data dir (${XDG_DATA_HOME:-~/.local/share}/bearbrowser/cockpit-app/…) — the Cellar is read-only, so assemble can't build into libexec.
  • bearbrowser-cockpit-up honors BEARBROWSER_COCKPIT_RES so the installed CLI finds the user-dir app (dev/staging still auto-derives).
  • Kept lean: no node/bun hard deps on the whole browser — assemble checks and guides; a caveat notes brew install node bun. Caveats + a fast test added.

Verified: ruby -c OK · cockpit-up errors cleanly (exit 1) before assembly (the test) · the BEARBROWSER_COCKPIT_RES override resolves the staged app and stands up the governed topology.

For you to run the full cycle:

brew install --formula packaging/homebrew/Formula/bearbrowser.rb   # runs the test
brew install node bun && bearbrowser-cockpit-assemble && bearbrowser-cockpit-up

With this, OBJ-A is complete: assemble → install → run, governed, sovereign.

OBJ-A last mile — the assembled cockpit now installs + runs as one product, not just
from a staging dir.

- Homebrew formula: two CLIs alongside the existing sidecar wrappers —
    bearbrowser-cockpit-assemble   → assemble-cockpit.sh (build client-vue + sidecar)
    bearbrowser-cockpit-up         → the governed orchestrator
  Both target a WRITABLE user data dir (${XDG_DATA_HOME:-~/.local/share}/bearbrowser/
  cockpit-app/…) because the Cellar is read-only — assemble can't build into libexec.
  Kept LEAN: no node/bun added as hard deps on the whole browser; assemble checks +
  guides (caveat notes 'brew install node bun'). Caveats + a fast test added.
- bearbrowser-cockpit-up: honor BEARBROWSER_COCKPIT_RES so the installed CLI finds the
  user-dir app (dev/staging still auto-derives from the script's parent).

Verified: ruby -c OK; cockpit-up errors cleanly + exit 1 before assembly (the test);
BEARBROWSER_COCKPIT_RES override resolves the staged app and stands up the governed
topology (cockpit→gate→sidecar + receipts). Full brew install cycle for you to run:
  brew install --formula packaging/homebrew/Formula/bearbrowser.rb   # runs the test
  brew install node bun && bearbrowser-cockpit-assemble && bearbrowser-cockpit-up
@mdheller
mdheller merged commit 2bc84c7 into main Jul 20, 2026
17 checks passed
@mdheller
mdheller deleted the feat/cockpit-formula-wiring branch July 20, 2026 11:36
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.

1 participant