zames_pro 2.82.120 → 2.82.122

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.122] - 2026-10-24
11
+
12
+ ### Fixed
13
+
14
+ - **context:** a file that does not fit the pool does not drop the rest
15
+
16
+ ## [2.82.121] - 2026-10-24
17
+
18
+ ### Fixed
19
+
20
+ - **tui:** the input history stores the expanded paste, not its marker
21
+
10
22
  ## [2.82.120] - 2026-10-24
11
23
 
12
24
  ### Fixed
package/dist/context.js CHANGED
@@ -584,8 +584,12 @@ export async function loadProjectContext(workdir, touchPaths = []) {
584
584
  let used = 0;
585
585
  const kept = [];
586
586
  for (const f of files) {
587
+ // SKIP a file that does not fit the remaining pool, do NOT end the
588
+ // chain: the chain runs global -> root -> ... -> workdir, so one large
589
+ // file used to drop every SMALLER, MORE SPECIFIC file after it — the
590
+ // most specific instructions are exactly the ones lost.
587
591
  if (used + f.content.length > total)
588
- break;
592
+ continue;
589
593
  used += f.content.length;
590
594
  kept.push(f);
591
595
  }
@@ -11,7 +11,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
11
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
12
12
  import { Box, Text, useInput, usePaste, useCursor, useWindowSize, useStdin, } from 'ink';
13
13
  import { translate } from '../i18n.js';
14
- import { inputInnerCols, layoutInput, SUGGEST_PAGE, } from '../input/layout.js';
14
+ import { expandPastes, inputInnerCols, layoutInput, SUGGEST_PAGE, } from '../input/layout.js';
15
15
  import { insertText, insertPaste, insertNewline, backspace, del, moveLeft, moveRight, moveHome, moveEnd, wordLeft, wordRight, deleteWordLeft, deleteWordRight, killToLineEnd, moveVisualRows, pushUndo, undoEdit, historyUp, historyDown, searchStart, searchNext, searchAccept, searchCancel, searchInput, searchBackspace, recordHistory, afterSubmit, } from './edit.js';
16
16
  import { dispatchKey, parseCsiU } from './keys.js';
17
17
  import { useSyncExternalStore } from 'react';
@@ -70,7 +70,12 @@ export function InputLine(props) {
70
70
  return;
71
71
  if (!s.buf.trim())
72
72
  return;
73
- const withHist = recordHistory(s, s.buf);
73
+ // Record the EXPANDED text in the history: the buffer holds a
74
+ // `[Pasted lines#N]` marker for a large paste, the adapter expands it from
75
+ // the paste list, and `afterSubmit` CLEARS that list. Storing the marker
76
+ // made a later Up recall send the literal marker (no body to expand).
77
+ const expanded = expandPastes(s.pastes, s.buf);
78
+ const withHist = recordHistory(s, expanded);
74
79
  const next = afterSubmit(withHist);
75
80
  setSt(next);
76
81
  props.onHistoryChange(withHist.history);
package/dist/tui/edit.js CHANGED
@@ -323,12 +323,18 @@ export function searchBackspace(s) {
323
323
  return s;
324
324
  return searchRefresh({ ...s, searchQuery: s.searchQuery.slice(0, -1) }, true);
325
325
  }
326
- /** Record a submitted message in the history (dedup the last one). */
326
+ /**
327
+ * Record a submitted message in the history (dedup the last one).
328
+ *
329
+ * `text` is the EXPANDED message (the caller resolves `[Pasted lines#N]`
330
+ * markers first): a marker stored as-is is recalled later into a buffer with
331
+ * no paste body behind it, and the literal marker is sent to the model.
332
+ */
327
333
  export function recordHistory(s, text) {
328
- if (!text.trim() || s.history[s.history.length - 1] === text) {
334
+ if (!String(text ?? '').trim() || s.history[s.history.length - 1] === text) {
329
335
  return { ...s, histIndex: s.history.length, histDraft: '' };
330
336
  }
331
- const history = s.history.concat(text);
337
+ const history = s.history.concat(String(text));
332
338
  return { ...s, history, histIndex: history.length, histDraft: '' };
333
339
  }
334
340
  /** Reset the buffer after a submit (keeps history/pastes cleared). */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zames_pro",
3
- "version": "2.82.120",
3
+ "version": "2.82.122",
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": {