Skip to content

v1.6.0

Choose a tag to compare

@airiclenz airiclenz released this 29 Jul 09:22
· 48 commits to main since this release

llama-launcher is now importable as a Go library (ADR-0011). All launcher code lives in internal/launcher/, which other modules cannot import by Go rule, so driving the launcher from another program meant shelling out to the CLI. A new github.com/airiclenz/llama-launcher/launcher package exports a curated facade: type aliases for the domain types (Config, Profile, ProfileParams, ResolvedProfile, RunningInstance, StopResult, ProgressFunc, NoticeFunc), the two sentinel errors (ErrConfigNotFound, ErrNotRunning — the same values, so errors.Is works across the boundary), and one-line wrappers for the verbs: LoadConfig, DefaultConfigDir, DefaultConfigPath, DiscoverRunningInstances, LoadProfile, Stop, Unload. The documented symbols are the API, and notices are delivered as callbacks rather than written to the host's stderr. The facade adds no dependency to go.mod and leaves the CLI, the MCP adapter, and internal/launcher/'s behaviour untouched.

Also in this release:

  • The two seams that used to print notices straight to stderr — LoadConfig's non-fatal config warnings and the ADR-0007 drift notice — now deliver them to a NoticeFunc sink, the same shape as the existing ProgressFunc. LoadConfigNotify and LoadProfileNotify take the caller's sink, while the exported LoadConfig/LoadProfile keep their signatures and bind the stderr printers they used before, so CLI output is byte-identical to 1.5.0.
  • A shipped loose end is gone from TODO.md: the "stop/unload cannot target a still-loading (503) server" item was resolved by ADR-0010 in 1.5.0.

Usage in the README, the full contract in TDD §16. See CHANGELOG.md for the details.