chutes-build 1.0.4 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/CHANGELOG.md +31 -1
  2. package/package.json +7 -7
package/CHANGELOG.md CHANGED
@@ -4,7 +4,37 @@ All notable changes to Chutes Build will be documented in this file. The format
4
4
  is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this
5
5
  project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
- ## [Unreleased]
7
+ ## [1.2.0] - 2026-08-21
8
+
9
+ ### Added
10
+
11
+ - **Parallel media-generation calls are capped per tool name.** image_gen/image_edit cap at 8 per model step and video-generation tools cap at 4; a burst at least twice the cap is discarded once and retried with a reminder, while any other over-cap keeps the first K and rejects the tail. Configurable via [tools.media_gen] in config.toml or CHUTES_BUILD_MAX_PARALLEL_IMAGE_GEN_CALLS / CHUTES_BUILD_MAX_PARALLEL_VIDEO_GEN_CALLS.
12
+
13
+ ### Changed
14
+
15
+ - **The runtime is synced to upstream `1.0.5` (`d71f6e0c`).** Eleven upstream crates are added and rebranded: `xai-grok-active-sessions`, `xai-grok-foreign-sessions`, `xai-grok-session-events`, `xai-grok-session-search`, `xai-grok-home`, `xai-grok-workspace-daemon`, `xai-grok-diag-server`, `xai-grok-bundle`, `xai-compaction-transcript`, and `xai-fuzzy-file-search`. `xai-file-utils::events` and the shell's `active_sessions` / `storage/search_*` modules moved into them.
16
+
17
+ ### Fixed
18
+
19
+ - **`models` no longer fails with "unknown ACP extension method".** The model-list client and handler had drifted onto different wire namespaces after the re-base; the client now sends what the handler registers (`chutes.build/models/list`).
20
+ - **Worktree detection on Windows.** `WorktreeDb::get` treated only forward-slash input as a path, so a backslash path never reached the DB lookup; it now accepts both separators. `get_worktree_info` also normalises the git2 commondir back to native separators before display.
21
+
22
+ ## [1.1.0] - 2026-08-18
23
+
24
+ ### Added
25
+
26
+ - **Tool calls emitted as plain text are recovered.** An open-weight model served through vLLM or SGLang can emit a well-formed tool call in its own chat-template syntax while the server-side parser returns an empty `tool_calls` array, so the turn ends having done nothing and the user sees raw markup. The runtime now recognises the Hermes/Qwen `<tool_call>`, Kimi K2 and Llama inline-function shapes (plus a strict fenced-JSON form) and turns them back into real calls only when the name resolves to a registered tool and the arguments pass that tool's own parser. `CHUTES_DISABLE_TOOL_TEXT_RECOVERY=1` disables it.
27
+ - **`/usage` reports cache effectiveness.** A `cache_read_ratio` (cached read tokens divided by input tokens, clamped to `[0, 1]`) and per-call `cache_hit_calls` / `cache_miss_calls` counters join the token totals; the TUI usage block now shows the cached percentage and the hit count.
28
+
29
+ ### Changed
30
+
31
+ - **Models without tool calling no longer receive a `tools` array.** The live catalog's `supported_features` now gates tool specs: a model that does not advertise `tools` gets an empty tool list instead of a request its endpoint rejects. The `StructuredOutput` tool is gated the same way and falls back to validating the final answer text directly. The default stays `true` for models absent from the catalog.
32
+
33
+ ### Fixed
34
+
35
+ - **Parallel tool calls from providers that omit the chunk index no longer fuse.** `ToolCallDelta.index` is now optional, and the stream correlates by tool-call `id` when the index is absent; previously a missing index defaulted to `0`, merging every parallel call into one accumulator and concatenating their arguments into invalid JSON.
36
+ - **Non-streaming requests now apply the Chutes reasoning plan.** Compaction, title generation and the advisor sent the bare payload to the configured inference base, dropping the `chat_template_kwargs` thinking switches and never routing `model-router` to the router endpoint, the same asymmetry the streaming path already handled.
37
+ - **Stream deserialization errors name the offending chute.** A failed chunk now carries a short excerpt of the SSE payload alongside the serde error, so "expected value at line 1 column 1" says which backend produced what.
8
38
 
9
39
  ## [1.0.4] - 2026-08-12
10
40
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chutes-build",
3
- "version": "1.0.4",
3
+ "version": "1.2.0",
4
4
  "description": "Privacy-first, open-source coding agent for the Chutes ecosystem",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Michael Gasperini (Mikesoft)",
@@ -37,12 +37,12 @@
37
37
  "check": "npm test && npm run verify:release && npm pack --dry-run"
38
38
  },
39
39
  "optionalDependencies": {
40
- "chutes-build-darwin-arm64": "1.0.4",
41
- "chutes-build-darwin-x64": "1.0.4",
42
- "chutes-build-linux-arm64-gnu": "1.0.4",
43
- "chutes-build-linux-x64-gnu": "1.0.4",
44
- "chutes-build-win32-arm64": "1.0.4",
45
- "chutes-build-win32-x64": "1.0.4"
40
+ "chutes-build-darwin-arm64": "1.2.0",
41
+ "chutes-build-darwin-x64": "1.2.0",
42
+ "chutes-build-linux-arm64-gnu": "1.2.0",
43
+ "chutes-build-linux-x64-gnu": "1.2.0",
44
+ "chutes-build-win32-arm64": "1.2.0",
45
+ "chutes-build-win32-x64": "1.2.0"
46
46
  },
47
47
  "keywords": [
48
48
  "ai",