Problem
BusClient.connect() in @four-bytes/opencode-plugin-lib logs fallback warnings to console.warn, bypassing opencode's app.log. The brain plugin sees "Go bus not available" on stderr, not in app.log.
Root Cause
bus-client.ts connect() uses console.warn directly — no logger injection point. It also swallows the error internally (returns MemoryBusClient), so the caller's .catch() never fires.
Solution
- In opencode-plugin-lib: Add optional
onWarn callback to BusClient.connect() — replaces console.warn
- In four-opencode-brain:
- Pass
_client.app.log-based logger to BusClient.connect()
- Show a toast when MemoryBusClient fallback is used (
bus.activePort === 0)
Related
- Library:
@four-bytes/opencode-plugin-lib src/bus-client.ts
- Brain:
src/status.ts getBus() function
Problem
BusClient.connect()in@four-bytes/opencode-plugin-liblogs fallback warnings toconsole.warn, bypassing opencode'sapp.log. The brain plugin sees "Go bus not available" on stderr, not in app.log.Root Cause
bus-client.tsconnect()usesconsole.warndirectly — no logger injection point. It also swallows the error internally (returns MemoryBusClient), so the caller's.catch()never fires.Solution
onWarncallback toBusClient.connect()— replacesconsole.warn_client.app.log-based logger toBusClient.connect()bus.activePort === 0)Related
@four-bytes/opencode-plugin-libsrc/bus-client.tssrc/status.tsgetBus()function