Skip to content

fix(ui): wrap topic and intent fields in TopicMessage#24386

Merged
jwhelangoog merged 1 commit into
mainfrom
dense-output-adjustments-0401
Apr 1, 2026
Merged

fix(ui): wrap topic and intent fields in TopicMessage#24386
jwhelangoog merged 1 commit into
mainfrom
dense-output-adjustments-0401

Conversation

@jwhelangoog

Copy link
Copy Markdown
Contributor

Summary

Allows the Topic tool output (TopicMessage) to break the topic and intent fields onto separate lines when needed, and wrap the intent field. This ensures the user stays informed of the agent's intentions even with long outputs.

Details

  • Modified TopicMessage.tsx to use flexWrap="wrap" on the container and wrap="wrap" on the intent text.
  • Changed the separator from to : to better separate the topic and intent when wrapped.
  • Updated relevant test snapshots in ToolGroupMessage.test.tsx.

Related Issues

Fixes #24383

How to Validate

  • Trigger a long topic update during an agent interaction and observe that the topic and intent text wraps correctly instead of overflowing or being truncated.
  • Run npm test -w @google/gemini-cli -- src/ui/components/messages/ToolGroupMessage.test.tsx to verify the snapshot updates.

Pre-Merge Checklist

  • Updated relevant documentation and README (if needed)
  • Added/updated tests (if needed)
  • Noted breaking changes (if any)
  • Validated on required platforms/methods:
    • MacOS
      • npm run
      • npx
      • Docker
      • Podman
      • Seatbelt
    • Windows
      • npm run
      • npx
      • Docker
    • Linux
      • npm run
      • npx
      • Docker

@jwhelangoog jwhelangoog requested a review from a team as a code owner March 31, 2026 23:33
@gemini-cli gemini-cli Bot added the area/core Issues related to User Interface, OS Support, Core Functionality label Mar 31, 2026
@jwhelangoog jwhelangoog force-pushed the dense-output-adjustments-0401 branch from 4cd3ea6 to c3e6e08 Compare March 31, 2026 23:34
@github-actions

github-actions Bot commented Mar 31, 2026

Copy link
Copy Markdown

Size Change: +121 B (0%)

Total Size: 26.5 MB

Filename Size Change
./bundle/chunk-BDUWPAFZ.js 0 B -14.7 MB (removed) 🏆
./bundle/chunk-U4SFDTW6.js 0 B -3.78 MB (removed) 🏆
./bundle/core-2E7QEPS2.js 0 B -44.6 kB (removed) 🏆
./bundle/devtoolsService-BT5PYB5Z.js 0 B -28.4 kB (removed) 🏆
./bundle/interactiveCli-YVEDQDJ2.js 0 B -1.66 MB (removed) 🏆
./bundle/oauth2-provider-3SJWS2MU.js 0 B -9.16 kB (removed) 🏆
./bundle/chunk-42VZMGSF.js 14.7 MB +14.7 MB (new file) 🆕
./bundle/chunk-DWSTLNL4.js 3.78 MB +3.78 MB (new file) 🆕
./bundle/core-MG6NMUFD.js 44.6 kB +44.6 kB (new file) 🆕
./bundle/devtoolsService-DN7WEUOJ.js 28.4 kB +28.4 kB (new file) 🆕
./bundle/interactiveCli-QYHX6WUV.js 1.66 MB +1.66 MB (new file) 🆕
./bundle/oauth2-provider-2QVQVZPE.js 9.16 kB +9.16 kB (new file) 🆕
ℹ️ View Unchanged
Filename Size
./bundle/chunk-34MYV7JD.js 2.45 kB
./bundle/chunk-5AUYMPVF.js 858 B
./bundle/chunk-664ZODQF.js 124 kB
./bundle/chunk-CYVSTQJS.js 1.96 MB
./bundle/chunk-DAHVX5MI.js 206 kB
./bundle/chunk-IUUIT4SU.js 56.5 kB
./bundle/chunk-RJTRUG2J.js 39.8 kB
./bundle/chunk-U4FACSVX.js 1.13 kB
./bundle/devtools-36NN55EP.js 696 kB
./bundle/dist-T73EYRDX.js 356 B
./bundle/events-CLX3JQHP.js 418 B
./bundle/gemini.js 532 kB
./bundle/getMachineId-bsd-TXG52NKR.js 1.55 kB
./bundle/getMachineId-darwin-7OE4DDZ6.js 1.55 kB
./bundle/getMachineId-linux-SHIFKOOX.js 1.34 kB
./bundle/getMachineId-unsupported-5U5DOEYY.js 1.06 kB
./bundle/getMachineId-win-6KLLGOI4.js 1.72 kB
./bundle/memoryDiscovery-ARMYW7PU.js 980 B
./bundle/multipart-parser-KPBZEGQU.js 11.7 kB
./bundle/node_modules/@google/gemini-cli-devtools/dist/client/main.js 222 kB
./bundle/node_modules/@google/gemini-cli-devtools/dist/src/_client-assets.js 229 kB
./bundle/node_modules/@google/gemini-cli-devtools/dist/src/index.js 13.4 kB
./bundle/node_modules/@google/gemini-cli-devtools/dist/src/types.js 132 B
./bundle/sandbox-macos-permissive-open.sb 890 B
./bundle/sandbox-macos-permissive-proxied.sb 1.31 kB
./bundle/sandbox-macos-restrictive-open.sb 3.36 kB
./bundle/sandbox-macos-restrictive-proxied.sb 3.56 kB
./bundle/sandbox-macos-strict-open.sb 4.82 kB
./bundle/sandbox-macos-strict-proxied.sb 5.02 kB
./bundle/src-QVCVGIUX.js 47 kB
./bundle/tree-sitter-7U6MW5PS.js 274 kB
./bundle/tree-sitter-bash-34ZGLXVX.js 1.84 MB

compressed-size-action

@jwhelangoog jwhelangoog force-pushed the dense-output-adjustments-0401 branch from c3e6e08 to 19cc8d5 Compare March 31, 2026 23:38
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request improves the presentation of topic and intent information within the UI. By enabling text wrapping and adjusting the separator format, the component now handles longer content gracefully, ensuring that critical information remains visible and readable to the user.

Highlights

  • UI Layout Improvements: Updated the TopicMessage component to support text wrapping for long intent fields, ensuring better readability and preventing UI overflow.
  • Separator Update: Changed the separator between the topic and intent from an em-dash to a colon for improved clarity when text wraps.
  • Test Suite Updates: Updated test expectations and snapshots in ToolGroupMessage.test.tsx to reflect the new formatting changes.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

  - allow topic and intent fields to break to separate lines (when needed)
  - allow the intent field to wrap line to keep user informed of agent intentions
@jwhelangoog jwhelangoog force-pushed the dense-output-adjustments-0401 branch from 19cc8d5 to 7e07b8c Compare March 31, 2026 23:42
@jwhelangoog

Copy link
Copy Markdown
Contributor Author

Overall, great pull request! The code perfectly aligns with the project guidelines, particularly by relying on Ink's built-in layout engine (flexWrap, wrap) rather than implementing custom string measurement or truncation. The PR description clearly explains the intent, and the title correctly follows the Conventional Commits format.

Observations:

  • Code Quality & Guidelines: Excellent job utilizing native Ink properties for text wrapping. This is exactly what the GEMINI.md guidelines require for handling long outputs and ensuring the terminal UI remains robust.
  • Testing: The snapshot tests in ToolGroupMessage.test.tsx have been updated appropriately, ensuring test fidelity.

Minor Notes (No Action Required):

  • The use of a trailing space in <Text>: </Text> for spacing works fine. Ink's flexWrap handles this naturally.
  • The nested <Text>: </Text> relies on style inheritance from its parent <Text color={theme.text.primary} bold wrap="truncate-end">, which is standard and acceptable in Ink.

The changes are solid and look ready to merge.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request updates the TopicMessage component to improve layout and text wrapping within the CLI. Key changes include adding flexWrap to the message container, enabling truncation for titles, and replacing the em dash separator with a colon for better readability. Associated tests and snapshots in ToolGroupMessage.test.tsx have been updated to align with these UI modifications. I have no feedback to provide.

@jwhelangoog jwhelangoog enabled auto-merge March 31, 2026 23:53
@jwhelangoog jwhelangoog added this pull request to the merge queue Apr 1, 2026
Merged via the queue into main with commit cdc602e Apr 1, 2026
27 checks passed
@jwhelangoog jwhelangoog deleted the dense-output-adjustments-0401 branch April 1, 2026 00:36
kalenkevich pushed a commit to kalenkevich/gemini-cli that referenced this pull request Apr 3, 2026
warrenzhu25 pushed a commit to warrenzhu25/gemini-cli that referenced this pull request Apr 9, 2026
@sripasg sripasg added the size/s A small PR label Jun 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/core Issues related to User Interface, OS Support, Core Functionality size/s A small PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Adjust "Topic" tool output format / wrapping

3 participants