@margay/ccl-core 1.4.5-rc.8 → 1.4.5-rc.9

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.
@@ -30,6 +30,11 @@
30
30
 
31
31
  网关响应报告的有效输出上限会约束默认/环境变量预算及最终 HTTP 请求(包括 extra-body),后续升级预算也重新检查最新上限。
32
32
  `CCL_MAX_OUTPUT_TOKENS` 优先于兼容变量 `CLAUDE_CODE_MAX_OUTPUT_TOKENS`,但不能越过已知模型/网关上限;首请求不能预知尚未收到的能力头。
33
+
34
+ 默认 8K 修复后的客户端不再默认启用槽位预留的 8000 输出压缩,交互与无头模式均使用模型默认预算,并继续遵守真实上限;这不代表所有模型都能输出 32000,也不代表服务端的 8000 上限被解除。显式开启该内部优化开关时,8000 压缩仍生效。
35
+
36
+ 无头 SDK 子进程继承宿主的环境,并合并 `query(..., { env: { CCL_MAX_OUTPUT_TOKENS: '16000' } })` 中的显式设置。修改终端变量不会改变已运行宿主的环境;应由宿主传入,或重启宿主使新配置生效。提高请求预算不保证能突破模型/网关上限,也不能修复不合法的显式 thinking 预算。npm 全局安装与宿主内嵌 CLI 可能是不同版本,应核实实际运行路径。
37
+
33
38
  输出截断沿用分阶段恢复与共享次数限制,保留已完成的工具结果;不会因新增恢复规则而获得无限重试。
34
39
  自动派生的原生模型 thinking 算术冲突可在限定条件下局部修正,显式配置冲突需用户选择,不能保证所有非法预算都能自动修复。
35
40
 
@@ -189,3 +194,27 @@ CLI 的原始消息为:
189
194
  诊断只保留允许的字段;错误文本清理常见凭据表达并限制到 4096 字符,被截断时标记 `messageTruncated`。`includeRaw: true` 对诊断也不绕过这一步;其它正常 raw 事件保持原有语义。
190
195
 
191
196
  脱敏不会保证删除所有业务内容或文件路径。对外分享前可检查显式导出的文件;自动附带整段请求/响应或整个配置目录不属于此功能。
197
+ # 网关请求等待期限
198
+
199
+ 网关请求建立响应的默认等待期限为 300 秒,可在启动前设置
200
+ `CCL_GATEWAY_REQUEST_TIMEOUT_MS=600000` 调整为 10 分钟。允许 1~3600000
201
+ 毫秒的完整正整数;非法值会提示并回退到 300000,0 不表示无限等待。
202
+ SDK 可通过 `query(..., { env: { CCL_GATEWAY_REQUEST_TIMEOUT_MS: '600000' } })` 传入。
203
+
204
+ 这个期限覆盖网关请求建立阶段(含现有传输重试),不限制整个多轮任务。
205
+ 收到响应后由流式空闲 watchdog 负责:网关默认 300 秒,显式
206
+ `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 仍优先;单纯 ping 不算业务进展。
207
+ `API_TIMEOUT_MS` 不覆盖这个网关专用期限。用户取消仍立即生效。
208
+
209
+ 触发客户端期限时,错误会说明 gateway request setup、有效秒数和 trace,
210
+ 已执行工具结果保留,不新增自动重试。客户端停止等待不代表远端已停止或未执行;
211
+ 继续之前应核对已有结果。可用 120000 恢复原来的等待长度。
212
+
213
+ # 网关流中断
214
+
215
+ CCL 将响应读取中断与用户取消区分处理。半截响应尚未执行工具时,沿用一次安全重试;
216
+ 已记录的工具结果会保留,结果不明的操作需要先核实,避免重复副作用。
217
+ 收到 `message_stop` 表示该轮响应传输完整,之后连接关闭不再算作响应失败;
218
+ 任务是否完成还取决于 `stop_reason` 和工具结果。
219
+ 恢复诊断包含网关 request ID、底层连接错误及恢复阶段。连续中断会停止自动恢复并返回失败,
220
+ 不会无限重试,也不声称修复了 VPN 或网关自身的连接问题。
@@ -0,0 +1,22 @@
1
+ # 1.4.5-rc.9
2
+
3
+ 本版本修复无头 `-p` 和 SDK 等入口的默认输出预算被功能门错误压到 8000 tokens,
4
+ 并调整慢网关响应的客户端等待策略。无需同时部署网关。
5
+
6
+ - 移除非预期的默认 8K 压缩,按模型、显式环境设置和已知网关限制计算预算。
7
+ 非 Anthropic 默认路径恢复到 32000;不是所有模型一律 32K,也不绕过服务端限制。
8
+ - 保留 `CCL_MAX_OUTPUT_TOKENS` 优先于兼容变量 `CLAUDE_CODE_MAX_OUTPUT_TOKENS`。
9
+ 预算是每次响应上限;大型任务可以多轮完成,截断恢复仍有界。
10
+ - 网关请求建立期限默认 300 秒,支持 `CCL_GATEWAY_REQUEST_TIMEOUT_MS`。
11
+ 超时报错包含客户端阶段、期限和 trace;不误认为用户取消,不新增自动重试。
12
+ - 流式空闲策略直接依据实际路由选择默认值,保留显式覆盖与 ping 防挂死保护。
13
+ - 响应流意外断开时,进入现有有界恢复流程:未执行的半截响应可自动重试一次,
14
+ 已完成工具结果保留,结果不明的操作不盲目重放。诊断保留网关请求 ID 和底层原因。
15
+ - 收到 `message_stop` 即结束该轮读取,不再因随后连接关闭而把完整响应误报为失败。
16
+ 自动恢复用尽时,CLI/SDK 明确返回失败与已保留工作的说明。
17
+
18
+ 安装:`npm install -g @margay/ccl-core@1.4.5-rc.9`。
19
+ SDK/Margay 若使用内嵌或固定路径的 CLI,也需更新对应运行包;仅更新另一个全局入口不会替换内嵌版本。
20
+
21
+ 本版本沿用 rc.8 的其它功能。客户端提高等待期限不能消除网关自己的超时,
22
+ 也不能保证所有慢请求最终成功。已有环境变量在进程启动时继承,更新后需重启会话。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@margay/ccl-core",
3
- "version": "1.4.5-rc.8",
3
+ "version": "1.4.5-rc.9",
4
4
  "description": "Core runtime extracted from Claude Code (ccl) for Margay integration",
5
5
  "license": "SEE LICENSE IN README.md",
6
6
  "type": "module",
@@ -36,7 +36,8 @@
36
36
  "docs/releases/1.4.5-rc.7.md",
37
37
  "docs/features/business-facts.md",
38
38
  "docs/releases/1.4.5-rc.8.md",
39
- "docs/features/copy-on-select.md"
39
+ "docs/features/copy-on-select.md",
40
+ "docs/releases/1.4.5-rc.9.md"
40
41
  ],
41
42
  "engines": {
42
43
  "node": ">=20.0.0"