zames_pro 2.82.47 → 2.82.49

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.49] - 2026-10-22
11
+
12
+ ### Fixed
13
+
14
+ - **goal:** /goal on no longer overwrites the goal text
15
+
16
+ ## [2.82.48] - 2026-10-22
17
+
18
+ ### Fixed
19
+
20
+ - **sessions:** cap the stored todo checklist
21
+
10
22
  ## [2.82.47] - 2026-10-22
11
23
 
12
24
  ### Fixed
package/dist/commands.js CHANGED
@@ -708,6 +708,11 @@ export function parseGoalCommand(text) {
708
708
  return { sub: 'show' };
709
709
  if (rest.toLowerCase() === 'clear' || rest.toLowerCase() === 'off')
710
710
  return { sub: 'clear' };
711
+ // `/goal on` is the natural way to RE-ENABLE a goal after `/goal clear`;
712
+ // treating it as new goal text replaced the goal with the literal word
713
+ // `on`, which no work can satisfy. With no goal set it is a no-op.
714
+ if (rest.toLowerCase() === 'on')
715
+ return { sub: 'show' };
711
716
  return { sub: 'set', goal: rest };
712
717
  }
713
718
  // Replace [image#N] / [file#N] markers in a task with the REAL file path, so
package/dist/sessions.js CHANGED
@@ -67,6 +67,8 @@ function safeName(id) {
67
67
  }
68
68
  // Save/update a session. workdir is needed so that when launched from the same
69
69
  // project we restore exactly its last chat.
70
+ /** Hard cap on the todo checklist stored with a session. */
71
+ export const SESSION_TODOS_CAP = 1000;
70
72
  export function saveSession({ id, title = '', workdir = '', todos, provider, }) {
71
73
  if (!id)
72
74
  return null;
@@ -91,8 +93,12 @@ export function saveSession({ id, title = '', workdir = '', todos, provider, })
91
93
  // Keep the previous checklist unless a new one is explicitly passed —
92
94
  // saveLastChat() calls this for title/workdir only and must not wipe it.
93
95
  const nextTodos = todos !== undefined ? todos : prev.todos;
94
- if (nextTodos !== undefined)
95
- data.todos = nextTodos;
96
+ if (nextTodos !== undefined) {
97
+ // A checklist is a UI indicator, not a database: a model that keeps
98
+ // appending items would grow the session file (read on every
99
+ // startup/restore) without bound. Keep the NEWEST entries.
100
+ data.todos = nextTodos.slice(-SESSION_TODOS_CAP);
101
+ }
96
102
  writeJsonAtomic(file, data);
97
103
  writeIndex({ id, workdir: data.workdir });
98
104
  return data;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zames_pro",
3
- "version": "2.82.47",
3
+ "version": "2.82.49",
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": {