mlua-swarm 0.1.2

Swarm engine host built on mlua — long-running stateful runtime with Role/Verb gate, CapToken, 3-stage pipeline, and Middleware overlay.
Documentation
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.1.2] — 2026-07-05

### Fixed
- Windows build: `mse serve`'s SIGTERM handler and `mse mcp`'s
  `launchctl` uid lookup were unconditionally referencing
  `tokio::signal::unix` / `nix::unistd::Uid`, which do not exist on
  Windows. Both are now `#[cfg(unix)]`-gated (the SIGTERM waiter
  becomes a never-resolving future on non-Unix so the `ctrl_c` arm of
  the shutdown `select!` still fires; the `launchctl` module's uid is a
  placeholder on non-Unix since `launchctl` itself is absent there).
  `nix` moved to a `[target.'cfg(unix)'.dependencies]` block. Detected
  by cargo-dist's `x86_64-pc-windows-msvc` target on the v0.1.1 tag.

### Added
- `.github/workflows/ci.yml``cargo check` on
  Ubuntu / macOS / Windows and `cargo test` on Ubuntu / macOS for every
  push/PR. Catches unix-only-API regressions before they reach a
  cargo-dist release tag.

## [0.1.1] — 2026-07-05

### Added
- SQLite-backed persistence for all four in-crate stores via `rusqlite-isle`
  (thread-isolated `Connection`, single-writer FIFO discipline):
  `SqliteIssueStore`, `SqliteEnhanceSettingStore`, `SqliteEnhanceLogStore`,
  `SqliteOutputStore`. In-memory backends remain the default.
- `mse serve` gained four `--<store>-store-path` flags (and matching
  `<store>_store_path` TOML fields) selecting the SQLite backend per store:
  `--issue-store-path`, `--enhance-setting-store-path`,
  `--enhance-log-store-path`, `--output-store-path`. Omit any of them to
  fall back to the in-memory default.
- `mlua_swarm_server::build_router_with_ws_factory_and_output` — new
  5-argument variant that lets callers inject a custom `Arc<dyn OutputStore>`
  (the 4-argument form now delegates with `None` for compatibility).
- Graceful SQLite shutdown: `mse serve` collects each backend's
  `AsyncIsleDriver` and drains them via `driver.shutdown().await` after the
  Ctrl-C / SIGTERM handler, so SQLite threads join cleanly.
- `EnhanceSettingStoreError::Other` and `EnhanceLogStoreError::Other`
  variants to carry backend-specific failures (SQLite / IO / serde).

## [0.1.0] — 2026-07-04

### Added
- Initial release of mlua-swarm engine.
- `mlua-swarm-schema`: Blueprint schema (Blueprint / AgentDef / AgentKind / Hints / Strategy / Metadata).
- `mlua-swarm` (root): Swarm engine host — long-running stateful runtime with Role/Verb gate, CapToken, 3-stage pipeline, Middleware overlay, git2 / inmemory Blueprint store, enhance pipeline.
- `mlua-swarm-server`: HTTP + WebSocket server (task API, Blueprint store, Operator WS sessions).
- `mlua-swarm-cli`: `mse` binary with `serve` and `mcp` subcommands (MCP adapter for AI agents).

[Unreleased]: https://github.com/ynishi/mlua-swarm/compare/v0.1.2...HEAD
[0.1.2]: https://github.com/ynishi/mlua-swarm/compare/v0.1.1...v0.1.2
[0.1.1]: https://github.com/ynishi/mlua-swarm/compare/v0.1.0...v0.1.1
[0.1.0]: https://github.com/ynishi/mlua-swarm/releases/tag/v0.1.0