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.
Files changed (3) hide show
  1. package/CHANGELOG.md +112 -0
  2. package/README.md +57 -10
  3. 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 is a fork of [`xai-org/grok-build`](https://github.com/xai-org/grok-build)
30
- — SpaceXAI's Grok Build — re-based onto upstream 1.0.0 and adapted to run on
31
- Chutes. Upstream wrote most of the code in this tree and it is used here under
32
- Apache-2.0; the project is not affiliated with or endorsed by SpaceXAI.
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 media generation and editing, OCR, voice
45
- input through a Chutes STT endpoint, Context7 documentation lookup, and an
46
- isolated browser tool.
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 1.0.0
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 -p chutes-build # fast validation
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.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.3.1",
41
- "chutes-build-darwin-x64": "1.3.1",
42
- "chutes-build-linux-arm64-gnu": "1.3.1",
43
- "chutes-build-linux-x64-gnu": "1.3.1",
44
- "chutes-build-win32-arm64": "1.3.1",
45
- "chutes-build-win32-x64": "1.3.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",