feat(agent,websocket,status,channels): WebSocket tooling, session lifecycle, reasoning, chat_id#3179
Conversation
Re-bin
left a comment
There was a problem hiding this comment.
I like the direction of the WebSocket work here, but I don’t think this is ready to merge as-is.
The good part is clear:
- resumable
chat_idsessions - explicit
chat_start/chat_end - structured
tool_eventpayloads - a more frontend-friendly WebSocket protocol
That all makes sense.
Where this PR loses its boundary is that it also generalizes structured JSON command output and reasoning delivery across channels, but without a complete delivery contract outside WebSocket.
Two concrete problems stand out:
-
/status_jsonand/context_jsonnow put their payload intoOutboundMessage.datawhile leavingcontentempty. WebSocket handlesdata, but CLI and most other channels still render fromcontent, so these commands effectively become empty responses outside WebSocket. -
reasoning_contentis now attached as a streamed follow-up for all channels whensend_reasoning_contentis enabled, but only WebSocket actually understands the_reasoning_onlypath. That means behavior is inconsistent across channels: some drop it, some send blank messages, and only WebSocket renders it correctly.
So the WebSocket-specific changes are promising, but the PR overreaches when it turns those transport-specific ideas into cross-channel behavior without fully implementing the other side.
I pulled the branch locally, reviewed the origin/nightly...HEAD diff, and reran:
- focused websocket / command tests
- the full test suite
Everything passes locally, but the functional boundary still isn’t clean enough.
My recommendation:
- either scope this PR down to WebSocket-only behavior
- or fully implement and document the cross-channel contract for
dataand reasoning delivery before merging
From my side, this is not merge-ready yet.
4e2cd8a to
91a67de
Compare
…ecycle, reasoning, chat_id - Enhance tool event handling and configuration; session turn lifecycle notifications - Reasoning content handling for WebSocket channels; streamlined attachment across channels - Status and context commands JSON support; OutboundMessage data field for payloads - chat_id for WebSocket session resumption; docs and tests updated - fix(discord): register status_json, context, context_json slash commands - refactor(builtin): streamline context command response handling - chore(builtin): remove unused json import
91a67de to
8602904
Compare
|
Closed due to #3216. |
Enhance tool event handling and configuration
Session turn lifecycle notifications
Reasoning content handling for WebSocket channels; streamlined attachment across channels
Status and context commands JSON support
chat_id for WebSocket session resumption
OutboundMessage data field for additional payloads; docs and tests updated