Skip to content

fix(ui): stop repeating tool names in expanded activity#100606

Merged
steipete merged 2 commits into
mainfrom
codex/clean-expanded-tool-calls
Jul 6, 2026
Merged

fix(ui): stop repeating tool names in expanded activity#100606
steipete merged 2 commits into
mainfrom
codex/clean-expanded-tool-calls

Conversation

@steipete

@steipete steipete commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

What Problem This Solves

Fixes an issue where expanding a Control UI tool call repeated the tool icon and name inside the detail body even though the disclosure row already identified the tool.

Why This Change Was Made

Makes the collapsed disclosure the canonical place for tool identity across inline and standalone tool rows. Expanded content now starts with the useful command/detail and keeps the side-panel action, input, and result blocks without a duplicate heading.

User Impact

Expanded tool activity is shorter and easier to scan. Tool names remain visible in the disclosure row, including detail-first standalone calls, while the expanded body focuses on inputs and results.

Evidence

Before After
Expanded tool call before Expanded tool call after
  • Screenshots captured from the same deterministic dark-mode mocked Gateway flow on Blacksmith Testbox.
  • pnpm test ui/src/pages/chat/components/chat-tool-cards.test.ts ui/src/pages/chat/components/chat-message.test.ts — 100 tests passed on Testbox tbx_01kwtthdytwjcatn7gpfwxhpvw.
  • Focused real-browser Control UI E2E — passed on Testbox tbx_01kwtvjw00dqmdeej61sg9tgwb (Actions run).
  • pnpm check:changed — typecheck, lint, and repository guards passed on Testbox tbx_01kwtthdytwjcatn7gpfwxhpvw.
  • Codex autoreview — clean after addressing the standalone-row identity path.

@openclaw-barnacle openclaw-barnacle Bot added app: web-ui App: web-ui size: S maintainer Maintainer-authored PR labels Jul 6, 2026
@clawsweeper

clawsweeper Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed July 6, 2026, 1:36 AM ET / 05:36 UTC.

Summary
The branch removes duplicate tool identity from expanded Control UI tool-card bodies, adjusts standalone tool summaries/tests, and carries gateway/plugin test follow-ups that current main already contains.

PR surface: Source -32, Tests +34. Total +2 across 8 files.

Reproducibility: yes. Current main source renders the duplicate expanded tool-card title/icon, and the inspected before screenshot shows the repeated heading in the visible UI.

Review metrics: none identified.

Merge readiness
Overall: 🐚 platinum hermit
Proof: 🦞 diamond lobster ✨ media proof bonus
Patch quality: 🐚 platinum hermit
Result: ready for maintainer review.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • none.

Next step before merge

  • The PR is protected by the maintainer label and has no concrete automated repair target; the next action is normal maintainer review or landing, not a cleanup close or fix job.

Maintainer decision needed

  • Question: Should maintainers land this focused Control UI expanded-tool-card cleanup after exact-head checks remain acceptable?
  • Rationale: The PR has a protected maintainer label and is assigned, so conservative cleanup should not close it even though the patch review found no blocker.
  • Likely owner: steipete — He is the current assignee and the strongest recent history match for the touched Control UI tool-row code.
  • Options:
    • Land after exact-head checks (recommended): Merge the UI cleanup once maintainers are satisfied with the current head and checks.
    • Pause for UI direction: Hold the PR if maintainers want a different expanded tool activity layout before changing the shared renderer.

Security
Cleared: The diff is limited to UI rendering/CSS/tests plus already-main gateway/plugin test follow-ups and does not introduce security-sensitive or supply-chain changes.

Review details

Best possible solution:

Land the focused shared-renderer cleanup after ordinary maintainer review and exact-head checks, keeping the disclosure row as the single visible tool identity surface.

Do we have a high-confidence way to reproduce the issue?

Yes. Current main source renders the duplicate expanded tool-card title/icon, and the inspected before screenshot shows the repeated heading in the visible UI.

Is this the best way to solve the issue?

Yes. Moving identity responsibility to the shared disclosure row is the narrowest maintainable fix; hiding it at one call site or only with CSS would leave sibling paths or accessibility-visible duplication behind.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 89f911f322c9.

Label changes

