chutes-build 1.3.1 → 1.5.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.
- package/CHANGELOG.md +112 -0
- package/README.md +57 -10
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,118 @@ 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
|
+
## [1.5.0] - 2026-10-15
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- **The runtime is re-based onto upstream `1.0.45` (`2bdd1d6a`).** The 1.0.12 tree
|
|
12
|
+
is replaced by the upstream 1.0.45 tree with the Chutes layer re-applied on
|
|
13
|
+
top (OAuth to the Chutes IdP, Chutes endpoints, prompt identity, tool
|
|
14
|
+
namespace, themes, wordmark). New upstream features carried: strict-harness
|
|
15
|
+
agent profiles, the `send_feedback` adjudication tool, hashline file tools,
|
|
16
|
+
concise tool variants, skill/plugin registries with trust stores, and the
|
|
17
|
+
memory-v2 filesystem knowledge base.
|
|
18
|
+
- **The Chutes ecosystem is now native to the agent.** New agent-callable tools:
|
|
19
|
+
document extraction from PDF/images (DocuExtract), speech transcription
|
|
20
|
+
(AudioDojo STT), and text embeddings (Qwen3-Embedding-8B), joining image,
|
|
21
|
+
video, music, image-edit, OCR, usage, browser, and Context7 tools. Text-only
|
|
22
|
+
models automatically delegate image reads to a multimodal model, and every
|
|
23
|
+
capability fails over to an equivalent chute when its primary is unavailable
|
|
24
|
+
— with an honest error note when no fallback exists at all.
|
|
25
|
+
- **Token efficiency re-baselined.** The fixed system prompt is pinned at 2,161
|
|
26
|
+
estimated tokens (ceiling 2,175) after compressing the Chutes sources block,
|
|
27
|
+
and the per-turn tool catalog is pinned at 12,784 tokens across 30 tools
|
|
28
|
+
(ceiling 12,820) by a re-ported census test. See
|
|
29
|
+
`docs/token-efficiency-plan.md`.
|
|
30
|
+
- **Reasoning registry refreshed against the live catalog.** Qwen3.8 joins the
|
|
31
|
+
verified `enable_thinking` toggle family; Kimi-K3, DeepSeek-V4-Flash, and
|
|
32
|
+
Nemotron-3-Nano stay fail-closed (`Unknown`, no reasoning keys sent) until a
|
|
33
|
+
chat-template switch is verified for them.
|
|
34
|
+
- **User guide rewritten for Chutes.** Every model example uses the live
|
|
35
|
+
catalog (`model-router` default, `cpk_...` keys), auth/update/telemetry
|
|
36
|
+
pages describe Chutes-only behavior, and the ecosystem page gains a
|
|
37
|
+
capability-defaults table verified against Chutes Docs and the code's
|
|
38
|
+
pinned slugs.
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- **Chutes-native tools now resolve in every agent build.** The tool-pack
|
|
43
|
+
registration ran after the registry snapshot was taken, so curated toolsets
|
|
44
|
+
listing `ChutesBuild:*` ids failed at finalize time; registration now happens
|
|
45
|
+
before the builder snapshots the packs.
|
|
46
|
+
- **Pre-rebrand preset names keep resolving.** `grok-build`, `grok-computer`,
|
|
47
|
+
and their concise/plan variants work as aliases of the `chutes-*` canonical
|
|
48
|
+
presets, so existing configs and upstream tests continue to work.
|
|
49
|
+
- **`--version` reports the fork name.** The version line read `grok x.y.z`;
|
|
50
|
+
it now reads `chutes-build x.y.z`.
|
|
51
|
+
- **`update` targets this repo's releases.** The GitHub-release updater
|
|
52
|
+
queried `xai-org-shared/chutes-build` for `grok-<version>-<platform>`
|
|
53
|
+
assets; it now queries `TheStreamCode/chutes-build` for the
|
|
54
|
+
`chutes-build-<target>[.exe]` assets the release workflow publishes,
|
|
55
|
+
installs to `bin/chutes-build[.exe]`, and maintains a
|
|
56
|
+
`chutes-build-latest` link. Managed-install detection, on-disk version
|
|
57
|
+
parsing, and stale-download cleanup follow the same names.
|
|
58
|
+
- **System config moved to `/etc/chutes-build`.** The Unix system layer no
|
|
59
|
+
longer reads Grok's `/etc/grok` managed files.
|
|
60
|
+
- **OAuth strings match the live issuer.** Help and docs named
|
|
61
|
+
`auth.chutes.ai`; both hosts serve discovery but the canonical issuer —
|
|
62
|
+
and the token `iss` — is `https://api.chutes.ai`, which the code
|
|
63
|
+
already used.
|
|
64
|
+
|
|
65
|
+
### Removed
|
|
66
|
+
|
|
67
|
+
- **The unused static model scorer is gone.** `routing::TaskClass`,
|
|
68
|
+
`ModelCapabilities`, `ModelCandidate`, and `select_capable_model` had no
|
|
69
|
+
callers; equivalent-model selection lives in
|
|
70
|
+
`catalog::find_equivalent_chat_model`, which ranks the live catalog.
|
|
71
|
+
|
|
72
|
+
### Privacy
|
|
73
|
+
|
|
74
|
+
- **Stock builds talk to Chutes and only Chutes.** Inference (API-key and
|
|
75
|
+
session), the model catalog, and every default endpoint resolve to Chutes
|
|
76
|
+
hosts; xAI hosts can no longer appear in a default resolution (pinned by
|
|
77
|
+
`stock_endpoints_resolve_to_chutes_only`). A probe of the rebased tree had
|
|
78
|
+
shown `https://api.x.ai/v1` as the resolved default — fixed.
|
|
79
|
+
- **The Chutes distribution withholds telemetry, error reporting, remote
|
|
80
|
+
control, and voice dictation.** `Distribution::current()` is now `CHUTES`,
|
|
81
|
+
which forces telemetry mode to `Disabled`, disables trace upload, gates the
|
|
82
|
+
feedback surface and session-signal sync behind the `Telemetry` capability,
|
|
83
|
+
and refuses relay connections (plus discard-port relay/gateway defaults).
|
|
84
|
+
- **No automatic update checks.** `should_check_for_updates` honors
|
|
85
|
+
`AUTOMATIC_SELF_UPDATE=false`; the `update` subcommand still checks on
|
|
86
|
+
explicit request.
|
|
87
|
+
- **The wire no longer identifies as Grok.** Request headers are renamed to
|
|
88
|
+
`x-chutes-build-*` (version, identifier, conversation/request/session/agent
|
|
89
|
+
ids, user agent); the legacy `X-XAI-Token-Auth` headers attach only for
|
|
90
|
+
genuine xAI hosts (BYOK compat).
|
|
91
|
+
- **Managed-config sync needs an explicit operator endpoint.** Stock builds
|
|
92
|
+
sync nothing instead of polling a default URL.
|
|
93
|
+
- **Dead Grok surfaces removed.** The unused grok-web skills client (and its
|
|
94
|
+
unreachable slash-command hook), the vestigial `curl|bash` installers that
|
|
95
|
+
fetched Grok Build binaries from xAI's bucket, and the unused xAI npm
|
|
96
|
+
packaging template are gone. The retention toggle is local-only (Chutes
|
|
97
|
+
serves no retention API), and `chutes-build models` works again
|
|
98
|
+
(`x.ai/models/list` → `chutes.ai/models/list`).
|
|
99
|
+
- **Rebase regressions restored.** The rebase had lost the fork's
|
|
100
|
+
`chutes-build` package/binary identity (breaking `cargo build -p
|
|
101
|
+
chutes-build` and the release workflow), the Chutes endpoint defaults, and
|
|
102
|
+
the external-OTEL compile-time deadening — all restored from `main` and
|
|
103
|
+
pinned by tests.
|
|
104
|
+
|
|
105
|
+
## [1.4.0] - 2026-09-03
|
|
106
|
+
|
|
107
|
+
### Changed
|
|
108
|
+
|
|
109
|
+
- **The runtime is synced to upstream `1.0.12` (`bc7f02ed`).** Ported by hand on `sync/upstream-1.0.12-wip`, one area per commit: 1,578 files of delta, 989 of them mechanical takes. New upstream features carried: active subagent messaging (`send_subagent_message`), hook HTTP runners with prompt/defer decisions, checkpoint remount after path virtualization, worktree detach/salvage rework, the `xai-grok-shell-terminal`/`xai-grok-gboom`/`xai-grok-pager-diff`/`xai-grok-dashboard-store`/`xai-dirs`/`xai-message-delivery-core` crates, and the dashboard/session-picker TUI. The Chutes identity layer (prompt, wordmark, themes, `ChutesBuild` namespace, cache-effectiveness usage, compact tool schemas) is preserved.
|
|
110
|
+
|
|
111
|
+
### Fixed
|
|
112
|
+
|
|
113
|
+
- **The Windows dev build no longer overflows its stack on startup.** The 1 MiB main-thread reserve was too small for the opt-level-0 profile; the linker now reserves 8 MiB. The shipped release binaries were never affected.
|
|
114
|
+
- **Mojibake baked into source since 1.0.1 is repaired.** A post-re-base commit read source files through PowerShell text redirection on a legacy console, re-encoding every multi-byte character through CP850 (`—` became `ÔÇ—`, `→` became `Ôåö`, CJK test fixtures became byte noise); the corruption shipped in 1.2.x and 1.3.1 and spread with the 1.0.12 take. Every affected byte run now decodes back to the original UTF-8 across 68 files; doc comments read as written again.
|
|
115
|
+
- **The plan-mode edit gate names the plan file correctly on Windows.** The upstream take hardcoded POSIX paths in the rejection message test and the fixture trackers; both now compose the expected path the way the implementation does.
|
|
116
|
+
- **Worktree detection keeps native path separators.** git2 reports the common dir with forward slashes; the display name is re-assembled from native components so `~`-collapsed output matches local paths.
|
|
117
|
+
- **`rtrb` bumped to 0.3.5** closing RUSTSEC-2026-0274 (double free in `ReadChunk::commit`); a patched release existed, so no advisory ignore was needed.
|
|
118
|
+
|
|
7
119
|
## [1.3.1] - 2026-08-30
|
|
8
120
|
|
|
9
121
|
### Changed
|
package/README.md
CHANGED
|
@@ -17,6 +17,7 @@ embedded in editors via the Agent Client Protocol (ACP).
|
|
|
17
17
|
[Documentation](#documentation) ·
|
|
18
18
|
[Repository layout](#repository-layout) ·
|
|
19
19
|
[Development](#development) ·
|
|
20
|
+
[Troubleshooting](#troubleshooting) ·
|
|
20
21
|
[Contributing](#contributing) ·
|
|
21
22
|
[License](#license)
|
|
22
23
|
|
|
@@ -26,10 +27,11 @@ embedded in editors via the Agent Client Protocol (ACP).
|
|
|
26
27
|
|
|
27
28
|
## What this is, and what it is built on
|
|
28
29
|
|
|
29
|
-
Chutes Build
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
Apache-2.0; the project is not
|
|
30
|
+
Chutes Build started from [`xai-org/grok-build`](https://github.com/xai-org/grok-build)
|
|
31
|
+
(re-based onto upstream 1.0.45) and is developed independently, for the Chutes
|
|
32
|
+
ecosystem only: it talks to Chutes services and nothing else. Upstream code in
|
|
33
|
+
this tree is used under Apache-2.0 (see [`NOTICE`](NOTICE)); the project is not
|
|
34
|
+
affiliated with or endorsed by xAI.
|
|
33
35
|
|
|
34
36
|
What the fork changes:
|
|
35
37
|
|
|
@@ -41,9 +43,12 @@ What the fork changes:
|
|
|
41
43
|
sharing, remote workspace exposure and self-update are off at compile time and
|
|
42
44
|
their endpoints are deadened, not merely unused. See
|
|
43
45
|
[`PRIVACY.md`](PRIVACY.md).
|
|
44
|
-
- **A few exclusive features**: Chutes
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
- **A few exclusive features**: native Chutes ecosystem tools the agent calls
|
|
47
|
+
by itself — image generation and editing, video and music generation,
|
|
48
|
+
speech-to-text and text-to-speech, PDF/document extraction, OCR, text
|
|
49
|
+
embeddings, and Context7 documentation lookup — plus an isolated browser
|
|
50
|
+
tool, automatic vision delegation for text-only models, and automatic
|
|
51
|
+
equivalent-model fallback when a chute is unavailable.
|
|
47
52
|
|
|
48
53
|
Everything else is meant to track upstream closely, so their fixes arrive by
|
|
49
54
|
merge rather than by hand. [`docs/upstream-sync.md`](docs/upstream-sync.md)
|
|
@@ -93,14 +98,14 @@ Requirements:
|
|
|
93
98
|
- **protoc** — proto codegen resolves [`bin/protoc`](bin/protoc) via DotSlash,
|
|
94
99
|
or falls back to a `protoc` on `PATH` / `$PROTOC`.
|
|
95
100
|
- Windows, macOS and Linux all build. Windows is where this tree is developed and
|
|
96
|
-
gated, and it needs the vendored `protoc` fallback carried here — upstream
|
|
101
|
+
gated, and it needs the vendored `protoc` fallback carried here — upstream
|
|
97
102
|
does not build on Windows at all, because `bin/protoc` is a DotSlash wrapper the
|
|
98
103
|
platform cannot execute from a build script.
|
|
99
104
|
|
|
100
105
|
```sh
|
|
101
106
|
cargo run -p chutes-build # build + launch the TUI
|
|
102
107
|
cargo build -p chutes-build --release # release binary: target/release/chutes-build
|
|
103
|
-
cargo check
|
|
108
|
+
cargo check --workspace # fast validation
|
|
104
109
|
```
|
|
105
110
|
|
|
106
111
|
The binary artifact is named `xai-grok-pager`; official installs ship it as
|
|
@@ -144,9 +149,51 @@ MCP servers, skills, plugins, hooks, headless mode, sandboxing, and more.
|
|
|
144
149
|
cargo check -p <crate> # always target specific crates; full-workspace builds are slow
|
|
145
150
|
cargo test -p xai-grok-config # per-crate tests
|
|
146
151
|
cargo clippy -p <crate> # lint config: clippy.toml at the repo root
|
|
147
|
-
cargo fmt --all # rustfmt.toml at the repo root
|
|
148
152
|
```
|
|
149
153
|
|
|
154
|
+
## Troubleshooting
|
|
155
|
+
|
|
156
|
+
### Missing `CHUTES_API_KEY`
|
|
157
|
+
|
|
158
|
+
On first launch `chutes-build` asks for a Chutes API key (created at
|
|
159
|
+
[chutes.ai/app/api](https://chutes.ai/app/api)); it is also readable from the
|
|
160
|
+
`CHUTES_API_KEY` environment variable. If requests fail with authentication
|
|
161
|
+
errors, check that the variable is exported in the launching shell — Chutes
|
|
162
|
+
Build reads the process environment and does not load `.env` files
|
|
163
|
+
automatically (see [`docs/configuration.md`](docs/configuration.md)).
|
|
164
|
+
Never commit a real key; use your shell, CI platform, or secret manager to
|
|
165
|
+
provide it, and run `chutes-build inspect --json` to verify the effective
|
|
166
|
+
non-secret configuration.
|
|
167
|
+
|
|
168
|
+
### Model-pool routing errors
|
|
169
|
+
|
|
170
|
+
The default model route is Chutes' native routing: the saved `default` pool
|
|
171
|
+
(managed at chutes.ai/app → Model Routing), or an inline pool via
|
|
172
|
+
`CHUTES_ROUTING_POOL` (comma-separated catalogue ids sent as one `model`
|
|
173
|
+
value, e.g. `modelA,modelB,modelC`). If the `default` alias cannot resolve
|
|
174
|
+
and no dashboard pool is saved, the built-in fallback chain steps down to a
|
|
175
|
+
live inline pool from the current catalogue; a saved dashboard pool, once
|
|
176
|
+
configured, takes priority. Common fixes: save a pool on the dashboard, set
|
|
177
|
+
`CHUTES_ROUTING_POOL` explicitly, check `CHUTES_FALLBACK_MODELS` ordering (or
|
|
178
|
+
`CHUTES_STRICT_MODEL=1`, which disables automatic fallback), and pick a
|
|
179
|
+
strategy with `CHUTES_ROUTING_STRATEGY` (`sequential` default, `latency`, or
|
|
180
|
+
`throughput`). Full reference: [`docs/configuration.md`](docs/configuration.md)
|
|
181
|
+
("Native model routing").
|
|
182
|
+
|
|
183
|
+
### Windows console shows wrong glyphs
|
|
184
|
+
|
|
185
|
+
The TUI degrades decorative glyphs on the legacy Windows console (ConHost
|
|
186
|
+
`cmd.exe` / `powershell.exe`, Consolas/Lucida Console raster font, no font
|
|
187
|
+
fallback): arrows, checkmarks, diamonds, and spinners fall back to ASCII or
|
|
188
|
+
CP437-safe stand-ins (see
|
|
189
|
+
[`crates/codegen/xai-grok-pager-render/src/glyphs.rs`](crates/codegen/xai-grok-pager-render/src/glyphs.rs)).
|
|
190
|
+
This is expected on legacy ConHost — for the full rendering use Windows
|
|
191
|
+
Terminal, VS Code's terminal, or another modern emulator. Note that CI forces
|
|
192
|
+
the modern-glyph path with `CHUTES_BUILD_FORCE_LEGACY_CONSOLE=0` (see
|
|
193
|
+
[`.github/workflows/ci.yml`](.github/workflows/ci.yml)), so screenshots and
|
|
194
|
+
test rendering may look richer than a legacy local console.
|
|
195
|
+
|
|
196
|
+
|
|
150
197
|
## Contributing
|
|
151
198
|
|
|
152
199
|
> [!NOTE]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chutes-build",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.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.
|
|
41
|
-
"chutes-build-darwin-x64": "1.
|
|
42
|
-
"chutes-build-linux-arm64-gnu": "1.
|
|
43
|
-
"chutes-build-linux-x64-gnu": "1.
|
|
44
|
-
"chutes-build-win32-arm64": "1.
|
|
45
|
-
"chutes-build-win32-x64": "1.
|
|
40
|
+
"chutes-build-darwin-arm64": "1.5.0",
|
|
41
|
+
"chutes-build-darwin-x64": "1.5.0",
|
|
42
|
+
"chutes-build-linux-arm64-gnu": "1.5.0",
|
|
43
|
+
"chutes-build-linux-x64-gnu": "1.5.0",
|
|
44
|
+
"chutes-build-win32-arm64": "1.5.0",
|
|
45
|
+
"chutes-build-win32-x64": "1.5.0"
|
|
46
46
|
},
|
|
47
47
|
"keywords": [
|
|
48
48
|
"ai",
|