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 +15 -3
- package/dist/input/layout.js +8 -1
- package/dist/web.js +14 -0
- package/package.json +1 -1
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
|
|
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
|
|
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
|
|
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
|
package/dist/input/layout.js
CHANGED
|
@@ -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
|
-
|
|
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.
|
|
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": {
|