v0.45.1
Patch release.
Fixes
- Pi:
read/write/editschemas rejected by strict providers (#151). The v0.43.0filePathalias fix serialized these tool schemas as a root-levelanyOf, which OpenAI-compatible function calling rejects (DeepSeek returned HTTP 400; GLM sent empty arguments). The schemas are flattype: "object"again, with thepath/filePathalias pair enforced at runtime. A schema-shape contract test in both plugins now rejects any hoisted tool schema without a plain object root. - Rust dead code: functions referenced only inside macro bodies (
tokio::join!,json!, component DSLs likeelement!) are no longer flagged dead. Resolution is scoped and fail-closed: bare identifiers, string contents, and receiver methods never rescue anything, and an ambiguous name resolves to nothing. - Removed ~300 lines of dead exports and duplicated JSONC parsing code found by
aft_inspecton this repository.
Internal
- The Rust test suite runs integration tests under cargo-nextest locally and in CI (unit tests stay on libtest, watcher tests stay isolated), cutting the loaded-machine test gate from ~25-45 minutes to ~2 minutes.
- Fixed a latent test-teardown deadlock where in-process test configures installed real FSEvents watchers that could wedge forever when macOS
fseventsdwas saturated. - macOS CI runners pinned to
macos-26.