Release v1.5.10

Co-Authored-By: siGit Code <noreply@sigit.si>

Seto Elkahfi committed Sep 16, 2026 at 19:16 UTC ca49bc331baed4d1f01d859dc12e4aae8c8efc20
3 files changed +38 -2
CHANGELOG.md
+36
@@ -1,5 +1,41 @@
1 # Changelog
2
3 +## 1.5.10
4 +
5 +### What changed
6 +
7 +- **Xcode's context no longer buries slash commands.** Xcode sends the user's
8 + prompt as the last of several text blocks, with project context in the
9 + blocks before it, so `/models` and friends sat in the middle of joined text
10 + and were handed to the model instead of dispatching locally. Slash-command
11 + parsing now searches the prompt's text blocks from the end, so a standalone
12 + command in the final user block dispatches no matter what context the client
13 + prepends
14 +- **The nova tier is the default cloud engine.** When local inference is off
15 + and no explicit provider override is set, the cloud tier now defaults to
16 + `nova` (the `onde-nova` model) instead of the balanced tier, in both the
17 + interactive and headless paths
18 +
19 +### Fixed
20 +
21 +- **Malformed Chinese-model tool calls are handled end-to-end in ACP.** The
22 + inline-call recovery that 1.5.9 added for Kimi K3's XTML protocol and GLM's
23 + mis-tagged blocks only applied to the interactive and headless surfaces;
24 + the ACP path never ran it, so an editor session still surfaced raw protocol
25 + text and dropped the calls. Recovery now runs in the ACP prompt loop too,
26 + covered by integration tests, and the tool names are checked against the
27 + turn's offered tools before anything executes
28 +- **Suppressed tool-call log spam is gone.** The guard that logs when a
29 + structured call is dropped for arriving as forced text fired once per
30 + streamed argument fragment — one malformed call could log a warning per
31 + chunk. The check now fires once per turn with the count and names of what
32 + was dropped, and the non-streaming path reports the same
33 +- **A history-replay test no longer races on the process cwd.** One ACP test
34 + built its expected path from `std::env::current_dir()` while other tests
35 + briefly swap that process-global cwd, so on CI it could read a temp
36 + directory mid-swap and compare a truncated title against an untruncated
37 + expectation. It now uses a fixed path it never needed to derive
38 +
39 ## 1.5.9
40
41 ### Fixed
Cargo.lock
+1 -1
@@ -5778,7 +5778,7 @@ checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
5778
5779 [[package]]
5780 name = "sigit"
5781 -version = "1.5.9"
5781 +version = "1.5.10"
5782 dependencies = [
5783 "agent-client-protocol",
5784 "anyhow",
Cargo.toml
+1 -1
@@ -1,6 +1,6 @@
1 [package]
2 name = "sigit"
3 -version = "1.5.9"
3 +version = "1.5.10"
4 edition = "2024"
5 description = "siGit Code — ACP-compatible AI coding agent. Sí, git."
6 documentation = "https://github.com/getsigit/sigit"