fix: address PR review feedback for verbose/compact mode toggle

- Change default verboseMode to true (preserving current UX behavior)
- Fix compact mode hiding active shell output (add forceShowResult + isUserInitiated)
- Fix asymmetric frozen snapshot (freeze on ANY toggle during streaming)
- Fix copyright header in VerboseModeContext.tsx (Google LLC → Qwen)
- Add proper translations for all 6 locales (de/ja/pt/ru/zh/en)
- Rewrite CompactToolGroupDisplay with bordered box, i18n hint, shell detection
- Fix Pending status color (theme.text.secondary instead of theme.status.success)
- Fix description casing: ctrl+o → Ctrl+O
- Add explanatory comment for useCallback settings dependency

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
chiga0 2026-04-04 20:43:06 +08:00
parent b9c17d13ff
commit 6fd29b698b
18 changed files with 261 additions and 27 deletions

View file

@ -249,6 +249,7 @@ export interface ToolMessageProps extends IndividualToolCallDisplay {
activeShellPtyId?: number | null;
embeddedShellFocused?: boolean;
config?: Config;
forceShowResult?: boolean;
}
export const ToolMessage: React.FC<ToolMessageProps> = ({
@ -264,6 +265,7 @@ export const ToolMessage: React.FC<ToolMessageProps> = ({
embeddedShellFocused,
ptyId,
config,
forceShowResult,
}) => {
const settings = useSettings();
const isThisShellFocused =
@ -326,9 +328,10 @@ export const ToolMessage: React.FC<ToolMessageProps> = ({
// Use the custom hook to determine the display type
const displayRenderer = useResultDisplayRenderer(resultDisplay);
const { verboseMode } = useVerboseMode();
const effectiveDisplayRenderer = verboseMode
? displayRenderer
: { type: 'none' as const };
const effectiveDisplayRenderer =
verboseMode || forceShowResult
? displayRenderer
: { type: 'none' as const };
return (
<Box paddingX={1} paddingY={0} flexDirection="column">