Commit 9705b6b
committed
feat(acp-bridge): 事件驱动真流式 + 新版协议方法对齐
与 ZCode 3.1.4 (CLI 0.14.8) 新版事件推送机制对齐, 解决 ACP bridge
的「伪流式」痛点, 并暴露新版协议方法。
核心改造:
- ZCodeBackend: 从同步 readline 改为后台 reader 线程分发消息
(响应 → Queue; session/event → listener; notification → 通用队列)
- 新增 EventStreamListener: 订阅 session/subscribe 事件流, 维护 seq 游标
- 新增 EventTranslator: model.streaming → TextDelta (真流式逐段推送),
tool.updated → ToolCallNew/Update (实时工具状态)
- _on_session_prompt 双模式: 优先事件驱动 (真流式), subscribe 失败
自动降级轮询 session/read (伪流式兼容旧版)
- 5 个扩展方法 (非标准 ACP): session/fork, rewind, goal, compact, steer
测试:
- test_event_translator.py: 15 项 EventTranslator 翻译逻辑单测
- test_projection_differ.py: 14 项 (现有, 不受影响)
- 端到端验证: 真流式文本分 2-5 段到达, 工具调用实时状态推送
文档:
- README: 双模式说明 + 扩展方法表 + 限制更新
- agent-help: acp_methods/events 同步标注
- CI: 增加 event translator 测试 job1 parent 8c7a360 commit 9705b6b
5 files changed
Lines changed: 872 additions & 83 deletions
File tree
- .github/workflows
- packages
- acp-bridge
- agent-help
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
68 | | - | |
| 68 | + | |
69 | 69 | | |
70 | 70 | | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
71 | 74 | | |
72 | 75 | | |
73 | 76 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
119 | | - | |
| 119 | + | |
120 | 120 | | |
121 | | - | |
122 | | - | |
| 121 | + | |
| 122 | + | |
123 | 123 | | |
124 | 124 | | |
125 | 125 | | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
126 | 145 | | |
127 | 146 | | |
128 | 147 | | |
| |||
135 | 154 | | |
136 | 155 | | |
137 | 156 | | |
138 | | - | |
| 157 | + | |
139 | 158 | | |
140 | 159 | | |
141 | 160 | | |
| |||
0 commit comments