fix: prepare transient controls inside native action sequences
This commit is contained in:
1 parent
00e62a663a
commit
4879adc380
16 files changed
+417
-31
No files matched your search
@@ -34,6 +34,24 @@
|
||||
|
||||
历史日志没有保存的原始帧无法由新增诊断恢复。HTTP 200 只说明响应头已到达;客户端保护后出现的 499 或 Broken pipe 也不能证明最初原因。网关写入本机下游 writer 成功不等于客户端已消费或执行。
|
||||
|
||||
## 已核对的上游异常样本(2026-11-02)
|
||||
|
||||
一次真实 `action_sequence` 调用在任务超时前持续接收参数,没有完成该工具调用。该样本发生在 `action_sequence` 纳入参数保护之前。按同一 `response_id + call_id` 核对生产诊断,得到以下字符数;请求编号和设备信息不在文档中保留:
|
||||
|
||||
| 观测边界 | 参数字符数 |
|
||||
| --- | ---: |
|
||||
| CodexManager 收到的官方上游 WebSocket | 40907 |
|
||||
| CodexManager 本地下游 writer | 40906 |
|
||||
| NewAPI 收到的上游 SSE | 40904 |
|
||||
| NewAPI 本地下游 writer | 40904 |
|
||||
| ARTEMIS 的 SDK 参数片段 | 40619 |
|
||||
|
||||
五个边界在 4096 到 36864 字节的九个累计 SHA256 上一致。NewAPI 使用透传模式,收到和写出的完整参数哈希也一致。上游没有终止事件,也没有完成参数快照。该样本证明参数在官方上游返回时就已持续增长,不能归因于 NewAPI 转换、下游重复累计完成快照或 ARTEMIS 最终消息拼接。取消、预读和缓冲会使各层停止计数的位置不同;尾部总长度不同本身不能证明重复发送或字符丢失。
|
||||
|
||||
诊断没有参数正文,不能进一步断言是空白循环、重复描述或官方服务内部的重复事件。这个定位也不能追溯证明没有原始诊断的历史事故。另一次 `click` 异常同样在 NewAPI 接收时已超过四万字符,说明这种现象并非新动作序列独有。
|
||||
|
||||
本地保护覆盖 `action_sequence`、`drag` 及其他小型内置动作:超限后关闭流、丢弃参数,并按既有策略有限重试;它限制异常对当前任务的影响,不修复上游生成行为,也不保证业务任务一定成功。缩放面板自动隐藏导致的定位失败由动作序列的 `ensure_visible` 准备步骤处理,与参数流异常分别诊断。
|
||||
|
||||
## 离线验证
|
||||
|
||||
`tests/unit/test_llm_stream_guard.py` 验证保护、有限重试、相同/不同备用端点,以及不会创建或清除其他请求的全局暂停。`tests/unit/test_request_diagnostics.py` 验证请求编号、超时重试、响应头及单次参数计数。`tests/unit/test_argument_fingerprint.py` 验证不同分片、中文和 emoji、固定字节前缀、有界统计与异常编码。这些测试不调用真实模型或设备。
|
||||
Reference in new issue
Block a user