zames_pro 2.82.107 → 2.82.109

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 CHANGED
@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.82.109] - 2026-10-24
11
+
12
+ ### Fixed
13
+
14
+ - **tui:** a failure phrase inside the output does not mark the call failed
15
+
16
+ ## [2.82.108] - 2026-10-24
17
+
18
+ ### Fixed
19
+
20
+ - **diagnostics:** a mid-line tsc error is not hidden by a zero banner
21
+
10
22
  ## [2.82.107] - 2026-10-24
11
23
 
12
24
  ### Fixed
@@ -34,11 +34,15 @@ export function summarizeDiagnostics(raw, maxChars) {
34
34
  // appended a pointless diagnostics block.
35
35
  const plain = text.replace(/\x1b\[[0-9;?]*[A-Za-z]/g, '');
36
36
  const cleanCheck = plain.replace(/^\[[^\]]*\]\s*/, '');
37
- // The banner is only CLEAN when the output carries NO error-looking line:
37
+ // The banner is only CLEAN when the output carries NO error-looking text:
38
38
  // a webpack/build log prints `ERROR in …` AND its own `Found 0 errors`
39
39
  // summary, and the old whole-text check reported that run as clean — the
40
- // real error never reached the model.
41
- const hasErrorLine = /(^|\n)\s*(?:error\b|ERROR\b|✖|✗|TS\d{4}\b)/m.test(cleanCheck);
40
+ // real error never reached the model. The check is NOT anchored to the
41
+ // start of a line: a normal tsc failure is `src/a.ts(1,1): error TS2322: …`
42
+ // and `error` sits MID-LINE; an anchored pattern missed it and a stray
43
+ // `Found 0 errors` (a watch banner in the same buffer) swallowed the real
44
+ // error.
45
+ const hasErrorLine = /\berror\b|✖|✗|TS\d{4}\b/i.test(cleanCheck);
42
46
  if (!hasErrorLine) {
43
47
  if (/^(?:found\s+)?0\s+errors?\b/im.test(cleanCheck))
44
48
  return null;
@@ -84,11 +84,17 @@ export function looksLikeToolError(result) {
84
84
  .toLowerCase();
85
85
  if (!head)
86
86
  return false;
87
+ const whole = String(result ?? '').toLowerCase();
87
88
  return (head.startsWith('error') ||
88
89
  head.startsWith('missing required argument') ||
89
90
  head.startsWith('failed') ||
90
- head.includes('command failed') ||
91
- head.includes('exit code') ||
91
+ // The run's OWN failure lines are anchored at the start of a line
92
+ // (`Exit code: N`, the `stdout:/stderr:` blocks follow). A phrase that
93
+ // merely APPEARS in the output (a log line, a diff, a test summary) is
94
+ // data, not a failure: a red ✖ on a successful call is just as wrong as a
95
+ // green ✔ on a refused one.
96
+ /^exit code\b/m.test(whole) ||
97
+ /^command failed\b/m.test(whole) ||
92
98
  // NOT every failure is a THROWN error: a PreToolUse hook, the permission
93
99
  // policy and the operator's denial BLOCK the call and return their message
94
100
  // as the result; an unknown tool and an aborted/timed-out run are reported
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zames_pro",
3
- "version": "2.82.107",
3
+ "version": "2.82.109",
4
4
  "description": "Terminal coding agent that drives a real browser to chat with DeepSeek, Qwen and other web LLMs — no API key required. Reads and edits files, runs commands, commits to git, like Claude Code / Codex CLI.",
5
5
  "type": "module",
6
6
  "bin": {