Skip to content

feat(ux): add /verbose toggle for thinking trace display (#598)#605

Closed
merchloubna70-dot wants to merge 1 commit into
Hmbown:mainfrom
merchloubna70-dot:fix/thinking-trace-ux-598
Closed

feat(ux): add /verbose toggle for thinking trace display (#598)#605
merchloubna70-dot wants to merge 1 commit into
Hmbown:mainfrom
merchloubna70-dot:fix/thinking-trace-ux-598

Conversation

@merchloubna70-dot

Copy link
Copy Markdown

Closes #598. Adds /verbose slash command to toggle between compact (summary only) and full (complete chain-of-thought) reasoning display. Defaults to compact.\n\nImplemented using deepseek exec --model deepseek-v4-flash. 🐋

@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 introduces a "verbose thinking" mode to the TUI, allowing users to toggle between compact summaries and full chain-of-thought reasoning via a new /verbose command. The changes include command registration, multi-language localization updates, and modifications to the transcript rendering logic. Additionally, the onboarding language selection logic was refactored to replace experimental let_chains with a matches! guard. Review feedback suggests simplifying the verbose toggle's confirmation message for better readability and optimizing the onboarding logic to avoid redundant collection searches.

Comment on lines +261 to +264
CommandResult::message(format!(
"Verbose thinking display: {state}. Now showing {} chain-of-thought.",
if app.verbose_thinking { "full" } else { "compact" }
))

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.

medium

The verbose thinking status message is slightly redundant. The state is already clear from the 'on'/'off' toggle. Consider simplifying the message to improve readability.

Suggested change
CommandResult::message(format!(
"Verbose thinking display: {state}. Now showing {} chain-of-thought.",
if app.verbose_thinking { "full" } else { "compact" }
))
CommandResult::message(format!("Verbose thinking display: {state}."))

Comment thread crates/tui/src/tui/ui.rs
Comment on lines +1610 to +1614
let tag = onboarding::language::LANGUAGE_OPTIONS
.iter()
.find(|(hotkey, _, _, _)| *hotkey == c)
.map(|(_, tag, _, _)| tag)
.expect("digit matched in guard");

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.

medium

The expect call here is safe because of the matches! guard in the if condition, but it is cleaner to use if let or filter_map to avoid the repetition of the find logic.

Suggested change
let tag = onboarding::language::LANGUAGE_OPTIONS
.iter()
.find(|(hotkey, _, _, _)| *hotkey == c)
.map(|(_, tag, _, _)| tag)
.expect("digit matched in guard");
let tag = onboarding::language::LANGUAGE_OPTIONS
.iter()
.find(|(hotkey, _, _, _)| *hotkey == c)
.map(|(_, tag, _, _)| tag)
.unwrap();

@Hmbown

Hmbown commented May 31, 2026

Copy link
Copy Markdown
Owner

Thanks for the /verbose thinking-trace UX work. I am closing this old conflicting branch, but not the underlying idea.

The linked issue #598 stays open: this still needs a current-main design for persistence, mode interaction, tests, and a clean UX path without unrelated onboarding refactor noise. A fresh focused PR would be welcome.

@Hmbown Hmbown closed this May 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

thinking-trace UX: natural-feel default vs explicit /verbose toggle (v0.8.12)

2 participants