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 +12 -0
- package/dist/context.js +5 -1
- package/dist/tui/InputLine.js +7 -2
- package/dist/tui/edit.js +9 -3
- 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.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
|
-
|
|
592
|
+
continue;
|
|
589
593
|
used += f.content.length;
|
|
590
594
|
kept.push(f);
|
|
591
595
|
}
|
package/dist/tui/InputLine.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
/**
|
|
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.
|
|
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": {
|