Skip to content

Add compact Codex tool-call icons and details to the chat timeline - #988

Merged
juliusmarminge merged 13 commits into
pingdotgg:mainfrom
zortos293:feat/toolcall-icons
Mar 13, 2026
Merged

Add compact Codex tool-call icons and details to the chat timeline#988
juliusmarminge merged 13 commits into
pingdotgg:mainfrom
zortos293:feat/toolcall-icons

Conversation

@zortos293

@zortos293 zortos293 commented Mar 12, 2026

Copy link
Copy Markdown
Contributor

What Changed

  • Added icons to Codex tool-call rows in the chat timeline; previously these work-log entries had no icons.
  • Added a compact, Codex-only tool-call UI with stable white icons, tighter rows, and collapsible details for commands, outputs, and changed files.
  • Enriched work-log/session parsing so tool entries can carry command text, output, exit codes, tool status/title, request kind, item type, and structured changed-file paths when Codex provides them.
  • Cleaned up the copy and behavior to better match the older compact UI: removed trailing complete/completed, renamed command rows to Ran command, and removed the extra row/chip motion that made file updates feel jumpy.

Why

The previous work-log UI was plain and harder to scan because tool-call entries had no icons, bulky labels, and inconsistent presentation. This approach improves readability while keeping scope tight by limiting the richer rendering to Codex-oriented metadata and reusing the existing timeline flow instead of changing provider-wide UI behavior.

UI Changes

  • Before: Codex tool-call/work-log rows had no icons and used a more generic, bulkier text-only presentation.
  • After: Codex tool-call rows now show compact white icons, cleaner labels, and expandable details for command/output/file metadata.

Before

image

After

image

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Add compact tool-call icons and details to the Codex chat timeline

  • Replaces flat work log rendering with SimpleWorkEntryRow, a compact single-line component showing a contextual icon, normalized heading, and preview text (command, detail, or changed files).
  • Extends WorkLogEntry in session-logic.ts with toolTitle, itemType, and requestKind fields; strips trailing <exited with exit code N> from detail strings.
  • Adds normalizeCompactToolLabel in MessagesTimeline.logic.ts to strip trailing 'complete'/'completed' from tool labels.
  • Moves isToolLifecycleItemType to a shared type guard in contracts/providerRuntime.ts and removes the local duplicate in the server ingestion layer.
  • Renames command execution label from 'Command run' to 'Ran command' across the adapter, fixtures, and tests.

Macroscope summarized a4b6782.

- Gate enhanced tool-call rendering to Codex sessions in `ChatView`
- Redesign work-log rows with icons, collapsible details, and file/output previews
- Preserve tool lifecycle metadata in `session-logic` and extend tests for output/exit parsing
- Normalize compact tool labels (e.g. "Command run" -> "Ran command")
- Improve tool entry icon detection for command/file/web/image activity
- Remove staggered row animations from tool work entry rendering and update tests
- include `args` on `approval.requested` and `resolution` on `approval.resolved` activities
- update work log file extraction to read changed paths from `payload.args` and `payload.resolution`
- add server/web tests covering the new approval payload mapping and file path extraction
@coderabbitai

coderabbitai Bot commented Mar 12, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 790bf180-b1dd-4cd6-b8d4-7c8d1ccdc8e0

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions Bot added size:XL 500-999 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Mar 12, 2026
@zortos293

Copy link
Copy Markdown
Contributor Author

Clearing up some unnecessary stuff that wont be called anyway

Keep the compact Codex icon treatment while removing the extra expandable UI and approval metadata plumbing. This keeps the PR focused on the timeline scanability improvement without adding unnecessary parsing and server-side scope.
@github-actions github-actions Bot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Mar 12, 2026
@zortos293

Copy link
Copy Markdown
Contributor Author

I removed the dropdown because we do not consistently receive enough useful detail to justify an expanded view, so it added complexity without meaningful value.

Comment thread apps/web/src/components/chat/MessagesTimeline.logic.test.ts Outdated
Comment thread apps/web/src/components/chat/MessagesTimeline.logic.test.ts Outdated
zortos293 and others added 4 commits March 12, 2026 22:27
- Replace "Command run" titles with "Ran command" across server fixtures and tests
- Simplify compact tool label normalization to only strip trailing complete/completed text
Removed duplicate import of computeMessageDurationStart.
Comment thread apps/web/src/components/ChatView.tsx Outdated
Comment thread apps/web/src/session-logic.test.ts Outdated
Comment thread apps/web/src/session-logic.ts Outdated

@zortos293 zortos293 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed all the issues related with the tests and moved itemtype to contracts

@juliusmarminge

Copy link
Copy Markdown
Member

@macroscope-app review this

@juliusmarminge
juliusmarminge merged commit 64dc07a into pingdotgg:main Mar 13, 2026
@Noojuno

Noojuno commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

I hugely appreciate this change, this is much nicer ❤️

@zortos293

Copy link
Copy Markdown
Contributor Author

I hugely appreciate this change, this is much nicer ❤️

❤️

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

Labels

size:L 100-499 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants