zames_pro 2.81.8 → 2.81.10

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.81.10] - 2026-10-21
11
+
12
+ ### Fixed
13
+
14
+ - **qwen:** the restored dialogue drops a SYSTEM turn
15
+
16
+ ## [2.81.9] - 2026-10-21
17
+
18
+ ### Fixed
19
+
20
+ - **commands:** a failed attachment only rewrites its own whole path
21
+
10
22
  ## [2.81.8] - 2026-10-21
11
23
 
12
24
  ### Fixed
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
- out = out.split(f.path).join('[attach-failed: ' + f.name + ']');
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
  }
@@ -195,6 +195,13 @@ export function parseQwenHistory(json) {
195
195
  m.is_user === true ||
196
196
  fromStr === 'user' ||
197
197
  fromStr === 'human';
198
+ // A SYSTEM/TOOL turn is neither the operator nor the model's answer: on
199
+ // Qwen the system prompt is a message of its own, and mapping it to
200
+ // ASSISTANT printed it as a model reply in the restored dialogue. DeepSeek's
201
+ // parser drops those roles too.
202
+ if (/^(system|tool)$/.test(roleStr) || /^(system|tool)$/.test(fromStr)) {
203
+ continue;
204
+ }
198
205
  const role = isUser ? 'user' : 'assistant';
199
206
  let text = '';
200
207
  if (typeof m.content === 'string')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zames_pro",
3
- "version": "2.81.8",
3
+ "version": "2.81.10",
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": {