dsh-im-ops/test
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
..
channels feat(qq): stream the full turn feed as discrete messages 2026-08-23 22:39:29 +08:00
agent-preset-session-lifecycle.test.mjs feat: add agent preset chat commands 2026-08-22 04:04:44 +08:00
client-lifecycle.test.mjs fix(feishu): add one-click card callback repair 2026-08-21 13:43:02 +08:00
client-ui.test.mjs feat(ui): compact bot connection metadata 2026-08-23 01:20:58 +08:00
compact-command.test.mjs feat: add agent preset chat commands 2026-08-22 04:04:44 +08:00
control-command.test.mjs feat: add model and turn control commands 2026-08-20 01:28:51 +08:00
delivery-receipt.test.mjs feat: add native result-file delivery 2026-08-23 20:02:06 +08:00
feishu-client-api.test.mjs fix(feishu): add one-click card callback repair 2026-08-21 13:43:02 +08:00
host-session-coordinator.test.mjs feat: add model and turn control commands 2026-08-20 01:28:51 +08:00
host.test.mjs feat: add native result-file delivery 2026-08-23 20:02:06 +08:00
image-bridge.test.mjs feat: support image prompts across IM channels 2026-08-19 02:56:14 +08:00
image-prompt.test.mjs fix(channels): clarify unsupported image model errors 2026-08-21 19:07:18 +08:00
model-command.test.mjs feat: support numbered model selection 2026-08-20 03:11:20 +08:00
outbound-artifact.test.mjs feat: add native result-file delivery 2026-08-23 20:02:06 +08:00
preset-command.test.mjs feat: add agent preset chat commands 2026-08-22 04:04:44 +08:00
random-badge-worker.test.mjs docs: serve uncached random readme badge 2026-08-18 20:35:08 +08:00
rpc-authority.test.mjs Add Telegram and Discord IM channels 2026-08-16 14:47:16 +08:00
session-bind-command.test.mjs fix: clarify session index binding scope 2026-08-18 22:17:39 +08:00
session-bind-store.test.mjs feat: add model and turn control commands 2026-08-20 01:28:51 +08:00
weixin-client-api.test.mjs Add unified IM channel plugin 2026-08-15 04:39:56 +08:00
workspace-editor.test.mjs fix(ui): move agent preset guidance to tooltip 2026-08-22 18:38:29 +08:00
workspace.test.mjs feat: add native result-file delivery 2026-08-23 20:02:06 +08:00