chutes-build 0.4.2 → 0.4.3

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 +110 -0
  2. package/package.json +7 -7
package/CHANGELOG.md CHANGED
@@ -6,6 +6,116 @@ project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.4.3] - 2026-08-03
10
+
11
+ ### Added
12
+
13
+ - The `browser` tool gained the actions its workflow was missing: `wait`
14
+ (until a selector is visible or page text appears), `key` (`Enter`, `Tab`,
15
+ `Escape`, arrows, `Home`/`End`, `PageUp`/`PageDown`), `scroll`, `select`,
16
+ `back`, `reload`, `text` (full visible page text), and `console` / `network`,
17
+ which report the session's browser logs, uncaught errors, and requests.
18
+ - Documented desktop control as an opt-in MCP integration, including what
19
+ enabling it gives away, since no built-in tool captures the screen or
20
+ synthesizes input.
21
+ - `--output-format streaming-messages-json` emits headless output in the
22
+ Anthropic Messages API wire shape: a `system`/`init` line, `assistant` lines
23
+ whose `content[]` carries thinking, text and `tool_use` blocks, `user` lines
24
+ carrying each `tool_result`, and a final `result`. Ported from upstream.
25
+ - `streaming-json` now reports tool activity as `tool_call` and
26
+ `tool_call_update` lines. The headless runner ignored ACP tool-call updates
27
+ entirely, so a consumer could see the agent's prose but never what it did.
28
+ - `CHUTES_EXTRA_CA_BUNDLE` adds extra TLS roots from a PEM bundle, for networks
29
+ where a proxy terminates TLS with its own root. Opt-in and additive: unset by
30
+ default, never replaces the built-in roots, and never disables verification.
31
+ A bundle that is oversized, unreadable, or unparseable is reported and
32
+ ignored instead of breaking every request. Ported from upstream, reworked to
33
+ use reqwest's own PEM bundle parsing rather than adding a crate to the
34
+ generated workspace root.
35
+
36
+ ### Fixed
37
+
38
+ - `browser click` now focuses the element before clicking, matching a real
39
+ pointer click. Without it a click on a field left focus on the body, so a
40
+ following `key` went nowhere.
41
+ - Cancelling now stops an in-flight `/compact`. Compaction runs as a command
42
+ rather than a turn, so the cancel path returned early and left a long
43
+ compaction running with no way to stop it. Other commands are unaffected.
44
+ Ported from upstream.
45
+ - Saving MCP settings no longer discards the rest of `config.toml`. Every MCP
46
+ writer parsed the file with a fallback to an empty table, so one syntax error
47
+ turned the next save into a full rewrite containing only what that call was
48
+ persisting. Unparseable configs are now refused, the user-config write lock
49
+ covers the whole read-modify-write so concurrent saves cannot erase each
50
+ other, and writes go through the shared atomic helper instead of a fixed
51
+ temporary filename two writers could collide on. Ported from upstream.
52
+ - The encrypted prompt templates no longer depend on how the repository was
53
+ checked out. Generator and staleness test compared raw `include_str!` bytes,
54
+ so arrays built on a CRLF working tree matched only on Windows; both sides
55
+ now fold line endings first, which also makes the decrypted prompt
56
+ byte-identical on every platform.
57
+ - Two pager tests no longer depend on the machine they run on: one budgeted its
58
+ wait in poll counts rather than elapsed time, and two built past instants by
59
+ subtracting more than the machine's uptime, which panics on a recently booted
60
+ box or a fresh CI runner.
61
+ - `/advisor` now spawns. Its curated toolset already declares `memory_search`,
62
+ `memory_get` and `web_fetch`, and session-level injection appended a second
63
+ copy of each; both entries resolved to one client-facing name, so toolset
64
+ validation rejected the agent with `duplicate client_name` on every attempt.
65
+ Injection now skips tools the agent already declares.
66
+ - Bundled skills cited tool names the model is never shown (`task` is exposed
67
+ as `spawn_subagent`, `run_in_background` as `background`), sending it after
68
+ tools absent from its schema. Names corrected in `/best-of-n` and
69
+ `/check-work`, with a test tying skill text to the advertised names.
70
+ - Repaired the nine stale `xai-grok-agent` tests: two asserted behavior the
71
+ code no longer has (retired `grok_*` toolset presets, `web_search` before it
72
+ became a default-on native provider), three compared prompt budgets against
73
+ raw `include_str!` output that a CRLF checkout inflates, two compared paths
74
+ with hardcoded forward slashes, and two staged a fake home through `$HOME`,
75
+ which `dirs::home_dir` honours only on Unix. The two home-dependent rules are
76
+ now split into injectable helpers covered on every platform, and their
77
+ environment-driven integration tests are marked Unix-only.
78
+ - The CI Rust job now runs the `xai-grok-agent` library tests and the bundled
79
+ skill checks, which were previously never executed by any workflow.
80
+
81
+ ### Changed
82
+
83
+ - `generate_media` is self-contained: it resolves a plain model name against
84
+ the catalog and places the new top-level `prompt` into whatever text field
85
+ the selected cord declares, so `{model, kind, prompt}` is a complete call.
86
+ `params` is now optional and only needed for non-default settings or input
87
+ assets, and schema-mismatch errors list the accepted fields instead of
88
+ directing the caller back to `describe_media_model`. The `/imagine`,
89
+ `/imagine-video` and `imagine` skill instructions no longer mandate the
90
+ three-call list → describe → generate sequence.
91
+ - Updated the pinned `actions/checkout` workflow dependency to `v7.0.1`,
92
+ including its Git argument escaping and pull-request safety fixes.
93
+
94
+ ### Security
95
+
96
+ - Marked the three synthetic secret-detection fixtures explicitly so both
97
+ worktree and full-history Gitleaks scans pass without weakening real-secret
98
+ detection.
99
+
100
+ ### Documentation
101
+
102
+ - Recorded the CodeQL static-analysis triage in the security review: current
103
+ alert counts, the disposition of each query, and the reachability argument
104
+ showing the retained upstream backend client cannot run while
105
+ `REMOTE_SESSION_REGISTRY` is `false`.
106
+ - Documented the pinned Rust/Node toolchain, the single supported package
107
+ manager, the artifacts the project actually produces, the protected assets
108
+ and generated files, and the repository-visibility rules in `AGENTS.md`.
109
+ - Described the advisor's actual read-only toolset and the `/advisor` controls
110
+ in the subagents guide, and recorded the self-contained `generate_media`
111
+ workflow in the Chutes ecosystem and MCP guides.
112
+ - Listed the browser tool's full action set — what each reading action reports
113
+ and how elements are addressed — in the web and browser guide, and documented
114
+ `CHUTES_EXTRA_CA_BUNDLE` alongside the endpoint settings.
115
+ - Documented both headless streaming formats and what each line carries in the
116
+ CLI reference, and noted in the slash-command list that `/compact` can now be
117
+ stopped while it runs.
118
+
9
119
  ## [0.4.2] - 2026-08-01
10
120
 
11
121
  ### Added
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chutes-build",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
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": "0.4.2",
41
- "chutes-build-darwin-x64": "0.4.2",
42
- "chutes-build-linux-arm64-gnu": "0.4.2",
43
- "chutes-build-linux-x64-gnu": "0.4.2",
44
- "chutes-build-win32-arm64": "0.4.2",
45
- "chutes-build-win32-x64": "0.4.2"
40
+ "chutes-build-darwin-arm64": "0.4.3",
41
+ "chutes-build-darwin-x64": "0.4.3",
42
+ "chutes-build-linux-arm64-gnu": "0.4.3",
43
+ "chutes-build-linux-x64-gnu": "0.4.3",
44
+ "chutes-build-win32-arm64": "0.4.3",
45
+ "chutes-build-win32-x64": "0.4.3"
46
46
  },
47
47
  "keywords": [
48
48
  "ai",