zames_pro 2.94.2 → 2.94.4
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 +16 -0
- package/dist/browser.js +8 -2
- package/dist/config.js +5 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [2.94.4] - 2026-11-03
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **deepseek:** never resend a truncated turn while an answer is captured
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- format ask-deadline test
|
|
19
|
+
|
|
20
|
+
## [2.94.3] - 2026-11-02
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
|
|
24
|
+
- **deepseek:** the watchdog deadline must exceed the answer timeout
|
|
25
|
+
|
|
10
26
|
## [2.94.2] - 2026-11-02
|
|
11
27
|
|
|
12
28
|
### Fixed
|
package/dist/browser.js
CHANGED
|
@@ -2350,7 +2350,10 @@ export class DeepSeekBrowser {
|
|
|
2350
2350
|
}
|
|
2351
2351
|
if (!awaitingAnswer &&
|
|
2352
2352
|
this._netCaptureAt >= this._lastSentAt &&
|
|
2353
|
-
isGenerationIncompleteText(this._netBody)
|
|
2353
|
+
isGenerationIncompleteText(this._netBody) &&
|
|
2354
|
+
// A body can carry BOTH the marker and a real answer in a late
|
|
2355
|
+
// fragment: never declare the turn dead while text is already there.
|
|
2356
|
+
!(this._netCapture && this._netCapture.trim().length > 0)) {
|
|
2354
2357
|
// PREFER the Continue button: it RESUMES the same truncated turn (a
|
|
2355
2358
|
// `chat/continue` request). Resending the prompt creates a NEW turn and
|
|
2356
2359
|
// duplicates the work. Only resend when there is no button to click.
|
|
@@ -2592,7 +2595,10 @@ export class DeepSeekBrowser {
|
|
|
2592
2595
|
isFinishedWithAnswer(this._netBody);
|
|
2593
2596
|
const truncated = !doneAnswer &&
|
|
2594
2597
|
this._netCaptureAt >= this._lastSentAt &&
|
|
2595
|
-
isGenerationIncompleteText(this._netBody)
|
|
2598
|
+
isGenerationIncompleteText(this._netBody) &&
|
|
2599
|
+
// A truncation marker may arrive BEFORE a late RESPONSE fragment:
|
|
2600
|
+
// never declare the turn dead while text is already captured.
|
|
2601
|
+
!(this._netCapture && this._netCapture.trim().length > 0);
|
|
2596
2602
|
const noAnswer = !doneAnswer &&
|
|
2597
2603
|
this._netNoAnswer &&
|
|
2598
2604
|
this._netCaptureAt >= this._lastSentAt;
|
package/dist/config.js
CHANGED
|
@@ -269,7 +269,11 @@ export function providerAskDeadlineMs(cfg) {
|
|
|
269
269
|
return cfg.qwen.answerTimeoutMs + 120_000;
|
|
270
270
|
if (cfg.provider === 'glm')
|
|
271
271
|
return cfg.glm.answerTimeoutMs + 120_000;
|
|
272
|
-
|
|
272
|
+
// DeepSeek used to get askDeadlineMs (120s) as-is while its own
|
|
273
|
+
// answerTimeoutMs is 180s: the watchdog killed a live generation a
|
|
274
|
+
// minute early (25 answers lost in one 66-minute session). Same
|
|
275
|
+
// headroom as the other providers; never below a configured value.
|
|
276
|
+
return Math.max(cfg.browser.askDeadlineMs, cfg.browser.answerTimeoutMs + 60_000);
|
|
273
277
|
}
|
|
274
278
|
function deepMerge(target, source) {
|
|
275
279
|
for (const key of Object.keys(source)) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zames_pro",
|
|
3
|
-
"version": "2.94.
|
|
3
|
+
"version": "2.94.4",
|
|
4
4
|
"description": "Terminal coding agent that drives a real browser to chat with DeepSeek, Qwen or GLM — 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": {
|