Label justifications:

  • P3: This is a low-risk Control UI scanability cleanup with focused tests and no config, data-model, provider, or runtime compatibility surface.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🦞 diamond lobster and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (screenshot): Before/after screenshots directly show the changed expanded Control UI chat behavior, with PR-body Testbox browser and focused test evidence supporting the same path.
  • proof: sufficient: Contributor real behavior proof is sufficient. Before/after screenshots directly show the changed expanded Control UI chat behavior, with PR-body Testbox browser and focused test evidence supporting the same path.
  • proof: 📸 screenshot: Contributor real behavior proof includes screenshot evidence. Before/after screenshots directly show the changed expanded Control UI chat behavior, with PR-body Testbox browser and focused test evidence supporting the same path.
Evidence reviewed

PR surface:

Source -32, Tests +34. Total +2 across 8 files.

View PR surface stats
Area Files Added Removed Net
Source 4 58 90 -32
Tests 4 53 19 +34
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 8 111 109 +2

What I checked:

  • Current main still repeats expanded tool identity: Current main renders a chat-tool-card header containing the tool icon and display label inside the expanded body, after the disclosure row already identifies the tool. (ui/src/pages/chat/components/chat-tool-cards.ts:426, 89f911f322c9)
  • PR head removes the duplicate expanded heading: The PR head changes renderExpandedToolCardContent so the expanded body renders detail and side-panel action, but no longer renders the duplicate tool title/icon block. (ui/src/pages/chat/components/chat-tool-cards.ts:426, 3dfb67c90ba8)
  • Standalone rows preserve tool identity: The PR head keeps the tool display label as the standalone disclosure label while moving the cleaned detail into the secondary names slot. (ui/src/pages/chat/components/chat-message.ts:1979, 3dfb67c90ba8)
  • Focused tests cover the UI invariant: The added tests assert that expanded details do not repeat the tool identity and that standalone detail-first rows still expose the tool name in the disclosure. (ui/src/pages/chat/components/chat-tool-cards.test.ts:124, 3dfb67c90ba8)
  • Screenshot proof inspected: The before screenshot shows a repeated Bash heading in the expanded body; the after screenshot removes that repeated heading while retaining the disclosure-row identity, detail, side-panel action, input, and error blocks.
  • Current main already has the non-UI follow-ups: Current main contains the gateway startup policy-load change and Workboard hook contract registration as separate commits, so those branch hunks do not make the UI cleanup redundant. (src/gateway/server-startup-log.ts:136, b18af41f52)

Likely related people:

  • steipete: Blame for the current duplicated expanded renderer and nearby standalone summary logic points to Peter Steinberger, and he authored recent merged Control UI tool-row simplification work in the same files. (role: recent area contributor; confidence: high; commits: 443c582949e3, 7608d38597c0, e72a2c825d94; files: ui/src/pages/chat/components/chat-tool-cards.ts, ui/src/pages/chat/components/chat-message.ts, ui/src/styles/chat/tool-cards.css)
  • Val Alexander: Earlier history shows broad Control UI/chat renderer work on the same component family, making this a secondary routing candidate if recent ownership is unavailable. (role: earlier UI contributor; confidence: low; commits: f76a3c5225bb, df72ca1ecec7, 3bbbe33a1b91; files: ui/src/pages/chat/components/chat-message.ts, ui/src/styles/chat/tool-cards.css)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.
Review history (1 earlier review cycle)
  • reviewed 2026-07-06T05:10:58.222Z sha b2fb7e8 :: needs maintainer review before merge. :: none

@steipete steipete self-assigned this Jul 6, 2026
@steipete
steipete force-pushed the codex/clean-expanded-tool-calls branch from ea23180 to b2fb7e8 Compare July 6, 2026 05:03
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. P3 Low-priority cleanup, docs, polish, ergonomics, or speculative work. labels Jul 6, 2026
@openclaw-barnacle openclaw-barnacle Bot added gateway Gateway runtime size: M and removed size: S labels Jul 6, 2026
@steipete
steipete merged commit 98ca8c9 into main Jul 6, 2026
113 of 115 checks passed
@steipete
steipete deleted the codex/clean-expanded-tool-calls branch July 6, 2026 06:17
@steipete

steipete commented Jul 6, 2026

Copy link
Copy Markdown
Contributor Author

Merged via squash.

github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Jul 6, 2026
)

* fix(ui): stop repeating tool names in expanded activity

* fix(ui): stop repeating tool names in expanded activity
giodl73-repo pushed a commit to giodl73-repo/openclaw that referenced this pull request Jul 8, 2026
)

* fix(ui): stop repeating tool names in expanded activity

* fix(ui): stop repeating tool names in expanded activity
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app: web-ui App: web-ui gateway Gateway runtime maintainer Maintainer-authored PR P3 Low-priority cleanup, docs, polish, ergonomics, or speculative work. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. size: M status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant