zames_pro 2.90.1 → 2.90.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.
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.90.3] - 2026-10-28
11
+
12
+ ### Fixed
13
+
14
+ - **ui:** keep a tool detail on a negative clip budget instead of a lone ellipsis
15
+
16
+ ## [2.90.2] - 2026-10-28
17
+
18
+ ### Fixed
19
+
20
+ - **web:** treat the IPv4-translated ::ffff:0:a.b.c.d literal as private
21
+
10
22
  ## [2.90.1] - 2026-10-28
11
23
 
12
24
  ### Fixed
@@ -437,7 +449,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
437
449
 
438
450
  ### Fixed
439
451
 
440
- - **mcp:** a schema property named __proto__ becomes a real parameter
452
+ - **mcp:** a schema property named **proto** becomes a real parameter
441
453
 
442
454
  ## [2.82.123] - 2026-10-24
443
455
 
@@ -1486,7 +1498,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1486
1498
 
1487
1499
  ### Fixed
1488
1500
 
1489
- - **commands:** keep an unsupplied position as written in a custom command
1501
+ - **commands:** keep an unsupplied position as written in a custom command
1490
1502
  - **subagent:** count a subagent run only once it actually starts
1491
1503
  - **attach:** do not cut an inlined @file inside a surrogate pair
1492
1504
  - **checkpoint:** a bare out-of-range rewind index no longer matches a stamp prefix
@@ -1606,7 +1618,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1606
1618
  - **changelog:** keep drafted group headings on their own line
1607
1619
  - **tui:** decode modified and release wheel reports correctly
1608
1620
  - **shell:** normalize an invalid Bash timeout instead of crashing the tool
1609
- - **cost:** keep per-tool stats safe for __proto__/constructor tool names
1621
+ - **cost:** keep per-tool stats safe for **proto**/constructor tool names
1610
1622
  - **tui:** mark blocked/aborted tool calls as errors in the result icon
1611
1623
  - **mcp:** do not split a surrogate pair when truncating an MCP result
1612
1624
  - **context:** discover skills at the documented 3 levels deep
@@ -314,7 +314,14 @@ export function wrapToWidth(s, maxCols) {
314
314
  return out.join(NL);
315
315
  }
316
316
  export function truncateToWidth(s, maxCols) {
317
- const width = Math.max(1, Math.floor(maxCols));
317
+ // The callers derive the budget from the row width MINUS the tool name
318
+ // (`contentWidth() - name.length - 6`), so a long name (an MCP tool id) on a
319
+ // narrow pane produced a NEGATIVE budget and the whole detail collapsed to a
320
+ // lone `…` — the operator saw no argument at all. A budget below 1 (the
321
+ // ellipsis itself) is lifted to 2, so the head keeps ONE character next to
322
+ // the marker instead of disappearing entirely.
323
+ const requested = Number.isFinite(maxCols) ? Math.floor(maxCols) : 1;
324
+ const width = requested < 1 ? 2 : requested;
318
325
  const text = String(s ?? '');
319
326
  if (visLen(text) <= width)
320
327
  return text;
package/dist/web.js CHANGED
@@ -263,6 +263,20 @@ export function isPrivateIp(ip) {
263
263
  '.' +
264
264
  (v6[7] & 0xff));
265
265
  }
266
+ // IPv4-TRANSLATED ::ffff:0:a.b.c.d (RFC 2765): the embedded IPv4 sits in
267
+ // the LAST two groups with one extra zero group between `ffff` and it.
268
+ // Only the mapped form above was judged, so `::ffff:0:7f00:1` (= 127.0.0.1)
269
+ // stayed "public" and WebFetch could reach localhost/metadata through it.
270
+ const translatedV4 = v6.slice(0, 4).every((g) => g === 0) && v6[4] === 0xffff && v6[5] === 0;
271
+ if (translatedV4) {
272
+ return isPrivateIp((v6[6] >> 8) +
273
+ '.' +
274
+ (v6[6] & 0xff) +
275
+ '.' +
276
+ (v6[7] >> 8) +
277
+ '.' +
278
+ (v6[7] & 0xff));
279
+ }
266
280
  }
267
281
  if (low === '::1' || low === '::')
268
282
  return true;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zames_pro",
3
- "version": "2.90.1",
3
+ "version": "2.90.3",
4
4
  "description": "Terminal coding agent that drives a real browser to chat with DeepSeek, Qwen or GLM — 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": {