Problem
The packaged reconnecting MCP bridge and split BrainBarDaemon architecture exist, but an upgraded host can retain both:
- a user MCP config that invokes raw
socat STDIO UNIX-CONNECT:/tmp/brainbar.sock;
- no
com.brainlayer.brainbar-daemon LaunchAgent.
On the repaired M1:
- BrainLayer and the app bundle were 1.5.1;
- the cask receipt remained
1.4.0,1;
BrainBar.app ran, but the daemon label was absent;
- the stale socket returned
ECONNREFUSED;
- Claude reported a configured server with no usable tools.
Installing the signed bundled daemon plist restored the socket immediately.
Expected
Upgrade/setup should idempotently converge user state:
- install/bootstrap the bundled daemon LaunchAgent;
- migrate known raw-socat MCP entries to
brainlayer-mcp-stdio-bridge;
- preserve unrelated MCP config;
- verify
initialize and tools/list.
Acceptance
- Upgrade test starts from a legacy raw-socat config and missing daemon plist.
- Re-running setup is idempotent.
- A stale/unbound socket produces a loud disconnected state, not silent tool absence.
- No sudo is required when the signed app already exists and is user-readable.
Problem
The packaged reconnecting MCP bridge and split
BrainBarDaemonarchitecture exist, but an upgraded host can retain both:socat STDIO UNIX-CONNECT:/tmp/brainbar.sock;com.brainlayer.brainbar-daemonLaunchAgent.On the repaired M1:
1.4.0,1;BrainBar.appran, but the daemon label was absent;ECONNREFUSED;Installing the signed bundled daemon plist restored the socket immediately.
Expected
Upgrade/setup should idempotently converge user state:
brainlayer-mcp-stdio-bridge;initializeandtools/list.Acceptance