Skip to content

monocle v0.47.0

Choose a tag to compare

@josephschmitt josephschmitt released this 25 May 17:25
55cf3bc

0.47.0 (2026-05-25)

Features

  • adapters: add shared auto-spawn helper for user-facing launchers (d0b9cb2)
  • client: EngineClient implementing core.EngineAPI over socket (84ac996)
  • protocol: expand socket messages to cover EngineAPI (e9222b4)
  • serve: add headless monocle serve and monocle stop subcommands (be99274)
  • serve: idle shutdown with grace window (JJS-156) (f5f8171)
  • tui: add light theme preset (#95) (2e6ee89)

Bug Fixes

  • adapters: bump autospawn ReadyTimeout default from 2s to 10s (da09838)
  • adapters: only quote autospawn .log when stderr was captured this run (a0372e4)
  • adapters: open autospawn log with O_EXCL and O_NOFOLLOW (c228bb7)
  • adapters: split autospawn for Windows build (f631721)
  • adapters: tee child stderr to a sibling .log file on autospawn (dec5c2f)
  • cli,mcp: surface server-minted artifact ID in send-artifact output (48a8755)
  • cli: echo server-minted artifact id on send-artifact --wait (2463cf0)
  • client: dispatch engine events off the read loop to prevent deadlock (5b87e30)
  • client: implement agent-facing EngineAPI methods over existing protocol (1d6fb24)
  • client: log undecodable messages instead of dropping them silently (56691a3)
  • client: rebuild EngineClient with reconnect, version probe, ordered dispatch (46331b3)
  • client: refresh cached config on every GetConfig (a902fed)
  • client: refuse to redial after Close to stop connection leak (d70e8e6)
  • client: scope conn teardown to clientConn bundle and harden Close (9533021)
  • client: tear down socket on request timeout to prevent stale-response panic (1d0f233)
  • client: wire RequestPause/CancelPause through the socket (a5d00b8)
  • core: abort an abandoned wait without consuming queued feedback (4777a88)
  • core: hold engine config behind atomic.Pointer to remove SaveConfig race (df16724)
  • core: isolate per-subscriber writes behind a bounded async queue (76b9281)
  • core: persist config before in-memory swap and nil-guard SaveConfig (9f2d25d)
  • core: send subscribe ack before registering event callbacks (7550433)
  • core: snapshot idle timeout in idleMonitor to avoid unsynchronized read (3a139aa)
  • core: use sync.Once for idleStop close to prevent double-close panic (22355a2)
  • core: widen subscriber outbound queue with a bounded send deadline (11aab9d)
  • mcp: version-guard the agent connect handshake (2176ee6)
  • protocol: mark TUI subscriptions passive to avoid push-delivery loss (b8faa17)
  • protocol: return only newly-added files from AddAdditionalPaths (06ad642)
  • protocol: version subscribe ack and disambiguate response presence (ea14c61)
  • release: distribute monocle as a Homebrew cask instead of a formula (#97) (67efcff)
  • serve: bind listener as acceptLoop parameter to avoid nil-deref race (227d865)
  • serve: cap the autospawn stderr log file (2812e39)
  • serve: drop default:"" on --idle-timeout so Kong doesn't reject every command (3f03763)
  • stop: accept monocle-prefixed images and preserve pid file on uncertain match (9380ccd)
  • stop: match pid by image basename and add a Windows tasklist fallback (2204580)
  • stop: verify pid belongs to monocle before signalling (a96a0f1)
  • tui: surface pause errors instead of lying about the daemon state (4b6b25e)