zames_pro 2.72.5 → 2.72.6

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,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.72.6] - 2026-10-09
11
+
12
+ ### Fixed
13
+
14
+ - **browser:** detect the property form of quasi_status (Stopped/FINISHED hang)
15
+
16
+ ### Fixed
17
+
18
+ - **browser:** detect the property form of quasi_status (Stopped/FINISHED hang)
19
+
10
20
  ## [2.72.5] - 2026-10-09
11
21
 
12
22
  ### Changed
@@ -213,11 +213,18 @@ export const RATE_LIMIT_RE = /(messages? too frequent|too many requests|rate lim
213
213
  export const SERVER_BUSY_RE = /(server (is )?busy|server error|service (is )?unavailable|temporarily unavailable|internal server error|502|503|504|server overloaded|сервер занят|сервер перегружен|сервис недоступен|внутренняя ошибка|попробуйте позже)/i;
214
214
  // ---------- network protocol (SSE) ----------
215
215
  export const GENERATION_ERR_RE = /"finish_reason":\s*"generation_err"/i;
216
- export const INCOMPLETE_STATUS_RE = /"quasi_status","v":"INCOMPLETE"/i;
216
+ // DeepSeek emits the generation status in TWO shapes: the initial message as a
217
+ // JSON property (`"quasi_status":"FINISHED"` inside v.response) and later
218
+ // BATCH updates (`{"p":"quasi_status","v":"FINISHED"}`). The old regex only
219
+ // matched the BATCH form, so a FINISHED-without-answer turn that came in the
220
+ // PROPERTY form (the real "Server is temporarily unavailable" case) was NOT
221
+ // detected — the agent hung on "Stopped" until the timeout. Match both.
222
+ export const INCOMPLETE_STATUS_RE = /"quasi_status"(?::|,"v":)"INCOMPLETE"/i;
217
223
  // A turn that ENDED (`quasi_status: FINISHED`) but produced NO answer text —
218
224
  // the reasoning was generated and the model stopped WITHOUT a RESPONSE
219
- // fragment. The UI shows Stopped + Continue.
220
- export const FINISHED_STATUS_RE = /"quasi_status","v":"FINISHED"/i;
225
+ // fragment. The UI shows Stopped + Continue. Matches both the JSON-property
226
+ // and the BATCH shape (see INCOMPLETE_STATUS_RE).
227
+ export const FINISHED_STATUS_RE = /"quasi_status"(?::|,"v":)"FINISHED"/i;
221
228
  export const RESPONSE_CONTENT_RE = /"type":"RESPONSE","content":"[^"]/;
222
229
  // Only a completion/continue turn carries a real answer. Gating the capture
223
230
  // assignment to these URLs keeps a future endpoint (which happens to return a
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zames_pro",
3
- "version": "2.72.5",
3
+ "version": "2.72.6",
4
4
  "description": "Terminal coding agent that drives chat.deepseek.com through Playwright — 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": {