zames_pro 2.82.57 → 2.82.59

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.59] - 2026-10-23
11
+
12
+ ### Fixed
13
+
14
+ - **commands:** /diffstat hides the padded no-output sentinel
15
+
16
+ ## [2.82.58] - 2026-10-23
17
+
18
+ ### Fixed
19
+
20
+ - **commands:** keep a long answer in the restored dialogue instead of dropping it
21
+
10
22
  ## [2.82.57] - 2026-10-23
11
23
 
12
24
  ### Fixed
package/dist/commands.js CHANGED
@@ -46,7 +46,10 @@ export function formatDiffStat(statText, opts = {}, t = translate('en')) {
46
46
  .split(CR + NL)
47
47
  .join(NL)
48
48
  .trimEnd();
49
- if (!trimmed || trimmed === '(command produced no output)') {
49
+ // Compare the TRIMMED text: the runner's sentinel reaches this function
50
+ // with its own padding, and a raw comparison then printed the internal
51
+ // marker to the operator (formatDiff already trims).
52
+ if (!trimmed || trimmed.trim() === '(command produced no output)') {
50
53
  return t('diff.no_changes');
51
54
  }
52
55
  const lines = trimmed.split(NL);
@@ -397,6 +400,12 @@ export function resolveExtraDir(input, workdir, t = translate('en')) {
397
400
  }
398
401
  /** How many messages of the dialogue are printed by default. */
399
402
  export const RESTORED_HISTORY_LIMIT = 20;
403
+ /**
404
+ * Longest restored message KEPT for display. The system prompt (leaked into
405
+ * history) is far bigger and is filtered by the noise checks below; a real
406
+ * answer above this size is shortened instead of being dropped.
407
+ */
408
+ export const RESTORED_MESSAGE_MAX = 100_000;
400
409
  /**
401
410
  * DeepSeek stores the assistant turn VERBATIM: either a raw tool-call JSON
402
411
  * ({"tool":"Read","args":{...}}, frequently dirty/truncated) or a `respond`
@@ -465,11 +474,17 @@ export function unescapeJsonString(s) {
465
474
  * Returns null when the message must not be shown.
466
475
  */
467
476
  export function normalizeRestoredMessage(m) {
468
- const text = String((m && m.text) || '').trim();
477
+ let text = String((m && m.text) || '').trim();
469
478
  if (!text)
470
479
  return null;
471
- if (text.length > 100_000)
472
- return null; // the system-prompt / a giant blob
480
+ // The size cap exists to keep a leaked SYSTEM PROMPT (or another giant
481
+ // protocol blob) out of the restored dialogue. It must NOT drop a real
482
+ // answer: a long report/diff/document easily exceeds the cap, and dropping
483
+ // it silently left the operator with a dialogue where the agent's own reply
484
+ // was missing. Keep such a message but shorten it for display.
485
+ if (text.length > RESTORED_MESSAGE_MAX) {
486
+ text = text.slice(0, RESTORED_MESSAGE_MAX) + '…';
487
+ }
473
488
  if (m.role === 'user') {
474
489
  if (/^Tool result for /.test(text))
475
490
  return null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zames_pro",
3
- "version": "2.82.57",
3
+ "version": "2.82.59",
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": {