Commit graph

9 commits

Author SHA1 Message Date
xmanrui
ade50210f0 fix(qq): prevent turn feed message spam 2026-08-24 00:48:21 +08:00
jonah.fu
e1bc9dd0d0 feat(qq): stream the full turn feed as discrete messages
Show what the agent is actually doing during a turn, the way Claude
Code does: interim explanation text, every Tool call, and the error
detail when a tool fails, each as its own pushed message before the
final markdown answer.

- HarnessReplyTracker.consume now returns every frame of a polling
  batch in order (same-batch text frames collapse to the latest)
  instead of dropping all but the last event, which silently ate
  tool-call frames that shared a batch with their result
- tool frames carry callId; status frames carry the correlated
  toolName and a flattened error text parsed from the tool/result
  error payload (message, or name: code)
- the QQ bridge holds interim step text until the next tool call
  (or the end of the turn) pushes it, emits 'Tool call <name>' per
  call, emits 'Tool call <name>\nError: <reason>' for failures, and
  skips re-sending interim text that already equals the final answer

Other channels keep their existing behaviour: the status frame still
reads '正在整理结果…' and they ignore the new optional fields.
2026-08-23 22:39:29 +08:00
xmanrui
99ce38e9a4 feat: add model and turn control commands 2026-08-20 01:28:51 +08:00
xmanrui
66bdad6299 fix: support Harness approvals across IM channels 2026-08-18 16:45:25 +08:00
xmanrui
3e7e1dcdd7 fix: support Harness interactions in DingTalk and Feishu 2026-08-18 13:03:15 +08:00
xmanrui
1af8610cd5 feat: bind bot chats to existing harness sessions 2026-08-18 02:59:29 +08:00
xmanrui
28381468b3 feat: add workspace session list command 2026-08-18 01:38:18 +08:00
xmanrui
1fe6180813 feat: add workspace list command 2026-08-18 00:39:16 +08:00
xmanrui
bd469f58f8 Internalize all IM channel implementations 2026-08-15 15:40:53 +08:00