Skip to content

v1.6.1

Choose a tag to compare

@airiclenz airiclenz released this 29 Jul 12:02
· 35 commits to main since this release

The library now compiles on macOS, Linux and Windows, and actuates wherever the mechanism exists (ADR-0012).

  • Portability. Platform-specific code moved behind per-OS build tags (process_unix.go / process_windows.go, ui_poll_{darwin,linux,windows}.go), with no runtime.GOOS branching in any shared path. As of 1.6.0 the core built on macOS only, so the facade was unimportable by its own first client's CI. Linux is fully functional; Windows does everything driven over HTTP (discovery, Ollama/LM Studio load-unload, activating a profile against a running server) and refuses unix process control up front rather than attempting it.
  • Two new sentinels: ErrUnsupported and ErrStartupTimeout, re-exported by value so errors.Is matches across the package boundary. A startup timeout is not a failed load — the server is deliberately left running — so clients can now handle "may still come up" without matching on message text.
  • A cross-compile gate: make cross and the make check aggregate build and vet for all three GOOS, so a platform regression fails here instead of in a client.

macOS behaviour is byte-identical to 1.6.0 — this release moves platform-specific code, it does not redesign it.

Shipping as a patch on the 1.6.x line is deliberate: 1.6.x is the library-facade line, and this completes its own promise of importability. Full detail in CHANGELOG.md.