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"