Skip to content

Session tool titles and Working status need consistent bounded summaries #598

Closed

Description

@pedronauck

Problem

Session chrome and transcript summaries become visually overwhelming with long Codex tool titles, commands, paths, and Goal objectives. The reported screenshot shows shell/heredoc bodies used as tool headings and a Working/loading status expanding into many lines above the composer. Several collapsed rows span almost the entire wide desktop even when they eventually ellipsize.

This is a summary/presentation problem: full commands and payloads must remain available in their detail views, copy actions, and transcript search.

Confirmed code findings

  • web/src/systems/session/components/session-thinking-row.tsx: WorkingStatusLine renders status.activity inside plain nested spans. Neither the activity segment nor its text wrapper has a bounded width, line limit, or ellipsis. A large activity string can consume many rows and displace the composer/transcript.
  • web/src/systems/session/lib/session-working-status.ts: currentActivity passes session.activity.current_tool to liveToolLabel(tool).verb.
  • web/src/systems/session/lib/tool-labels.ts: unknown provider titles are returned intact by resolveRegisteredToolName. The fallback uses the whole value in Running/Used labels. getToolCompactSummary bounds input summaries, but this does not bound the title/fallback path.
  • web/src/systems/session/lib/session-tool-visual-state.ts: unknown tools become Running <entire title>; agent previews can also use an entire prompt.
  • web/src/components/assistant-ui/session-live-tool-row.tsx and packages/ui/src/components/custom/tool-call-row.tsx already have CSS truncate on text. They constrain against available container width rather than a deliberate readable summary limit, so enormous titles still cross a wide window. Do not incorrectly diagnose every row as missing ellipsis.
  • Collapsed reasoning in thinking-block.tsx uses the complete first nonempty line with container-only truncation. session-goal-strip.tsx similarly truncates its objective at available width. Review those alongside session/window/sidebar titles for consistent behavior, preserving layouts that are already correct.

Investigation was read-only and based on the supplied screenshot plus source tracing. New rendered/browser verification is required in the implementation worktree.

Expected behavior and acceptance criteria

  • Define and apply a consistent, responsive summary-length policy for session/window titles, collapsed tool-call headings/previews, live tool rows, collapsed reasoning previews, Goal summaries, and the Working/loading activity line.
  • Headings and status stay compact and scannable on both wide and narrow session windows. Prefer one-line ellipsis for these summary surfaces; select appropriate maximum readable widths/lengths using the existing design system instead of merely clipping at the far edge of a large monitor.
  • Keep the activity verb, elapsed time, status indicators, action buttons, and composer reachable. Long payloads must not produce a tall loading block, overlap controls, or create horizontal page overflow.
  • Separate canonical tool identity/action from descriptive titles where the existing event data supports it. Unknown tool names must still degrade gracefully and remain truthful. Do not guess shell identity from arbitrary free text or change stored events solely for cosmetic truncation.
  • Preserve exact full text in supported detail/disclosure, copy, and search flows. Users must be able to inspect truncated content with keyboard and pointer; do not rely exclusively on hover-only tooltips or truncate persisted content.
  • Handle multiline commands/heredocs, huge unbroken tokens/paths, long provider titles, Unicode, multiple concurrent tools, running/settled/error states, and resize/zoom without disrupting scroll anchoring.
  • Preserve normal assistant message bodies and intentional expanded tool/reading content. This is not a global line clamp over the conversation or a redesign of unrelated UI.
  • Extend canonical tests for presentation semantics, detail access, copy/search preservation, and actual browser layout behavior. Avoid tests that merely assert CSS class strings.
  • Use existing stories/fixtures with realistic long Codex-style labels; validate the rendered session at narrow, ordinary, and wide window sizes plus zoom, keyboard access, and reduced motion. Capture before/after evidence with sanitized fixture content.
  • Update affected QA scenarios and the cross-surface impact record; assess Web, shared UI, public/native contracts, and official skill impact. Run repository-root Turbo checks and make gate before delivery.

Delivery

Implement in a dedicated managed worktree with Codex gpt-6-astra / high. Open a PR targeting main with detailed explanation of the root causes, chosen truncation policy, affected surfaces, browser evidence, verification, and any limits. Preserve unrelated work and do not merge the PR.

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

    Fields

    No fields configured for Bug.

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions