feat: Blend educative tips with witty phrases during loading times (fun, subtle learning...)#10569
Conversation
Summary of ChangesHello @JayadityaGit, 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 upgrades the user experience during application loading by transforming generic witty messages into informative tips. The new messages guide users through various commands, keyboard shortcuts, and settings, clearly distinguishing between UI-configurable and Highlights
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 is a great improvement, replacing generic loading messages with genuinely useful tips about the CLI's features. The new messages will definitely help users discover commands, shortcuts, and settings.
My review focuses on a couple of areas to enhance the clarity and consistency of these new messages. I've identified some minor formatting inconsistencies and a more critical issue with ambiguous setting names that could confuse users. Addressing these points will make this feature even more polished and helpful.
There was a problem hiding this comment.
The setting keys allowed and excluded are ambiguous here, as they also exist under the mcp configuration (lines 121-122). Displaying only the leaf key could cause users to edit the wrong setting in settings.json, which is a critical issue.
To be 'genuinely informative' as the PR description states, I recommend using the full setting path (e.g., tools.allowed) to remove ambiguity. This principle should also be applied to the mcp settings and other nested settings in this list that have non-unique leaf names.
Here's a suggestion to improve clarity for the tools settings:
| 'You shall pass! `allowed` (settings.json)', | |
| 'You shall not pass! `exclude` (settings.json)', | |
| 'You shall pass! Let your favorite tools run with `tools.allowed` (settings.json).', | |
| 'You shall not pass! Block unwanted tools with `tools.exclude` (settings.json).', |
There was a problem hiding this comment.
Similar to my comment on the tools settings, the keys allowed and excluded are ambiguous here. Using the full setting path mcp.allowed and mcp.excluded would prevent any confusion for the user when editing their settings.json file.
| 'Allow your favorite MCPs. `allowed` (settings.json)', | |
| "Exclude the MCPs you don't like. `excluded` (settings.json)", | |
| 'Allow your favorite MCPs. `mcp.allowed` (settings.json)', | |
| "Exclude the MCPs you don't like. `mcp.excluded` (settings.json)", |
There was a problem hiding this comment.
These two messages are missing backticks around the commands and trailing punctuation, which is inconsistent with most other messages in this list. For better consistency and readability, I suggest adding backticks and a period at the end.
| 'Your secrets are safe with us. `/privacy`', | |
| "Don't let the door hit you on the way out. `/quit`", | |
| 'Your secrets are safe with us. `/privacy`.', | |
| "Don't let the door hit you on the way out. `/quit`.", |
There was a problem hiding this comment.
Did we forget the "(settings)" suffix for many UI configurable settings or have I misunderstood intent?
There was a problem hiding this comment.
yeah i missed it, thanks for pointing out !
There was a problem hiding this comment.
Maybe /settings instead of (settings)?
There was a problem hiding this comment.
thanks will use the slash command, i think that's better.
There was a problem hiding this comment.
to keep the style consistent I would end all of these with ...
There was a problem hiding this comment.
Thanks for the suggestion !
|
I'd suggest we enable this as a setting rather than the default. In addition, would be ideal if we interleaved the useful with funny settings when the option is enabled. That would align with how we already show a tip about ctrl-J |
|
Hey @jacob314, I believe that many users — myself included — may not be fully aware of all the useful features available(I really can't decide which are important). Of course, the importance of certain features can vary from person to person, but sometimes users might simply miss out on functionalities that could actually enhance their UNIQUE workflow. That’s the main motivation behind this PR. Since we already have an option to disable loading phrases, I don’t see a strong reason to introduce an additional setting just for this. If a user prefers fully personalized witty phrases, they can always opt for the custom witty feature. What I’ve done here is extract about 50% of the original witty phrases and blend them with a new set that’s both educative and witty. I feel this strikes a nice balance — keeping the humor while also subtly teaching or sharing something useful in a lighthearted way. |
I personally feel that if this is placed within the settings, there’s a chance it could be missed by users, which might lessen the impact of the intended change. |
There was a problem hiding this comment.
fix cases with four dots and cleanup cases that now have ! and ...
There was a problem hiding this comment.
ops — thank you so much for clarifying, @jacob314!
|
Even if we eventually make this the default we will need to have it be a setting so users who already feel they are familiar with the CLI can go back to the witty phrases. If you make the logic slightly more complex so you get a maybe 5-1 ratio of funny phrases to tips we could roll it out as the default. |
Introduces a new system to display informative tips to users during loading states. The phrase cycler logic has been updated to show a tip with a 1-in-6 probability, mixing educational content with the existing witty phrases. The new `INFORMATIVE_TIPS` array is populated with comprehensive tips covering: - All application settings, with suffixes indicating where they can be configured (`/settings` or `settings.json`). - A complete list of keyboard shortcuts. - A full list of all available slash commands. Additionally, this commit includes fixes for the `usePhraseCycler.test.ts` and `useLoadingIndicator.test.ts` test suites, which were updated to handle the new non-deterministic nature of the phrase cycler by adding appropriate mocks.
bde6909 to
b5e8dab
Compare
@jacob314 absolutely brilliant suggestion — thank you so much for the clear and thoughtful guidance! |
|
The npm preflight checks are all passing. I’ve personally tested it, and the 1–6 probability for the educative tips is working as expected. Since the probability is quite low and I wanted the tips to stand out, I chose not to make them witty. |
There was a problem hiding this comment.
nit: not really faster. more just cleaner.
There was a problem hiding this comment.
this is on by default so remove the tip
There was a problem hiding this comment.
have these point to /settings wherever possible rather than settings.json. IDE integration is in settings for example.
There was a problem hiding this comment.
this should be /directory not settings.json
|
Today I came across a small issue in the settings dialog — there wasn’t a clear visual cue for closing it. Initially, I was closing the CLI with ctrl+c, but later realized that esc works to close the settings dialog. I’ve added that clarification. Note: Some tests are currently failing. The snapshot tests in SettingsDialog.test.tsx need to be updated to match the new help text. There are also some unrelated test failures in InputPrompt.test.tsx and mcp-client.test.ts. |
|
And since I’m participating in Hacktoberfest, if possible, could you please add the |
|
@jacob314 I’ve updated the snapshot test, and the preflight checks are now passing. Thank you for adding the label — I truly appreciate it! |
|
@jacob314, is there anything else I should do on this? |
There was a problem hiding this comment.
why is this change in this pr?
There was a problem hiding this comment.
why is this change in this PR?
jacob314
left a comment
There was a problem hiding this comment.
Seems like a settings dialog change accidentally got in this PR. please revert and I will land.
… during loading times (fun, subtle learning...) (google-gemini#10569)
…un, subtle learning...) (google-gemini#10569) Co-authored-by: Jacob Richman <jacob314@gmail.com>

TL;DR
This PR replaces the existing loading-screen witty messages with an updated set that is both clever and genuinely informative. The new messages surface useful tips about commands, keyboard shortcuts, and settings—while noting whether a setting is configurable via the UI or only through
settings.json.Purpose
The goal is to make the CLI experience more engaging and helpful during load times. Instead of filler text, users now see short, fun messages that teach them something useful about the tool.
These improvements aim to:
What's Included
The updated messages cover:
For clarity:
settings.jsonnow include a(settings.json)suffix(/settings)suffix✅ Testing Matrix
🔗 Linked Issue
Resolves #10568