Skip to content

Give completed Agent thoughts descriptive labels #646

Description

@marksftw

Summary

In Agent Mode, completed reasoning rows use the generic label Thought. Replace that label with a short description generated by an LLM while leaving the reasoning and the rest of the timeline unchanged.

Scope

  • Keep Thinking unchanged while reasoning is streaming.
  • When a newly observed reasoning phase finishes, start a non-blocking UI request using auto:quick.
  • Send only bounded copies of the latest user request from that turn and the completed reasoning text. Do not send tool inputs or outputs, file contents, approvals, the final response, or the full conversation.
  • Ask for one short action description. Accept only trimmed, single-line text of 80 characters or fewer.
  • If a valid response arrives, replace only the Thought label. If the request fails or the response is invalid, silently keep Thought.
  • Make at most one request per reasoning phase. Loading old history must not generate new labels.
  • Store successful labels in localStorage under a stable account-, task-, and reasoning-phase-scoped key. Store only the label and identifiers, not the user request or reasoning text.
  • Reuse saved labels after switching tasks or restarting the app, and remove them when the related task or Agent history is deleted.
  • Keep the implementation in the frontend UI. Do not change Rust, server APIs, or server-side persistence.

Done when

  • A completed live thought changes from Thought to its generated description when available.
  • Name generation never delays Agent activity, approvals, the final response, or run completion.
  • Timeline order, raw reasoning, tools, approvals, and final responses behave exactly as they do today.

Out of scope

  • Persisting or syncing labels with task history
  • Redesigning tool-call rows
  • Grouping reasoning and tools into a shared container

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions