style(ui): iterate on loading and error strings for precise conciseness#22087
style(ui): iterate on loading and error strings for precise conciseness#22087keithguerin wants to merge 6 commits intomainfrom
Conversation
|
Hi @keithguerin, thank you so much for your contribution to Gemini CLI! We really appreciate the time and effort you've put into this. We're making some updates to our contribution process to improve how we track and review changes. Please take a moment to review our recent discussion post: Improving Our Contribution Process & Introducing New Guidelines. Key Update: Starting January 26, 2026, the Gemini CLI project will require all pull requests to be associated with an existing issue. Any pull requests not linked to an issue by that date will be automatically closed. Thank you for your understanding and for being a part of our community! |
Summary of ChangesHello, 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 significantly refines the user-facing loading and error messages within the Gemini CLI. The changes are driven by a new design rationale emphasizing 'Precise Conciseness' and 'Telemetry over Etiquette,' aiming to provide users with clearer, more direct, and less verbose feedback during interactions. This update improves the overall user experience by making status and error reporting more informative and less ambiguous. Highlights
Changelog
Using Gemini Code AssistThe 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
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 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. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request refines user-facing loading and error strings for better conciseness and clarity, which is a great improvement for the user experience. The changes are well-described and align with the stated goals. I've found one potential issue in the loading indicator logic that could lead to poorly formatted text when a thought.subject contains only whitespace. A code suggestion is provided to address this.
| : thought?.subject | ||
| ? (thoughtLabel ?? thought.subject) | ||
| : currentLoadingPhrase; | ||
| ? `Gemini is thinking about ${thoughtLabel ?? thought.subject}` | ||
| : (currentLoadingPhrase ?? 'Gemini is thinking...'); |
There was a problem hiding this comment.
There's a potential issue where thought.subject could be a string containing only whitespace. This would result in a message like Gemini is thinking about , which is not ideal. The hasThoughtIndicator constant correctly uses .trim() to check for this, but primaryText does not. To ensure consistent and clean UI output, the subject should be trimmed before being used in the display string.
| : thought?.subject | |
| ? (thoughtLabel ?? thought.subject) | |
| : currentLoadingPhrase; | |
| ? `Gemini is thinking about ${thoughtLabel ?? thought.subject}` | |
| : (currentLoadingPhrase ?? 'Gemini is thinking...'); | |
| : thought?.subject?.trim() | |
| ? `Gemini is thinking about ${thoughtLabel ?? thought.subject.trim()}` | |
| : (currentLoadingPhrase ?? 'Gemini is thinking...'); |
c3bd99c to
a67939e
Compare
|
Size Change: -241 B (0%) Total Size: 26.3 MB
ℹ️ View Unchanged
|
a67939e to
5953481
Compare
5953481 to
02962f5
Compare
🧠 Model Steering GuidanceThis PR modifies files that affect the model's behavior (prompts, tools, or instructions).
This is an automated guidance message triggered by steering logic signatures. |
Fixes #
Summary
This PR refines user-facing strings across the Gemini CLI to prioritize Precise Conciseness and Telemetry over Etiquette. It focuses on improving the signal-to-noise ratio in loading states, retry logic, and error messages.
Strategic Shifts
Key Changes
1. Loading & Status
LoadingIndicator.tsx(esc to cancel, 8m 30s)(esc to cancel, 8m)(Seconds omitted after 1m)useLoadingIndicator.tsThis is taking a bit longer, we're still on it.System busy. Retrying...useLoadingIndicator.tsTrying to reach ${model} (Attempt X/Y)Retrying ${model} (Attempt X/Y)2. Error & System Messages
DetailedMessagesDisplay.tsxDebug ConsoleDebug consoleuseGeminiStream.tsThis request failed. Press F12 for diagnostics...Request failed. Press F12 for diagnostics...useGeminiStream.tsSome internal tool attempts failed...Previous tool attempts failed.errorParsing.tsPlease wait and try again later...Rate limit reached. Try again later...errorParsing.tsPossible quota limitations in place...System busy or quota limit reached.errorParsing.tsSwitching to the ${fallbackModel} modelSwitching to ${fallbackModel}How to Validate
LoadingIndicator,useGeminiStream, anderrorParsingare passing: