mirror of
https://github.com/hansjone/dsh-im-ops.git
synced 2026-10-09 04:13:17 +08:00
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. |
||
|---|---|---|
| .. | ||
| channels | ||
| agent-preset-session-lifecycle.test.mjs | ||
| client-lifecycle.test.mjs | ||
| client-ui.test.mjs | ||
| compact-command.test.mjs | ||
| control-command.test.mjs | ||
| delivery-receipt.test.mjs | ||
| feishu-client-api.test.mjs | ||
| host-session-coordinator.test.mjs | ||
| host.test.mjs | ||
| image-bridge.test.mjs | ||
| image-prompt.test.mjs | ||
| model-command.test.mjs | ||
| outbound-artifact.test.mjs | ||
| preset-command.test.mjs | ||
| random-badge-worker.test.mjs | ||
| rpc-authority.test.mjs | ||
| session-bind-command.test.mjs | ||
| session-bind-store.test.mjs | ||
| weixin-client-api.test.mjs | ||
| workspace-editor.test.mjs | ||
| workspace.test.mjs | ||