zames_pro 2.81.7 → 2.81.9
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 +12 -0
- package/dist/commands.js +6 -1
- package/dist/net-capture.js +7 -2
- 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.81.9] - 2026-10-21
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **commands:** a failed attachment only rewrites its own whole path
|
|
15
|
+
|
|
16
|
+
## [2.81.8] - 2026-10-21
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- **net-capture:** a lone closing bracket is not a finished answer
|
|
21
|
+
|
|
10
22
|
## [2.81.7] - 2026-10-21
|
|
11
23
|
|
|
12
24
|
### Changed
|
package/dist/commands.js
CHANGED
|
@@ -707,7 +707,12 @@ export function rewriteFailedAttachments(text, failed) {
|
|
|
707
707
|
for (const f of failed || []) {
|
|
708
708
|
if (!f || !f.path)
|
|
709
709
|
continue;
|
|
710
|
-
|
|
710
|
+
// Replace only a WHOLE path: a bare split/join also matched a failed path
|
|
711
|
+
// INSIDE a longer, healthy one (`/p/a.ts` in `/p/a.tsx`), and the model
|
|
712
|
+
// was told a file it actually has is missing. A path character must not
|
|
713
|
+
// border the match on either side.
|
|
714
|
+
const esc = f.path.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
715
|
+
out = out.replace(new RegExp('(?<![\\w./-])' + esc + '(?![\\w./-])', 'g'), '[attach-failed: ' + f.name + ']');
|
|
711
716
|
}
|
|
712
717
|
return out;
|
|
713
718
|
}
|
package/dist/net-capture.js
CHANGED
|
@@ -173,8 +173,13 @@ export function extractAnswer(body) {
|
|
|
173
173
|
// truncated RESPONSE head (an empty string or a bare `{`), which the measure
|
|
174
174
|
// below excludes explicitly.
|
|
175
175
|
const MIN_REAL_ANSWER_CHARS = 1;
|
|
176
|
-
/**
|
|
177
|
-
|
|
176
|
+
/**
|
|
177
|
+
* A bare truncated head is not a real answer: whitespace, or nothing but
|
|
178
|
+
* BRACKETS of either kind (an opening `{` / `[` from a cut-off JSON answer AND
|
|
179
|
+
* a closing `}` / `]` / `)` left by a truncation that began mid-structure).
|
|
180
|
+
* Listing only the opening brackets let a lone `}` count as a COMPLETE answer.
|
|
181
|
+
*/
|
|
182
|
+
const TRUNCATED_HEAD_RE = /^[\s{}[\]()]*$/;
|
|
178
183
|
// How many chars of RESPONSE text the body carries, or -1 when there is NO
|
|
179
184
|
// RESPONSE fragment at all. The fragment is SSE/JSON-encoded, so the content
|
|
180
185
|
// may contain `\"` escapes AND raw `"` inside the JSON (the capture is the RAW
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zames_pro",
|
|
3
|
-
"version": "2.81.
|
|
3
|
+
"version": "2.81.9",
|
|
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": {
|