Skip to content

Terminal chat.send acknowledgements can leave clients tracking non-running runs #91048

Description

@nxmxbbd

Problem

chat.send and forwarded session methods can return a terminal acknowledgement with a runId and status: "ok" | "timeout" | "error". Several clients and helper paths still treat any returned runId as an accepted active run, so they can keep pending UI state, wait for future run events, or release queued state as if the message was still running.

Expected behavior

Consumers should branch on the acknowledgement status:

  • started / in_flight: keep the existing active-run behavior.
  • ok: clear pending state without waiting for future run events.
  • timeout / error: clear or restore optimistic/queued state, surface failure where appropriate, and avoid tracking a non-running run id.

Forwarded methods such as sessions.steer should preserve the same terminal semantics instead of converting the result into a generic success.

Impact

The affected paths can leave the user-facing client stuck in a pending or waiting state even though the gateway already returned a terminal acknowledgement. The same status contract should be handled consistently across Web, Android, native Talk surfaces, TUI, ACP, and slash-command forwarding paths.

Scope notes

This issue is about preserving terminal acknowledgement status through in-repo clients and forwarders. It does not try to redesign the public SDK Session.send return type or settle the exact cross-client UX copy for every terminal status; those can be handled as separate follow-ups if needed.

Related context

Related to #84176 and #84306, but this is a separate client/protocol propagation follow-up.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Normal backlog priority with limited blast radius.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions