Files
gemini-cli/full-test-output.txt
T

11305 lines
1.1 MiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
> @google/gemini-cli@0.39.0-nightly.20260408.e77b22e63 test
> vitest run
RUN v3.2.4 /Users/mattkorwel/dev/gemini-cli/main/packages/cli
Coverage enabled with v8
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h src/ui/components/ExitPlanModeDialog.test.tsx (28 tests | 4 failed) 2508ms
× ExitPlanModeDialog > useAlternateBuffer: true > renders correctly with plan content 181ms
→ Snapshot `ExitPlanModeDialog > useAlternateBuffer: true > renders correctly with plan content 1` mismatched
✓ ExitPlanModeDialog > useAlternateBuffer: true > calls onApprove with AUTO_EDIT when first option is selected 57ms
✓ ExitPlanModeDialog > useAlternateBuffer: true > calls onApprove with DEFAULT when second option is selected 74ms
✓ ExitPlanModeDialog > useAlternateBuffer: true > calls onFeedback when feedback is typed and submitted 247ms
✓ ExitPlanModeDialog > useAlternateBuffer: true > calls onCancel when Esc is pressed 40ms
✓ ExitPlanModeDialog > useAlternateBuffer: true > displays error state when file read fails 16ms
✓ ExitPlanModeDialog > useAlternateBuffer: true > displays error state when plan file is empty 14ms
× ExitPlanModeDialog > useAlternateBuffer: true > handles long plan content appropriately 45ms
→ Snapshot `ExitPlanModeDialog > useAlternateBuffer: true > handles long plan content appropriately 1` mismatched
✓ ExitPlanModeDialog > useAlternateBuffer: true > allows number key quick selection 47ms
✓ ExitPlanModeDialog > useAlternateBuffer: true > clears feedback text when Ctrl+C is pressed while editing 257ms
✓ ExitPlanModeDialog > useAlternateBuffer: true > bubbles up Ctrl+C when feedback is empty while editing 133ms
✓ ExitPlanModeDialog > useAlternateBuffer: true > does not submit empty feedback when Enter is pressed 71ms
✓ ExitPlanModeDialog > useAlternateBuffer: true > allows arrow navigation while typing feedback to change selection 131ms
✓ ExitPlanModeDialog > useAlternateBuffer: true > automatically submits feedback when Ctrl+G is used to edit the plan 39ms
× ExitPlanModeDialog > useAlternateBuffer: false > renders correctly with plan content 38ms
→ Snapshot `ExitPlanModeDialog > useAlternateBuffer: false > renders correctly with plan content 1` mismatched
✓ ExitPlanModeDialog > useAlternateBuffer: false > calls onApprove with AUTO_EDIT when first option is selected 38ms
✓ ExitPlanModeDialog > useAlternateBuffer: false > calls onApprove with DEFAULT when second option is selected 62ms
✓ ExitPlanModeDialog > useAlternateBuffer: false > calls onFeedback when feedback is typed and submitted 181ms
✓ ExitPlanModeDialog > useAlternateBuffer: false > calls onCancel when Esc is pressed 24ms
✓ ExitPlanModeDialog > useAlternateBuffer: false > displays error state when file read fails 14ms
✓ ExitPlanModeDialog > useAlternateBuffer: false > displays error state when plan file is empty 14ms
× ExitPlanModeDialog > useAlternateBuffer: false > handles long plan content appropriately 50ms
→ Snapshot `ExitPlanModeDialog > useAlternateBuffer: false > handles long plan content appropriately 1` mismatched
✓ ExitPlanModeDialog > useAlternateBuffer: false > allows number key quick selection 58ms
✓ ExitPlanModeDialog > useAlternateBuffer: false > clears feedback text when Ctrl+C is pressed while editing 266ms
✓ ExitPlanModeDialog > useAlternateBuffer: false > bubbles up Ctrl+C when feedback is empty while editing 143ms
✓ ExitPlanModeDialog > useAlternateBuffer: false > does not submit empty feedback when Enter is pressed 60ms
✓ ExitPlanModeDialog > useAlternateBuffer: false > allows arrow navigation while typing feedback to change selection 143ms
✓ ExitPlanModeDialog > useAlternateBuffer: false > automatically submits feedback when Ctrl+G is used to edit the plan 63ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h src/ui/utils/TableRenderer.test.tsx (20 tests | 20 failed) 3215ms
× TableRenderer > renders a 3x3 table correctly 246ms
→ Snapshot `TableRenderer > renders a 3x3 table correctly 2` mismatched
× TableRenderer > renders a table with long headers and 4 columns correctly 415ms
→ Snapshot `TableRenderer > renders a table with long headers and 4 columns correctly 2` mismatched
× TableRenderer > wraps long cell content correctly 152ms
→ Snapshot `TableRenderer > wraps long cell content correctly 2` mismatched
× TableRenderer > wraps all long columns correctly 223ms
→ Snapshot `TableRenderer > wraps all long columns correctly 2` mismatched
× TableRenderer > wraps mixed long and short columns correctly 138ms
→ Snapshot `TableRenderer > wraps mixed long and short columns correctly 2` mismatched
× TableRenderer > wraps columns with punctuation correctly 236ms
→ Snapshot `TableRenderer > wraps columns with punctuation correctly 2` mismatched
× TableRenderer > strips bold markers from headers and renders them correctly 123ms
→ Snapshot `TableRenderer > strips bold markers from headers and renders them correctly 2` mismatched
× TableRenderer > handles wrapped bold headers without showing markers 241ms
→ Snapshot `TableRenderer > handles wrapped bold headers without showing markers 2` mismatched
× TableRenderer > renders a complex table with mixed content lengths correctly 135ms
→ Snapshot `TableRenderer > renders a complex table with mixed content lengths correctly 2` mismatched
× TableRenderer > 'handles non-ASCII characters (emojis …' 80ms
→ Snapshot `TableRenderer > 'handles non-ASCII characters (emojis …' 2` mismatched
× TableRenderer > 'renders a table with only emojis and …' 80ms
→ Snapshot `TableRenderer > 'renders a table with only emojis and …' 2` mismatched
× TableRenderer > 'renders a table with only Asian chara…' 66ms
→ Snapshot `TableRenderer > 'renders a table with only Asian chara…' 2` mismatched
× TableRenderer > 'renders a table with mixed emojis, As…' 103ms
→ Snapshot `TableRenderer > 'renders a table with mixed emojis, As…' 2` mismatched
× TableRenderer > 'renders correctly when headers are em…' 58ms
→ Snapshot `TableRenderer > 'renders correctly when headers are em…' 2` mismatched
× TableRenderer > 'renders correctly when there are more…' 77ms
→ Snapshot `TableRenderer > 'renders correctly when there are more…' 2` mismatched
× TableRenderer > 'renders complex markdown in rows and …' 249ms
→ Snapshot `TableRenderer > 'renders complex markdown in rows and …' 2` mismatched
× TableRenderer > 'calculates column widths based on ren…' 85ms
→ Snapshot `TableRenderer > 'calculates column widths based on ren…' 2` mismatched
× TableRenderer > 'handles nested markdown styles recurs…' 181ms
→ Snapshot `TableRenderer > 'handles nested markdown styles recurs…' 2` mismatched
× TableRenderer > 'calculates width correctly for conten…' 173ms
→ Snapshot `TableRenderer > 'calculates width correctly for conten…' 2` mismatched
× TableRenderer > 'does not parse markdown inside code s…' 153ms
→ Snapshot `TableRenderer > 'does not parse markdown inside code s…' 2` mismatched
[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h src/ui/components/AskUserDialog.test.tsx (42 tests | 5 failed) 4693ms
× AskUserDialog > renders question and options 126ms
→ Snapshot `AskUserDialog > renders question and options 1` mismatched
✓ AskUserDialog > Submission: 'Single Select' > submits correct values for Single Select 72ms
✓ AskUserDialog > Submission: 'Multi-select' > submits correct values for Multi-select 201ms
✓ AskUserDialog > Submission: 'All of the above' > submits correct values for All of the above 122ms
✓ AskUserDialog > Submission: 'Text Input' > submits correct values for Text Input 85ms
✓ AskUserDialog > verifies "All of the above" visual state with snapshot 199ms
✓ AskUserDialog > handles custom option in single select with inline typing 161ms
✓ AskUserDialog > supports multi-line input for "Other" option in choice questions 161ms
✓ AskUserDialog > Scroll Arrows (useAlternateBuffer: true) > shows scroll arrows correctly when useAlternateBuffer is true 225ms
✓ AskUserDialog > Scroll Arrows (useAlternateBuffer: false) > shows scroll arrows correctly when useAlternateBuffer is false 236ms
✓ AskUserDialog > navigates to custom option when typing unbound characters (Type-to-Jump) 147ms
× AskUserDialog > shows progress header for multiple questions 50ms
→ Snapshot `AskUserDialog > shows progress header for multiple questions 1` mismatched
× AskUserDialog > hides progress header for single question 38ms
→ Snapshot `AskUserDialog > hides progress header for single question 1` mismatched
× AskUserDialog > shows keyboard hints 33ms
→ Snapshot `AskUserDialog > shows keyboard hints 1` mismatched
✓ AskUserDialog > navigates between questions with arrow keys 110ms
✓ AskUserDialog > preserves answers when navigating back 186ms
× AskUserDialog > shows Review tab in progress header for multiple questions 36ms
→ Snapshot `AskUserDialog > shows Review tab in progress header for multiple questions 1` mismatched
✓ AskUserDialog > allows navigating to Review tab and back 141ms
✓ AskUserDialog > shows warning for unanswered questions on Review tab 80ms
✓ AskUserDialog > submits with unanswered questions when user confirms on Review 67ms
✓ AskUserDialog > Text type questions > renders text input for type: "text" 47ms
✓ AskUserDialog > Text type questions > shows default placeholder when none provided 49ms
✓ AskUserDialog > Text type questions > supports backspace in text mode 124ms
✓ AskUserDialog > Text type questions > shows correct keyboard hints for text type 35ms
✓ AskUserDialog > Text type questions > preserves text answer when navigating between questions 148ms
✓ AskUserDialog > Text type questions > handles mixed text and choice questions 238ms
✓ AskUserDialog > Text type questions > submits empty text as unanswered 33ms
✓ AskUserDialog > Text type questions > clears text on Ctrl+C 134ms
✓ AskUserDialog > Text type questions > allows immediate arrow navigation after switching away from text input 175ms
✓ AskUserDialog > Text type questions > handles rapid sequential answers correctly (stale closure protection) 111ms
✓ AskUserDialog > Markdown rendering > auto-bolds plain single-line questions 56ms
✓ AskUserDialog > Markdown rendering > does not auto-bold questions that already have markdown 56ms
✓ AskUserDialog > Markdown rendering > renders bold markdown in question 56ms
✓ AskUserDialog > Markdown rendering > renders inline code markdown in question 64ms
✓ AskUserDialog > uses availableTerminalHeight from UIStateContext if availableHeight prop is missing 85ms
✓ AskUserDialog > does NOT truncate the question when in alternate buffer mode even with small height 80ms
✓ AskUserDialog > Choice question placeholder > uses placeholder for "Other" option when provided 145ms
✓ AskUserDialog > Choice question placeholder > uses default placeholder when not provided 137ms
✓ AskUserDialog > Choice question placeholder > supports "Other" option for yesno questions 232ms
✓ AskUserDialog > expands paste placeholders in multi-select custom option via Done 86ms
✓ AskUserDialog > shows at least 3 selection options even in small terminal heights 58ms
✓ AskUserDialog > allows the question to exceed 15 lines in a tall terminal 67ms
[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h src/ui/components/ToolConfirmationQueue.test.tsx (11 tests | 3 failed) 1702ms
✓ ToolConfirmationQueue > explicitly renders the tool description (containing filename) for edit confirmations 111ms
✓ ToolConfirmationQueue > renders the confirming tool with progress indicator 55ms
✓ ToolConfirmationQueue > returns null if tool has no confirmation details 27ms
✓ ToolConfirmationQueue > calculates availableContentHeight based on availableTerminalHeight from UI state 41ms
✓ ToolConfirmationQueue > provides more height for ask_user by subtracting less overhead 55ms
✓ ToolConfirmationQueue > does not render expansion hint when constrainHeight is false 38ms
✓ ToolConfirmationQueue > renders AskUser tool confirmation with Success color 36ms
✓ ToolConfirmationQueue > renders ExitPlanMode tool confirmation with Success color 89ms
× ToolConfirmationQueue > height allocation and layout > should render the full queue wrapper with borders and content for large edit diffs 133ms
→ Snapshot `ToolConfirmationQueue > height allocation and layout > should render the full queue wrapper with borders and content for large edit diffs 2` mismatched
× ToolConfirmationQueue > height allocation and layout > should render the full queue wrapper with borders and content for large exec commands 77ms
→ Snapshot `ToolConfirmationQueue > height allocation and layout > should render the full queue wrapper with borders and content for large exec commands 2` mismatched
× ToolConfirmationQueue > height allocation and layout > should handle security warning height correctly 1039ms
→ Snapshot `ToolConfirmationQueue > height allocation and layout > should handle security warning height correctly 2` mismatched
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h src/ui/components/messages/DenseToolMessage.test.tsx (25 tests | 2 failed) 1720ms
✓ DenseToolMessage > explicitly renders the filename in the header for FileDiff results 130ms
✓ DenseToolMessage > renders correctly for a successful string result 61ms
✓ DenseToolMessage > truncates long string results 57ms
✓ DenseToolMessage > flattens newlines in string results 59ms
✓ DenseToolMessage > renders correctly for file diff results with stats 45ms
✓ DenseToolMessage > renders correctly for Edit tool using confirmationDetails 172ms
✓ DenseToolMessage > renders correctly for Rejected Edit tool 64ms
✓ DenseToolMessage > renders correctly for Rejected Edit tool with confirmationDetails and diffStat 53ms
✓ DenseToolMessage > renders correctly for WriteFile tool 54ms
✓ DenseToolMessage > renders correctly for Rejected WriteFile tool 51ms
✓ DenseToolMessage > renders correctly for Errored Edit tool 62ms
✓ DenseToolMessage > renders correctly for grep results 59ms
✓ DenseToolMessage > renders correctly for ls results 53ms
✓ DenseToolMessage > renders correctly for ReadManyFiles results 56ms
✓ DenseToolMessage > renders correctly for todo updates 53ms
✓ DenseToolMessage > renders generic output message for unknown object results 67ms
✓ DenseToolMessage > renders correctly for error status with string message 60ms
✓ DenseToolMessage > renders generic failure message for error status without string message 58ms
✓ DenseToolMessage > does not render result arrow if resultDisplay is missing 53ms
✓ DenseToolMessage > truncates long description but preserves tool name (< 25 chars) 63ms
✓ DenseToolMessage > Toggleable Diff View (Alternate Buffer) > hides diff content by default when in alternate buffer mode 60ms
✓ DenseToolMessage > Toggleable Diff View (Alternate Buffer) > shows diff content by default when NOT in alternate buffer mode 59ms
✓ DenseToolMessage > Toggleable Diff View (Alternate Buffer) > shows diff content when expanded via ToolActionsContext 70ms
× DenseToolMessage > Visual Regression > matches SVG snapshot for an Accepted file edit with diff stats 132ms
→ Snapshot `DenseToolMessage > Visual Regression > matches SVG snapshot for an Accepted file edit with diff stats 2` mismatched
× DenseToolMessage > Visual Regression > matches SVG snapshot for a Rejected tool call 66ms
→ Snapshot `DenseToolMessage > Visual Regression > matches SVG snapshot for a Rejected tool call 2` mismatched
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h src/ui/components/FooterConfigDialog.test.tsx (8 tests | 3 failed) 9577ms
× <FooterConfigDialog /> > renders correctly with default settings 2870ms
→ Snapshot `<FooterConfigDialog /> > renders correctly with default settings 3` mismatched
✓ <FooterConfigDialog /> > toggles an item when enter is pressed 230ms
✓ <FooterConfigDialog /> > reorders items with arrow keys 112ms
✓ <FooterConfigDialog /> > closes on Esc 98ms
× <FooterConfigDialog /> > highlights the active item in the preview 3050ms
→ Snapshot `<FooterConfigDialog /> > highlights the active item in the preview 2` mismatched
✓ <FooterConfigDialog /> > shows an empty preview when all items are deselected 235ms
✓ <FooterConfigDialog /> > moves item correctly after trying to move up at the top 131ms
× <FooterConfigDialog /> > updates the preview when Show footer labels is toggled off 2849ms
→ Snapshot `<FooterConfigDialog /> > updates the preview when Show footer labels is toggled off 2` mismatched
[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h src/ui/components/ModelDialog.test.tsx (15 tests | 1 failed) 1708ms
✓ <ModelDialog /> > renders the initial "main" view correctly 117ms
✓ <ModelDialog /> > renders the "manual" view initially for users with no pro access and filters Pro models with correct order 51ms
✓ <ModelDialog /> > closes dialog on escape in "manual" view for users with no pro access 116ms
✓ <ModelDialog /> > switches to "manual" view when "Manual" is selected and uses getDisplayString for models 151ms
✓ <ModelDialog /> > sets model and closes when a model is selected in "main" view 68ms
✓ <ModelDialog /> > sets model and closes when a model is selected in "manual" view 153ms
✓ <ModelDialog /> > toggles persist mode with Tab key 151ms
✓ <ModelDialog /> > closes dialog on escape in "main" view 111ms
✓ <ModelDialog /> > goes back to "main" view on escape in "manual" view 232ms
✓ <ModelDialog /> > shows the preferred manual model in the main view option using getDisplayString 40ms
✓ <ModelDialog /> > Preview Models > shows Auto (Preview) in main view when access is granted 38ms
✓ <ModelDialog /> > Preview Models > shows Gemini 3 models in manual view when Gemini 3.1 is NOT launched 114ms
✓ <ModelDialog /> > Preview Models > shows Gemini 3.1 models in manual view when Gemini 3.1 IS launched 103ms
✓ <ModelDialog /> > Preview Models > uses custom tools model when Gemini 3.1 IS launched and auth is Gemini API Key 151ms
× <ModelDialog /> > Preview Models > shows Flash Lite Preview model regardless of tier when flag is enabled 112ms
→ expected '╭────────────────────────────────────…' to contain 'gemini-3.1-flash-lite-preview'
[?25h src/ui/components/shared/BaseSettingsDialog.test.tsx (33 tests | 3 failed) 10098ms
✓ BaseSettingsDialog > rendering > should render the dialog with title 197ms
✓ BaseSettingsDialog > rendering > should render all items 96ms
✓ BaseSettingsDialog > rendering > should render help text with Ctrl+L for reset 76ms
✓ BaseSettingsDialog > rendering > should render scope selector when showScopeSelector is true 96ms
✓ BaseSettingsDialog > rendering > should not render scope selector when showScopeSelector is false 73ms
✓ BaseSettingsDialog > rendering > should render footer content when provided 71ms
✓ BaseSettingsDialog > keyboard navigation > should close dialog on Escape 148ms
✓ BaseSettingsDialog > keyboard navigation > should navigate down with arrow key 102ms
✓ BaseSettingsDialog > keyboard navigation > should navigate up with arrow key 138ms
✓ BaseSettingsDialog > keyboard navigation > should wrap around when navigating past last item 138ms
✓ BaseSettingsDialog > keyboard navigation > should wrap around when navigating before first item 114ms
✓ BaseSettingsDialog > keyboard navigation > should switch focus with Tab when scope selector is shown 121ms
✓ BaseSettingsDialog > scrolling and resizing list (search filtering) > should preserve focus on the active item if it remains in the filtered list 233ms
✓ BaseSettingsDialog > scrolling and resizing list (search filtering) > should reset focus to the top if the active item is filtered out 232ms
✓ BaseSettingsDialog > item interactions > should call onItemToggle for boolean items on Enter 105ms
✓ BaseSettingsDialog > item interactions > should call onItemToggle for enum items on Enter 95ms
✓ BaseSettingsDialog > item interactions > should enter edit mode for string items on Enter 94ms
✓ BaseSettingsDialog > item interactions > should enter edit mode for number items on Enter 96ms
✓ BaseSettingsDialog > item interactions > should call onItemClear on Ctrl+L 106ms
✓ BaseSettingsDialog > edit mode > should prioritize editValue over rawValue stringification 70ms
× BaseSettingsDialog > edit mode > should commit edit on Enter 2151ms
→ expected "spy" to be called with arguments: [ 'string-setting', …(2) ]
Number of calls: 0

✓ BaseSettingsDialog > edit mode > should commit edit on Escape 176ms
✓ BaseSettingsDialog > edit mode > should commit edit and navigate on Down arrow 117ms
✓ BaseSettingsDialog > edit mode > should commit edit and navigate on Up arrow 153ms
✓ BaseSettingsDialog > edit mode > should allow number input for number fields 222ms
× BaseSettingsDialog > edit mode > should support quick number entry for number fields 2141ms
→ expected "spy" to be called with arguments: [ 'number-setting', '5', …(1) ]
Number of calls: 0

× BaseSettingsDialog > edit mode > should allow j and k characters to be typed in string edit fields without triggering navigation 2210ms
→ expected "spy" to be called with arguments: [ 'string-setting', …(2) ]
Number of calls: 0

✓ BaseSettingsDialog > custom key handling > should call onKeyPress and respect its return value 101ms
✓ BaseSettingsDialog > focus management > should keep focus on settings when scope selector is hidden 114ms
✓ BaseSettingsDialog > responsiveness > should show the scope selector when availableHeight is sufficient (25) 76ms
✓ BaseSettingsDialog > responsiveness > should hide the scope selector when availableHeight is small (24) to show more items 72ms
✓ BaseSettingsDialog > responsiveness > should reduce the number of visible items based on height 94ms
✓ BaseSettingsDialog > responsiveness > should show scroll indicators when list is truncated by height 70ms
[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h src/ui/components/Footer.test.tsx (39 tests | 1 failed) 1587ms
✓ <Footer /> > renders the component 89ms
✓ <Footer /> > path display > should display a shortened path on a narrow terminal 35ms
✓ <Footer /> > path display > should use wide layout at 80 columns 33ms
✓ <Footer /> > path display > should not truncate high-priority items on narrow terminals (regression) 51ms
✓ <Footer /> > displays the branch name when provided 38ms
✓ <Footer /> > does not display the branch name when not provided 34ms
✓ <Footer /> > displays the model name and context percentage 32ms
✓ <Footer /> > displays the usage indicator when usage is low 36ms
✓ <Footer /> > hides the usage indicator when usage is not near limit 39ms
✓ <Footer /> > displays "Limit reached" message when remaining is 0 31ms
✓ <Footer /> > displays the model name and abbreviated context used label on narrow terminals 34ms
✓ <Footer /> > sandbox and trust info > should display untrusted when isTrustedFolder is false 39ms
✓ <Footer /> > sandbox and trust info > should display "current process" for custom sandbox when SANDBOX env is set 40ms
✓ <Footer /> > sandbox and trust info > should display "current process" for macOS Seatbelt when SANDBOX is sandbox-exec 34ms
✓ <Footer /> > sandbox and trust info > should display "no sandbox" when SANDBOX is not set and folder is trusted 31ms
✓ <Footer /> > sandbox and trust info > should display "all tools" when tool sandboxing is enabled and agent is local 33ms
✓ <Footer /> > sandbox and trust info > should prioritize untrusted message over sandbox info 31ms
✓ <Footer /> > footer configuration filtering (golden snapshots) > renders complete footer with all sections visible (baseline) 35ms
✓ <Footer /> > footer configuration filtering (golden snapshots) > renders footer with all optional sections hidden (minimal footer) 81ms
✓ <Footer /> > footer configuration filtering (golden snapshots) > renders footer with only model info hidden (partial filtering) 31ms
✓ <Footer /> > footer configuration filtering (golden snapshots) > renders footer with CWD and model info hidden to test alignment (only sandbox visible) 32ms
✓ <Footer /> > footer configuration filtering (golden snapshots) > hides the context percentage when hideContextPercentage is true 38ms
✓ <Footer /> > footer configuration filtering (golden snapshots) > shows the context percentage when hideContextPercentage is false 33ms
✓ <Footer /> > footer configuration filtering (golden snapshots) > renders complete footer in narrow terminal (baseline narrow) 31ms
✓ <Footer /> > Footer Token Formatting > formats thousands with k 55ms
✓ <Footer /> > Footer Token Formatting > formats millions with m 53ms
✓ <Footer /> > Footer Token Formatting > formats billions with b 52ms
✓ <Footer /> > Footer Token Formatting > formats small numbers without suffix 53ms
✓ <Footer /> > error summary visibility > hides error summary in low verbosity mode out of dev mode 32ms
✓ <Footer /> > error summary visibility > shows error summary in low verbosity mode in dev mode 41ms
✓ <Footer /> > error summary visibility > shows error summary in full verbosity mode 31ms
× <Footer /> > Footer Custom Items > renders auth item with email 41ms
→ expected ' /auth\n google\n' to contain 'test@example.com'
✓ <Footer /> > Footer Custom Items > does NOT render auth item when showUserIdentity is false 30ms
✓ <Footer /> > Footer Custom Items > renders items in the specified order 37ms
✓ <Footer /> > Footer Custom Items > renders multiple items with proper alignment 34ms
✓ <Footer /> > Footer Custom Items > handles empty items array 81ms
✓ <Footer /> > Footer Custom Items > does not render items that are conditionally hidden 32ms
✓ <Footer /> > fallback mode display > should display Flash model when in fallback mode, not the configured Pro model 36ms
✓ <Footer /> > fallback mode display > should display Pro model when NOT in fallback mode 34ms
[?2004h[?2004h[?2004h[?25h src/ui/components/messages/ToolGroupMessage.test.tsx (38 tests | 2 failed) 1477ms
✓ <ToolGroupMessage /> > Golden Snapshots > renders single successful tool call 95ms
✓ <ToolGroupMessage /> > Golden Snapshots > hides confirming tools (standard behavior) 30ms
✓ <ToolGroupMessage /> > Golden Snapshots > renders canceled tool calls 41ms
✓ <ToolGroupMessage /> > Golden Snapshots > renders multiple tool calls with different statuses (only visible ones) 57ms
✓ <ToolGroupMessage /> > Golden Snapshots > hides errored tool calls in low error verbosity mode 42ms
✓ <ToolGroupMessage /> > Golden Snapshots > keeps client-initiated errored tool calls visible in low error verbosity mode 35ms
✓ <ToolGroupMessage /> > Golden Snapshots > renders update_topic tool call using TopicMessage 35ms
✓ <ToolGroupMessage /> > Golden Snapshots > renders update_topic tool call with summary instead of strategic_intent 34ms
✓ <ToolGroupMessage /> > Golden Snapshots > renders mixed tool calls including update_topic 40ms
✓ <ToolGroupMessage /> > Golden Snapshots > renders with limited terminal height 41ms
✓ <ToolGroupMessage /> > Golden Snapshots > renders with narrow terminal width 38ms
✓ <ToolGroupMessage /> > Golden Snapshots > renders empty tool calls array 28ms
× <ToolGroupMessage /> > Golden Snapshots > renders header when scrolled 84ms
→ Snapshot `<ToolGroupMessage /> > Golden Snapshots > renders header when scrolled 1` mismatched
✓ <ToolGroupMessage /> > Golden Snapshots > renders tool call with outputFile 38ms
× <ToolGroupMessage /> > Golden Snapshots > renders two tool groups where only the last line of the previous group is visible 43ms
→ Snapshot `<ToolGroupMessage /> > Golden Snapshots > renders two tool groups where only the last line of the previous group is visible 1` mismatched
✓ <ToolGroupMessage /> > Border Color Logic > uses yellow border for shell commands even when successful 30ms
✓ <ToolGroupMessage /> > Border Color Logic > uses gray border when all tools are successful and no shell commands 47ms
✓ <ToolGroupMessage /> > Height Calculation > calculates available height correctly with multiple tools with results 35ms
✓ <ToolGroupMessage /> > Ask User Filtering > filtering logic for status='scheduled' and hasResult='test result' 27ms
✓ <ToolGroupMessage /> > Ask User Filtering > filtering logic for status='executing' and hasResult='test result' 29ms
✓ <ToolGroupMessage /> > Ask User Filtering > filtering logic for status='awaiting_approval' and hasResult='test result' 29ms
✓ <ToolGroupMessage /> > Ask User Filtering > filtering logic for status='success' and hasResult='test result' 37ms
✓ <ToolGroupMessage /> > Ask User Filtering > filtering logic for status='error' and hasResult='' 30ms
✓ <ToolGroupMessage /> > Ask User Filtering > filtering logic for status='error' and hasResult='error message' 32ms
✓ <ToolGroupMessage /> > Ask User Filtering > shows other tools when ask_user is filtered out 33ms
✓ <ToolGroupMessage /> > Ask User Filtering > renders nothing when only tool is in-progress AskUser with borderBottom=false 31ms
✓ <ToolGroupMessage /> > Ask User Filtering > does not render a bottom-border fragment when all tools are filtered out 34ms
✓ <ToolGroupMessage /> > Ask User Filtering > still renders explicit closing slices for split static/pending groups 29ms
✓ <ToolGroupMessage /> > Ask User Filtering > does not render a border fragment when plan-mode tools are filtered out 28ms
✓ <ToolGroupMessage /> > Ask User Filtering > does not render a border fragment when only confirming tools are present 27ms
✓ <ToolGroupMessage /> > Ask User Filtering > does not leave a border stub when transitioning from visible to fully filtered tools 102ms
✓ <ToolGroupMessage /> > Ask User Filtering > keeps visible tools rendered with many filtered tools (stress case) 30ms
✓ <ToolGroupMessage /> > Ask User Filtering > renders explicit closing slice even at very narrow terminal width 30ms
✓ <ToolGroupMessage /> > Plan Mode Filtering > filtering logic for 'WriteFile' in 'plan' mode 31ms
✓ <ToolGroupMessage /> > Plan Mode Filtering > filtering logic for 'Edit' in 'plan' mode 28ms
✓ <ToolGroupMessage /> > Plan Mode Filtering > filtering logic for 'WriteFile' in 'default' mode 36ms
✓ <ToolGroupMessage /> > Plan Mode Filtering > filtering logic for 'ReadFile' in 'plan' mode 33ms
✓ <ToolGroupMessage /> > Plan Mode Filtering > filtering logic for 'FindFiles' in 'plan' mode 28ms
[?25h src/ui/components/InputPrompt.test.tsx (196 tests | 24 failed) 12900ms
✓ InputPrompt > should call shellHistory.getPreviousCommand on up arrow in shell mode 130ms
✓ InputPrompt > should call shellHistory.getNextCommand on down arrow in shell mode 44ms
✓ InputPrompt > should set the buffer text when a shell history command is retrieved 39ms
✓ InputPrompt > should call shellHistory.addCommandToHistory on submit in shell mode 43ms
✓ InputPrompt > should submit command in shell mode when Enter pressed with suggestions visible but no arrow navigation 60ms
✓ InputPrompt > should accept suggestion in shell mode when Enter pressed after arrow navigation 42ms
✓ InputPrompt > should NOT call shell history methods when not in shell mode 46ms
✓ InputPrompt > arrow key navigation > should move to start of line on Up arrow if on first line but not at start 40ms
✓ InputPrompt > arrow key navigation > should navigate history on Up arrow if on first line and at start 34ms
✓ InputPrompt > arrow key navigation > should move to end of line on Down arrow if on last line but not at end 44ms
✓ InputPrompt > arrow key navigation > should navigate history on Down arrow if on last line and at end 34ms
✓ InputPrompt > should call completion.navigateUp for both up arrow and Ctrl+P when suggestions are showing 37ms
✓ InputPrompt > should call completion.navigateDown for both down arrow and Ctrl+N when suggestions are showing 48ms
✓ InputPrompt > should NOT call completion navigation when suggestions are not showing 56ms
✓ InputPrompt > should clear the buffer and reset completion on Ctrl+C 35ms
✓ InputPrompt > clipboard image paste > should handle Ctrl+V when clipboard has an image 33ms
✓ InputPrompt > clipboard image paste > should not insert anything when clipboard has no image 45ms
✓ InputPrompt > clipboard image paste > should handle image save failure gracefully 36ms
✓ InputPrompt > clipboard image paste > should insert image path at cursor position with proper spacing 46ms
✓ InputPrompt > clipboard image paste > should handle errors during clipboard operations 36ms
✓ InputPrompt > clipboard text paste > should insert text from clipboard on Ctrl+V 51ms
✓ InputPrompt > clipboard text paste > should use OSC 52 when useOSC52Paste setting is enabled 33ms
✓ InputPrompt > 'should complete a partial parent comm…' 38ms
✓ InputPrompt > 'should append a sub-command when pare…' 43ms
✓ InputPrompt > 'should handle the backspace edge case…' 45ms
✓ InputPrompt > 'should complete a partial argument fo…' 39ms
✓ InputPrompt > should autocomplete on Enter when suggestions are active, without submitting 43ms
✓ InputPrompt > should complete a command based on its altNames 40ms
✓ InputPrompt > queues a message when Tab is pressed during generation 40ms
✓ InputPrompt > shows an error when attempting to queue a slash command 44ms
✓ InputPrompt > shows an error when attempting to queue a shell command 42ms
✓ InputPrompt > should not submit on Enter when the buffer is empty or only contains whitespace 41ms
✓ InputPrompt > should submit directly on Enter when isPerfectMatch is true 37ms
✓ InputPrompt > should execute perfect match on Enter even if suggestions are showing, if at first suggestion 40ms
✓ InputPrompt > should autocomplete and NOT execute on Enter if a DIFFERENT suggestion is selected even if perfect match 37ms
✓ InputPrompt > should submit directly on Enter when a complete leaf command is typed 42ms
✓ InputPrompt > should submit on Enter when an @-path is a perfect match 48ms
✓ InputPrompt > should NOT submit on Shift+Enter even if an @-path is a perfect match 39ms
✓ InputPrompt > should auto-execute commands with autoExecute: true on Enter 79ms
✓ InputPrompt > should autocomplete commands with autoExecute: false on Enter 66ms
✓ InputPrompt > should autocomplete on Tab, even for executable commands 65ms
✓ InputPrompt > should NOT autocomplete on Shift+Tab 149ms
✓ InputPrompt > should autocomplete custom commands from .toml files on Enter 41ms
✓ InputPrompt > should auto-execute argument completion when command has autoExecute: true 42ms
✓ InputPrompt > should autocomplete argument completion when command has autoExecute: false 54ms
✓ InputPrompt > should autocomplete command name even with autoExecute: true if command has completion function 41ms
✓ InputPrompt > should autocomplete an @-path on Enter without submitting 55ms
✓ InputPrompt > should add a newline on enter when the line ends with a backslash 39ms
✓ InputPrompt > should clear the buffer on Ctrl+C if it has text 56ms
✓ InputPrompt > should render correctly in plan mode 38ms
✓ InputPrompt > should NOT clear the buffer on Ctrl+C if it is empty 43ms
✓ InputPrompt > should call setBannerVisible(false) when clear screen key is pressed 38ms
✓ InputPrompt > Background Color Styles > should render with background color by default 46ms
✓ InputPrompt > Background Color Styles > should render with safe grey background but NO side borders in 8-bit mode when background is 'black' 74ms
✓ InputPrompt > Background Color Styles > should render with safe grey background but NO side borders in 8-bit mode when background is '#000000' 47ms
✓ InputPrompt > Background Color Styles > should render with safe grey background but NO side borders in 8-bit mode when background is '#000' 45ms
✓ InputPrompt > Background Color Styles > should render with safe grey background but NO side borders in 8-bit mode when background is 'white' 39ms
✓ InputPrompt > Background Color Styles > should render with safe grey background but NO side borders in 8-bit mode when background is '#ffffff' 44ms
✓ InputPrompt > Background Color Styles > should render with safe grey background but NO side borders in 8-bit mode when background is '#fff' 40ms
✓ InputPrompt > Background Color Styles > should NOT render with background color but SHOULD render horizontal lines when color depth is < 24 and background is NOT black 45ms
✓ InputPrompt > Background Color Styles > should handle 4-bit color mode (16 colors) as low color depth 45ms
✓ InputPrompt > Background Color Styles > should render horizontal lines (but NO background) in 8-bit mode when background is blue 44ms
✓ InputPrompt > Background Color Styles > should render with plain borders when useBackgroundColor is false 49ms
✓ InputPrompt > cursor-based completion trigger > 'should trigger completion when cursor…' 36ms
✓ InputPrompt > cursor-based completion trigger > 'should trigger completion when cursor…' 47ms
✓ InputPrompt > cursor-based completion trigger > 'should NOT trigger completion when cu…' 44ms
✓ InputPrompt > cursor-based completion trigger > 'should NOT trigger completion when cu…' 44ms
✓ InputPrompt > cursor-based completion trigger > 'should NOT trigger completion when cu…' 40ms
✓ InputPrompt > cursor-based completion trigger > 'should handle multiline text correctly' 37ms
✓ InputPrompt > cursor-based completion trigger > 'should handle Unicode characters (emo…' 43ms
✓ InputPrompt > cursor-based completion trigger > 'should handle Unicode characters with…' 42ms
✓ InputPrompt > cursor-based completion trigger > 'should handle escaped spaces in paths…' 58ms
✓ InputPrompt > cursor-based completion trigger > 'should NOT trigger completion after u…' 44ms
✓ InputPrompt > cursor-based completion trigger > 'should handle multiple escaped spaces…' 39ms
✓ InputPrompt > cursor-based completion trigger > 'should handle escaped spaces in slash…' 54ms
✓ InputPrompt > cursor-based completion trigger > 'should handle Unicode characters with…' 41ms
✓ InputPrompt > vim mode > 'should not call buffer.handleInput wh…' 40ms
✓ InputPrompt > vim mode > 'should call buffer.handleInput when v…' 42ms
✓ InputPrompt > vim mode > 'should call handleInput when vim mode…' 46ms
✓ InputPrompt > unfocused paste > should handle bracketed paste when not focused 38ms
✓ InputPrompt > unfocused paste > should ignore regular keypresses when not focused 45ms
× InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'mid-word' 109ms
→ Snapshot `InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'mid-word' 2` mismatched
× InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'at the beginning of the line' 73ms
→ Snapshot `InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'at the beginning of the line' 2` mismatched
× InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'at the end of the line' 70ms
→ Snapshot `InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'at the end of the line' 2` mismatched
× InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'on a highlighted token' 95ms
→ Snapshot `InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'on a highlighted token' 2` mismatched
× InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'for multi-byte unicode characters' 79ms
→ Snapshot `InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'for multi-byte unicode characters' 2` mismatched
× InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'after multi-byte unicode characters' 91ms
→ Snapshot `InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'after multi-byte unicode characters' 2` mismatched
× InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'at the end of a line with unicode cha…' 72ms
→ Snapshot `InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'at the end of a line with unicode cha…' 2` mismatched
× InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'at the end of a short line with unico…' 81ms
→ Snapshot `InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'at the end of a short line with unico…' 2` mismatched
× InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'on an empty line' 71ms
→ Snapshot `InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'on an empty line' 2` mismatched
× InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'on a space between words' 75ms
→ Snapshot `InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'on a space between words' 2` mismatched
× InputPrompt > Highlighting and Cursor Display > multi-line scenarios > should display cursor correctly 'in the middle of a line' in a multiline block 94ms
→ Snapshot `InputPrompt > Highlighting and Cursor Display > multi-line scenarios > should display cursor correctly 'in the middle of a line' in a multiline block 2` mismatched
× InputPrompt > Highlighting and Cursor Display > multi-line scenarios > should display cursor correctly 'at the beginning of a line' in a multiline block 88ms
→ Snapshot `InputPrompt > Highlighting and Cursor Display > multi-line scenarios > should display cursor correctly 'at the beginning of a line' in a multiline block 2` mismatched
× InputPrompt > Highlighting and Cursor Display > multi-line scenarios > should display cursor correctly 'at the end of a line' in a multiline block 153ms
→ Snapshot `InputPrompt > Highlighting and Cursor Display > multi-line scenarios > should display cursor correctly 'at the end of a line' in a multiline block 2` mismatched
× InputPrompt > Highlighting and Cursor Display > multi-line scenarios > should display cursor on a blank line in a multiline block 84ms
→ Snapshot `InputPrompt > Highlighting and Cursor Display > multi-line scenarios > should display cursor on a blank line in a multiline block 2` mismatched
✓ InputPrompt > scrolling large inputs > should correctly render scrolling down and up for large inputs 465ms
× InputPrompt > multiline rendering > should correctly render multiline input including blank lines 82ms
→ Snapshot `InputPrompt > multiline rendering > should correctly render multiline input including blank lines 2` mismatched
✓ InputPrompt > multiline paste > should handle multiline paste 'with \n newlines' 54ms
✓ InputPrompt > multiline paste > should handle multiline paste 'with extra slashes before \n newlines' 53ms
✓ InputPrompt > multiline paste > should handle multiline paste 'with \r\n newlines' 49ms
✓ InputPrompt > large paste placeholder > should handle large clipboard paste (lines > 5) by calling buffer.insert 54ms
✓ InputPrompt > large paste placeholder > should handle large clipboard paste (chars > 500) by calling buffer.insert 47ms
✓ InputPrompt > large paste placeholder > should handle normal clipboard paste by calling buffer.insert 59ms
✓ InputPrompt > large paste placeholder > should replace placeholder with actual content on submit 52ms
✓ InputPrompt > paste auto-submission protection > should prevent auto-submission immediately after an unsafe paste 65ms
✓ InputPrompt > paste auto-submission protection > should prevent perfect match auto-submission immediately after an unsafe paste 41ms
✓ InputPrompt > paste auto-submission protection > should allow submission after unsafe paste protection timeout 61ms
✓ InputPrompt > paste auto-submission protection > should allow immediate submission for a trusted paste ('kitty') 42ms
✓ InputPrompt > paste auto-submission protection > should not interfere with normal Enter key submission when no recent paste 43ms
✓ InputPrompt > enhanced input UX - keyboard shortcuts > should clear buffer on Ctrl-C 48ms
✓ InputPrompt > enhanced input UX - keyboard shortcuts > should submit /rewind on double ESC when buffer is empty 37ms
✓ InputPrompt > enhanced input UX - keyboard shortcuts > should clear the buffer on esc esc if it has text 27ms
✓ InputPrompt > enhanced input UX - keyboard shortcuts > should reset escape state on any non-ESC key 42ms
✓ InputPrompt > enhanced input UX - keyboard shortcuts > should handle ESC in shell mode by disabling shell mode 40ms
✓ InputPrompt > enhanced input UX - keyboard shortcuts > should not propagate ESC to global cancellation handler when shell mode is active (responding) 34ms
✓ InputPrompt > enhanced input UX - keyboard shortcuts > should allow ESC to reach global cancellation handler when responding and no overlay is active 42ms
✓ InputPrompt > enhanced input UX - keyboard shortcuts > should handle ESC when completion suggestions are showing 64ms
✓ InputPrompt > enhanced input UX - keyboard shortcuts > should not call onEscapePromptChange when not provided 35ms
✓ InputPrompt > enhanced input UX - keyboard shortcuts > should not interfere with existing keyboard shortcuts 42ms
✓ InputPrompt > reverse search > invokes reverse search on Ctrl+R 113ms
✓ InputPrompt > reverse search > resets reverse search state on Escape ('standard') 224ms
✓ InputPrompt > reverse search > resets reverse search state on Escape ('kitty') 160ms
✓ InputPrompt > reverse search > completes the highlighted entry on Tab and exits reverse-search 114ms
✓ InputPrompt > reverse search > should NOT autocomplete on Shift+Tab in reverse search 153ms
✓ InputPrompt > reverse search > submits the highlighted entry on Enter and exits reverse-search 169ms
✓ InputPrompt > reverse search > should restore text and cursor position after reverse search" 175ms
✓ InputPrompt > Ctrl+E keyboard shortcut > should move cursor to end of current line in multiline input 53ms
✓ InputPrompt > Ctrl+E keyboard shortcut > should move cursor to end of current line for single line input 64ms
✓ InputPrompt > command search (Ctrl+R when not in shell) > enters command search on Ctrl+R and shows suggestions 71ms
× InputPrompt > command search (Ctrl+R when not in shell) > expands and collapses long suggestion via Right/Left arrows 179ms
→ Snapshot `InputPrompt > command search (Ctrl+R when not in shell) > expands and collapses long suggestion via Right/Left arrows > command-search-render-expanded-match 1` mismatched
× InputPrompt > command search (Ctrl+R when not in shell) > renders match window and expanded view (snapshots) 114ms
→ Snapshot `InputPrompt > command search (Ctrl+R when not in shell) > renders match window and expanded view (snapshots) > command-search-render-collapsed-match 1` mismatched
✓ InputPrompt > command search (Ctrl+R when not in shell) > does not show expand/collapse indicator for short suggestions 104ms
✓ InputPrompt > command search (Ctrl+R when not in shell) > ensures Ctrl+R search results are prioritized newest-to-oldest by reversing userMessages 52ms
✓ InputPrompt > Tab clean UI toggle > 'should toggle clean UI details on dou…' 56ms
✓ InputPrompt > Tab clean UI toggle > 'should accept ghost text and NOT togg…' 54ms
✓ InputPrompt > Tab clean UI toggle > 'should NOT toggle clean UI details on…' 55ms
✓ InputPrompt > Tab clean UI toggle > should NOT accept ghost text on Shift+Tab 155ms
✓ InputPrompt > Tab clean UI toggle > should not reveal clean UI details on Shift+Tab when hidden 52ms
✓ InputPrompt > Tab clean UI toggle > should toggle clean UI details on double-Tab by default 52ms
✓ InputPrompt > mouse interaction > should move cursor on mouse click - 'first line, first char' 65ms
✓ InputPrompt > mouse interaction > should move cursor on mouse click - 'first line, middle char' 63ms
✓ InputPrompt > mouse interaction > should move cursor on mouse click - 'second line, first char' 56ms
✓ InputPrompt > mouse interaction > should move cursor on mouse click - 'second line, end char' 65ms
✓ InputPrompt > mouse interaction > should unfocus embedded shell on click 58ms
✓ InputPrompt > mouse interaction > should toggle paste expansion on double-click 231ms
✓ InputPrompt > mouse interaction > should collapse expanded paste on double-click after the end of the line 125ms
✓ InputPrompt > mouse interaction > should move cursor on mouse click with plain borders 56ms
✓ InputPrompt > queued message editing > should load all queued messages when up arrow is pressed with empty input 75ms
✓ InputPrompt > queued message editing > should not load queued messages when input is not empty 145ms
✓ InputPrompt > queued message editing > should handle undefined messages from popAllMessages 66ms
✓ InputPrompt > queued message editing > should work with NAVIGATION_UP key as well 84ms
✓ InputPrompt > queued message editing > should handle single queued message 69ms
✓ InputPrompt > queued message editing > should only check for queued messages when buffer text is trimmed empty 67ms
✓ InputPrompt > queued message editing > should not call popAllMessages if it is not provided 60ms
✓ InputPrompt > queued message editing > should navigate input history on fresh start when no queued messages exist 61ms
× InputPrompt > snapshots > should render correctly in shell mode 68ms
→ Snapshot `InputPrompt > snapshots > should render correctly in shell mode 1` mismatched
× InputPrompt > snapshots > should render correctly when accepting edits 81ms
→ Snapshot `InputPrompt > snapshots > should render correctly when accepting edits 1` mismatched
× InputPrompt > snapshots > should render correctly in yolo mode 72ms
→ Snapshot `InputPrompt > snapshots > should render correctly in yolo mode 1` mismatched
× InputPrompt > snapshots > should not show inverted cursor when shell is focused 97ms
→ Snapshot `InputPrompt > snapshots > should not show inverted cursor when shell is focused 1` mismatched
✓ InputPrompt > should still allow input when shell is not focused 72ms
✓ InputPrompt > command queuing while streaming > 'should prevent slash commands' 58ms
✓ InputPrompt > command queuing while streaming > 'should allow concurrent-safe slash co…' 66ms
✓ InputPrompt > command queuing while streaming > 'should prevent shell commands' 68ms
✓ InputPrompt > command queuing while streaming > 'should allow regular messages' 64ms
✓ InputPrompt > IME Cursor Support > should report correct cursor position for simple ASCII text 71ms
✓ InputPrompt > IME Cursor Support > should report correct cursor position for text with double-width characters 96ms
✓ InputPrompt > IME Cursor Support > should report correct cursor position for a line full of "😀" emojis 61ms
✓ InputPrompt > IME Cursor Support > should report correct cursor position for mixed emojis and multi-line input 62ms
✓ InputPrompt > IME Cursor Support > should report correct cursor position and focus for multi-line input 78ms
✓ InputPrompt > IME Cursor Support > should report cursor position 0 when input is empty and placeholder is shown 67ms
× InputPrompt > image path transformation snapshots > should snapshot collapsed image path 66ms
→ Snapshot `InputPrompt > image path transformation snapshots > should snapshot collapsed image path 1` mismatched
× InputPrompt > image path transformation snapshots > should snapshot expanded image path when cursor is on it 81ms
→ Snapshot `InputPrompt > image path transformation snapshots > should snapshot expanded image path when cursor is on it 1` mismatched
✓ InputPrompt > Ctrl+O paste expansion > Ctrl+O triggers paste expansion via keybinding 74ms
✓ InputPrompt > Ctrl+O paste expansion > 'hint appears on large paste via Ctrl+V' 69ms
✓ InputPrompt > Ctrl+O paste expansion > 'hint does not appear for small pastes…' 66ms
✓ InputPrompt > Ctrl+O paste expansion > 'hint appears on large terminal paste …' 74ms
✓ InputPrompt > tryTogglePasteExpansion > 'returns false when no pasted content …' 29ms
✓ InputPrompt > tryTogglePasteExpansion > 'expands placeholder under cursor' 25ms
✓ InputPrompt > tryTogglePasteExpansion > 'collapses expanded paste when cursor …' 32ms
✓ InputPrompt > tryTogglePasteExpansion > 'expands placeholder when cursor is im…' 34ms
✓ InputPrompt > tryTogglePasteExpansion > 'shows hint when cursor is not on plac…' 33ms
✓ InputPrompt > History Navigation and Completion Suppression > should move cursor to 'start' on 'Up arrow' (older history) 71ms
✓ InputPrompt > History Navigation and Completion Suppression > should move cursor to 'start' on 'Ctrl+P' (older history) 64ms
✓ InputPrompt > History Navigation and Completion Suppression > should move cursor to 'end' on 'Down arrow' (newer history) 65ms
✓ InputPrompt > History Navigation and Completion Suppression > should move cursor to 'end' on 'Ctrl+N' (newer history) 80ms
✓ InputPrompt > History Navigation and Completion Suppression > should suppress completion after history navigation 79ms
× InputPrompt > History Navigation and Completion Suppression > should not render suggestions during history navigation 120ms
→ Snapshot `InputPrompt > History Navigation and Completion Suppression > should not render suggestions during history navigation 1` mismatched
✓ InputPrompt > History Navigation and Completion Suppression > should continue to suppress completion after manual cursor movement 69ms
✓ InputPrompt > History Navigation and Completion Suppression > should re-enable completion after typing 77ms
✓ InputPrompt > shortcuts help visibility > opens shortcuts help with ? on empty prompt even when showShortcutsHint is false 78ms
✓ InputPrompt > shortcuts help visibility > should close shortcuts help when a 'terminal paste event occurs' 68ms
✓ InputPrompt > shortcuts help visibility > should close shortcuts help when a 'Ctrl+V (PASTE_CLIPBOARD) is pressed' 68ms
✓ InputPrompt > shortcuts help visibility > should close shortcuts help when a 'mouse right-click paste occurs' 72ms
✓ InputPrompt > shortcuts help visibility > should close shortcuts help when a 'Ctrl+R hotkey is pressed' 69ms
✓ InputPrompt > shortcuts help visibility > should close shortcuts help when a 'Ctrl+G hotkey is pressed' 75ms
✓ InputPrompt > shortcuts help visibility > should close shortcuts help when a 'F12 hotkey is pressed' 72ms
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h src/ui/components/ThemeDialog.test.tsx (10 tests | 1 failed) 1207ms
✓ ThemeDialog Snapshots > should render correctly in theme selection mode (isDevelopment: true) 508ms
✓ ThemeDialog Snapshots > should render correctly in theme selection mode (isDevelopment: false) 72ms
× ThemeDialog Snapshots > should render correctly in scope selector mode 109ms
→ Snapshot `ThemeDialog Snapshots > should render correctly in scope selector mode 1` mismatched
✓ ThemeDialog Snapshots > should call onCancel when ESC is pressed 121ms
✓ ThemeDialog Snapshots > should call onSelect when a theme is selected 102ms
✓ Initial Theme Selection > should default to a light theme when terminal background is light and no theme is set 52ms
✓ Initial Theme Selection > should default to a dark theme when terminal background is dark and no theme is set 63ms
✓ Initial Theme Selection > should use the theme from settings even if terminal background suggests a different theme type 62ms
✓ Hint Visibility > should show hint when theme background matches terminal background 63ms
✓ Hint Visibility > should not show hint when theme background does not match terminal background 55ms
[?25h src/ui/components/messages/ToolConfirmationMessage.test.tsx (27 tests | 16 failed) 1251ms
× ToolConfirmationMessage > should not display urls if prompt and url are the same 103ms
→ Snapshot `ToolConfirmationMessage > should not display urls if prompt and url are the same 1` mismatched
× ToolConfirmationMessage > should display urls if prompt and url are different 65ms
→ Snapshot `ToolConfirmationMessage > should display urls if prompt and url are different 1` mismatched
✓ ToolConfirmationMessage > should display WarningMessage for deceptive URLs in info type 43ms
✓ ToolConfirmationMessage > should display WarningMessage for deceptive URLs in exec type commands 57ms
✓ ToolConfirmationMessage > should exclude shell delimiters from extracted URLs in exec type commands 43ms
✓ ToolConfirmationMessage > should aggregate multiple deceptive URLs into a single WarningMessage 44ms
× ToolConfirmationMessage > should display multiple commands for exec type when provided 45ms
→ Snapshot `ToolConfirmationMessage > should display multiple commands for exec type when provided 1` mismatched
× ToolConfirmationMessage > should render multiline shell scripts with correct newlines and syntax highlighting 57ms
→ Snapshot `ToolConfirmationMessage > should render multiline shell scripts with correct newlines and syntax highlighting 1` mismatched
× ToolConfirmationMessage > with folder trust > 'for edit confirmations' > should show "allow always" when folder is trusted 40ms
→ Snapshot `ToolConfirmationMessage > with folder trust > 'for edit confirmations' > should show "allow always" when folder is trusted 1` mismatched
× ToolConfirmationMessage > with folder trust > 'for edit confirmations' > should NOT show "allow always" when folder is untrusted 38ms
→ Snapshot `ToolConfirmationMessage > with folder trust > 'for edit confirmations' > should NOT show "allow always" when folder is untrusted 1` mismatched
× ToolConfirmationMessage > with folder trust > 'for exec confirmations' > should show "allow always" when folder is trusted 38ms
→ Snapshot `ToolConfirmationMessage > with folder trust > 'for exec confirmations' > should show "allow always" when folder is trusted 1` mismatched
× ToolConfirmationMessage > with folder trust > 'for exec confirmations' > should NOT show "allow always" when folder is untrusted 37ms
→ Snapshot `ToolConfirmationMessage > with folder trust > 'for exec confirmations' > should NOT show "allow always" when folder is untrusted 1` mismatched
× ToolConfirmationMessage > with folder trust > 'for info confirmations' > should show "allow always" when folder is trusted 43ms
→ Snapshot `ToolConfirmationMessage > with folder trust > 'for info confirmations' > should show "allow always" when folder is trusted 1` mismatched
× ToolConfirmationMessage > with folder trust > 'for info confirmations' > should NOT show "allow always" when folder is untrusted 31ms
→ Snapshot `ToolConfirmationMessage > with folder trust > 'for info confirmations' > should NOT show "allow always" when folder is untrusted 1` mismatched
× ToolConfirmationMessage > with folder trust > 'for mcp confirmations' > should show "allow always" when folder is trusted 31ms
→ Snapshot `ToolConfirmationMessage > with folder trust > 'for mcp confirmations' > should show "allow always" when folder is trusted 1` mismatched
× ToolConfirmationMessage > with folder trust > 'for mcp confirmations' > should NOT show "allow always" when folder is untrusted 35ms
→ Snapshot `ToolConfirmationMessage > with folder trust > 'for mcp confirmations' > should NOT show "allow always" when folder is untrusted 1` mismatched
✓ ToolConfirmationMessage > enablePermanentToolApproval setting > should NOT show "Allow for all future sessions" when setting is false (default) 36ms
× ToolConfirmationMessage > enablePermanentToolApproval setting > should show "Allow for all future sessions" when trusted 35ms
→ Snapshot `ToolConfirmationMessage > enablePermanentToolApproval setting > should show "Allow for all future sessions" when trusted 1` mismatched
✓ ToolConfirmationMessage > Modify with external editor option > should show "Modify with external editor" when NOT in IDE mode 45ms
✓ ToolConfirmationMessage > Modify with external editor option > should show "Modify with external editor" when in IDE mode but diffing is NOT enabled 38ms
✓ ToolConfirmationMessage > Modify with external editor option > should NOT show "Modify with external editor" when in IDE mode AND diffing is enabled 33ms
× ToolConfirmationMessage > should strip BiDi characters from MCP tool and server names 33ms
→ Snapshot `ToolConfirmationMessage > should strip BiDi characters from MCP tool and server names 1` mismatched
✓ ToolConfirmationMessage > should show MCP tool details expand hint for MCP confirmations 38ms
✓ ToolConfirmationMessage > should omit empty MCP invocation arguments from details 38ms
× ToolConfirmationMessage > height allocation and layout > should expand to available height for large exec commands 87ms
→ Snapshot `ToolConfirmationMessage > height allocation and layout > should expand to available height for large exec commands 1` mismatched
× ToolConfirmationMessage > height allocation and layout > should expand to available height for large edit diffs 98ms
→ Snapshot `ToolConfirmationMessage > height allocation and layout > should expand to available height for large edit diffs 1` mismatched
✓ ToolConfirmationMessage > ESCAPE key behavior > should call confirm(Cancel) asynchronously via useEffect when ESC is pressed 20ms
src/ui/components/LoadingIndicator.test.tsx (22 tests | 1 failed) 1391ms
✓ <LoadingIndicator /> > should render blank when streamingState is Idle and no loading phrase or thought 117ms
✓ <LoadingIndicator /> > should not show cancel and timer when idle even if a phrase exists 75ms
✓ <LoadingIndicator /> > should render spinner, phrase, and time when streamingState is Responding 61ms
✓ <LoadingIndicator /> > should render spinner (static), phrase but no time/cancel when streamingState is WaitingForConfirmation 63ms
✓ <LoadingIndicator /> > should display the currentLoadingPhrase correctly 58ms
✓ <LoadingIndicator /> > should display the elapsedTime correctly when Responding 53ms
✓ <LoadingIndicator /> > should display the elapsedTime correctly in human-readable format 60ms
✓ <LoadingIndicator /> > should render rightContent when provided 66ms
× <LoadingIndicator /> > should transition correctly between states 127ms
→ expected 'MockRespondingSpinner Now Responding …' to contain '⠏'
✓ <LoadingIndicator /> > should display fallback phrase if thought is empty 54ms
✓ <LoadingIndicator /> > should display the subject of a thought 56ms
✓ <LoadingIndicator /> > should NOT prepend "Thinking... " even if the subject does not start with "Thinking" 54ms
✓ <LoadingIndicator /> > should prioritize thought.subject over currentLoadingPhrase 50ms
✓ <LoadingIndicator /> > should not display thought indicator for non-thought loading phrases 51ms
✓ <LoadingIndicator /> > should truncate long primary text instead of wrapping 50ms
✓ <LoadingIndicator /> > responsive layout > should render on a single line on a wide terminal 53ms
✓ <LoadingIndicator /> > responsive layout > should render on multiple lines on a narrow terminal 54ms
✓ <LoadingIndicator /> > responsive layout > should use wide layout at 80 columns 54ms
✓ <LoadingIndicator /> > responsive layout > should use narrow layout at 79 columns 74ms
✓ <LoadingIndicator /> > responsive layout > should render witty phrase after cancel and timer hint in wide layout 58ms
✓ <LoadingIndicator /> > responsive layout > should render witty phrase after cancel and timer hint in narrow layout 49ms
✓ <LoadingIndicator /> > should use spinnerIcon when provided 52ms
[?25h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h src/ui/components/shared/BaseSelectionList.test.tsx (31 tests | 3 failed) 1240ms
✓ BaseSelectionList > Rendering and Structure > should render all items using the renderItem prop 99ms
✓ BaseSelectionList > Rendering and Structure > should render the selection indicator (● or space) and layout 35ms
✓ BaseSelectionList > Rendering and Structure > should handle an empty list gracefully 28ms
✓ BaseSelectionList > useSelectionList Integration > should pass props correctly to useSelectionList 37ms
✓ BaseSelectionList > useSelectionList Integration > should use the activeIndex returned by the hook 35ms
✓ BaseSelectionList > Styling and Colors > should apply success color to the selected item 35ms
✓ BaseSelectionList > Styling and Colors > should apply primary color to unselected, enabled items 33ms
✓ BaseSelectionList > Styling and Colors > should apply secondary color to disabled items (when not selected) 28ms
✓ BaseSelectionList > Styling and Colors > should apply success color to disabled items if they are selected 34ms
✓ BaseSelectionList > Numbering (showNumbers) > should show numbers by default with correct formatting 29ms
✓ BaseSelectionList > Numbering (showNumbers) > should hide numbers when showNumbers is false 28ms
✓ BaseSelectionList > Numbering (showNumbers) > should apply correct padding for alignment in long lists 46ms
✓ BaseSelectionList > Numbering (showNumbers) > should apply secondary color to numbers if showNumbers is false (internal logic check) 30ms
✓ BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should only show maxItemsToShow items initially 29ms
× BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should scroll down when activeIndex moves beyond the visible window 60ms
→ lastFrame() returned an empty string. If this is intentional, use lastFrame({ allowEmpty: true }). Otherwise, ensure you are calling await waitUntilReady() and that the component is rendering correctly.
× BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should scroll up when activeIndex moves before the visible window 69ms
→ lastFrame() returned an empty string. If this is intentional, use lastFrame({ allowEmpty: true }). Otherwise, ensure you are calling await waitUntilReady() and that the component is rendering correctly.
✓ BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should pin the scroll offset to the end if selection starts near the end 34ms
× BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should handle dynamic scrolling through multiple activeIndex changes 57ms
→ lastFrame() returned an empty string. If this is intentional, use lastFrame({ allowEmpty: true }). Otherwise, ensure you are calling await waitUntilReady() and that the component is rendering correctly.
✓ BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should correctly identify the selected item within the visible window 29ms
✓ BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should correctly identify the selected item when scrolled (high index) 32ms
✓ BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should correctly calculate scroll offset during the initial render phase 29ms
✓ BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should handle maxItemsToShow larger than the list length 33ms
✓ BaseSelectionList > Mouse Interaction > should register mouse click handler for each item 30ms
✓ BaseSelectionList > Mouse Interaction > should update activeIndex on first click and call onSelect on second click 88ms
✓ BaseSelectionList > Mouse Interaction > should not call onSelect when a disabled item is clicked 51ms
✓ BaseSelectionList > Mouse Interaction > should pass isActive: isFocused to useMouseClick 31ms
✓ BaseSelectionList > Scroll Arrows (showScrollArrows) > should not show arrows by default 32ms
✓ BaseSelectionList > Scroll Arrows (showScrollArrows) > should show arrows with correct colors when enabled (at the top) 38ms
✓ BaseSelectionList > Scroll Arrows (showScrollArrows) > should show arrows and correct items when scrolled to the middle 29ms
✓ BaseSelectionList > Scroll Arrows (showScrollArrows) > should show arrows and correct items when scrolled to the end 33ms
✓ BaseSelectionList > Scroll Arrows (showScrollArrows) > should not show arrows when list fits entirely 39ms
[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h src/ui/components/HistoryItemDisplay.test.tsx (24 tests | 3 failed) 1124ms
✓ <HistoryItemDisplay /> > renders UserMessage for "user" type 99ms
✓ <HistoryItemDisplay /> > renders HintMessage for "hint" type 38ms
✓ <HistoryItemDisplay /> > renders UserMessage for "user" type with slash command 35ms
✓ <HistoryItemDisplay /> > renders InfoMessage for "info" type with multi-line text (alternateBuffer=true) 37ms
✓ <HistoryItemDisplay /> > renders InfoMessage for "info" type with multi-line text (alternateBuffer=false) 33ms
✓ <HistoryItemDisplay /> > renders AgentsStatus for "agents_list" type 36ms
✓ <HistoryItemDisplay /> > renders StatsDisplay for "stats" type 37ms
✓ <HistoryItemDisplay /> > renders AboutBox for "about" type 42ms
✓ <HistoryItemDisplay /> > renders ModelStatsDisplay for "model_stats" type 32ms
✓ <HistoryItemDisplay /> > renders ToolStatsDisplay for "tool_stats" type 33ms
✓ <HistoryItemDisplay /> > renders SessionSummaryDisplay for "quit" type 38ms
✓ <HistoryItemDisplay /> > should escape ANSI codes in text content 37ms
✓ <HistoryItemDisplay /> > should escape ANSI codes in tool confirmation details 29ms
✓ <HistoryItemDisplay /> > thinking items > renders thinking item when enabled 33ms
× <HistoryItemDisplay /> > thinking items > renders "Thinking..." header when isFirstThinking is true 45ms
→ Snapshot `<HistoryItemDisplay /> > thinking items > renders "Thinking..." header when isFirstThinking is true 1` mismatched
✓ <HistoryItemDisplay /> > thinking items > does not render thinking item when disabled 32ms
✓ <HistoryItemDisplay /> > gemini items (alternateBuffer=true) > should render a truncated gemini item 72ms
✓ <HistoryItemDisplay /> > gemini items (alternateBuffer=true) > should render a full gemini item when using availableTerminalHeightGemini 66ms
✓ <HistoryItemDisplay /> > gemini items (alternateBuffer=true) > should render a truncated gemini_content item 57ms
✓ <HistoryItemDisplay /> > gemini items (alternateBuffer=true) > should render a full gemini_content item when using availableTerminalHeightGemini 53ms
× <HistoryItemDisplay /> > gemini items (alternateBuffer=false) > should render a truncated gemini item 39ms
→ Snapshot `<HistoryItemDisplay /> > gemini items (alternateBuffer=false) > should render a truncated gemini item 1` mismatched
✓ <HistoryItemDisplay /> > gemini items (alternateBuffer=false) > should render a full gemini item when using availableTerminalHeightGemini 59ms
× <HistoryItemDisplay /> > gemini items (alternateBuffer=false) > should render a truncated gemini_content item 52ms
→ Snapshot `<HistoryItemDisplay /> > gemini items (alternateBuffer=false) > should render a truncated gemini_content item 1` mismatched
✓ <HistoryItemDisplay /> > gemini items (alternateBuffer=false) > should render a full gemini_content item when using availableTerminalHeightGemini 87ms
[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h src/ui/components/HooksDialog.test.tsx (12 tests | 2 failed) 756ms
✓ HooksDialog > snapshots > renders empty hooks dialog 84ms
✓ HooksDialog > snapshots > renders single hook with security warning, source, and tips 68ms
✓ HooksDialog > snapshots > renders hooks grouped by event name with enabled and disabled status 49ms
✓ HooksDialog > snapshots > renders hook with all metadata (matcher, sequential, timeout) 45ms
✓ HooksDialog > snapshots > renders hook using command as name when name is not provided 46ms
✓ HooksDialog > keyboard interaction > should call onClose when escape key is pressed 33ms
✓ HooksDialog > scrolling behavior > should not show scroll indicators when hooks fit within maxVisibleHooks 42ms
✓ HooksDialog > scrolling behavior > should show scroll down indicator when there are more hooks than maxVisibleHooks 42ms
× HooksDialog > scrolling behavior > should scroll down when down arrow is pressed 80ms
→ expected '\n╭──────────────────────────────────…' to contain '▲'
✓ HooksDialog > scrolling behavior > should scroll up when up arrow is pressed after scrolling down 129ms
× HooksDialog > scrolling behavior > should not scroll beyond the end 68ms
→ expected '\n╭──────────────────────────────────…' to contain '▲'
✓ HooksDialog > scrolling behavior > should not scroll above the beginning 70ms
[?2004h[?25h[?2004h[?2004h src/ui/ToolConfirmationFullFrame.test.tsx (1 test | 1 failed) 990ms
× Full Terminal Tool Confirmation Snapshot > renders tool confirmation box in the frame of the entire terminal 989ms
→ Snapshot `Full Terminal Tool Confirmation Snapshot > renders tool confirmation box in the frame of the entire terminal 1` mismatched
[?25h src/ui/utils/borderStyles.test.tsx (7 tests | 3 failed) 750ms
✓ getToolGroupBorderAppearance > should use warning color for pending non-shell tools 1ms
✓ getToolGroupBorderAppearance > should use correct color for empty slice by looking at pending items 0ms
✓ getToolGroupBorderAppearance > should use active color for shell tools 0ms
✓ getToolGroupBorderAppearance > should use focus color for focused shell tools 0ms
× MainContent tool group border SVG snapshots > should render SVG snapshot for a pending search dialog (google_web_search) 297ms
→ Snapshot `MainContent tool group border SVG snapshots > should render SVG snapshot for a pending search dialog (google_web_search) 2` mismatched
× MainContent tool group border SVG snapshots > should render SVG snapshot for an empty slice following a search tool 220ms
→ Snapshot `MainContent tool group border SVG snapshots > should render SVG snapshot for an empty slice following a search tool 2` mismatched
× MainContent tool group border SVG snapshots > should render SVG snapshot for a shell tool 231ms
→ Snapshot `MainContent tool group border SVG snapshots > should render SVG snapshot for a shell tool 2` mismatched
[?25h src/ui/components/messages/ToolResultDisplay.test.tsx (14 tests | 1 failed) 1213ms
✓ ToolResultDisplay > uses ScrollableList for ANSI output in alternate buffer mode 132ms
✓ ToolResultDisplay > uses Scrollable for non-ANSI output in alternate buffer mode 72ms
✓ ToolResultDisplay > passes hasFocus prop to scrollable components 49ms
✓ ToolResultDisplay > renders string result as markdown by default 57ms
✓ ToolResultDisplay > renders string result as plain text when renderOutputAsMarkdown is false 45ms
✓ ToolResultDisplay > truncates very long string results 128ms
✓ ToolResultDisplay > renders file diff result 47ms
✓ ToolResultDisplay > renders ANSI output result 51ms
✓ ToolResultDisplay > renders nothing for todos result 51ms
✓ ToolResultDisplay > does not fall back to plain text if availableHeight is set and not in alternate buffer 45ms
✓ ToolResultDisplay > keeps markdown if in alternate buffer even with availableHeight 44ms
✓ ToolResultDisplay > truncates ANSI output when maxLines is provided 48ms
× ToolResultDisplay > truncates ANSI output when maxLines is provided, even if availableTerminalHeight is undefined 75ms
→ Snapshot `ToolResultDisplay > truncates ANSI output when maxLines is provided, even if availableTerminalHeight is undefined 2` mismatched
✓ ToolResultDisplay > stays scrolled to the bottom when lines are incrementally added 361ms
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h src/ui/components/shared/VirtualizedList.test.tsx (10 tests | 7 failed) 620ms
× <VirtualizedList /> > with 10px height and 100 items > renders only visible items ('top') 107ms
→ expected '╭────────────────────────────────────…' to contain 'Item 0'
✓ <VirtualizedList /> > with 10px height and 100 items > renders only visible items ('scrolled to bottom') 100ms
× <VirtualizedList /> > with 10px height and 100 items > sticks to bottom when new items added 38ms
→ expected '╭────────────────────────────────────…' to contain 'Item 99'
× <VirtualizedList /> > with 10px height and 100 items > scrolls down to show new items when requested via ref 38ms
→ expected '╭────────────────────────────────────…' to contain 'Item 0'
× <VirtualizedList /> > with 10px height and 100 items > mounts only visible items with 1000 items and 10px height (scroll: +0) 49ms
→ Snapshot `<VirtualizedList /> > with 10px height and 100 items > mounts only visible items with 1000 items and 10px height (scroll: +0) 1` mismatched
× <VirtualizedList /> > with 10px height and 100 items > mounts only visible items with 1000 items and 10px height (scroll: 500) 45ms
→ Snapshot `<VirtualizedList /> > with 10px height and 100 items > mounts only visible items with 1000 items and 10px height (scroll: 500) 1` mismatched
✓ <VirtualizedList /> > with 10px height and 100 items > mounts only visible items with 1000 items and 10px height (scroll: 999) 87ms
× <VirtualizedList /> > renders more items when a visible item shrinks via context update 33ms
→ lastFrame() returned an empty string. If this is intentional, use lastFrame({ allowEmpty: true }). Otherwise, ensure you are calling await waitUntilReady() and that the component is rendering correctly.
✓ <VirtualizedList /> > updates scroll position correctly when scrollBy is called multiple times in the same tick 87ms
× <VirtualizedList /> > renders correctly in copyModeEnabled when scrolled 35ms
→ lastFrame() returned an empty string. If this is intentional, use lastFrame({ allowEmpty: true }). Otherwise, ensure you are calling await waitUntilReady() and that the component is rendering correctly.
[?2004h[?2004h[?25h src/ui/components/MainContent.test.tsx (25 tests | 7 failed) 878ms
✓ getToolGroupBorderAppearance > returns default empty values for non-tool_group items 2ms
✓ getToolGroupBorderAppearance > inspects only the last pending tool_group item if current has no tools 1ms
✓ getToolGroupBorderAppearance > returns default border for completed normal tools 0ms
✓ getToolGroupBorderAppearance > returns warning border for pending normal tools 0ms
✓ getToolGroupBorderAppearance > returns active border for executing shell commands 0ms
✓ getToolGroupBorderAppearance > returns focus border for focused executing shell commands 0ms
✓ getToolGroupBorderAppearance > returns active border and dims color for background executing shell command when another shell is active 0ms
✓ getToolGroupBorderAppearance > handles empty tools with active shell turn (isCurrentlyInShellTurn) 0ms
✓ MainContent > renders in normal buffer mode 90ms
✓ MainContent > renders in alternate buffer mode 48ms
✓ MainContent > renders minimal header in minimal mode (alternate buffer) 40ms
✓ MainContent > restores full header details after toggle in alternate buffer mode 124ms
✓ MainContent > always renders full header details in normal buffer mode 31ms
✓ MainContent > does not constrain height in alternate buffer mode 34ms
✓ MainContent > renders multiple history items with single line padding between them 45ms
× MainContent > renders mixed history items (user + gemini) with single line padding between them 44ms
→ Snapshot `MainContent > renders mixed history items (user + gemini) with single line padding between them 1` mismatched
× MainContent > renders a subagent with a complete box including bottom border 48ms
→ Snapshot `MainContent > renders a subagent with a complete box including bottom border 1` mismatched
✓ MainContent > renders a split tool group without a gap between static and pending areas 42ms
× MainContent > renders a ToolConfirmationQueue without an extra line when preceded by hidden tools 42ms
→ Snapshot `MainContent > renders a ToolConfirmationQueue without an extra line when preceded by hidden tools 1` mismatched
× MainContent > renders a spurious line when a tool group has only hidden tools and borderBottom true 34ms
→ Snapshot `MainContent > renders a spurious line when a tool group has only hidden tools and borderBottom true 1` mismatched
× MainContent > renders multiple thinking messages sequentially correctly 40ms
→ Snapshot `MainContent > renders multiple thinking messages sequentially correctly 1` mismatched
× MainContent > MainContent Tool Output Height Logic > 'ASB mode - Focused shell should expand' 50ms
→ expected 'ScrollableList\nAppHeader(full)\n\n╭─…' not to match /\bLine 1\b/
× MainContent > MainContent Tool Output Height Logic > 'ASB mode - Unfocused shell' 50ms
→ expected 'ScrollableList\nAppHeader(full)\n\n╭─…' not to match /\bLine 1\b/
✓ MainContent > MainContent Tool Output Height Logic > 'Normal mode - Constrained height' 53ms
✓ MainContent > MainContent Tool Output Height Logic > 'Normal mode - Unconstrained height' 59ms
[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h src/ui/components/shared/SearchableList.test.tsx (8 tests | 2 failed) 629ms
✓ SearchableList > should render all items initially 96ms
× SearchableList > should reset selection to top when items change if resetSelectionOnItemsChange is true 137ms
→ Snapshot `SearchableList > should reset selection to top when items change if resetSelectionOnItemsChange is true 1` mismatched
✓ SearchableList > should filter items based on search query 93ms
✓ SearchableList > should show "No items found." when no items match 100ms
✓ SearchableList > should handle selection with Enter 44ms
✓ SearchableList > should handle navigation and selection 41ms
✓ SearchableList > should handle close with Esc 83ms
× SearchableList > should match snapshot 35ms
→ Snapshot `SearchableList > should match snapshot 1` mismatched
[?2004h[?2004h[?25h src/config/extensions/consent.test.ts (21 tests | 6 failed) 420ms
✓ consent > requestConsentNonInteractive > should return true for input "'y'" 6ms
✓ consent > requestConsentNonInteractive > should return true for input "'Y'" 2ms
✓ consent > requestConsentNonInteractive > should return true for input "''" 2ms
✓ consent > requestConsentNonInteractive > should return false for input "'n'" 1ms
✓ consent > requestConsentNonInteractive > should return false for input "'N'" 2ms
✓ consent > requestConsentNonInteractive > should return true for input "'yes'" 2ms
✓ consent > requestConsentInteractive > should resolve with true when user confirms with true 5ms
✓ consent > requestConsentInteractive > should resolve with false when user confirms with false 6ms
✓ consent > maybeRequestConsentOrFail > should request consent if there is no previous config 3ms
✓ consent > maybeRequestConsentOrFail > should not request consent if configs are identical 2ms
✓ consent > maybeRequestConsentOrFail > should throw an error if consent is denied 3ms
× consent > maybeRequestConsentOrFail > consent string generation > should generate a consent string with all fields 100ms
→ Snapshot `consent > maybeRequestConsentOrFail > consent string generation > should generate a consent string with all fields 2` mismatched
✓ consent > maybeRequestConsentOrFail > consent string generation > should request consent if mcpServers change 4ms
✓ consent > maybeRequestConsentOrFail > consent string generation > should request consent if contextFileName changes 9ms
✓ consent > maybeRequestConsentOrFail > consent string generation > should request consent if excludeTools changes 4ms
× consent > maybeRequestConsentOrFail > consent string generation > should include warning when hooks are present 53ms
→ Snapshot `consent > maybeRequestConsentOrFail > consent string generation > should include warning when hooks are present 2` mismatched
✓ consent > maybeRequestConsentOrFail > consent string generation > should request consent if hooks status changes 1ms
× consent > maybeRequestConsentOrFail > consent string generation > should request consent if extension is migrated 44ms
→ Snapshot `consent > maybeRequestConsentOrFail > consent string generation > should request consent if extension is migrated 2` mismatched
× consent > maybeRequestConsentOrFail > consent string generation > should request consent if skills change 76ms
→ Snapshot `consent > maybeRequestConsentOrFail > consent string generation > should request consent if skills change 2` mismatched
× consent > maybeRequestConsentOrFail > consent string generation > should show a warning if the skill directory cannot be read 54ms
→ Snapshot `consent > maybeRequestConsentOrFail > consent string generation > should show a warning if the skill directory cannot be read 2` mismatched
× consent > skillsConsentString > should generate a consent string for skills 40ms
→ Snapshot `consent > skillsConsentString > should generate a consent string for skills 2` mismatched
src/ui/IdeIntegrationNudge.test.tsx (6 tests | 1 failed) 504ms
✓ IdeIntegrationNudge > renders correctly with default options 91ms
✓ IdeIntegrationNudge > handles "Yes" selection 72ms
✓ IdeIntegrationNudge > handles "No" selection 90ms
✓ IdeIntegrationNudge > handles "Dismiss" selection 128ms
× IdeIntegrationNudge > handles Escape key press 60ms
→ expected "spy" to be called with arguments: [ { userSelection: 'no', …(1) } ]
Number of calls: 0

✓ IdeIntegrationNudge > displays correct text and handles selection when extension is pre-installed 63ms
[?25h src/ui/components/messages/ThinkingMessage.test.tsx (8 tests | 7 failed) 517ms
× ThinkingMessage > renders subject line with vertical rule and "Thinking..." header 111ms
→ Snapshot `ThinkingMessage > renders subject line with vertical rule and "Thinking..." header 1` mismatched
× ThinkingMessage > uses description when subject is empty 63ms
→ Snapshot `ThinkingMessage > uses description when subject is empty 1` mismatched
× ThinkingMessage > renders full mode with left border and full text 63ms
→ Snapshot `ThinkingMessage > renders full mode with left border and full text 1` mismatched
× ThinkingMessage > renders "Thinking..." header when isFirstThinking is true 56ms
→ Snapshot `ThinkingMessage > renders "Thinking..." header when isFirstThinking is true 1` mismatched
× ThinkingMessage > normalizes escaped newline tokens 55ms
→ Snapshot `ThinkingMessage > normalizes escaped newline tokens 1` mismatched
✓ ThinkingMessage > renders empty state gracefully 56ms
× ThinkingMessage > renders multiple thinking messages sequentially correctly 58ms
→ Snapshot `ThinkingMessage > renders multiple thinking messages sequentially correctly 1` mismatched
× ThinkingMessage > filters out progress dots and empty lines 53ms
→ Snapshot `ThinkingMessage > filters out progress dots and empty lines 1` mismatched
[?25h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h src/ui/components/ValidationDialog.test.tsx (8 tests | 3 failed) 476ms
✓ ValidationDialog > initial render (choosing state) > should render the main message and two options 78ms
✓ ValidationDialog > initial render (choosing state) > should render learn more URL when provided 49ms
✓ ValidationDialog > initial render (choosing state) > should call onChoice with cancel when ESCAPE is pressed 60ms
✓ ValidationDialog > onChoice handling > should call onChoice with change_auth when that option is selected 65ms
✓ ValidationDialog > onChoice handling > should call onChoice with verify when no validation link is provided 54ms
× ValidationDialog > onChoice handling > should open browser and transition to waiting state when verify is selected with a link 61ms
→ expected '╭────────────────────────────────────…' to contain 'Waiting for verification...'
× ValidationDialog > headless mode > should show URL in message when browser cannot be launched 54ms
→ expected '╭────────────────────────────────────…' to contain 'Please open this URL in a browser:'
× ValidationDialog > error state > should show error and options when browser fails to open 53ms
→ expected '╭────────────────────────────────────…' to contain 'Browser not found'
src/ui/components/Notifications.test.tsx (12 tests | 1 failed) 474ms
✓ Notifications > renders nothing when no notifications 59ms
✓ Notifications > renders startup warnings: [object Object] 44ms
✓ Notifications > renders startup warnings: [object Object],[object Object] 37ms
✓ Notifications > increments show count for low priority warnings 39ms
✓ Notifications > filters out low priority warnings that exceeded max show count 44ms
× Notifications > dismisses warnings on keypress 65ms
→ expected '\n⚠ High priority 1\n' not to contain 'High priority 1'
✓ Notifications > renders init error 36ms
✓ Notifications > does not render init error when streaming 26ms
✓ Notifications > renders update notification 35ms
✓ Notifications > renders screen reader nudge when enabled and not seen (no legacy file) 33ms
✓ Notifications > migrates legacy screen reader nudge file 27ms
✓ Notifications > does not render screen reader nudge when already seen in persistent state 29ms
[?2004h[?2004h[?25h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h src/ui/components/Banner.test.tsx (4 tests | 4 failed) 363ms
× Banner > renders in warning mode 125ms
→ Snapshot `Banner > renders in warning mode 2` mismatched
× Banner > renders in info mode 86ms
→ Snapshot `Banner > renders in info mode 2` mismatched
× Banner > renders in multi-line warning 78ms
→ Snapshot `Banner > renders in multi-line warning 2` mismatched
× Banner > handles newlines in text 73ms
→ Snapshot `Banner > handles newlines in text 2` mismatched
src/ui/components/shared/EnumSelector.test.tsx (9 tests | 2 failed) 416ms
✓ <EnumSelector /> > renders with string options and matches snapshot 89ms
✓ <EnumSelector /> > renders with numeric options and matches snapshot 44ms
✓ <EnumSelector /> > renders inactive state and matches snapshot 50ms
× <EnumSelector /> > renders with single option and matches snapshot 38ms
→ Snapshot `<EnumSelector /> > renders with single option and matches snapshot 1` mismatched
✓ <EnumSelector /> > renders nothing when no options are provided 31ms
✓ <EnumSelector /> > handles currentValue not found in options 31ms
× <EnumSelector /> > updates when currentValue changes externally 69ms
→ lastFrame() returned an empty string. If this is intentional, use lastFrame({ allowEmpty: true }). Otherwise, ensure you are calling await waitUntilReady() and that the component is rendering correctly.
✓ <EnumSelector /> > shows navigation arrows when multiple options available 30ms
✓ <EnumSelector /> > hides navigation arrows when single option available 31ms
[?25h[?2004h[?25h src/ui/components/AppHeaderIcon.test.tsx (2 tests | 2 failed) 421ms
× AppHeader Icon Rendering > renders the default icon in standard terminals 241ms
→ Snapshot `AppHeader Icon Rendering > renders the default icon in standard terminals 2` mismatched
× AppHeader Icon Rendering > renders the symmetric icon in Apple Terminal 179ms
→ Snapshot `AppHeader Icon Rendering > renders the symmetric icon in Apple Terminal 2` mismatched
[?2004h[?25h[?2004h[?2004h[?2004h[?2004h src/ui/components/AlternateBufferQuittingDisplay.test.tsx (6 tests | 1 failed) 451ms
✓ AlternateBufferQuittingDisplay > renders with active and pending tool messages 167ms
✓ AlternateBufferQuittingDisplay > renders with empty history and no pending items 45ms
✓ AlternateBufferQuittingDisplay > renders with history but no pending items 52ms
✓ AlternateBufferQuittingDisplay > renders with pending items but no history 95ms
✓ AlternateBufferQuittingDisplay > renders with a tool awaiting confirmation 40ms
× AlternateBufferQuittingDisplay > renders with user and gemini messages 52ms
→ Snapshot `AlternateBufferQuittingDisplay > renders with user and gemini messages > with_user_gemini_messages 1` mismatched
[?25h[?2004h src/ui/components/SettingsDialog.test.tsx (59 tests | 9 failed) 27781ms
✓ SettingsDialog > Initial Rendering > should render the settings dialog with default state 273ms
✓ SettingsDialog > Initial Rendering > should accept availableTerminalHeight prop without errors 77ms
× SettingsDialog > Initial Rendering > should render settings list with visual indicators 2277ms
→ Snapshot `SettingsDialog > Initial Rendering > should render settings list with visual indicators 2` mismatched
✓ SettingsDialog > Initial Rendering > should use almost full height of the window but no more when the window height is 25 rows 58ms
✓ SettingsDialog > Setting Descriptions > should render descriptions for settings that have them 74ms
✓ SettingsDialog > Settings Navigation > should navigate with 'arrow keys' 125ms
✓ SettingsDialog > Settings Navigation > should navigate with 'emacs keys (Ctrl+P/N)' 147ms
✓ SettingsDialog > Settings Navigation > should allow j and k characters to be typed in search without triggering navigation 132ms
✓ SettingsDialog > Settings Navigation > wraps around when at the top of the list 141ms
✓ SettingsDialog > Settings Toggling > should toggle setting with Enter key 66ms
✓ SettingsDialog > Settings Toggling > enum values > 'toggles to next value' 100ms
✓ SettingsDialog > Settings Toggling > enum values > 'loops back to first value when at end' 97ms
✓ SettingsDialog > Settings Toggling > should handle vim mode setting specially 82ms
✓ SettingsDialog > Scope Selection > should switch between scopes 96ms
✓ SettingsDialog > Scope Selection > should reset to settings focus when scope is selected 60ms
✓ SettingsDialog > Restart Prompt > should show restart prompt for restart-required settings 63ms
✓ SettingsDialog > Restart Prompt > should handle restart request when r is pressed 103ms
✓ SettingsDialog > Escape Key Behavior > should call onSelect with undefined when Escape is pressed 58ms
✓ SettingsDialog > Settings Persistence > should persist settings across scope changes 93ms
✓ SettingsDialog > Settings Persistence > should show different values for different scopes 63ms
✓ SettingsDialog > Complex State Management > should track modified settings correctly 144ms
✓ SettingsDialog > Complex State Management > should handle scrolling when there are many settings 76ms
✓ SettingsDialog > Specific Settings Behavior > should show correct display values for settings with different states 63ms
✓ SettingsDialog > Specific Settings Behavior > should handle immediate settings save for non-restart-required settings 87ms
✓ SettingsDialog > Specific Settings Behavior > should show restart prompt for restart-required settings 47ms
✓ SettingsDialog > Specific Settings Behavior > should clear restart prompt when switching scopes 56ms
✓ SettingsDialog > Settings Display Values > should show correct values for inherited settings 62ms
✓ SettingsDialog > Settings Display Values > should show override indicator for overridden settings 53ms
✓ SettingsDialog > Race Condition Regression Tests > should 'not reset sibling settings when toggl…' 59ms
✓ SettingsDialog > Race Condition Regression Tests > should 'preserve multiple sibling settings in…' 68ms
✓ SettingsDialog > Keyboard Shortcuts Edge Cases > should handle rapid key presses gracefully 92ms
✓ SettingsDialog > Keyboard Shortcuts Edge Cases > should handle 'Ctrl+C' to reset current setting to default 85ms
✓ SettingsDialog > Keyboard Shortcuts Edge Cases > should handle 'Ctrl+L' to reset current setting to default 92ms
✓ SettingsDialog > Keyboard Shortcuts Edge Cases > should handle navigation when only one setting exists 120ms
✓ SettingsDialog > Keyboard Shortcuts Edge Cases > should properly handle Tab navigation between sections 65ms
✓ SettingsDialog > Error Recovery > should handle malformed settings gracefully 51ms
✓ SettingsDialog > Error Recovery > should handle missing setting definitions gracefully 61ms
✓ SettingsDialog > Complex User Interactions > should handle complete user workflow: navigate, toggle, change scope, exit 89ms
✓ SettingsDialog > Complex User Interactions > should allow changing multiple settings without losing pending changes 250ms
✓ SettingsDialog > Complex User Interactions > should maintain state consistency during complex interactions 228ms
✓ SettingsDialog > Complex User Interactions > should handle restart workflow correctly 106ms
✓ SettingsDialog > Restart and Search Conflict Regression > should prioritize restart request over search text box when showRestartPrompt is true 205ms
✓ SettingsDialog > Restart and Search Conflict Regression > should hide search box when showRestartPrompt is true 166ms
✓ SettingsDialog > String Settings Editing > should allow editing and committing a string setting 325ms
✓ SettingsDialog > Array Settings Editing > should parse comma-separated input as string arrays 182ms
✓ SettingsDialog > Array Settings Editing > should parse JSON array input for allowedExtensions 165ms
✓ SettingsDialog > Search Functionality > should display text entered in search 133ms
✓ SettingsDialog > Search Functionality > should show search query and filter settings as user types 140ms
✓ SettingsDialog > Search Functionality > should exit search settings when Escape is pressed 225ms
✓ SettingsDialog > Search Functionality > should handle backspace to modify search query 158ms
✓ SettingsDialog > Search Functionality > should display nothing when search yields no results 169ms
× SettingsDialog > Snapshot Tests > should render 'default state' correctly 2150ms
→ Snapshot `SettingsDialog > Snapshot Tests > should render 'default state' correctly 2` mismatched
× SettingsDialog > Snapshot Tests > should render 'various boolean settings enabled' correctly 2605ms
→ Snapshot `SettingsDialog > Snapshot Tests > should render 'various boolean settings enabled' correctly 2` mismatched
× SettingsDialog > Snapshot Tests > should render 'mixed boolean and number settings' correctly 2686ms
→ Snapshot `SettingsDialog > Snapshot Tests > should render 'mixed boolean and number settings' correctly 2` mismatched
× SettingsDialog > Snapshot Tests > should render 'focused on scope selector' correctly 2274ms
→ Snapshot `SettingsDialog > Snapshot Tests > should render 'focused on scope selector' correctly 2` mismatched
× SettingsDialog > Snapshot Tests > should render 'accessibility settings enabled' correctly 2453ms
→ Snapshot `SettingsDialog > Snapshot Tests > should render 'accessibility settings enabled' correctly 2` mismatched
× SettingsDialog > Snapshot Tests > should render 'file filtering settings configured' correctly 2495ms
→ Snapshot `SettingsDialog > Snapshot Tests > should render 'file filtering settings configured' correctly 2` mismatched
× SettingsDialog > Snapshot Tests > should render 'tools and security settings' correctly 2500ms
→ Snapshot `SettingsDialog > Snapshot Tests > should render 'tools and security settings' correctly 2` mismatched
× SettingsDialog > Snapshot Tests > should render 'all boolean settings disabled' correctly 2611ms
→ Snapshot `SettingsDialog > Snapshot Tests > should render 'all boolean settings disabled' correctly 2` mismatched
[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h src/ui/utils/CodeColorizer.test.tsx (3 tests | 1 failed) 146ms
✓ colorizeCode > renders empty lines correctly when useAlternateBuffer is true 71ms
× colorizeCode > does not let colors from ansi escape codes leak into colorized code 73ms
→ Snapshot `colorizeCode > does not let colors from ansi escape codes leak into colorized code 2` mismatched
✓ colorizeCode > returns an array of lines when returnLines is true 2ms
src/ui/components/shared/ExpandableText.test.tsx (7 tests | 7 failed) 245ms
× ExpandableText > renders plain label when no match (short label) 60ms
→ Snapshot `ExpandableText > renders plain label when no match (short label) 2` mismatched
× ExpandableText > truncates long label when collapsed and no match 36ms
→ Snapshot `ExpandableText > truncates long label when collapsed and no match 2` mismatched
× ExpandableText > shows full long label when expanded and no match 28ms
→ Snapshot `ExpandableText > shows full long label when expanded and no match 2` mismatched
× ExpandableText > highlights matched substring when expanded (text only visible) 29ms
→ Snapshot `ExpandableText > highlights matched substring when expanded (text only visible) 2` mismatched
× ExpandableText > creates centered window around match when collapsed 31ms
→ Snapshot `ExpandableText > creates centered window around match when collapsed 2` mismatched
× ExpandableText > truncates match itself when match is very long 29ms
→ Snapshot `ExpandableText > truncates match itself when match is very long 2` mismatched
× ExpandableText > respects custom maxWidth 31ms
→ Snapshot `ExpandableText > respects custom maxWidth 2` mismatched
[?25h[?25h src/ui/components/UserIdentity.test.tsx (8 tests | 3 failed) 291ms
× <UserIdentity /> > should render login message and auth indicator 69ms
→ expected 'Signed in with Google /auth\n' to contain 'Signed in with Google: test@example.c…'
× <UserIdentity /> > should render the user email on the very first frame (regression test) 35ms
→ expected 'Signed in with Google /auth' to contain 'test@example.com'
✓ <UserIdentity /> > should render login message if email is missing 34ms
× <UserIdentity /> > should render plan name and upgrade indicator 29ms
→ expected 'Signed in with Google /auth\nPlan: Pr…' to contain 'Signed in with Google: test@example.c…'
✓ <UserIdentity /> > should not render if authType is missing 31ms
✓ <UserIdentity /> > should render non-Google auth message 30ms
✓ <UserIdentity /> > should render specific tier name when provided 31ms
✓ <UserIdentity /> > should not render /upgrade indicator for ultra tiers 31ms
[?25h src/test-utils/render.test.tsx (6 tests | 1 failed) 315ms
✓ render > should render a component 54ms
× render > should support rerender 55ms
→ lastFrame() returned an empty string. If this is intentional, use lastFrame({ allowEmpty: true }). Otherwise, ensure you are calling await waitUntilReady() and that the component is rendering correctly.
✓ render > should support unmount 27ms
✓ renderHook > should rerender with previous props when called without arguments 76ms
✓ renderHook > should handle initial render without props 52ms
✓ renderHook > should update props if undefined is passed explicitly 49ms
[?25h src/ui/components/HookStatusDisplay.test.tsx (6 tests | 1 failed) 355ms
✓ <HookStatusDisplay /> > should render a single executing hook 82ms
✓ <HookStatusDisplay /> > should render multiple executing hooks 59ms
✓ <HookStatusDisplay /> > should render sequential hook progress 50ms
✓ <HookStatusDisplay /> > should return empty string if no active hooks 48ms
✓ <HookStatusDisplay /> > should show generic message when only system hooks are active 51ms
× <HookStatusDisplay /> > matches SVG snapshot for single hook 63ms
→ Snapshot `<HookStatusDisplay /> > matches SVG snapshot for single hook 2` mismatched
[?25h src/ui/components/SessionBrowser.test.tsx (6 tests | 2 failed) 297ms
✓ SessionBrowser component > shows empty state when no sessions exist 55ms
× SessionBrowser component > renders a list of sessions and marks current session as disabled 55ms
→ Snapshot `SessionBrowser component > renders a list of sessions and marks current session as disabled 1` mismatched
× SessionBrowser component > enters search mode, filters sessions, and renders match snippets 51ms
→ Snapshot `SessionBrowser component > enters search mode, filters sessions, and renders match snippets 1` mismatched
✓ SessionBrowser component > handles keyboard navigation and resumes the selected session 54ms
✓ SessionBrowser component > does not allow resuming or deleting the current session 74ms
✓ SessionBrowser component > shows an error state when loading sessions fails 8ms
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h src/ui/components/Table.test.tsx (4 tests | 3 failed) 207ms
× Table > should render headers and data correctly 103ms
→ Snapshot `Table > should render headers and data correctly 2` mismatched
× Table > should support custom cell rendering 42ms
→ Snapshot `Table > should support custom cell rendering 2` mismatched
✓ Table > should handle undefined values gracefully 27ms
× Table > should support inverse text rendering 35ms
→ Snapshot `Table > should support inverse text rendering 2` mismatched
[?25h src/ui/components/messages/UserMessage.test.tsx (4 tests | 4 failed) 193ms
× UserMessage > renders normal user message with correct prefix 86ms
→ Snapshot `UserMessage > renders normal user message with correct prefix 1` mismatched
× UserMessage > renders slash command message 41ms
→ Snapshot `UserMessage > renders slash command message 1` mismatched
× UserMessage > renders multiline user message 34ms
→ Snapshot `UserMessage > renders multiline user message 1` mismatched
× UserMessage > transforms image paths in user message 31ms
→ Snapshot `UserMessage > transforms image paths in user message 1` mismatched
src/ui/components/shared/HalfLinePaddedBox.test.tsx (4 tests | 2 failed) 181ms
× <HalfLinePaddedBox /> > renders standard background and blocks when not iTerm2 94ms
→ Snapshot `<HalfLinePaddedBox /> > renders standard background and blocks when not iTerm2 1` mismatched
× <HalfLinePaddedBox /> > renders iTerm2-specific blocks when iTerm2 is detected 29ms
→ Snapshot `<HalfLinePaddedBox /> > renders iTerm2-specific blocks when iTerm2 is detected 1` mismatched
✓ <HalfLinePaddedBox /> > renders nothing when useBackgroundColor is false 28ms
✓ <HalfLinePaddedBox /> > renders nothing when screen reader is enabled 29ms
[?25h src/ui/components/SuggestionsDisplay.test.tsx (7 tests | 4 failed) 263ms
✓ SuggestionsDisplay > renders loading state 58ms
✓ SuggestionsDisplay > renders nothing when empty and not loading 29ms
× SuggestionsDisplay > renders suggestions list 39ms
→ Snapshot `SuggestionsDisplay > renders suggestions list 1` mismatched
× SuggestionsDisplay > highlights active item 30ms
→ Snapshot `SuggestionsDisplay > highlights active item 1` mismatched
× SuggestionsDisplay > handles scrolling 42ms
→ Snapshot `SuggestionsDisplay > handles scrolling 1` mismatched
× SuggestionsDisplay > renders MCP tag for MCP prompts 29ms
→ Snapshot `SuggestionsDisplay > renders MCP tag for MCP prompts 1` mismatched
✓ SuggestionsDisplay > renders command section separators for slash mode 35ms
[?25h[?25h src/ui/components/messages/RedirectionConfirmation.test.tsx (1 test | 1 failed) 209ms
× ToolConfirmationMessage Redirection > should display redirection warning and tip for redirected commands 148ms
→ Snapshot `ToolConfirmationMessage Redirection > should display redirection warning and tip for redirected commands 1` mismatched
[?25h[?2004h[?2004h[?2004h src/ui/components/ModelQuotaDisplay.test.tsx (3 tests | 1 failed) 160ms
× <ModelQuotaDisplay /> > renders quota information when buckets are provided 91ms
→ Snapshot `<ModelQuotaDisplay /> > renders quota information when buckets are provided 1` mismatched
✓ <ModelQuotaDisplay /> > renders nothing when no buckets are provided 14ms
✓ <ModelQuotaDisplay /> > filters models based on modelsToShow prop 53ms
[?25h src/utils/cleanup.test.ts (17 tests | 2 failed) 72ms
✓ cleanup > should run a registered synchronous function 3ms
✓ cleanup > should run a registered asynchronous function 0ms
✓ cleanup > should run multiple registered functions 0ms
✓ cleanup > should run cleanupFunctions BEFORE draining stdin and BEFORE runSyncCleanup 52ms
✓ cleanup > should continue running cleanup functions even if one throws an error 3ms
✓ cleanup > sync cleanup > should run registered sync functions 0ms
✓ cleanup > sync cleanup > should continue running sync cleanup functions even if one throws 0ms
✓ cleanup > cleanupCheckpoints > should remove checkpoints directory 1ms
✓ cleanup > cleanupCheckpoints > should ignore errors during checkpoint removal 1ms
✓ signal and TTY handling > setupSignalHandlers > should register handlers for SIGHUP, SIGTERM, and SIGINT 0ms
× signal and TTY handling > setupSignalHandlers > should gracefully shutdown when SIGHUP is received 5ms
→ expected 0 to be greater than 0
× signal and TTY handling > setupSignalHandlers > should register SIGTERM handler that can trigger shutdown 0ms
→ expected 0 to be greater than 0
✓ signal and TTY handling > setupTtyCheck > should return a cleanup function 1ms
✓ signal and TTY handling > setupTtyCheck > should not exit when both stdin and stdout are TTY 1ms
✓ signal and TTY handling > setupTtyCheck > should exit when both stdin and stdout are not TTY 1ms
✓ signal and TTY handling > setupTtyCheck > should not check when SANDBOX env is set 1ms
✓ signal and TTY handling > setupTtyCheck > cleanup function should stop the interval 0ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h]0;◇ Ready (cli) [?2004h]0;◇ Ready (cli) [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h]0;◇ Ready (cli) [?2004hError: The --prompt-interactive flag cannot be used when input is piped from stdin.
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h1 MCP server is not allowlisted by your administrator. To enable it, please request an update to the settings at: https://goo.gle/manage-gemini-cli[?2004h[?2004h1 MCP server is not allowlisted by your administrator. To enable it, please request an update to the settings at: https://goo.gle/manage-gemini-cli[?2004h[?2004h[?2004h ✓ src/ui/components/shared/text-buffer.test.ts (225 tests) 3036ms
[?2004h[?2004h2 MCP servers are not allowlisted by your administrator. To enable them, please request an update to the settings at: https://goo.gle/manage-gemini-cli[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useGeminiStream.test.tsx (79 tests) 2655ms
[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/vim.test.tsx (144 tests) 3950ms
[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h]0;Gemini CLI (root) [?7l[?7h]0;Gemini CLI (root) [?7l[?7h]0;Gemini CLI (root) [?7l[?7h]0;Gemini CLI (root) [?7l[?7h]0;Gemini CLI (root) [?7l[?7h]0;Gemini CLI (root) [?7l[?7h[?7h ✓ src/ui/AppContainer.test.tsx (107 tests) 3694ms
✓ src/gemini.test.tsx (38 tests | 1 skipped) 5174ms
✓ gemini.tsx main function kitty protocol > should call setRawMode and detectCapabilities when isInteractive is true 1271ms
✓ gemini.tsx main function kitty protocol > should handle session selector error 1520ms
✓ gemini.tsx main function exit codes > should exit with 42 for session resume failure 716ms
✓ gemini.tsx main function exit codes > should validate and refresh auth in non-interactive mode when no auth type is selected but env var is present 510ms
✓ project hooks loading based on trust > should load project hooks when workspace is trusted 509ms
✓ project hooks loading based on trust > should NOT load project hooks when workspace is not trusted 509ms
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/contexts/KeypressContext.test.tsx (146 tests) 1630ms
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/config/config.test.ts (217 tests | 1 skipped) 7175ms
[?1006l[?1002l[?2004h[?2004h ✓ src/ui/components/shared/ScrollableList.test.tsx (7 tests) 2950ms
✓ ScrollableList Demo Behavior > should scroll to bottom when new items are added and stop when scrolled up 539ms
✓ ScrollableList Demo Behavior > Keyboard Navigation > should handle scroll keys correctly 1856ms
[?2004h[?25h[?2004h[?2004h[?2004h[?1006l[?1002l ✓ src/ui/hooks/useSelectionList.test.tsx (51 tests) 2365ms
[?25h[?2004h[?2004h[?2004h[?1006l[?1002l[?2004h ✓ src/ui/components/SkillInboxDialog.test.tsx (11 tests) 1856ms
✓ SkillInboxDialog > disables the project destination when the workspace is untrusted 317ms
[?25h ✓ src/ui/hooks/useSlashCompletion.test.ts (28 tests) 9851ms
✓ useSlashCompletion > Top-Level Commands > should suggest all top-level commands for the root slash 1057ms
✓ useSlashCompletion > Top-Level Commands > should show the same selectable auto/checkpoint menu for /chat and /resume 2062ms
✓ useSlashCompletion > Top-Level Commands > should not provide suggestions for a fully typed command that has no sub-commands or argument completion 1031ms
✓ useSlashCompletion > Top-Level Commands > should not suggest hidden commands 1036ms
✓ useSlashCompletion > Sub-Commands > should suggest sub-commands for a parent command 1032ms
✓ useSlashCompletion > Sub-Commands > should suggest all sub-commands when the query ends with the parent command and a space 1026ms
✓ useSlashCompletion > Command Kind Information > should include commandKind for MCP commands in suggestions 1035ms
✓ useSlashCompletion > Command Kind Information > should include commandKind for sub-commands 1030ms
[?25h[?1006l[?1002l ✓ src/test-utils/AppRig.test.tsx (2 tests) 2220ms
✓ AppRig > should handle deterministic tool turns with breakpoints 1310ms
✓ AppRig > should render the app and handle a simple message 909ms
[?25h ✓ src/config/extension.test.ts (82 tests) 1184ms
✓ src/ui/hooks/useAtCompletion.test.ts (18 tests) 1699ms
[?25h ✓ src/ui/hooks/useExecutionLifecycle.test.tsx (36 tests) 1781ms
✓ useExecutionLifecycle > Background Shell Management > should hide background shell when waiting for confirmation and restore after delay 338ms
✓ useExecutionLifecycle > Background Shell Management > should auto-hide background shell when foreground shell starts and restore when it ends 435ms
[?25h ✓ src/ui/components/Composer.test.tsx (58 tests) 717ms
[?25h ✓ src/config/extension-manager.test.ts (15 tests) 1438ms
[?1006l[?1002l[?2004h[?1006l[?1002l ✓ src/config/extension-manager-hydration.test.ts (4 tests) 1246ms
✓ ExtensionManager hydration > should hydrate skill body with extension settings 451ms
✓ ExtensionManager hydration > should hydrate agent system prompt with extension settings 334ms
✓ src/integration-tests/modelSteering.test.tsx (1 test) 1486ms
✓ Model Steering Integration > should steer the model using a hint during a tool turn 1485ms
✓ src/config/config.integration.test.ts (14 tests) 790ms
✓ Configuration Integration Tests > Approval Mode Integration Tests > 'should parse --approval-mode=auto_edi…' 719ms
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/RewindViewer.test.tsx (15 tests) 720ms
[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/shared/performance.test.ts (3 tests) 783ms
✓ text-buffer performance > should handle character-by-character insertion in a large buffer efficiently 633ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/utils/MarkdownDisplay.test.tsx (30 tests) 1198ms
✓ src/ui/components/messages/DiffRenderer.test.tsx (26 tests) 1360ms
[?25h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/slashCommandProcessor.test.tsx (33 tests) 1143ms
[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/FolderTrustDialog.test.tsx (18 tests) 1109ms
✓ src/ui/hooks/useCommandCompletion.test.tsx (34 tests) 1172ms
[?25h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/AgentConfigDialog.test.tsx (12 tests) 999ms
[?2004h[?2004h[?25h[?2004h[?2004h ✓ src/ui/components/messages/ToolMessage.test.tsx (25 tests) 579ms
[?25h ✓ src/ui/auth/AuthDialog.test.tsx (24 tests) 1005ms
[?25h ✓ src/ui/hooks/useQuotaAndFallback.test.ts (28 tests) 936ms
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/config/extension-manager-skills.test.ts (3 tests) 685ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/messages/ShellToolMessage.test.tsx (16 tests) 795ms
[?25h ✓ src/ui/App.test.tsx (12 tests) 785ms
[?25h ✓ src/utils/sessionCleanup.test.ts (63 tests) 693ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004hWARNING: Workspace policies changed or are new. Automatically accepting and loading them.
[?2004h ✓ src/ui/hooks/useTabbedNavigation.test.ts (23 tests) 742ms
[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/config/workspace-policy-cli.test.ts (8 tests) 492ms
[?2004h[?2004h ✓ src/ui/components/StatsDisplay.test.tsx (15 tests) 814ms
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/config/extension-manager-agents.test.ts (2 tests) 624ms
✓ ExtensionManager agents loading > should load agents from an extension 414ms
✓ src/ui/components/AppHeader.test.tsx (11 tests) 596ms
[?25h ✓ src/nonInteractiveCliAgentSession.test.ts (50 tests) 612ms
✓ runNonInteractive > should handle cancellation (Ctrl+C) 406ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/EmptyWalletDialog.test.tsx (11 tests) 571ms
[?2004h[?25h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/OverageMenuDialog.test.tsx (11 tests) 598ms
[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/ShellInputPrompt.test.tsx (12 tests) 641ms
[?2004h[?2004h[?25h[?2004h[?2004h[?2004h ✓ src/ui/components/DialogManager.test.tsx (19 tests) 636ms
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/views/ExtensionDetails.test.tsx (12 tests) 708ms
[?25h ✓ src/ui/components/shared/TextInput.test.tsx (15 tests) 692ms
✓ src/ui/components/ModelStatsDisplay.test.tsx (11 tests) 594ms
[?25h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/messages/CompressionMessage.test.tsx (17 tests) 596ms
[?2004h[?25h ✓ src/config/settings.test.ts (101 tests) 435ms
✓ src/ui/auth/BannedAccountDialog.test.tsx (10 tests) 534ms
[?25h(node:74652) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 11 abort listeners added to [AbortSignal]. MaxListeners is 10. Use events.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
✓ src/ui/hooks/useApprovalModeIndicator.test.ts (21 tests) 632ms
[?25h ✓ src/ui/utils/clipboardUtils.test.ts (44 tests) 160ms
[?2004h[?2004h[?2004h[?2004h ✓ src/services/FileCommandLoader.test.ts (44 tests) 229ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/contexts/MouseContext.test.tsx (18 tests) 595ms
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/EditorSettingsDialog.test.tsx (5 tests) 512ms
[?25h ✓ src/ui/components/shared/Scrollable.test.tsx (9 tests) 569ms
[?25h ✓ src/nonInteractiveCli.test.ts (45 tests) 565ms
✓ runNonInteractive > should handle cancellation (Ctrl+C) 418ms
✓ src/ui/components/AnsiOutput.test.tsx (16 tests) 555ms
[?25h src/ui/components/MultiFolderTrustDialog.test.tsx (8 tests | 1 failed) 573ms
✓ MultiFolderTrustDialog > renders the dialog with the list of folders 121ms
✓ MultiFolderTrustDialog > calls onComplete and finishAddingDirectories with an error on escape 64ms
✓ MultiFolderTrustDialog > calls finishAddingDirectories with an error and does not add directories when "No" is chosen 56ms
✓ MultiFolderTrustDialog > adds directories to workspace context when "Yes" is chosen 69ms
✓ MultiFolderTrustDialog > adds directories to workspace context and remembers them as trusted when "Yes, and remember" is chosen 56ms
× MultiFolderTrustDialog > shows submitting message after a choice is made 87ms
→ expected ' ╭───────────────────────────────────…' to contain 'Applying trust settings...'
✓ MultiFolderTrustDialog > shows an error message and completes when config is missing 62ms
✓ MultiFolderTrustDialog > collects and reports errors when some directories fail to be added 58ms
[?25h ✓ src/services/BuiltinCommandLoader.test.ts (17 tests) 404ms
✓ src/ui/hooks/atCommandProcessor.test.ts (59 tests) 539ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/privacy/CloudFreePrivacyNotice.test.tsx (9 tests) 501ms
[?25h ✓ src/ui/components/shared/TabHeader.test.tsx (13 tests) 536ms
[?25h[?2004h[?2004h ✓ src/ui/components/messages/Todo.test.tsx (14 tests) 556ms
[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/PermissionsModifyTrustDialog.test.tsx (7 tests) 456ms
[?25h ✓ src/ui/components/SessionSummaryDisplay.test.tsx (6 tests) 489ms
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/ToastDisplay.test.tsx (19 tests) 414ms
[?2004h[?25h[?2004h[?2004h ✓ src/ui/components/views/ExtensionRegistryView.test.tsx (6 tests) 431ms
[?25h ✓ src/ui/components/ProQuotaDialog.test.tsx (10 tests) 404ms
[?25h ✓ src/ui/hooks/useInputHistoryStore.test.ts (14 tests) 441ms
[?25h ✓ src/ui/hooks/useShellHistory.test.ts (7 tests) 378ms
[?25h ✓ src/ui/hooks/useSessionResume.test.ts (14 tests) 405ms
✓ src/ui/hooks/useHistoryManager.test.ts (14 tests) 383ms
[?25h[?25h ✓ src/ui/hooks/usePhraseCycler.test.tsx (11 tests) 204ms
[?25h ✓ src/ui/components/views/ExtensionsList.test.tsx (11 tests) 365ms
[?25h[?2004h ✓ src/ui/components/shared/MaxSizedBox.test.tsx (13 tests) 299ms
✓ src/ui/hooks/useInputHistory.test.ts (14 tests) 436ms
[?25h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/AboutBox.test.tsx (6 tests) 315ms
[?25h ✓ src/ui/hooks/usePermissionsModifyTrust.test.ts (13 tests) 392ms
[?25h ✓ src/ui/auth/ApiAuthDialog.test.tsx (6 tests) 370ms
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/messages/ToolMessageFocusHint.test.tsx (5 tests) 237ms
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/messages/ToolMessageRawMarkdown.test.tsx (6 tests) 333ms
[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/LogoutConfirmationDialog.test.tsx (5 tests) 397ms
[?25h ✓ src/ui/components/GradientRegression.test.tsx (5 tests) 287ms
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/ShortcutsHelp.test.tsx (5 tests) 251ms
[?25h ✓ src/ui/components/BubblingRegression.test.tsx (1 test) 244ms
✓ src/ui/hooks/useToolScheduler.test.ts (13 tests) 338ms
[?25h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/messages/ToolGroupMessage.compact.test.tsx (4 tests) 308ms
[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useKeypress.test.tsx (22 tests) 317ms
[?25h ✓ src/ui/components/Help.test.tsx (3 tests) 190ms
[?25h ✓ src/ui/components/messages/SubagentProgressDisplay.test.tsx (9 tests) 324ms
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/ShowMoreLines.test.tsx (8 tests) 307ms
✓ src/ui/components/NewAgentsNotification.test.tsx (3 tests) 319ms
[?25h[?25h ✓ src/ui/components/IdeTrustChangeDialog.test.tsx (6 tests) 385ms
[?25h ✓ src/utils/devtoolsService.test.ts (19 tests) 326ms
✓ src/ui/hooks/useEditorSettings.test.tsx (10 tests) 300ms
[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/views/ToolsList.test.tsx (3 tests) 161ms
[?2004h[?2004h[?25h ✓ src/ui/components/DetailedMessagesDisplay.test.tsx (5 tests) 240ms
[?25h ✓ src/config/trustedFolders.test.ts (32 tests) 275ms
[?2004h ✓ src/ui/components/ToolStatsDisplay.test.tsx (5 tests) 336ms
[?2004h[?25h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/messages/TopicMessage.test.tsx (6 tests) 241ms
[?25h[?2004h[?2004h[?2004h ✓ src/ui/components/messages/SubagentGroupDisplay.test.tsx (3 tests) 320ms
[?25h ✓ src/ui/components/views/SkillsList.test.tsx (6 tests) 302ms
[?25h[?2004h[?2004h[?2004h ✓ src/ui/components/StatusDisplay.test.tsx (7 tests) 264ms
[?25h[?2004h ✓ src/ui/components/RewindConfirmation.test.tsx (4 tests) 280ms
[?25h ✓ src/ui/components/Header.test.tsx (7 tests) 270ms
[?25h ✓ src/ui/auth/AuthInProgress.test.tsx (5 tests) 263ms
[?25h[?2004h[?2004h ✓ src/ui/components/messages/ToolOverflowConsistencyChecks.test.tsx (2 tests) 253ms
[?25h ✓ src/config/extensions/extensionSettings.test.ts (33 tests) 252ms
✓ src/ui/hooks/useSettingsNavigation.test.ts (8 tests) 242ms
[?25hTEST: calling prompt
TEST: waiting for streamStarted
TEST: asyncStream started
TEST: waiting for read
TEST: streamStarted
TEST: cancelled
TEST: stream closed
TEST: read returned done=true
TEST: releasing lock
TEST: result received {"stopReason":"cancelled"}
✓ src/acp/acpClient.test.ts (60 tests) 172ms
[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/ConsentPrompt.test.tsx (5 tests) 305ms
[?25h ✓ src/ui/components/PolicyUpdateDialog.test.tsx (4 tests) 271ms
[?25h ✓ src/ui/hooks/useExtensionUpdates.test.tsx (4 tests) 298ms
[?25h ✓ src/ui/components/ChecklistItem.test.tsx (7 tests) 354ms
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/messages/GeminiMessage.test.tsx (5 tests) 306ms
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/ContextUsageDisplay.test.tsx (5 tests) 217ms
[?2004h[?2004h[?25h ✓ src/ui/hooks/useAgentStream.test.tsx (6 tests) 240ms
[?25h[?2004h[?2004h[?2004h[?2004h ✓ src/config/extension-manager-themes.spec.ts (2 tests) 195ms
[?2004h[?2004h[?2004h ✓ src/ui/hooks/useFocus.test.tsx (7 tests) 255ms
[?25h ✓ src/ui/hooks/useBatchedScroll.test.ts (7 tests) 231ms
[?25h ✓ src/ui/contexts/ToolActionsContext.test.tsx (8 tests) 255ms
[?25h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/messages/ToolGroupMessageRegression.test.tsx (4 tests) 193ms
[?25h ✓ src/ui/hooks/useGitBranchName.test.tsx (7 tests) 256ms
✓ src/config/policy-engine.integration.test.ts (19 tests) 264ms
[?25h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/ProgressBar.test.tsx (4 tests) 182ms
[?25h ✓ src/ui/components/GeminiRespondingSpinner.test.tsx (5 tests) 178ms
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/messages/ToolResultDisplayOverflow.test.tsx (3 tests) 262ms
[?2004h[?25h[?2004h[?2004h ✓ src/ui/components/shared/RadioButtonSelect.test.tsx (5 tests) 177ms
[?25h ✓ src/ui/privacy/CloudPaidPrivacyNotice.test.tsx (2 tests) 152ms
[?25h ✓ src/ui/components/ApprovalModeIndicator.test.tsx (6 tests) 215ms
✓ src/ui/components/messages/ToolShared.test.tsx (5 tests) 201ms
[?25h[?25h ✓ src/ui/components/Checklist.test.tsx (5 tests) 200ms
[?25h ✓ src/ui/components/QueuedMessageDisplay.test.tsx (5 tests) 190ms
[?25h ✓ src/ui/hooks/useMessageQueue.test.tsx (15 tests) 211ms
[?25h ✓ src/ui/hooks/useFolderTrust.test.ts (13 tests) 105ms
[?25h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useIncludeDirsTrust.test.tsx (6 tests) 205ms
✓ src/ui/components/StatusRow.test.tsx (3 tests) 216ms
[?25h ✓ src/ui/components/ColorsDisplay.test.tsx (1 test) 182ms
[?25h[?25h ✓ src/ui/commands/setupGithubCommand.test.ts (10 tests) 153ms
✓ src/ui/hooks/useBackgroundTaskManager.test.tsx (6 tests) 280ms
[?25h ✓ src/ui/components/shared/SlicingMaxSizedBox.test.tsx (5 tests) 193ms
[?25h ✓ src/ui/components/SessionBrowser/SessionBrowserSearchNav.test.tsx (5 tests) 187ms
[?25h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/StickyHeader.test.tsx (2 tests) 121ms
[?25h ✓ src/ui/commands/extensionsCommand.test.ts (58 tests) 119ms
✓ src/ui/components/LoopDetectionConfirmation.test.tsx (2 tests) 150ms
[?25h ✓ src/ui/hooks/useFlickerDetector.test.ts (6 tests) 201ms
[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useReverseSearchCompletion.test.tsx (10 tests) 165ms
[?25h[?2004h[?2004h ✓ src/ui/hooks/useShellCompletion.test.ts (34 tests) 115ms
[?2004h[?2004h ✓ src/utils/sandbox.test.ts (16 tests) 184ms
✓ src/ui/components/AdminSettingsChangedDialog.test.tsx (4 tests) 251ms
[?2004h[?25h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useIdeTrustListener.test.tsx (5 tests) 186ms
✓ src/ui/components/shared/SectionHeader.test.tsx (4 tests) 253ms
[?25h[?25h[?2004h[?2004h ✓ src/ui/components/shared/DescriptiveRadioButtonSelect.test.tsx (2 tests) 177ms
[?25h ✓ src/ui/privacy/PrivacyNotice.test.tsx (4 tests) 187ms
[?25h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/contexts/SessionContext.test.tsx (5 tests) 164ms
✓ src/utils/sessionUtils.test.ts (27 tests) 116ms
[?25h ✓ src/ui/components/ConfigInitDisplay.test.tsx (4 tests) 201ms
[?25h ✓ src/ui/components/messages/InfoMessage.test.tsx (3 tests) 138ms
[?25h ✓ src/ui/hooks/useAtCompletion_agents.test.ts (2 tests) 147ms
[?25h ✓ src/ui/components/Tips.test.tsx (2 tests) 117ms
✓ src/ui/layouts/DefaultAppLayout.test.tsx (3 tests) 152ms
[?25h[?25h ✓ src/ui/utils/commandUtils.test.ts (33 tests) 153ms
✓ src/ui/hooks/useRewind.test.ts (5 tests) 164ms
[?25h ✓ src/ui/components/ConsoleSummaryDisplay.test.tsx (3 tests) 157ms
[?25h ✓ src/ui/hooks/useBanner.test.ts (5 tests) 160ms
[?25h ✓ src/ui/contexts/TerminalContext.test.tsx (2 tests) 149ms
[?25h ✓ src/ui/components/ExitWarning.test.tsx (4 tests) 163ms
✓ src/ui/contexts/SettingsContext.test.tsx (5 tests) 198ms
[?25h[?25h ✓ src/ui/components/views/ChatList.test.tsx (3 tests) 151ms
✓ src/ui/hooks/useAnimatedScrollbar.test.tsx (7 tests) 98ms
[?25h ✓ src/ui/components/ContextSummaryDisplay.test.tsx (3 tests) 123ms
[?25h[?25h ✓ src/ui/hooks/useTerminalTheme.test.tsx (9 tests) 124ms
✓ src/ui/hooks/useLoadingIndicator.test.tsx (11 tests) 148ms
[?25h[?25h ✓ src/ui/components/QuotaDisplay.test.tsx (9 tests) 167ms
[?25h ✓ src/ui/privacy/GeminiPrivacyNotice.test.tsx (2 tests) 157ms
[?25h ✓ src/ui/commands/restoreCommand.test.ts (13 tests) 144ms
[?2004h[?2004h[?2004h ✓ src/ui/hooks/useTips.test.ts (3 tests) 159ms
[?25h ✓ src/ui/auth/LoginWithGoogleRestartDialog.test.tsx (4 tests) 154ms
[?25h ✓ src/ui/hooks/usePrivacySettings.test.tsx (4 tests) 135ms
✓ src/ui/hooks/vim-passthrough.test.tsx (4 tests) 132ms
[?25h[?25h ✓ src/ui/hooks/useTimer.test.tsx (8 tests) 81ms
✓ src/ui/hooks/useMouse.test.ts (4 tests) 141ms
[?25h[?25h ✓ src/ui/hooks/useMcpStatus.test.tsx (4 tests) 166ms
[?25h ✓ src/ui/hooks/useConsoleMessages.test.tsx (8 tests) 93ms
[?25h ✓ src/utils/toolOutputCleanup.test.ts (10 tests) 55ms
[?2004h[?2004h ✓ src/utils/skillUtils.test.ts (11 tests) 197ms
✓ src/ui/components/CliSpinner.test.tsx (2 tests) 114ms
[?25h ✓ src/ui/components/messages/ErrorMessage.test.tsx (2 tests) 112ms
[?25h ✓ src/ui/components/SessionBrowser/SessionBrowserStates.test.tsx (3 tests) 142ms
[?25h(node:75181) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 error listeners added to [EventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
✓ src/config/extensions/github.test.ts (34 tests) 135ms
✓ src/ui/commands/hooksCommand.test.ts (33 tests) 56ms
✓ src/ui/contexts/ScrollProvider.test.tsx (12 tests) 136ms
[?25h ✓ src/ui/hooks/useMouseClick.test.ts (2 tests) 132ms
[?25h ✓ src/ui/hooks/useSessionBrowser.test.ts (9 tests) 123ms
[?25h ✓ src/config/extension-manager-permissions.test.ts (3 tests) 41ms
✓ src/ui/components/messages/WarningMessage.test.tsx (2 tests) 121ms
[?25h ✓ src/ui/hooks/useAlternateBuffer.test.ts (5 tests) 109ms
[?25h ✓ src/ui/components/ShowMoreLinesLayout.test.tsx (2 tests) 119ms
[?25h ✓ src/ui/hooks/useInlineEditBuffer.test.ts (9 tests) 159ms
[?25h[?2004h[?2004h ✓ src/ui/components/DebugProfiler.test.tsx (15 tests) 83ms
[?25h ✓ src/ui/components/CopyModeWarning.test.tsx (2 tests) 116ms
[?25h ✓ src/ui/components/QuittingDisplay.test.tsx (2 tests) 117ms
[?2004h[?2004h[?25h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useSnowfall.test.tsx (5 tests) 120ms
[?25h ✓ src/ui/commands/agentsCommand.test.ts (20 tests) 36ms
✓ src/ui/hooks/useModelCommand.test.tsx (3 tests) 116ms
[?25h ✓ src/ui/hooks/useSuspend.test.ts (3 tests) 99ms
[?25h ✓ src/ui/components/UpdateNotification.test.tsx (1 test) 94ms
[?25h ✓ src/ui/components/RawMarkdownIndicator.test.tsx (2 tests) 114ms
[?25h ✓ src/commands/mcp/add.test.ts (20 tests) 98ms
✓ src/commands/mcp/remove.test.ts (6 tests) 97ms
✓ src/ui/components/ShellModeIndicator.test.tsx (1 test) 79ms
✓ src/ui/contexts/ScrollProvider.drag.test.tsx (6 tests) 95ms
[?25h[?25h ✓ src/utils/commentJson.test.ts (12 tests) 49ms
✓ src/commands/extensions/validate.test.ts (5 tests) 109ms
✓ src/ui/hooks/useHookDisplayState.test.ts (6 tests) 138ms
[?25h ✓ src/services/prompt-processors/shellProcessor.test.ts (34 tests) 94ms
✓ src/ui/components/ThemedGradient.test.tsx (1 test) 85ms
[?25h ✓ src/config/policy.test.ts (10 tests) 84ms
✓ src/ui/hooks/useShellInactivityStatus.test.ts (4 tests) 76ms
[?25h ✓ src/acp/acpResume.test.ts (2 tests) 81ms
✓ src/ui/hooks/useTurnActivityMonitor.test.ts (4 tests) 117ms
[?25h ✓ src/ui/components/MemoryUsageDisplay.test.tsx (2 tests) 125ms
[?25h ✓ src/ui/commands/skillsCommand.test.ts (23 tests) 104ms
✓ src/ui/hooks/useLogger.test.tsx (1 test) 57ms
[?25h ✓ src/ui/components/shared/vim-buffer-actions.test.ts (196 tests) 157ms
✓ src/ui/commands/chatCommand.test.ts (33 tests) 123ms
✓ src/ui/key/keyBindings.test.ts (20 tests) 93ms
✓ src/utils/sessionCleanup.integration.test.ts (6 tests) 142ms
✓ src/ui/hooks/atCommandProcessor_agents.test.ts (3 tests) 49ms
✓ src/ui/key/keyMatchers.test.ts (62 tests) 27ms
✓ src/ui/hooks/useMemoryMonitor.test.tsx (3 tests) 48ms
[?25h ✓ src/config/extension-manager-scope.test.ts (3 tests) 37ms
✓ src/utils/sessions.test.ts (17 tests) 10ms
✓ src/commands/extensions/configure.test.ts (9 tests) 46ms
✓ src/utils/userStartupWarnings.test.ts (9 tests) 71ms
✓ src/validateNonInterActiveAuth.test.ts (17 tests) 65ms
✓ src/ui/commands/planCommand.test.ts (7 tests) 39ms
✓ src/commands/extensions/update.test.ts (10 tests) 38ms
✓ src/commands/mcp.test.ts (3 tests) 22ms
✓ src/ui/commands/mcpCommand.test.ts (7 tests) 31ms
✓ src/commands/extensions/install.test.ts (14 tests) 31ms
✓ src/ui/utils/textUtils.test.ts (76 tests) 89ms
✓ src/config/extensions/storage.test.ts (5 tests) 26ms
✓ src/config/extensions/extensionEnablement.test.ts (48 tests) 32ms
✓ src/utils/handleAutoUpdate.test.ts (26 tests) 36ms
✓ src/ui/commands/permissionsCommand.test.ts (7 tests) 40ms
✓ src/ui/hooks/shellReducer.test.ts (17 tests) 60ms
✓ src/ui/commands/aboutCommand.test.ts (6 tests) 44ms
✓ src/ui/commands/authCommand.test.ts (9 tests) 26ms
✓ src/services/prompt-processors/atFileProcessor.test.ts (11 tests) 107ms
✓ src/ui/hooks/creditsFlowHandler.test.ts (14 tests) 109ms
✓ src/ui/commands/rewindCommand.test.tsx (13 tests) 42ms
✓ src/ui/themes/theme-manager.test.ts (24 tests) 37ms
✓ src/ui/commands/memoryCommand.test.ts (14 tests) 55ms
✓ src/commands/extensions/new.test.ts (4 tests) 40ms
✓ src/commands/hooks/migrate.test.ts (17 tests) 45ms
✓ src/ui/commands/copyCommand.test.ts (11 tests) 32ms
✓ src/deferred.test.ts (9 tests) 59ms
✓ src/utils/gitUtils.test.ts (24 tests) 36ms
✓ src/commands/mcp/list.test.ts (8 tests) 129ms
✓ src/ui/utils/terminalCapabilityManager.test.ts (30 tests) 80ms
✓ src/config/footerItems.test.ts (13 tests) 42ms
✓ src/config/settingsSchema.test.ts (27 tests) 36ms
✓ src/ui/commands/policiesCommand.test.ts (5 tests) 39ms
✓ src/utils/errors.test.ts (26 tests) 56ms
✓ src/ui/commands/directoryCommand.test.tsx (21 tests) 30ms
✓ src/ui/commands/ideCommand.test.ts (8 tests) 29ms
✓ src/ui/themes/color-utils.test.ts (40 tests) 34ms
✓ src/config/settings_validation_warning.test.ts (3 tests) 150ms
✓ src/commands/skills/install.test.ts (6 tests) 97ms
✓ src/ui/commands/modelCommand.test.ts (8 tests) 64ms
✓ src/ui/commands/upgradeCommand.test.ts (6 tests) 62ms
✓ src/config/sandboxConfig.test.ts (43 tests) 90ms
✓ src/commands/extensions/enable.test.ts (9 tests) 67ms
✓ src/config/extensions/update.test.ts (14 tests) 29ms
✓ src/ui/utils/formatters.test.ts (32 tests) 28ms
✓ src/utils/relaunch.test.ts (8 tests) 25ms
✓ src/commands/extensions/link.test.ts (5 tests) 25ms
✓ src/utils/sandboxUtils.test.ts (17 tests) 68ms
✓ src/utils/readStdin.test.ts (6 tests) 23ms
✓ src/gemini_cleanup.test.tsx (2 tests | 1 skipped) 34ms
✓ src/config/settings_repro.test.ts (1 test) 41ms
✓ src/utils/settingsUtils.test.ts (49 tests) 98ms
✓ src/ui/commands/toolsCommand.test.ts (9 tests) 56ms
✓ src/commands/extensions/uninstall.test.ts (12 tests) 28ms
✓ src/config/settings-validation.test.ts (25 tests) 20ms
✓ src/commands/extensions/disable.test.ts (12 tests) 38ms
✓ src/ui/commands/compressCommand.test.ts (6 tests) 70ms
✓ src/services/McpPromptLoader.test.ts (31 tests) 49ms
✓ src/utils/hookSettings.test.ts (8 tests) 27ms
✓ src/commands/extensions/list.test.ts (8 tests) 40ms
✓ src/acp/fileSystemService.test.ts (10 tests) 14ms
✓ src/config/mcp/mcpServerEnablement.test.ts (14 tests) 23ms
✓ src/ui/utils/updateCheck.test.ts (10 tests) 15ms
✓ src/acp/acpErrors.test.ts (7 tests) 6ms
✓ src/ui/utils/textOutput.test.ts (10 tests) 19ms
✓ src/utils/skillSettings.test.ts (10 tests) 29ms
✓ src/config/extensions/extensionUpdates.test.ts (2 tests) 14ms
✓ src/ui/utils/rewindFileOps.test.ts (9 tests) 15ms
✓ src/ui/commands/quitCommand.test.ts (1 test) 12ms
✓ src/ui/commands/docsCommand.test.ts (3 tests) 12ms
✓ src/ui/utils/markdownParsingUtils.test.ts (17 tests) 24ms
✓ src/services/CommandService.test.ts (5 tests) 20ms
✓ src/ui/commands/bugCommand.test.ts (3 tests) 28ms
✓ src/config/extensions/github_fetch.test.ts (8 tests) 10ms
✓ src/core/initializer.test.ts (5 tests) 11ms
✓ src/services/SlashCommandConflictHandler.test.ts (7 tests) 18ms
✓ src/utils/readStdin_safety.test.ts (2 tests) 8ms
✓ src/ui/commands/clearCommand.test.ts (2 tests) 13ms
✓ src/ui/commands/initCommand.test.ts (3 tests) 18ms
✓ src/ui/utils/terminalSetup.test.ts (12 tests) 33ms
✓ src/acp/commandHandler.test.ts (1 test) 6ms
✓ src/utils/terminalNotifications.test.ts (8 tests) 12ms
✓ src/ui/commands/statsCommand.test.ts (4 tests) 37ms
✓ src/config/extensionRegistryClient.test.ts (13 tests) 25ms
✓ src/ui/commands/settingsCommand.test.ts (2 tests) 10ms
✓ src/utils/installationInfo.test.ts (18 tests) 16ms
✓ src/ui/utils/ui-sizing.test.ts (4 tests) 5ms
✓ src/ui/commands/commandsCommand.test.ts (2 tests) 21ms
✓ src/commands/skills/list.test.ts (5 tests) 12ms
✓ src/utils/logCleanup.test.ts (4 tests) 8ms
✓ src/ui/hooks/shell-completions/gitProvider.test.ts (5 tests) 21ms
✓ src/utils/envVarResolver.test.ts (21 tests) 17ms
✓ src/commands/skills/uninstall.test.ts (5 tests) 12ms
✓ src/ui/hooks/shell-completions/npmProvider.test.ts (5 tests) 12ms
✓ src/ui/utils/urlSecurityUtils.test.ts (9 tests) 6ms
✓ src/ui/hooks/toolMapping.test.ts (22 tests) 12ms
✓ src/ui/utils/directoryUtils.test.ts (17 tests | 1 skipped) 11ms
✓ src/test-utils/mockCommandContext.test.ts (3 tests) 27ms
✓ src/services/prompt-processors/injectionParser.test.ts (21 tests) 11ms
✓ src/ui/commands/helpCommand.test.ts (2 tests) 12ms
✓ src/utils/windowTitle.test.ts (14 tests) 8ms
✓ src/commands/skills/link.test.ts (3 tests) 14ms
✓ src/ui/utils/highlight.test.ts (22 tests) 19ms
✓ src/utils/worktreeSetup.test.ts (4 tests) 15ms
✓ src/ui/commands/privacyCommand.test.ts (2 tests) 9ms
✓ src/services/SlashCommandResolver.test.ts (14 tests) 40ms
✓ src/ui/commands/corgiCommand.test.ts (2 tests) 10ms
✓ src/utils/featureToggleUtils.test.ts (7 tests) 12ms
✓ src/utils/commands.test.ts (18 tests) 9ms
✓ src/ui/key/keybindingUtils.test.ts (38 tests) 19ms
✓ src/utils/deepMerge.test.ts (17 tests) 12ms
✓ src/ui/commands/editorCommand.test.ts (2 tests) 9ms
✓ src/utils/agentSettings.test.ts (6 tests) 14ms
✓ src/ui/utils/ConsolePatcher.test.ts (12 tests) 19ms
✓ src/services/prompt-processors/argumentProcessor.test.ts (2 tests) 9ms
✓ src/utils/persistentState.test.ts (5 tests) 10ms
✓ src/services/SkillCommandLoader.test.ts (8 tests) 12ms
✓ src/ui/commands/themeCommand.test.ts (2 tests) 11ms
✓ src/commands/skills/disable.test.ts (4 tests) 7ms
✓ src/commands/extensions.test.tsx (3 tests) 9ms
✓ src/ui/utils/computeStats.test.ts (12 tests) 13ms
✓ src/core/auth.test.ts (6 tests) 14ms
✓ src/ui/themes/theme.test.ts (14 tests) 18ms
✓ src/ui/utils/toolLayoutUtils.test.ts (15 tests) 7ms
✓ src/utils/processUtils.test.ts (1 test) 6ms
✓ src/config/extensions/variables.test.ts (13 tests) 8ms
✓ src/ui/components/SessionBrowser/utils.test.ts (9 tests) 6ms
✓ src/utils/dialogScopeUtils.test.ts (4 tests) 6ms
✓ src/commands/skills/enable.test.ts (4 tests) 11ms
✓ src/commands/skills.test.tsx (3 tests) 8ms
✓ src/utils/updateEventEmitter.test.ts (1 test) 5ms
✓ src/utils/events.test.ts (2 tests) 4ms
✓ src/core/theme.test.ts (3 tests) 6ms
✓ src/ui/utils/mouse.test.ts (17 tests) 15ms
✓ src/ui/utils/markdownUtilities.test.ts (7 tests) 6ms
✓ src/utils/agentUtils.test.ts (8 tests) 4ms
✓ src/ui/state/extensions.test.ts (15 tests) 9ms
✓ src/config/auth.test.ts (8 tests) 9ms
✓ src/ui/commands/terminalSetupCommand.test.ts (5 tests) 6ms
✓ src/ui/utils/pendingAttentionNotification.test.ts (3 tests) 6ms
✓ src/utils/hookUtils.test.ts (8 tests) 4ms
✓ src/ui/commands/tasksCommand.test.ts (3 tests) 6ms
✓ src/acp/commands/help.test.ts (1 test) 5ms
✓ src/ui/utils/input.test.ts (6 tests) 4ms
✓ src/utils/jsonoutput.test.ts (15 tests) 7ms
✓ src/utils/tierUtils.test.ts (3 tests) 4ms
✓ src/config/settingPaths.test.ts (2 tests) 8ms
✓ src/ui/utils/displayUtils.test.ts (8 tests) 5ms
✓ src/commands/utils.test.ts (2 tests) 6ms
✓ src/utils/startupWarnings.test.ts (4 tests) 24ms
✓ src/utils/resolvePath.test.ts (7 tests) 5ms
✓ src/utils/math.test.ts (7 tests) 5ms
✓ src/utils/activityLogger.test.ts (6 tests) 6ms
✓ src/ui/commands/resumeCommand.test.ts (3 tests) 6ms
✓ src/ui/utils/clipboardUtils.windows.test.ts (1 test) 3ms
⎯⎯⎯⎯⎯⎯ Failed Tests 184 ⎯⎯⎯⎯⎯⎯
FAIL src/ui/IdeIntegrationNudge.test.tsx > IdeIntegrationNudge > handles Escape key press
AssertionError: expected "spy" to be called with arguments: [ { userSelection: 'no', …(1) } ]
Number of calls: 0

src/ui/IdeIntegrationNudge.test.tsx:156:24
154| });
155|
156| expect(onComplete).toHaveBeenCalledWith({
| ^
157| userSelection: 'no',
158| isExtensionPreInstalled: false,
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/184]⎯
FAIL src/ui/ToolConfirmationFullFrame.test.tsx > Full Terminal Tool Confirmation Snapshot > renders tool confirmation box in the frame of the entire terminal
Error: Snapshot `Full Terminal Tool Confirmation Snapshot > renders tool confirmation box in the frame of the entire terminal 1` mismatched
- Expected
+ Received
@@ -1,6 +1,6 @@
- " > Can you edit InputPrompt.tsx for me? 
+ " > Can you edit InputPrompt.tsx for me?
 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
 ╭─────────────────────────────────────────────────────────────────────────────────────────────────╮
 │ ? Edit packages/.../InputPrompt.tsx: return kittyProtocolSupporte... => return kittyProto… │
 │ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:73:34
71|
72| // Assert the text matches standard snapshot, stripping ANSI for sta…
73| expect(stripAnsi(textContent)).toMatchSnapshot();
| ^
74|
75| // Assert the SVG matches the file snapshot
src/ui/ToolConfirmationFullFrame.test.tsx:174:46
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/184]⎯
FAIL src/test-utils/render.test.tsx > render > should support rerender
Error: lastFrame() returned an empty string. If this is intentional, use lastFrame({ allowEmpty: true }). Otherwise, ensure you are calling await waitUntilReady() and that the component is rendering correctly.
lastFrame src/test-utils/render.tsx:201:13
199|
200| if (normalized === '' && !options.allowEmpty) {
201| throw new Error(
| ^
202| 'lastFrame() returned an empty string. If this is intentional,…
203| 'Otherwise, ensure you are calling await waitUntilReady() an…
src/test-utils/render.test.tsx:28:12
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/184]⎯
FAIL src/utils/cleanup.test.ts > signal and TTY handling > setupSignalHandlers > should gracefully shutdown when SIGHUP is received
AssertionError: expected 0 to be greater than 0
src/utils/cleanup.test.ts:214:37
212|
213| const sighupHandlers = processOnHandlers.get('SIGHUP') || [];
214| expect(sighupHandlers.length).toBeGreaterThan(0);
| ^
215|
216| await sighupHandlers[0]?.();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/184]⎯
FAIL src/utils/cleanup.test.ts > signal and TTY handling > setupSignalHandlers > should register SIGTERM handler that can trigger shutdown
AssertionError: expected 0 to be greater than 0
src/utils/cleanup.test.ts:225:38
223|
224| const sigtermHandlers = processOnHandlers.get('SIGTERM') || [];
225| expect(sigtermHandlers.length).toBeGreaterThan(0);
| ^
226| // eslint-disable-next-line no-restricted-syntax
227| expect(typeof sigtermHandlers[0]).toBe('function');
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/184]⎯
FAIL src/config/extensions/consent.test.ts > consent > maybeRequestConsentOrFail > consent string generation > should generate a consent string with all fields
Error: Snapshot `consent > maybeRequestConsentOrFail > consent string generation > should generate a consent string with all fields 2` mismatched
- Expected
+ Received
@@ -8,11 +8,11 @@
 <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">This extension will run the following MCP servers: </text>
 <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> * server1 (local): npm start </text>
 <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> * server2 (remote): https://remote.com </text>
 <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">This extension will append info to your gemini.md context using my-context.md </text>
 <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">This extension will exclude the following core tools: tool1,tool2 </text>
- <text x="0" y="121" fill="#cdcd00" textLength="891" lengthAdjust="spacingAndGlyphs">The extension you are about to install may have been created by a third-party developer and sourced</text>
+ <text x="0" y="121" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">The extension you are about to install may have been created by a third-party developer and sourced </text>
- <text x="0" y="138" fill="#cdcd00" textLength="882" lengthAdjust="spacingAndGlyphs">from a public repository. Google does not vet, endorse, or guarantee the functionality or security</text>
+ <text x="0" y="138" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">from a public repository. Google does not vet, endorse, or guarantee the functionality or security </text>
- <text x="0" y="155" fill="#cdcd00" textLength="846" lengthAdjust="spacingAndGlyphs">of extensions. Please carefully inspect any extension and its source code before installing to</text>
+ <text x="0" y="155" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">of extensions. Please carefully inspect any extension and its source code before installing to </text>
- <text x="0" y="172" fill="#cdcd00" textLength="630" lengthAdjust="spacingAndGlyphs">understand the permissions it requires and the actions it may perform.</text>
+ <text x="0" y="172" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">understand the permissions it requires and the actions it may perform. </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
expectConsentSnapshot src/config/extensions/consent.test.ts:65:3
src/config/extensions/consent.test.ts:211:9
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/184]⎯
FAIL src/config/extensions/consent.test.ts > consent > maybeRequestConsentOrFail > consent string generation > should include warning when hooks are present
Error: Snapshot `consent > maybeRequestConsentOrFail > consent string generation > should include warning when hooks are present 2` mismatched
- Expected
+ Received
@@ -4,11 +4,11 @@
 </style>
 <rect width="920" height="139" fill="#000000" />
 <g transform="translate(10, 10)">
 <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Installing extension &quot;test-ext&quot;. </text>
 <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">⚠️ This extension contains Hooks which can automatically execute commands. </text>
- <text x="0" y="53" fill="#cdcd00" textLength="891" lengthAdjust="spacingAndGlyphs">The extension you are about to install may have been created by a third-party developer and sourced</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">The extension you are about to install may have been created by a third-party developer and sourced </text>
- <text x="0" y="70" fill="#cdcd00" textLength="882" lengthAdjust="spacingAndGlyphs">from a public repository. Google does not vet, endorse, or guarantee the functionality or security</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">from a public repository. Google does not vet, endorse, or guarantee the functionality or security </text>
- <text x="0" y="87" fill="#cdcd00" textLength="846" lengthAdjust="spacingAndGlyphs">of extensions. Please carefully inspect any extension and its source code before installing to</text>
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">of extensions. Please carefully inspect any extension and its source code before installing to </text>
- <text x="0" y="104" fill="#cdcd00" textLength="630" lengthAdjust="spacingAndGlyphs">understand the permissions it requires and the actions it may perform.</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">understand the permissions it requires and the actions it may perform. </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
expectConsentSnapshot src/config/extensions/consent.test.ts:65:3
src/config/extensions/consent.test.ts:276:9
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[7/184]⎯
FAIL src/config/extensions/consent.test.ts > consent > maybeRequestConsentOrFail > consent string generation > should request consent if extension is migrated
Error: Snapshot `consent > maybeRequestConsentOrFail > consent string generation > should request consent if extension is migrated 2` mismatched
- Expected
+ Received
@@ -3,11 +3,11 @@
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="122" fill="#000000" />
 <g transform="translate(10, 10)">
 <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Migrating extension &quot;old-ext&quot; to a new repository, renaming to &quot;test-ext&quot;, and installing updates. </text>
- <text x="0" y="36" fill="#cdcd00" textLength="891" lengthAdjust="spacingAndGlyphs">The extension you are about to install may have been created by a third-party developer and sourced</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">The extension you are about to install may have been created by a third-party developer and sourced </text>
- <text x="0" y="53" fill="#cdcd00" textLength="882" lengthAdjust="spacingAndGlyphs">from a public repository. Google does not vet, endorse, or guarantee the functionality or security</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">from a public repository. Google does not vet, endorse, or guarantee the functionality or security </text>
- <text x="0" y="70" fill="#cdcd00" textLength="846" lengthAdjust="spacingAndGlyphs">of extensions. Please carefully inspect any extension and its source code before installing to</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">of extensions. Please carefully inspect any extension and its source code before installing to </text>
- <text x="0" y="87" fill="#cdcd00" textLength="630" lengthAdjust="spacingAndGlyphs">understand the permissions it requires and the actions it may perform.</text>
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">understand the permissions it requires and the actions it may perform. </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
expectConsentSnapshot src/config/extensions/consent.test.ts:65:3
src/config/extensions/consent.test.ts:307:9
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[8/184]⎯
FAIL src/config/extensions/consent.test.ts > consent > maybeRequestConsentOrFail > consent string generation > should request consent if skills change
Error: Snapshot `consent > maybeRequestConsentOrFail > consent string generation > should request consent if skills change 2` mismatched
- Expected
+ Received
@@ -8,25 +8,21 @@
 <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">This extension will run the following MCP servers: </text>
 <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> * server1 (local): npm start </text>
 <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> * server2 (remote): https://remote.com </text>
 <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">This extension will append info to your gemini.md context using my-context.md </text>
 <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">This extension will exclude the following core tools: tool1,tool2 </text>
- <text x="0" y="121" fill="#ffffff" textLength="117" lengthAdjust="spacingAndGlyphs" font-weight="bold">Agent Skills:</text>
+ <text x="0" y="121" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Agent Skills: </text>
 <text x="0" y="155" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">This extension will install the following agent skills: </text>
- <text x="0" y="189" fill="#ffffff" textLength="36" lengthAdjust="spacingAndGlyphs"> * </text>
- <text x="36" y="189" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs" font-weight="bold">skill1</text>
-  <text x="90" y="189" fill="#ffffff" textLength="810" lengthAdjust="spacingAndGlyphs">: desc1 </text>
+ <text x="0" y="189" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> * skill1: desc1 </text>
 <text x="0" y="206" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> (Source: /mock/temp/dir/skill1/SKILL.md) (2 items in directory) </text>
- <text x="0" y="240" fill="#ffffff" textLength="36" lengthAdjust="spacingAndGlyphs"> * </text>
- <text x="36" y="240" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs" font-weight="bold">skill2</text>
-  <text x="90" y="240" fill="#ffffff" textLength="810" lengthAdjust="spacingAndGlyphs">: desc2 </text>
+ <text x="0" y="240" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> * skill2: desc2 </text>
 <text x="0" y="257" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> (Source: /mock/temp/dir/skill2/SKILL.md) (1 items in directory) </text>
- <text x="0" y="308" fill="#cdcd00" textLength="891" lengthAdjust="spacingAndGlyphs">The extension you are about to install may have been created by a third-party developer and sourced</text>
+ <text x="0" y="308" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">The extension you are about to install may have been created by a third-party developer and sourced </text>
- <text x="0" y="325" fill="#cdcd00" textLength="882" lengthAdjust="spacingAndGlyphs">from a public repository. Google does not vet, endorse, or guarantee the functionality or security</text>
+ <text x="0" y="325" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">from a public repository. Google does not vet, endorse, or guarantee the functionality or security </text>
- <text x="0" y="342" fill="#cdcd00" textLength="846" lengthAdjust="spacingAndGlyphs">of extensions. Please carefully inspect any extension and its source code before installing to</text>
+ <text x="0" y="342" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">of extensions. Please carefully inspect any extension and its source code before installing to </text>
- <text x="0" y="359" fill="#cdcd00" textLength="630" lengthAdjust="spacingAndGlyphs">understand the permissions it requires and the actions it may perform.</text>
+ <text x="0" y="359" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">understand the permissions it requires and the actions it may perform. </text>
- <text x="0" y="393" fill="#cdcd00" textLength="882" lengthAdjust="spacingAndGlyphs">Agent skills inject specialized instructions and domain-specific knowledge into the agent&apos;s system</text>
+ <text x="0" y="393" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Agent skills inject specialized instructions and domain-specific knowledge into the agent&apos;s system </text>
- <text x="0" y="410" fill="#cdcd00" textLength="891" lengthAdjust="spacingAndGlyphs">prompt. This can change how the agent interprets your requests and interacts with your environment.</text>
+ <text x="0" y="410" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">prompt. This can change how the agent interprets your requests and interacts with your environment. </text>
- <text x="0" y="427" fill="#cdcd00" textLength="864" lengthAdjust="spacingAndGlyphs">Review the skill definitions at the location(s) provided below to ensure they meet your security</text>
+ <text x="0" y="427" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Review the skill definitions at the location(s) provided below to ensure they meet your security </text>
- <text x="0" y="444" fill="#cdcd00" textLength="90" lengthAdjust="spacingAndGlyphs">standards.</text>
+ <text x="0" y="444" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">standards. </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
expectConsentSnapshot src/config/extensions/consent.test.ts:65:3
src/config/extensions/consent.test.ts:354:9
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[9/184]⎯
FAIL src/config/extensions/consent.test.ts > consent > maybeRequestConsentOrFail > consent string generation > should show a warning if the skill directory cannot be read
Error: Snapshot `consent > maybeRequestConsentOrFail > consent string generation > should show a warning if the skill directory cannot be read 2` mismatched
- Expected
+ Received
@@ -3,22 +3,19 @@
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="343" fill="#000000" />
 <g transform="translate(10, 10)">
 <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Installing extension &quot;test-ext&quot;. </text>
- <text x="0" y="36" fill="#ffffff" textLength="117" lengthAdjust="spacingAndGlyphs" font-weight="bold">Agent Skills:</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Agent Skills: </text>
 <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">This extension will install the following agent skills: </text>
- <text x="0" y="104" fill="#ffffff" textLength="36" lengthAdjust="spacingAndGlyphs"> * </text>
- <text x="36" y="104" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs" font-weight="bold">locked-skill</text>
-  <text x="144" y="104" fill="#ffffff" textLength="756" lengthAdjust="spacingAndGlyphs">: A skill in a locked dir </text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> * locked-skill: A skill in a locked dir </text>
- <text x="0" y="121" fill="#ffffff" textLength="405" lengthAdjust="spacingAndGlyphs"> (Source: /mock/temp/dir/locked/SKILL.md) </text>
-  <text x="405" y="121" fill="#cd0000" textLength="342" lengthAdjust="spacingAndGlyphs">⚠️ (Could not count items in directory)</text>
+ <text x="0" y="121" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> (Source: /mock/temp/dir/locked/SKILL.md) ⚠️ (Could not count items in directory) </text>
- <text x="0" y="172" fill="#cdcd00" textLength="891" lengthAdjust="spacingAndGlyphs">The extension you are about to install may have been created by a third-party developer and sourced</text>
+ <text x="0" y="172" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">The extension you are about to install may have been created by a third-party developer and sourced </text>
- <text x="0" y="189" fill="#cdcd00" textLength="882" lengthAdjust="spacingAndGlyphs">from a public repository. Google does not vet, endorse, or guarantee the functionality or security</text>
+ <text x="0" y="189" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">from a public repository. Google does not vet, endorse, or guarantee the functionality or security </text>
- <text x="0" y="206" fill="#cdcd00" textLength="846" lengthAdjust="spacingAndGlyphs">of extensions. Please carefully inspect any extension and its source code before installing to</text>
+ <text x="0" y="206" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">of extensions. Please carefully inspect any extension and its source code before installing to </text>
- <text x="0" y="223" fill="#cdcd00" textLength="630" lengthAdjust="spacingAndGlyphs">understand the permissions it requires and the actions it may perform.</text>
+ <text x="0" y="223" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">understand the permissions it requires and the actions it may perform. </text>
- <text x="0" y="257" fill="#cdcd00" textLength="882" lengthAdjust="spacingAndGlyphs">Agent skills inject specialized instructions and domain-specific knowledge into the agent&apos;s system</text>
+ <text x="0" y="257" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Agent skills inject specialized instructions and domain-specific knowledge into the agent&apos;s system </text>
- <text x="0" y="274" fill="#cdcd00" textLength="891" lengthAdjust="spacingAndGlyphs">prompt. This can change how the agent interprets your requests and interacts with your environment.</text>
+ <text x="0" y="274" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">prompt. This can change how the agent interprets your requests and interacts with your environment. </text>
- <text x="0" y="291" fill="#cdcd00" textLength="864" lengthAdjust="spacingAndGlyphs">Review the skill definitions at the location(s) provided below to ensure they meet your security</text>
+ <text x="0" y="291" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Review the skill definitions at the location(s) provided below to ensure they meet your security </text>
- <text x="0" y="308" fill="#cdcd00" textLength="90" lengthAdjust="spacingAndGlyphs">standards.</text>
+ <text x="0" y="308" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">standards. </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
expectConsentSnapshot src/config/extensions/consent.test.ts:65:3
src/config/extensions/consent.test.ts:389:9
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[10/184]⎯
FAIL src/config/extensions/consent.test.ts > consent > skillsConsentString > should generate a consent string for skills
Error: Snapshot `consent > skillsConsentString > should generate a consent string for skills 2` mismatched
- Expected
+ Received
@@ -4,16 +4,14 @@
 </style>
 <rect width="920" height="241" fill="#000000" />
 <g transform="translate(10, 10)">
 <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Installing agent skill(s) from &quot;https://example.com/repo.git&quot;. </text>
 <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">The following agent skill(s) will be installing: </text>
- <text x="0" y="70" fill="#ffffff" textLength="36" lengthAdjust="spacingAndGlyphs"> * </text>
- <text x="36" y="70" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs" font-weight="bold">skill1</text>
-  <text x="90" y="70" fill="#ffffff" textLength="810" lengthAdjust="spacingAndGlyphs">: desc1 </text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> * skill1: desc1 </text>
 <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> (Source: /mock/temp/dir/skill1/SKILL.md) (1 items in directory) </text>
 <text x="0" y="121" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Install Destination: /mock/target/dir </text>
- <text x="0" y="155" fill="#cdcd00" textLength="882" lengthAdjust="spacingAndGlyphs">Agent skills inject specialized instructions and domain-specific knowledge into the agent&apos;s system</text>
+ <text x="0" y="155" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Agent skills inject specialized instructions and domain-specific knowledge into the agent&apos;s system </text>
- <text x="0" y="172" fill="#cdcd00" textLength="891" lengthAdjust="spacingAndGlyphs">prompt. This can change how the agent interprets your requests and interacts with your environment.</text>
+ <text x="0" y="172" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">prompt. This can change how the agent interprets your requests and interacts with your environment. </text>
- <text x="0" y="189" fill="#cdcd00" textLength="864" lengthAdjust="spacingAndGlyphs">Review the skill definitions at the location(s) provided below to ensure they meet your security</text>
+ <text x="0" y="189" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Review the skill definitions at the location(s) provided below to ensure they meet your security </text>
- <text x="0" y="206" fill="#cdcd00" textLength="90" lengthAdjust="spacingAndGlyphs">standards.</text>
+ <text x="0" y="206" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">standards. </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
expectConsentSnapshot src/config/extensions/consent.test.ts:65:3
src/config/extensions/consent.test.ts:415:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[11/184]⎯
FAIL src/ui/components/AlternateBufferQuittingDisplay.test.tsx > AlternateBufferQuittingDisplay > renders with user and gemini messages
Error: Snapshot `AlternateBufferQuittingDisplay > renders with user and gemini messages > with_user_gemini_messages 1` mismatched
- Expected
+ Received
@@ -12,9 +12,9 @@
 1. Create GEMINI.md files to customize your interactions
 2. /help for more information
 3. Ask coding questions, edit code or run commands
 4. Be specific for the best results
 ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
- > Hello Gemini 
+ > Hello Gemini
 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
 ✦ Hello User!
 "
src/ui/components/AlternateBufferQuittingDisplay.test.tsx:228:25
226| },
227| );
228| expect(lastFrame()).toMatchSnapshot('with_user_gemini_messages');
| ^
229| unmount();
230| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[12/184]⎯
FAIL src/ui/components/AppHeaderIcon.test.tsx > AppHeader Icon Rendering > renders the default icon in standard terminals
Error: Snapshot `AppHeader Icon Rendering > renders the default icon in standard terminals 2` mismatched
- Expected
+ Received
@@ -2,33 +2,17 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="275" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="9" y="19" fill="#4796e4" textLength="9" lengthAdjust="spacingAndGlyphs">▝</text>
- <text x="18" y="19" fill="#6688d9" textLength="9" lengthAdjust="spacingAndGlyphs">▜</text>
- <text x="27" y="19" fill="#847ace" textLength="9" lengthAdjust="spacingAndGlyphs">▄</text>
- <text x="90" y="19" fill="#ffffff" textLength="297" lengthAdjust="spacingAndGlyphs">▗█▀▀▜▙▝█▛▀▀▌▜██▖▟██▘▜█▘▜██▖▝█▛▝█▛</text>
- <text x="27" y="36" fill="#847ace" textLength="9" lengthAdjust="spacingAndGlyphs">▝</text>
- <text x="36" y="36" fill="#a471a7" textLength="9" lengthAdjust="spacingAndGlyphs">▜</text>
-  <text x="45" y="36" fill="#c3677f" textLength="9" lengthAdjust="spacingAndGlyphs">▄</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> ▝▜▄ ▗█▀▀▜▙▝█▛▀▀▌▜██▖▟██▘▜█▘▜██▖▝█▛▝█▛ </text>
- <text x="90" y="36" fill="#ffffff" textLength="297" lengthAdjust="spacingAndGlyphs">█▌ █▙▟ ▐█▝█▛▐█ ▐█ ▐█▝█▖█▌ █▌</text>
- <text x="18" y="53" fill="#6688d9" textLength="9" lengthAdjust="spacingAndGlyphs">▗</text>
- <text x="27" y="53" fill="#847ace" textLength="9" lengthAdjust="spacingAndGlyphs">▟</text>
-  <text x="36" y="53" fill="#a471a7" textLength="9" lengthAdjust="spacingAndGlyphs">▀</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> ▝▜▄ █▌ █▙▟ ▐█▝█▛▐█ ▐█ ▐█▝█▖█▌ █▌ </text>
- <text x="90" y="53" fill="#ffffff" textLength="297" lengthAdjust="spacingAndGlyphs">▜▙ ▝█▛ █▌▝ ▖▐█ ▐█ ▐█ ▐█ ▝██▌ █▌</text>
- <text x="9" y="70" fill="#4796e4" textLength="9" lengthAdjust="spacingAndGlyphs">▝</text>
-  <text x="18" y="70" fill="#6688d9" textLength="9" lengthAdjust="spacingAndGlyphs">▀</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> ▗▟▀ ▜▙ ▝█▛ █▌▝ ▖▐█ ▐█ ▐█ ▐█ ▝██▌ █▌ </text>
- <text x="90" y="70" fill="#ffffff" textLength="297" lengthAdjust="spacingAndGlyphs"> ▀▀▀▀▘▝▀▀▀▀▘▀▀▘ ▀▀▘▀▀▘▀▀▘ ▝▀▀▝▀▀</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> ▝▀  ▀▀▀▀▘▝▀▀▀▀▘▀▀▘ ▀▀▘▀▀▘▀▀▘ ▝▀▀▝▀▀ </text>
- <text x="9" y="104" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs" font-weight="bold">Gemini CLI</text>
-  <text x="99" y="104" fill="#afafaf" textLength="63" lengthAdjust="spacingAndGlyphs"> v1.0.0</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> Gemini CLI v1.0.0 </text>
- <text x="0" y="172" fill="#ffffff" textLength="225" lengthAdjust="spacingAndGlyphs">Tips for getting started:</text>
-  <text x="0" y="189" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">1. Create </text>
+ <text x="0" y="172" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Tips for getting started:  </text>
- <text x="90" y="189" fill="#ffffff" textLength="81" lengthAdjust="spacingAndGlyphs" font-weight="bold">GEMINI.md</text>
- <text x="171" y="189" fill="#ffffff" textLength="333" lengthAdjust="spacingAndGlyphs"> files to customize your interactions</text>
- <text x="0" y="206" fill="#ffffff" textLength="27" lengthAdjust="spacingAndGlyphs">2. </text>
-  <text x="27" y="206" fill="#afafaf" textLength="45" lengthAdjust="spacingAndGlyphs">/help</text>
+ <text x="0" y="189" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">1. Create GEMINI.md files to customize your interactions </text>
- <text x="72" y="206" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs"> for more information</text>
+ <text x="0" y="206" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">2. /help for more information </text>
- <text x="0" y="223" fill="#ffffff" textLength="450" lengthAdjust="spacingAndGlyphs">3. Ask coding questions, edit code or run commands</text>
+ <text x="0" y="223" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">3. Ask coding questions, edit code or run commands </text>
- <text x="0" y="240" fill="#ffffff" textLength="315" lengthAdjust="spacingAndGlyphs">4. Be specific for the best results</text>
+ <text x="0" y="240" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">4. Be specific for the best results </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/AppHeaderIcon.test.tsx:38:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[13/184]⎯
FAIL src/ui/components/AppHeaderIcon.test.tsx > AppHeader Icon Rendering > renders the symmetric icon in Apple Terminal
Error: Snapshot `AppHeader Icon Rendering > renders the symmetric icon in Apple Terminal 2` mismatched
- Expected
+ Received
@@ -2,34 +2,17 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="275" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="9" y="19" fill="#4796e4" textLength="9" lengthAdjust="spacingAndGlyphs">▝</text>
- <text x="18" y="19" fill="#6688d9" textLength="9" lengthAdjust="spacingAndGlyphs">▜</text>
-  <text x="27" y="19" fill="#847ace" textLength="9" lengthAdjust="spacingAndGlyphs">▄</text>
- <text x="81" y="19" fill="#ffffff" textLength="297" lengthAdjust="spacingAndGlyphs">▗█▀▀▜▙▝█▛▀▀▌▜██▖▟██▘▜█▘▜██▖▝█▛▝█▛</text>
- <text x="27" y="36" fill="#847ace" textLength="9" lengthAdjust="spacingAndGlyphs">▝</text>
- <text x="36" y="36" fill="#a471a7" textLength="9" lengthAdjust="spacingAndGlyphs">▜</text>
-  <text x="45" y="36" fill="#c3677f" textLength="9" lengthAdjust="spacingAndGlyphs">▄</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> ▝▜▄ ▗█▀▀▜▙▝█▛▀▀▌▜██▖▟██▘▜█▘▜██▖▝█▛▝█▛ </text>
- <text x="81" y="36" fill="#ffffff" textLength="297" lengthAdjust="spacingAndGlyphs">█▌ █▙▟ ▐█▝█▛▐█ ▐█ ▐█▝█▖█▌ █▌</text>
- <text x="27" y="53" fill="#847ace" textLength="9" lengthAdjust="spacingAndGlyphs">▗</text>
- <text x="36" y="53" fill="#a471a7" textLength="9" lengthAdjust="spacingAndGlyphs">▟</text>
-  <text x="45" y="53" fill="#c3677f" textLength="9" lengthAdjust="spacingAndGlyphs">▀</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> ▝▜▄ █▌ █▙▟ ▐█▝█▛▐█ ▐█ ▐█▝█▖█▌ █▌ </text>
- <text x="81" y="53" fill="#ffffff" textLength="297" lengthAdjust="spacingAndGlyphs">▜▙ ▝█▛ █▌▝ ▖▐█ ▐█ ▐█ ▐█ ▝██▌ █▌</text>
- <text x="9" y="70" fill="#4796e4" textLength="9" lengthAdjust="spacingAndGlyphs">▗</text>
- <text x="18" y="70" fill="#6688d9" textLength="9" lengthAdjust="spacingAndGlyphs">▟</text>
-  <text x="27" y="70" fill="#847ace" textLength="9" lengthAdjust="spacingAndGlyphs">▀</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> ▗▟▀ ▜▙ ▝█▛ █▌▝ ▖▐█ ▐█ ▐█ ▐█ ▝██▌ █▌ </text>
- <text x="81" y="70" fill="#ffffff" textLength="297" lengthAdjust="spacingAndGlyphs"> ▀▀▀▀▘▝▀▀▀▀▘▀▀▘ ▀▀▘▀▀▘▀▀▘ ▝▀▀▝▀▀</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> ▗▟▀  ▀▀▀▀▘▝▀▀▀▀▘▀▀▘ ▀▀▘▀▀▘▀▀▘ ▝▀▀▝▀▀ </text>
- <text x="9" y="104" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs" font-weight="bold">Gemini CLI</text>
-  <text x="99" y="104" fill="#afafaf" textLength="63" lengthAdjust="spacingAndGlyphs"> v1.0.0</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> Gemini CLI v1.0.0 </text>
- <text x="0" y="172" fill="#ffffff" textLength="225" lengthAdjust="spacingAndGlyphs">Tips for getting started:</text>
-  <text x="0" y="189" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">1. Create </text>
+ <text x="0" y="172" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Tips for getting started:  </text>
- <text x="90" y="189" fill="#ffffff" textLength="81" lengthAdjust="spacingAndGlyphs" font-weight="bold">GEMINI.md</text>
- <text x="171" y="189" fill="#ffffff" textLength="333" lengthAdjust="spacingAndGlyphs"> files to customize your interactions</text>
- <text x="0" y="206" fill="#ffffff" textLength="27" lengthAdjust="spacingAndGlyphs">2. </text>
-  <text x="27" y="206" fill="#afafaf" textLength="45" lengthAdjust="spacingAndGlyphs">/help</text>
+ <text x="0" y="189" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">1. Create GEMINI.md files to customize your interactions </text>
- <text x="72" y="206" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs"> for more information</text>
+ <text x="0" y="206" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">2. /help for more information </text>
- <text x="0" y="223" fill="#ffffff" textLength="450" lengthAdjust="spacingAndGlyphs">3. Ask coding questions, edit code or run commands</text>
+ <text x="0" y="223" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">3. Ask coding questions, edit code or run commands </text>
- <text x="0" y="240" fill="#ffffff" textLength="315" lengthAdjust="spacingAndGlyphs">4. Be specific for the best results</text>
+ <text x="0" y="240" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">4. Be specific for the best results </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/AppHeaderIcon.test.tsx:47:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[14/184]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > renders question and options
Error: Snapshot `AskUserDialog > renders question and options 1` mismatched
- Expected
+ Received
@@ -1,9 +1,9 @@
 "Which authentication method should we use?
- ● 1. OAuth 2.0 
- Industry standard, supports SSO 
+ ● 1. OAuth 2.0
+ Industry standard, supports SSO
 2. JWT tokens
 Stateless, good for APIs
 3. Enter a custom value
 Enter to select · ↑/↓ to navigate · Esc to cancel
src/ui/components/AskUserDialog.test.tsx:61:25
59| );
60|
61| expect(lastFrame()).toMatchSnapshot();
| ^
62| });
63|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[15/184]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > shows progress header for multiple questions
Error: Snapshot `AskUserDialog > shows progress header for multiple questions 1` mismatched
- Expected
+ Received
@@ -1,11 +1,11 @@
 "← □ Database │ □ ORM │ ≡ Review →
 Which database should we use?
- ● 1. PostgreSQL 
- Relational database 
+ ● 1. PostgreSQL
+ Relational database
 2. MongoDB
 Document database
 3. Enter a custom value
 Enter to select · ←/→ to switch questions · Esc to cancel
src/ui/components/AskUserDialog.test.tsx:409:25
407| );
408|
409| expect(lastFrame()).toMatchSnapshot();
| ^
410| });
411|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[16/184]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > hides progress header for single question
Error: Snapshot `AskUserDialog > hides progress header for single question 1` mismatched
- Expected
+ Received
@@ -1,9 +1,9 @@
 "Which authentication method should we use?
- ● 1. OAuth 2.0 
- Industry standard, supports SSO 
+ ● 1. OAuth 2.0
+ Industry standard, supports SSO
 2. JWT tokens
 Stateless, good for APIs
 3. Enter a custom value
 Enter to select · ↑/↓ to navigate · Esc to cancel
src/ui/components/AskUserDialog.test.tsx:423:25
421| );
422|
423| expect(lastFrame()).toMatchSnapshot();
| ^
424| });
425|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[17/184]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > shows keyboard hints
Error: Snapshot `AskUserDialog > shows keyboard hints 1` mismatched
- Expected
+ Received
@@ -1,9 +1,9 @@
 "Which authentication method should we use?
- ● 1. OAuth 2.0 
- Industry standard, supports SSO 
+ ● 1. OAuth 2.0
+ Industry standard, supports SSO
 2. JWT tokens
 Stateless, good for APIs
 3. Enter a custom value
 Enter to select · ↑/↓ to navigate · Esc to cancel
src/ui/components/AskUserDialog.test.tsx:437:25
435| );
436|
437| expect(lastFrame()).toMatchSnapshot();
| ^
438| });
439|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[18/184]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > shows Review tab in progress header for multiple questions
Error: Snapshot `AskUserDialog > shows Review tab in progress header for multiple questions 1` mismatched
- Expected
+ Received
@@ -1,11 +1,11 @@
 "← □ Framework │ □ Styling │ ≡ Review →
 Which framework?
- ● 1. React 
- Component library 
+ ● 1. React
+ Component library
 2. Vue
 Progressive framework
 3. Enter a custom value
 Enter to select · ←/→ to switch questions · Esc to cancel
src/ui/components/AskUserDialog.test.tsx:590:25
588| );
589|
590| expect(lastFrame()).toMatchSnapshot();
| ^
591| });
592|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[19/184]⎯
FAIL src/ui/components/Banner.test.tsx > Banner > renders in warning mode
Error: Snapshot `Banner > renders in warning mode 2` mismatched
- Expected
+ Received
@@ -2,12 +2,10 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="71" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#ffffaf" textLength="720" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────╮</text>
-  <text x="0" y="19" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────╮ </text>
- <text x="18" y="19" fill="#ffffaf" textLength="135" lengthAdjust="spacingAndGlyphs" font-weight="bold">Warning Message</text>
-  <text x="711" y="19" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Warning Message │ </text>
- <text x="0" y="36" fill="#ffffaf" textLength="720" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────╯ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/Banner.test.tsx:21:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[20/184]⎯
FAIL src/ui/components/Banner.test.tsx > Banner > renders in info mode
Error: Snapshot `Banner > renders in info mode 2` mismatched
- Expected
+ Received
@@ -2,22 +2,10 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="71" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="720" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────╮</text>
- <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="18" y="19" fill="#4796e4" textLength="9" lengthAdjust="spacingAndGlyphs">I</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────╮ </text>
- <text x="27" y="19" fill="#5390e0" textLength="9" lengthAdjust="spacingAndGlyphs">n</text>
- <text x="36" y="19" fill="#5f8bdb" textLength="9" lengthAdjust="spacingAndGlyphs">f</text>
- <text x="45" y="19" fill="#6c85d7" textLength="9" lengthAdjust="spacingAndGlyphs">o</text>
- <text x="63" y="19" fill="#847ace" textLength="9" lengthAdjust="spacingAndGlyphs">M</text>
- <text x="72" y="19" fill="#8f77c1" textLength="9" lengthAdjust="spacingAndGlyphs">e</text>
- <text x="81" y="19" fill="#9974b4" textLength="9" lengthAdjust="spacingAndGlyphs">s</text>
- <text x="90" y="19" fill="#a471a7" textLength="9" lengthAdjust="spacingAndGlyphs">s</text>
- <text x="99" y="19" fill="#ae6d99" textLength="9" lengthAdjust="spacingAndGlyphs">a</text>
- <text x="108" y="19" fill="#b96a8c" textLength="9" lengthAdjust="spacingAndGlyphs">g</text>
- <text x="117" y="19" fill="#c3677f" textLength="9" lengthAdjust="spacingAndGlyphs">e</text>
-  <text x="711" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Info Message │ </text>
- <text x="0" y="36" fill="#333333" textLength="720" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────╯ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/Banner.test.tsx:21:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[21/184]⎯
FAIL src/ui/components/Banner.test.tsx > Banner > renders in multi-line warning
Error: Snapshot `Banner > renders in multi-line warning 2` mismatched
- Expected
+ Received
@@ -2,18 +2,12 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="105" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#ffffaf" textLength="720" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────╮</text>
-  <text x="0" y="19" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────╮ </text>
- <text x="18" y="19" fill="#ffffaf" textLength="90" lengthAdjust="spacingAndGlyphs" font-weight="bold">Title Line</text>
- <text x="711" y="19" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="36" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Title Line │ </text>
- <text x="18" y="36" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs">Body Line 1</text>
- <text x="711" y="36" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="53" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Body Line 1 │ </text>
- <text x="18" y="53" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs">Body Line 2</text>
-  <text x="711" y="53" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Body Line 2 │ </text>
- <text x="0" y="70" fill="#ffffaf" textLength="720" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────╯ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/Banner.test.tsx:21:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[22/184]⎯
FAIL src/ui/components/Banner.test.tsx > Banner > handles newlines in text
Error: Snapshot `Banner > handles newlines in text 2` mismatched
- Expected
+ Received
@@ -2,19 +2,11 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="88" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="720" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────╮ </text>
- <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#4796e4" textLength="9" lengthAdjust="spacingAndGlyphs">L</text>
- <text x="27" y="19" fill="#6688d9" textLength="9" lengthAdjust="spacingAndGlyphs">i</text>
- <text x="36" y="19" fill="#847ace" textLength="9" lengthAdjust="spacingAndGlyphs">n</text>
- <text x="45" y="19" fill="#9974b4" textLength="9" lengthAdjust="spacingAndGlyphs">e</text>
- <text x="63" y="19" fill="#c3677f" textLength="9" lengthAdjust="spacingAndGlyphs">1</text>
- <text x="711" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Line 1 │ </text>
- <text x="18" y="36" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Line 2</text>
-  <text x="711" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Line 2 │ </text>
- <text x="0" y="53" fill="#333333" textLength="720" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────╯ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/Banner.test.tsx:31:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[23/184]⎯
FAIL src/ui/components/ExitPlanModeDialog.test.tsx > ExitPlanModeDialog > useAlternateBuffer: true > renders correctly with plan content
Error: Snapshot `ExitPlanModeDialog > useAlternateBuffer: true > renders correctly with plan content 1` mismatched
- Expected
+ Received
@@ -12,12 +12,12 @@
 Files to Modify
 - src/index.ts - Add auth middleware
 - src/config.ts - Add auth configuration options
- ● 1. Yes, automatically accept edits 
+ ● 1. Yes, automatically accept edits
- Approves plan and allows tools to run automatically 
+ Approves plan and allows tools to run automatically
 2. Yes, manually accept edits
 Approves plan but requires confirmation for each tool
 3. Type your feedback...
 Enter to select · ↑/↓ to navigate · Ctrl+G to edit plan · Esc to cancel
src/ui/components/ExitPlanModeDialog.test.tsx:207:29
205| });
206|
207| expect(lastFrame()).toMatchSnapshot();
| ^
208| });
209|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[24/184]⎯
FAIL src/ui/components/ExitPlanModeDialog.test.tsx > ExitPlanModeDialog > useAlternateBuffer: true > handles long plan content appropriately
Error: Snapshot `ExitPlanModeDialog > useAlternateBuffer: true > handles long plan content appropriately 1` mismatched
- Expected
+ Received
@@ -33,12 +33,12 @@
 - Unit tests for each auth provider
 - Integration tests for full auth flows
 - Security penetration testing
 - Load testing for session management
- ● 1. Yes, automatically accept edits 
+ ● 1. Yes, automatically accept edits
- Approves plan and allows tools to run automatically 
+ Approves plan and allows tools to run automatically
 2. Yes, manually accept edits
 Approves plan but requires confirmation for each tool
 3. Type your feedback...
 Enter to select · ↑/↓ to navigate · Ctrl+G to edit plan · Esc to cancel
src/ui/components/ExitPlanModeDialog.test.tsx:366:29
364| });
365|
366| expect(lastFrame()).toMatchSnapshot();
| ^
367| });
368|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[25/184]⎯
FAIL src/ui/components/ExitPlanModeDialog.test.tsx > ExitPlanModeDialog > useAlternateBuffer: false > renders correctly with plan content
Error: Snapshot `ExitPlanModeDialog > useAlternateBuffer: false > renders correctly with plan content 1` mismatched
- Expected
+ Received
@@ -12,12 +12,12 @@
 Files to Modify
 - src/index.ts - Add auth middleware
 - src/config.ts - Add auth configuration options
- ● 1. Yes, automatically accept edits 
+ ● 1. Yes, automatically accept edits
- Approves plan and allows tools to run automatically 
+ Approves plan and allows tools to run automatically
 2. Yes, manually accept edits
 Approves plan but requires confirmation for each tool
 3. Type your feedback...
 Enter to select · ↑/↓ to navigate · Ctrl+G to edit plan · Esc to cancel
src/ui/components/ExitPlanModeDialog.test.tsx:207:29
205| });
206|
207| expect(lastFrame()).toMatchSnapshot();
| ^
208| });
209|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[26/184]⎯
FAIL src/ui/components/ExitPlanModeDialog.test.tsx > ExitPlanModeDialog > useAlternateBuffer: false > handles long plan content appropriately
Error: Snapshot `ExitPlanModeDialog > useAlternateBuffer: false > handles long plan content appropriately 1` mismatched
- Expected
+ Received
@@ -12,12 +12,12 @@
 6. Add LDAP provider support in src/auth/providers/LDAPProvider.ts
 7. Create token refresh mechanism in src/auth/TokenManager.ts
 8. Add multi-factor authentication in src/auth/MFAService.ts
 ... last 22 lines hidden (Ctrl+O to show) ...
- ● 1. Yes, automatically accept edits 
+ ● 1. Yes, automatically accept edits
- Approves plan and allows tools to run automatically 
+ Approves plan and allows tools to run automatically
 2. Yes, manually accept edits
 Approves plan but requires confirmation for each tool
 3. Type your feedback...
 Enter to select · ↑/↓ to navigate · Ctrl+G to edit plan · Esc to cancel
src/ui/components/ExitPlanModeDialog.test.tsx:366:29
364| });
365|
366| expect(lastFrame()).toMatchSnapshot();
| ^
367| });
368|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[27/184]⎯
FAIL src/ui/components/Footer.test.tsx > <Footer /> > Footer Custom Items > renders auth item with email
AssertionError: expected ' /auth\n google\n' to contain 'test@example.com'
- Expected
+ Received
- test@example.com
+ /auth
+ google
+
src/ui/components/Footer.test.tsx:720:27
718|
719| expect(lastFrame()).toContain('auth');
720| expect(lastFrame()).toContain('test@example.com');
| ^
721| unmount();
722| getCachedAccountSpy.mockRestore();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[28/184]⎯
FAIL src/ui/components/FooterConfigDialog.test.tsx > <FooterConfigDialog /> > renders correctly with default settings
Error: Snapshot `<FooterConfigDialog /> > renders correctly with default settings 3` mismatched
- Expected
+ Received
@@ -2,159 +2,49 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="734" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
- <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="36" fill="#ffffff" textLength="144" lengthAdjust="spacingAndGlyphs" font-weight="bold">Configure Footer</text>
-  <text x="891" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Configure Footer │</text>
- <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="70" fill="#afafaf" textLength="396" lengthAdjust="spacingAndGlyphs">Select which items to display in the footer.</text>
-  <text x="891" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Select which items to display in the footer. │</text>
- <text x="0" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="102" width="9" height="17" fill="#001a00" />
- <text x="27" y="104" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">&gt;</text>
- <rect x="36" y="102" width="9" height="17" fill="#001a00" />
- <rect x="45" y="102" width="27" height="17" fill="#001a00" />
- <text x="45" y="104" fill="#d7ffd7" textLength="27" lengthAdjust="spacingAndGlyphs">[✓]</text>
-  <rect x="72" y="102" width="90" height="17" fill="#001a00" />
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="72" y="104" fill="#00cd00" textLength="90" lengthAdjust="spacingAndGlyphs"> workspace</text>
- <rect x="162" y="102" width="711" height="17" fill="#001a00" />
- <text x="891" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="119" width="18" height="17" fill="#001a00" />
-  <rect x="45" y="119" width="234" height="17" fill="#001a00" />
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; [✓] workspace │</text>
- <text x="45" y="121" fill="#afafaf" textLength="234" lengthAdjust="spacingAndGlyphs"> Current working directory</text>
- <rect x="279" y="119" width="594" height="17" fill="#001a00" />
- <text x="891" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="138" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="138" fill="#d7ffd7" textLength="27" lengthAdjust="spacingAndGlyphs">[✓]</text>
+ <text x="0" y="121" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Current working directory │</text>
- <text x="72" y="138" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs"> git-branch</text>
- <text x="891" y="138" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="138" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [✓] git-branch │</text>
- <text x="45" y="155" fill="#afafaf" textLength="477" lengthAdjust="spacingAndGlyphs"> Current git branch name (not shown when unavailable)</text>
- <text x="891" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="172" fill="#d7ffd7" textLength="27" lengthAdjust="spacingAndGlyphs">[✓]</text>
+ <text x="0" y="155" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Current git branch name (not shown when unavailable) │</text>
- <text x="72" y="172" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs"> sandbox</text>
- <text x="891" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="172" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [✓] sandbox │</text>
- <text x="45" y="189" fill="#afafaf" textLength="297" lengthAdjust="spacingAndGlyphs"> Sandbox type and trust indicator</text>
- <text x="891" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="206" fill="#d7ffd7" textLength="27" lengthAdjust="spacingAndGlyphs">[✓]</text>
+ <text x="0" y="189" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Sandbox type and trust indicator │</text>
- <text x="72" y="206" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs"> model-name</text>
- <text x="891" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="206" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [✓] model-name │</text>
- <text x="45" y="223" fill="#afafaf" textLength="225" lengthAdjust="spacingAndGlyphs"> Current model identifier</text>
- <text x="891" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="240" fill="#d7ffd7" textLength="27" lengthAdjust="spacingAndGlyphs">[✓]</text>
+ <text x="0" y="223" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Current model identifier │</text>
- <text x="72" y="240" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs"> quota</text>
- <text x="891" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="240" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [✓] quota │</text>
- <text x="45" y="257" fill="#afafaf" textLength="540" lengthAdjust="spacingAndGlyphs"> Percentage of daily limit used (not shown when unavailable)</text>
- <text x="891" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="274" fill="#afafaf" textLength="27" lengthAdjust="spacingAndGlyphs">[ ]</text>
+ <text x="0" y="257" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Percentage of daily limit used (not shown when unavailable) │</text>
- <text x="72" y="274" fill="#ffffff" textLength="117" lengthAdjust="spacingAndGlyphs"> context-used</text>
- <text x="891" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="274" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [ ] context-used │</text>
- <text x="45" y="291" fill="#afafaf" textLength="306" lengthAdjust="spacingAndGlyphs"> Percentage of context window used</text>
- <text x="891" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="308" fill="#afafaf" textLength="27" lengthAdjust="spacingAndGlyphs">[ ]</text>
+ <text x="0" y="291" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Percentage of context window used │</text>
- <text x="72" y="308" fill="#ffffff" textLength="117" lengthAdjust="spacingAndGlyphs"> memory-usage</text>
- <text x="891" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="308" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [ ] memory-usage │</text>
- <text x="45" y="325" fill="#afafaf" textLength="279" lengthAdjust="spacingAndGlyphs"> Memory used by the application</text>
- <text x="891" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="342" fill="#afafaf" textLength="27" lengthAdjust="spacingAndGlyphs">[ ]</text>
+ <text x="0" y="325" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Memory used by the application │</text>
- <text x="72" y="342" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs"> session-id</text>
- <text x="891" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="342" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [ ] session-id │</text>
- <text x="45" y="359" fill="#afafaf" textLength="378" lengthAdjust="spacingAndGlyphs"> Unique identifier for the current session</text>
- <text x="891" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="376" fill="#afafaf" textLength="27" lengthAdjust="spacingAndGlyphs">[ ]</text>
+ <text x="0" y="359" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Unique identifier for the current session │</text>
- <text x="72" y="376" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs"> auth</text>
- <text x="891" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="376" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [ ] auth │</text>
- <text x="45" y="393" fill="#afafaf" textLength="252" lengthAdjust="spacingAndGlyphs"> Current authentication info</text>
- <text x="891" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="410" fill="#afafaf" textLength="27" lengthAdjust="spacingAndGlyphs">[ ]</text>
+ <text x="0" y="393" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Current authentication info │</text>
- <text x="72" y="410" fill="#ffffff" textLength="117" lengthAdjust="spacingAndGlyphs"> code-changes</text>
- <text x="891" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="410" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [ ] code-changes │</text>
- <text x="45" y="427" fill="#afafaf" textLength="513" lengthAdjust="spacingAndGlyphs"> Lines added/removed in the session (not shown when zero)</text>
- <text x="891" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="444" fill="#afafaf" textLength="27" lengthAdjust="spacingAndGlyphs">[ ]</text>
+ <text x="0" y="427" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Lines added/removed in the session (not shown when zero) │</text>
- <text x="72" y="444" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs"> token-count</text>
- <text x="891" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="444" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [ ] token-count │</text>
- <text x="45" y="461" fill="#afafaf" textLength="495" lengthAdjust="spacingAndGlyphs"> Total tokens used in the session (not shown when zero)</text>
- <text x="891" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="478" fill="#d7ffd7" textLength="27" lengthAdjust="spacingAndGlyphs">[✓]</text>
+ <text x="0" y="461" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Total tokens used in the session (not shown when zero) │</text>
- <text x="72" y="478" fill="#ffffff" textLength="171" lengthAdjust="spacingAndGlyphs"> Show footer labels</text>
-  <text x="891" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="478" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [✓] Show footer labels │</text>
- <text x="0" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="495" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="512" fill="#ffffff" textLength="207" lengthAdjust="spacingAndGlyphs">Reset to default footer</text>
-  <text x="891" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="512" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Reset to default footer │</text>
- <text x="0" y="529" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="891" y="529" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="529" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="0" y="546" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="546" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="563" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="546" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="563" fill="#afafaf" textLength="585" lengthAdjust="spacingAndGlyphs">Enter to select · ↑/↓ to navigate · ←/→ to reorder · Esc to close</text>
-  <text x="891" y="563" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="563" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enter to select · ↑/↓ to navigate · ←/→ to reorder · Esc to close │</text>
- <text x="0" y="580" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="580" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="597" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="580" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="597" fill="#333333" textLength="846" lengthAdjust="spacingAndGlyphs">┌────────────────────────────────────────────────────────────────────────────────────────────┐</text>
+ <text x="0" y="597" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ┌────────────────────────────────────────────────────────────────────────────────────────────┐ │</text>
- <text x="891" y="597" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="614" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="27" y="614" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="45" y="614" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs" font-weight="bold">Preview:</text>
- <text x="864" y="614" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="614" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="631" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="27" y="631" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <rect x="45" y="629" width="198" height="17" fill="#001a00" />
+ <text x="0" y="614" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ Preview: │ │</text>
- <text x="45" y="631" fill="#ffffff" textLength="198" lengthAdjust="spacingAndGlyphs">workspace (/directory)</text>
- <text x="315" y="631" fill="#afafaf" textLength="54" lengthAdjust="spacingAndGlyphs">branch</text>
- <text x="450" y="631" fill="#afafaf" textLength="63" lengthAdjust="spacingAndGlyphs">sandbox</text>
- <text x="585" y="631" fill="#afafaf" textLength="54" lengthAdjust="spacingAndGlyphs">/model</text>
- <text x="783" y="631" fill="#afafaf" textLength="45" lengthAdjust="spacingAndGlyphs">quota</text>
- <text x="864" y="631" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="631" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="648" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="27" y="648" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="45" y="646" width="126" height="17" fill="#001a00" />
-  <text x="45" y="648" fill="#ffffff" textLength="126" lengthAdjust="spacingAndGlyphs">~/project/path</text>
- <rect x="171" y="646" width="72" height="17" fill="#001a00" />
- <text x="315" y="648" fill="#ffffff" textLength="36" lengthAdjust="spacingAndGlyphs">main</text>
- <text x="450" y="648" fill="#00cd00" textLength="54" lengthAdjust="spacingAndGlyphs">docker</text>
- <text x="585" y="648" fill="#ffffff" textLength="126" lengthAdjust="spacingAndGlyphs">gemini-2.5-pro</text>
- <text x="783" y="648" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs">42% used</text>
- <text x="864" y="648" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="891" y="648" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="631" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ workspace (/directory) branch sandbox /model quota │ │</text>
+  <text x="0" y="648" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ ~/project/path main docker gemini-2.5-pro 42% used │ │</text>
- <text x="0" y="665" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="27" y="665" fill="#333333" textLength="846" lengthAdjust="spacingAndGlyphs">└────────────────────────────────────────────────────────────────────────────────────────────┘</text>
+ <text x="0" y="665" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ └────────────────────────────────────────────────────────────────────────────────────────────┘ │</text>
- <text x="891" y="665" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="682" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="891" y="682" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="682" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="0" y="699" fill="#333333" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="699" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/FooterConfigDialog.test.tsx:34:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[29/184]⎯
FAIL src/ui/components/FooterConfigDialog.test.tsx > <FooterConfigDialog /> > highlights the active item in the preview
Error: Snapshot `<FooterConfigDialog /> > highlights the active item in the preview 2` mismatched
- Expected
+ Received
@@ -2,164 +2,49 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="734" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
- <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="36" fill="#ffffff" textLength="144" lengthAdjust="spacingAndGlyphs" font-weight="bold">Configure Footer</text>
-  <text x="891" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Configure Footer │</text>
- <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="70" fill="#afafaf" textLength="396" lengthAdjust="spacingAndGlyphs">Select which items to display in the footer.</text>
-  <text x="891" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Select which items to display in the footer. │</text>
- <text x="0" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="104" fill="#d7ffd7" textLength="27" lengthAdjust="spacingAndGlyphs">[✓]</text>
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="72" y="104" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs"> workspace</text>
- <text x="891" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [✓] workspace │</text>
- <text x="45" y="121" fill="#afafaf" textLength="234" lengthAdjust="spacingAndGlyphs"> Current working directory</text>
- <text x="891" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="138" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="138" fill="#d7ffd7" textLength="27" lengthAdjust="spacingAndGlyphs">[✓]</text>
+ <text x="0" y="121" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Current working directory │</text>
- <text x="72" y="138" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs"> git-branch</text>
- <text x="891" y="138" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="138" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [✓] git-branch │</text>
- <text x="45" y="155" fill="#afafaf" textLength="477" lengthAdjust="spacingAndGlyphs"> Current git branch name (not shown when unavailable)</text>
- <text x="891" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="172" fill="#d7ffd7" textLength="27" lengthAdjust="spacingAndGlyphs">[✓]</text>
+ <text x="0" y="155" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Current git branch name (not shown when unavailable) │</text>
- <text x="72" y="172" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs"> sandbox</text>
- <text x="891" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="172" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [✓] sandbox │</text>
- <text x="45" y="189" fill="#afafaf" textLength="297" lengthAdjust="spacingAndGlyphs"> Sandbox type and trust indicator</text>
- <text x="891" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="206" fill="#d7ffd7" textLength="27" lengthAdjust="spacingAndGlyphs">[✓]</text>
+ <text x="0" y="189" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Sandbox type and trust indicator │</text>
- <text x="72" y="206" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs"> model-name</text>
- <text x="891" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="206" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [✓] model-name │</text>
- <text x="45" y="223" fill="#afafaf" textLength="225" lengthAdjust="spacingAndGlyphs"> Current model identifier</text>
- <text x="891" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="240" fill="#d7ffd7" textLength="27" lengthAdjust="spacingAndGlyphs">[✓]</text>
+ <text x="0" y="223" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Current model identifier │</text>
- <text x="72" y="240" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs"> quota</text>
- <text x="891" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="240" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [✓] quota │</text>
- <text x="45" y="257" fill="#afafaf" textLength="540" lengthAdjust="spacingAndGlyphs"> Percentage of daily limit used (not shown when unavailable)</text>
- <text x="891" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="274" fill="#afafaf" textLength="27" lengthAdjust="spacingAndGlyphs">[ ]</text>
+ <text x="0" y="257" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Percentage of daily limit used (not shown when unavailable) │</text>
- <text x="72" y="274" fill="#ffffff" textLength="117" lengthAdjust="spacingAndGlyphs"> context-used</text>
- <text x="891" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="274" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [ ] context-used │</text>
- <text x="45" y="291" fill="#afafaf" textLength="306" lengthAdjust="spacingAndGlyphs"> Percentage of context window used</text>
- <text x="891" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="308" fill="#afafaf" textLength="27" lengthAdjust="spacingAndGlyphs">[ ]</text>
+ <text x="0" y="291" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Percentage of context window used │</text>
- <text x="72" y="308" fill="#ffffff" textLength="117" lengthAdjust="spacingAndGlyphs"> memory-usage</text>
- <text x="891" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="308" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [ ] memory-usage │</text>
- <text x="45" y="325" fill="#afafaf" textLength="279" lengthAdjust="spacingAndGlyphs"> Memory used by the application</text>
- <text x="891" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="342" fill="#afafaf" textLength="27" lengthAdjust="spacingAndGlyphs">[ ]</text>
+ <text x="0" y="325" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Memory used by the application │</text>
- <text x="72" y="342" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs"> session-id</text>
- <text x="891" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="342" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [ ] session-id │</text>
- <text x="45" y="359" fill="#afafaf" textLength="378" lengthAdjust="spacingAndGlyphs"> Unique identifier for the current session</text>
- <text x="891" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="376" fill="#afafaf" textLength="27" lengthAdjust="spacingAndGlyphs">[ ]</text>
+ <text x="0" y="359" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Unique identifier for the current session │</text>
- <text x="72" y="376" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs"> auth</text>
- <text x="891" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="376" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [ ] auth │</text>
- <text x="45" y="393" fill="#afafaf" textLength="252" lengthAdjust="spacingAndGlyphs"> Current authentication info</text>
- <text x="891" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="408" width="9" height="17" fill="#001a00" />
- <text x="27" y="410" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">&gt;</text>
- <rect x="36" y="408" width="9" height="17" fill="#001a00" />
- <rect x="45" y="408" width="27" height="17" fill="#001a00" />
- <text x="45" y="410" fill="#d7ffd7" textLength="27" lengthAdjust="spacingAndGlyphs">[✓]</text>
-  <rect x="72" y="408" width="117" height="17" fill="#001a00" />
+ <text x="0" y="393" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Current authentication info │</text>
- <text x="72" y="410" fill="#00cd00" textLength="117" lengthAdjust="spacingAndGlyphs"> code-changes</text>
- <rect x="189" y="408" width="684" height="17" fill="#001a00" />
- <text x="891" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="425" width="18" height="17" fill="#001a00" />
-  <rect x="45" y="425" width="513" height="17" fill="#001a00" />
+ <text x="0" y="410" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; [✓] code-changes │</text>
- <text x="45" y="427" fill="#afafaf" textLength="513" lengthAdjust="spacingAndGlyphs"> Lines added/removed in the session (not shown when zero)</text>
- <rect x="558" y="425" width="315" height="17" fill="#001a00" />
- <text x="891" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="444" fill="#afafaf" textLength="27" lengthAdjust="spacingAndGlyphs">[ ]</text>
+ <text x="0" y="427" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Lines added/removed in the session (not shown when zero) │</text>
- <text x="72" y="444" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs"> token-count</text>
- <text x="891" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="444" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [ ] token-count │</text>
- <text x="45" y="461" fill="#afafaf" textLength="495" lengthAdjust="spacingAndGlyphs"> Total tokens used in the session (not shown when zero)</text>
- <text x="891" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="478" fill="#d7ffd7" textLength="27" lengthAdjust="spacingAndGlyphs">[✓]</text>
+ <text x="0" y="461" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Total tokens used in the session (not shown when zero) │</text>
- <text x="72" y="478" fill="#ffffff" textLength="171" lengthAdjust="spacingAndGlyphs"> Show footer labels</text>
-  <text x="891" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="478" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [✓] Show footer labels │</text>
- <text x="0" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="495" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="512" fill="#ffffff" textLength="207" lengthAdjust="spacingAndGlyphs">Reset to default footer</text>
-  <text x="891" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="512" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Reset to default footer │</text>
- <text x="0" y="529" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="891" y="529" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="529" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="0" y="546" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="546" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="563" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="546" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="563" fill="#afafaf" textLength="585" lengthAdjust="spacingAndGlyphs">Enter to select · ↑/↓ to navigate · ←/→ to reorder · Esc to close</text>
-  <text x="891" y="563" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="563" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enter to select · ↑/↓ to navigate · ←/→ to reorder · Esc to close │</text>
- <text x="0" y="580" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="580" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="597" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="580" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="597" fill="#333333" textLength="846" lengthAdjust="spacingAndGlyphs">┌────────────────────────────────────────────────────────────────────────────────────────────┐</text>
- <text x="891" y="597" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="614" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="27" y="614" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="614" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs" font-weight="bold">Preview:</text>
- <text x="864" y="614" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="614" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="631" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="27" y="631" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="45" y="631" fill="#afafaf" textLength="198" lengthAdjust="spacingAndGlyphs">workspace (/directory)</text>
- <text x="288" y="631" fill="#afafaf" textLength="54" lengthAdjust="spacingAndGlyphs">branch</text>
- <text x="396" y="631" fill="#afafaf" textLength="63" lengthAdjust="spacingAndGlyphs">sandbox</text>
- <text x="504" y="631" fill="#afafaf" textLength="54" lengthAdjust="spacingAndGlyphs">/model</text>
- <text x="684" y="631" fill="#afafaf" textLength="45" lengthAdjust="spacingAndGlyphs">quota</text>
- <rect x="801" y="629" width="36" height="17" fill="#001a00" />
+ <text x="0" y="597" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ┌────────────────────────────────────────────────────────────────────────────────────────────┐ │</text>
+  <text x="0" y="614" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ Preview:  │ │</text>
- <text x="801" y="631" fill="#ffffff" textLength="36" lengthAdjust="spacingAndGlyphs">diff</text>
- <rect x="837" y="629" width="18" height="17" fill="#001a00" />
- <text x="864" y="631" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="631" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="648" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="27" y="648" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="631" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ workspace (/directory) branch sandbox /model quota diff │ │</text>
- <text x="45" y="648" fill="#ffffff" textLength="126" lengthAdjust="spacingAndGlyphs">~/project/path</text>
- <text x="288" y="648" fill="#ffffff" textLength="36" lengthAdjust="spacingAndGlyphs">main</text>
- <text x="396" y="648" fill="#00cd00" textLength="54" lengthAdjust="spacingAndGlyphs">docker</text>
- <text x="504" y="648" fill="#ffffff" textLength="126" lengthAdjust="spacingAndGlyphs">gemini-2.5-pro</text>
- <text x="684" y="648" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs">42% used</text>
- <rect x="801" y="646" width="27" height="17" fill="#001a00" />
- <text x="801" y="648" fill="#d7ffd7" textLength="27" lengthAdjust="spacingAndGlyphs">+12</text>
- <rect x="828" y="646" width="9" height="17" fill="#001a00" />
- <rect x="837" y="646" width="18" height="17" fill="#001a00" />
- <text x="837" y="648" fill="#ff87af" textLength="18" lengthAdjust="spacingAndGlyphs">-4</text>
- <text x="864" y="648" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="891" y="648" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="648" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ ~/project/path main docker gemini-2.5-pro 42% used +12 -4 │ │</text>
- <text x="0" y="665" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="27" y="665" fill="#333333" textLength="846" lengthAdjust="spacingAndGlyphs">└────────────────────────────────────────────────────────────────────────────────────────────┘</text>
+ <text x="0" y="665" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ └────────────────────────────────────────────────────────────────────────────────────────────┘ │</text>
- <text x="891" y="665" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="682" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="891" y="682" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="682" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="0" y="699" fill="#333333" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="699" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/FooterConfigDialog.test.tsx:141:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[30/184]⎯
FAIL src/ui/components/FooterConfigDialog.test.tsx > <FooterConfigDialog /> > updates the preview when Show footer labels is toggled off
Error: Snapshot `<FooterConfigDialog /> > updates the preview when Show footer labels is toggled off 2` mismatched
- Expected
+ Received
@@ -2,149 +2,48 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="717" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
- <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="36" fill="#ffffff" textLength="144" lengthAdjust="spacingAndGlyphs" font-weight="bold">Configure Footer</text>
-  <text x="891" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Configure Footer │</text>
- <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="70" fill="#afafaf" textLength="396" lengthAdjust="spacingAndGlyphs">Select which items to display in the footer.</text>
-  <text x="891" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Select which items to display in the footer. │</text>
- <text x="0" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="104" fill="#d7ffd7" textLength="27" lengthAdjust="spacingAndGlyphs">[✓]</text>
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="72" y="104" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs"> workspace</text>
- <text x="891" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [✓] workspace │</text>
- <text x="45" y="121" fill="#afafaf" textLength="234" lengthAdjust="spacingAndGlyphs"> Current working directory</text>
- <text x="891" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="138" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="138" fill="#d7ffd7" textLength="27" lengthAdjust="spacingAndGlyphs">[✓]</text>
+ <text x="0" y="121" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Current working directory │</text>
- <text x="72" y="138" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs"> git-branch</text>
- <text x="891" y="138" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="138" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [✓] git-branch │</text>
- <text x="45" y="155" fill="#afafaf" textLength="477" lengthAdjust="spacingAndGlyphs"> Current git branch name (not shown when unavailable)</text>
- <text x="891" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="172" fill="#d7ffd7" textLength="27" lengthAdjust="spacingAndGlyphs">[✓]</text>
+ <text x="0" y="155" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Current git branch name (not shown when unavailable) │</text>
- <text x="72" y="172" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs"> sandbox</text>
- <text x="891" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="172" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [✓] sandbox │</text>
- <text x="45" y="189" fill="#afafaf" textLength="297" lengthAdjust="spacingAndGlyphs"> Sandbox type and trust indicator</text>
- <text x="891" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="206" fill="#d7ffd7" textLength="27" lengthAdjust="spacingAndGlyphs">[✓]</text>
+ <text x="0" y="189" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Sandbox type and trust indicator │</text>
- <text x="72" y="206" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs"> model-name</text>
- <text x="891" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="206" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [✓] model-name │</text>
- <text x="45" y="223" fill="#afafaf" textLength="225" lengthAdjust="spacingAndGlyphs"> Current model identifier</text>
- <text x="891" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="240" fill="#d7ffd7" textLength="27" lengthAdjust="spacingAndGlyphs">[✓]</text>
+ <text x="0" y="223" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Current model identifier │</text>
- <text x="72" y="240" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs"> quota</text>
- <text x="891" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="240" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [✓] quota │</text>
- <text x="45" y="257" fill="#afafaf" textLength="540" lengthAdjust="spacingAndGlyphs"> Percentage of daily limit used (not shown when unavailable)</text>
- <text x="891" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="274" fill="#afafaf" textLength="27" lengthAdjust="spacingAndGlyphs">[ ]</text>
+ <text x="0" y="257" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Percentage of daily limit used (not shown when unavailable) │</text>
- <text x="72" y="274" fill="#ffffff" textLength="117" lengthAdjust="spacingAndGlyphs"> context-used</text>
- <text x="891" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="274" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [ ] context-used │</text>
- <text x="45" y="291" fill="#afafaf" textLength="306" lengthAdjust="spacingAndGlyphs"> Percentage of context window used</text>
- <text x="891" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="308" fill="#afafaf" textLength="27" lengthAdjust="spacingAndGlyphs">[ ]</text>
+ <text x="0" y="291" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Percentage of context window used │</text>
- <text x="72" y="308" fill="#ffffff" textLength="117" lengthAdjust="spacingAndGlyphs"> memory-usage</text>
- <text x="891" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="308" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [ ] memory-usage │</text>
- <text x="45" y="325" fill="#afafaf" textLength="279" lengthAdjust="spacingAndGlyphs"> Memory used by the application</text>
- <text x="891" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="342" fill="#afafaf" textLength="27" lengthAdjust="spacingAndGlyphs">[ ]</text>
+ <text x="0" y="325" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Memory used by the application │</text>
- <text x="72" y="342" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs"> session-id</text>
- <text x="891" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="342" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [ ] session-id │</text>
- <text x="45" y="359" fill="#afafaf" textLength="378" lengthAdjust="spacingAndGlyphs"> Unique identifier for the current session</text>
- <text x="891" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="376" fill="#afafaf" textLength="27" lengthAdjust="spacingAndGlyphs">[ ]</text>
+ <text x="0" y="359" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Unique identifier for the current session │</text>
- <text x="72" y="376" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs"> auth</text>
- <text x="891" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="376" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [ ] auth │</text>
- <text x="45" y="393" fill="#afafaf" textLength="252" lengthAdjust="spacingAndGlyphs"> Current authentication info</text>
- <text x="891" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="410" fill="#afafaf" textLength="27" lengthAdjust="spacingAndGlyphs">[ ]</text>
+ <text x="0" y="393" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Current authentication info │</text>
- <text x="72" y="410" fill="#ffffff" textLength="117" lengthAdjust="spacingAndGlyphs"> code-changes</text>
- <text x="891" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="410" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [ ] code-changes │</text>
- <text x="45" y="427" fill="#afafaf" textLength="513" lengthAdjust="spacingAndGlyphs"> Lines added/removed in the session (not shown when zero)</text>
- <text x="891" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="444" fill="#afafaf" textLength="27" lengthAdjust="spacingAndGlyphs">[ ]</text>
+ <text x="0" y="427" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Lines added/removed in the session (not shown when zero) │</text>
- <text x="72" y="444" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs"> token-count</text>
- <text x="891" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="444" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [ ] token-count │</text>
- <text x="45" y="461" fill="#afafaf" textLength="495" lengthAdjust="spacingAndGlyphs"> Total tokens used in the session (not shown when zero)</text>
- <text x="891" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <rect x="27" y="476" width="9" height="17" fill="#001a00" />
+ <text x="0" y="461" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│  Total tokens used in the session (not shown when zero) │</text>
- <text x="27" y="478" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">&gt;</text>
- <rect x="36" y="476" width="9" height="17" fill="#001a00" />
- <rect x="45" y="476" width="27" height="17" fill="#001a00" />
- <text x="45" y="478" fill="#afafaf" textLength="27" lengthAdjust="spacingAndGlyphs">[ ]</text>
- <rect x="72" y="476" width="171" height="17" fill="#001a00" />
- <text x="72" y="478" fill="#00cd00" textLength="171" lengthAdjust="spacingAndGlyphs"> Show footer labels</text>
- <rect x="243" y="476" width="630" height="17" fill="#001a00" />
-  <text x="891" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="478" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; [ ] Show footer labels │</text>
- <text x="0" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="493" width="846" height="17" fill="#001a00" />
- <text x="891" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="495" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="512" fill="#ffffff" textLength="207" lengthAdjust="spacingAndGlyphs">Reset to default footer</text>
-  <text x="891" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="512" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Reset to default footer │</text>
- <text x="0" y="529" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="891" y="529" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="529" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="0" y="546" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="546" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="563" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="546" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="563" fill="#afafaf" textLength="585" lengthAdjust="spacingAndGlyphs">Enter to select · ↑/↓ to navigate · ←/→ to reorder · Esc to close</text>
-  <text x="891" y="563" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="563" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enter to select · ↑/↓ to navigate · ←/→ to reorder · Esc to close │</text>
- <text x="0" y="580" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="580" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="597" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="580" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="597" fill="#333333" textLength="846" lengthAdjust="spacingAndGlyphs">┌────────────────────────────────────────────────────────────────────────────────────────────┐</text>
-  <text x="891" y="597" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="597" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ┌────────────────────────────────────────────────────────────────────────────────────────────┐ │</text>
- <text x="0" y="614" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="27" y="614" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="45" y="614" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs" font-weight="bold">Preview:</text>
- <text x="864" y="614" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="614" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="631" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="27" y="631" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="45" y="631" fill="#afafaf" textLength="126" lengthAdjust="spacingAndGlyphs">~/project/path</text>
- <text x="207" y="631" fill="#afafaf" textLength="27" lengthAdjust="spacingAndGlyphs"> · </text>
-  <text x="270" y="631" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">main</text>
+ <text x="0" y="614" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ Preview: │ │</text>
- <text x="342" y="631" fill="#afafaf" textLength="27" lengthAdjust="spacingAndGlyphs"> · </text>
- <text x="405" y="631" fill="#00cd00" textLength="54" lengthAdjust="spacingAndGlyphs">docker</text>
- <text x="495" y="631" fill="#afafaf" textLength="27" lengthAdjust="spacingAndGlyphs"> · </text>
- <text x="558" y="631" fill="#afafaf" textLength="126" lengthAdjust="spacingAndGlyphs">gemini-2.5-pro</text>
- <text x="720" y="631" fill="#afafaf" textLength="27" lengthAdjust="spacingAndGlyphs"> · </text>
- <text x="783" y="631" fill="#afafaf" textLength="72" lengthAdjust="spacingAndGlyphs">42% used</text>
- <text x="864" y="631" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="891" y="631" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="631" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ ~/project/path · main · docker · gemini-2.5-pro · 42% used │ │</text>
- <text x="0" y="648" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="27" y="648" fill="#333333" textLength="846" lengthAdjust="spacingAndGlyphs">└────────────────────────────────────────────────────────────────────────────────────────────┘</text>
+ <text x="0" y="648" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ └────────────────────────────────────────────────────────────────────────────────────────────┘ │</text>
- <text x="891" y="648" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="665" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="891" y="665" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="665" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="0" y="682" fill="#333333" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="682" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/FooterConfigDialog.test.tsx:262:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[31/184]⎯
FAIL src/ui/components/HistoryItemDisplay.test.tsx > <HistoryItemDisplay /> > thinking items > renders "Thinking..." header when isFirstThinking is true
Error: Snapshot `<HistoryItemDisplay /> > thinking items > renders "Thinking..." header when isFirstThinking is true 1` mismatched
- Expected
+ Received
- " Thinking... 
+ " Thinking...
 │
 │ Thinking
 │ test
 "
src/ui/components/HistoryItemDisplay.test.tsx:295:27
293|
294| expect(lastFrame()).toContain(' Thinking...');
295| expect(lastFrame()).toMatchSnapshot();
| ^
296| unmount();
297| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[32/184]⎯
FAIL src/ui/components/HistoryItemDisplay.test.tsx > <HistoryItemDisplay /> > gemini items (alternateBuffer=false) > should render a truncated gemini item
Error: Snapshot `<HistoryItemDisplay /> > gemini items (alternateBuffer=false) > should render a truncated gemini item 1` mismatched
- Expected
+ Received
 "✦ Example code block:
- ... 42 hidden (Ctrl+O) ...
+ ... 41 hidden (Ctrl+O) ...
+ 42 Line 42
 43 Line 43
 44 Line 44
 45 Line 45
 46 Line 46
 47 Line 47
 48 Line 48
 49 Line 49
- 50 Line 50
 "
src/ui/components/HistoryItemDisplay.test.tsx:343:29
341| },
342| );
343| expect(lastFrame()).toMatchSnapshot();
| ^
344| unmount();
345| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[33/184]⎯
FAIL src/ui/components/HistoryItemDisplay.test.tsx > <HistoryItemDisplay /> > gemini items (alternateBuffer=false) > should render a truncated gemini_content item
Error: Snapshot `<HistoryItemDisplay /> > gemini items (alternateBuffer=false) > should render a truncated gemini_content item 1` mismatched
- Expected
+ Received
 " Example code block:
- ... 42 hidden (Ctrl+O) ...
+ ... 41 hidden (Ctrl+O) ...
+ 42 Line 42
 43 Line 43
 44 Line 44
 45 Line 45
 46 Line 46
 47 Line 47
 48 Line 48
 49 Line 49
- 50 Line 50
 "
src/ui/components/HistoryItemDisplay.test.tsx:388:29
386| },
387| );
388| expect(lastFrame()).toMatchSnapshot();
| ^
389| unmount();
390| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[34/184]⎯
FAIL src/ui/components/HookStatusDisplay.test.tsx > <HookStatusDisplay /> > matches SVG snapshot for single hook
Error: Snapshot `<HookStatusDisplay /> > matches SVG snapshot for single hook 2` mismatched
- Expected
+ Received
@@ -2,8 +2,8 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="37" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#afafaf" textLength="225" lengthAdjust="spacingAndGlyphs" font-style="italic">Executing Hook: test-hook</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Executing Hook: test-hook </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/HookStatusDisplay.test.tsx:90:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[35/184]⎯
FAIL src/ui/components/HooksDialog.test.tsx > HooksDialog > scrolling behavior > should scroll down when down arrow is pressed
AssertionError: expected '\n╭──────────────────────────────────…' to contain '▲'
- Expected
+ Received
- ▲
+
+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮
+ │ │
+ │ Security Warning: │
+ │ Hooks can execute arbitrary commands on your system. Only use hooks from sources you trust. │
+ │ Review hook scripts carefully. │
+ │ │
+ │ Learn more: https://geminicli.com/docs/hooks │
+ │ │
+ │ Configured Hooks │
+ │ │
+ │ event-1 │
+ │ │
+ │ hook-1 [enabled] │
+ │ Test hook: hook-1 │
+ │ Source: /mock/path/GEMINI.md | Command: run-hook-1 │
+ │ │
+ │ hook-4 [disabled] │
+ │ Test hook: hook-4 │
+ │ Source: /mock/path/GEMINI.md | Command: run-hook-4 │
+ │ │
+ │ hook-7 [enabled] │
+ │ Test hook: hook-7 │
+ │ Source: /mock/path/GEMINI.md | Command: run-hook-7 │
+ │ │
+ │ hook-10 [disabled] │
+ │ Test hook: hook-10 │
+ │ Source: /mock/path/GEMINI.md | Command: run-hook-10 │
+ │ │
+ │ ▼ │
+ │ │
+ │ Tip: Use /hooks enable <hook-name> or /hooks disable <hook-name> to toggle individual hooks. Use │
+ │ /hooks enable-all or /hooks disable-all to toggle all hooks at once. │
+ │ │
+ │ (Press Esc to close) │
+ │ │
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
+
src/ui/components/HooksDialog.test.tsx:169:27
167|
168| // Should now show up indicator after scrolling down
169| expect(lastFrame()).toContain('▲');
| ^
170| unmount();
171| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[36/184]⎯
FAIL src/ui/components/HooksDialog.test.tsx > HooksDialog > scrolling behavior > should not scroll beyond the end
AssertionError: expected '\n╭──────────────────────────────────…' to contain '▲'
- Expected
+ Received
- ▲
+
+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮
+ │ │
+ │ Security Warning: │
+ │ Hooks can execute arbitrary commands on your system. Only use hooks from sources you trust. │
+ │ Review hook scripts carefully. │
+ │ │
+ │ Learn more: https://geminicli.com/docs/hooks │
+ │ │
+ │ Configured Hooks │
+ │ │
+ │ event-1 │
+ │ │
+ │ hook-1 [enabled] │
+ │ Test hook: hook-1 │
+ │ Source: /mock/path/GEMINI.md | Command: run-hook-1 │
+ │ │
+ │ hook-4 [disabled] │
+ │ Test hook: hook-4 │
+ │ Source: /mock/path/GEMINI.md | Command: run-hook-4 │
+ │ │
+ │ hook-7 [enabled] │
+ │ Test hook: hook-7 │
+ │ Source: /mock/path/GEMINI.md | Command: run-hook-7 │
+ │ │
+ │ hook-10 [disabled] │
+ │ Test hook: hook-10 │
+ │ Source: /mock/path/GEMINI.md | Command: run-hook-10 │
+ │ │
+ │ ▼ │
+ │ │
+ │ Tip: Use /hooks enable <hook-name> or /hooks disable <hook-name> to toggle individual hooks. Use │
+ │ /hooks enable-all or /hooks disable-all to toggle all hooks at once. │
+ │ │
+ │ (Press Esc to close) │
+ │ │
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
+
src/ui/components/HooksDialog.test.tsx:216:21
214|
215| const frame = lastFrame();
216| expect(frame).toContain('▲');
| ^
217| // At the end, down indicator should be hidden
218| expect(frame).not.toContain('▼');
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[37/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'mid-word'
Error: Snapshot `InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'mid-word' 2` mismatched
- Expected
+ Received
@@ -2,16 +2,10 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="71" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
- <text x="0" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#d7afff" textLength="18" lengthAdjust="spacingAndGlyphs">&gt; </text>
- <text x="36" y="19" fill="#ffffff" textLength="27" lengthAdjust="spacingAndGlyphs">hel</text>
- <rect x="63" y="17" width="9" height="17" fill="#ffffff" />
- <text x="63" y="19" fill="#000000" textLength="9" lengthAdjust="spacingAndGlyphs">l</text>
- <text x="72" y="19" fill="#ffffff" textLength="63" lengthAdjust="spacingAndGlyphs">o world</text>
-  <text x="891" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; hello world │</text>
- <text x="0" y="36" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/InputPrompt.test.tsx:2340:11
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[38/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'at the beginning of the line'
Error: Snapshot `InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'at the beginning of the line' 2` mismatched
- Expected
+ Received
@@ -2,15 +2,10 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="71" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
- <text x="0" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#d7afff" textLength="18" lengthAdjust="spacingAndGlyphs">&gt; </text>
- <rect x="36" y="17" width="9" height="17" fill="#ffffff" />
- <text x="36" y="19" fill="#000000" textLength="9" lengthAdjust="spacingAndGlyphs">h</text>
- <text x="45" y="19" fill="#ffffff" textLength="36" lengthAdjust="spacingAndGlyphs">ello</text>
-  <text x="891" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; hello │</text>
- <text x="0" y="36" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/InputPrompt.test.tsx:2340:11
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[39/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'at the end of the line'
Error: Snapshot `InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'at the end of the line' 2` mismatched
- Expected
+ Received
@@ -2,14 +2,10 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="71" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
- <text x="0" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#d7afff" textLength="18" lengthAdjust="spacingAndGlyphs">&gt; </text>
- <text x="36" y="19" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs">hello</text>
- <rect x="81" y="17" width="9" height="17" fill="#ffffff" />
-  <text x="891" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; hello │</text>
- <text x="0" y="36" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/InputPrompt.test.tsx:2340:11
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[40/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'on a highlighted token'
Error: Snapshot `InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'on a highlighted token' 2` mismatched
- Expected
+ Received
@@ -2,17 +2,10 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="71" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
- <text x="0" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#d7afff" textLength="18" lengthAdjust="spacingAndGlyphs">&gt; </text>
- <text x="36" y="19" fill="#ffffff" textLength="36" lengthAdjust="spacingAndGlyphs">run </text>
- <text x="72" y="19" fill="#d7afff" textLength="45" lengthAdjust="spacingAndGlyphs">@path</text>
- <rect x="117" y="17" width="9" height="17" fill="#d7afff" />
- <text x="117" y="19" fill="#000000" textLength="9" lengthAdjust="spacingAndGlyphs">/</text>
- <text x="126" y="19" fill="#d7afff" textLength="63" lengthAdjust="spacingAndGlyphs">to/file</text>
-  <text x="891" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; run @path/to/file │</text>
- <text x="0" y="36" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/InputPrompt.test.tsx:2340:11
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[41/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'for multi-byte unicode characters'
Error: Snapshot `InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'for multi-byte unicode characters' 2` mismatched
- Expected
+ Received
@@ -2,16 +2,10 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="71" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
- <text x="0" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#d7afff" textLength="18" lengthAdjust="spacingAndGlyphs">&gt; </text>
- <text x="36" y="19" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">hello </text>
- <rect x="90" y="17" width="9" height="17" fill="#ffffff" />
- <text x="90" y="19" fill="#000000" textLength="9" lengthAdjust="spacingAndGlyphs">👍</text>
- <text x="99" y="19" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs"> world</text>
-  <text x="882" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; hello 👍 world │ </text>
- <text x="0" y="36" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/InputPrompt.test.tsx:2340:11
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[42/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'after multi-byte unicode characters'
Error: Snapshot `InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'after multi-byte unicode characters' 2` mismatched
- Expected
+ Received
@@ -2,15 +2,10 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="71" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
- <text x="0" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#d7afff" textLength="18" lengthAdjust="spacingAndGlyphs">&gt; </text>
- <text x="36" y="19" fill="#ffffff" textLength="9" lengthAdjust="spacingAndGlyphs">👍</text>
- <rect x="45" y="17" width="9" height="17" fill="#ffffff" />
- <text x="45" y="19" fill="#000000" textLength="9" lengthAdjust="spacingAndGlyphs">A</text>
-  <text x="882" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; 👍A │ </text>
- <text x="0" y="36" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/InputPrompt.test.tsx:2340:11
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[43/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'at the end of a line with unicode cha…'
Error: Snapshot `InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'at the end of a line with unicode cha…' 2` mismatched
- Expected
+ Received
@@ -2,13 +2,10 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="71" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
- <text x="0" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#d7afff" textLength="18" lengthAdjust="spacingAndGlyphs">&gt; </text>
- <text x="36" y="19" fill="#ffffff" textLength="63" lengthAdjust="spacingAndGlyphs">hello 👍</text>
-  <text x="882" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; hello 👍 │ </text>
- <text x="0" y="36" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/InputPrompt.test.tsx:2340:11
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[44/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'at the end of a short line with unico…'
Error: Snapshot `InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'at the end of a short line with unico…' 2` mismatched
- Expected
+ Received
@@ -2,14 +2,10 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="71" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
- <text x="0" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#d7afff" textLength="18" lengthAdjust="spacingAndGlyphs">&gt; </text>
- <text x="36" y="19" fill="#ffffff" textLength="9" lengthAdjust="spacingAndGlyphs">👍</text>
- <rect x="45" y="17" width="9" height="17" fill="#ffffff" />
-  <text x="882" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; 👍 │ </text>
- <text x="0" y="36" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/InputPrompt.test.tsx:2340:11
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[45/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'on an empty line'
Error: Snapshot `InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'on an empty line' 2` mismatched
- Expected
+ Received
@@ -2,14 +2,10 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="71" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
- <text x="0" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="18" y="19" fill="#d7afff" textLength="18" lengthAdjust="spacingAndGlyphs">&gt; </text>
- <rect x="36" y="17" width="9" height="17" fill="#ffffff" />
- <text x="45" y="19" fill="#afafaf" textLength="315" lengthAdjust="spacingAndGlyphs"> Type your message or @path/to/file</text>
-  <text x="891" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt;  Type your message or @path/to/file │</text>
- <text x="0" y="36" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/InputPrompt.test.tsx:2340:11
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[46/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'on a space between words'
Error: Snapshot `InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'on a space between words' 2` mismatched
- Expected
+ Received
@@ -2,15 +2,10 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="71" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
- <text x="0" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#d7afff" textLength="18" lengthAdjust="spacingAndGlyphs">&gt; </text>
- <text x="36" y="19" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs">hello</text>
- <rect x="81" y="17" width="9" height="17" fill="#ffffff" />
- <text x="90" y="19" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs">world</text>
-  <text x="891" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; hello world │</text>
- <text x="0" y="36" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/InputPrompt.test.tsx:2340:11
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[47/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > Highlighting and Cursor Display > multi-line scenarios > should display cursor correctly 'in the middle of a line' in a multiline block
Error: Snapshot `InputPrompt > Highlighting and Cursor Display > multi-line scenarios > should display cursor correctly 'in the middle of a line' in a multiline block 2` mismatched
- Expected
+ Received
@@ -2,22 +2,12 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="105" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
- <text x="0" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#d7afff" textLength="18" lengthAdjust="spacingAndGlyphs">&gt; </text>
- <text x="36" y="19" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">first line</text>
- <text x="891" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="36" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="36" fill="#ffffff" textLength="27" lengthAdjust="spacingAndGlyphs">sec</text>
- <rect x="63" y="34" width="9" height="17" fill="#ffffff" />
-  <text x="63" y="36" fill="#000000" textLength="9" lengthAdjust="spacingAndGlyphs">o</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; first line │</text>
- <text x="72" y="36" fill="#ffffff" textLength="63" lengthAdjust="spacingAndGlyphs">nd line</text>
- <text x="891" y="36" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="53" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ second line │</text>
- <text x="36" y="53" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">third line</text>
-  <text x="891" y="53" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ third line │</text>
- <text x="0" y="70" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/InputPrompt.test.tsx:2393:11
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[48/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > Highlighting and Cursor Display > multi-line scenarios > should display cursor correctly 'at the beginning of a line' in a multiline block
Error: Snapshot `InputPrompt > Highlighting and Cursor Display > multi-line scenarios > should display cursor correctly 'at the beginning of a line' in a multiline block 2` mismatched
- Expected
+ Received
@@ -2,18 +2,11 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="88" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
- <text x="0" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#d7afff" textLength="18" lengthAdjust="spacingAndGlyphs">&gt; </text>
- <text x="36" y="19" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">first line</text>
- <text x="891" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="36" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="34" width="9" height="17" fill="#ffffff" />
-  <text x="36" y="36" fill="#000000" textLength="9" lengthAdjust="spacingAndGlyphs">s</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; first line │</text>
- <text x="45" y="36" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">econd line</text>
-  <text x="891" y="36" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ second line │</text>
- <text x="0" y="53" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/InputPrompt.test.tsx:2393:11
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[49/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > Highlighting and Cursor Display > multi-line scenarios > should display cursor correctly 'at the end of a line' in a multiline block
Error: Snapshot `InputPrompt > Highlighting and Cursor Display > multi-line scenarios > should display cursor correctly 'at the end of a line' in a multiline block 2` mismatched
- Expected
+ Received
@@ -2,17 +2,11 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="88" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
- <text x="0" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#d7afff" textLength="18" lengthAdjust="spacingAndGlyphs">&gt; </text>
- <text x="36" y="19" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">first line</text>
- <rect x="126" y="17" width="9" height="17" fill="#ffffff" />
- <text x="891" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="36" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; first line │</text>
- <text x="36" y="36" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs">second line</text>
-  <text x="891" y="36" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ second line │</text>
- <text x="0" y="53" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/InputPrompt.test.tsx:2393:11
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[50/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > Highlighting and Cursor Display > multi-line scenarios > should display cursor on a blank line in a multiline block
Error: Snapshot `InputPrompt > Highlighting and Cursor Display > multi-line scenarios > should display cursor on a blank line in a multiline block 2` mismatched
- Expected
+ Received
@@ -2,19 +2,12 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="105" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
- <text x="0" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="18" y="19" fill="#d7afff" textLength="18" lengthAdjust="spacingAndGlyphs">&gt; </text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; first line │</text>
- <text x="36" y="19" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">first line</text>
- <text x="891" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="36" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="34" width="9" height="17" fill="#ffffff" />
- <text x="891" y="36" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="53" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="36" y="53" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">third line</text>
-  <text x="891" y="53" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ third line │</text>
- <text x="0" y="70" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/InputPrompt.test.tsx:2416:9
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[51/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > multiline rendering > should correctly render multiline input including blank lines
Error: Snapshot `InputPrompt > multiline rendering > should correctly render multiline input including blank lines 2` mismatched
- Expected
+ Received
@@ -2,19 +2,12 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="105" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
- <text x="0" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="18" y="19" fill="#d7afff" textLength="18" lengthAdjust="spacingAndGlyphs">&gt; </text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; hello │</text>
- <text x="36" y="19" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs">hello</text>
- <text x="891" y="19" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="36" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="36" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="53" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="36" y="53" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs">world</text>
- <rect x="81" y="51" width="9" height="17" fill="#ffffff" />
-  <text x="891" y="53" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ world │</text>
- <text x="0" y="70" fill="#00cd00" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/InputPrompt.test.tsx:2544:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[52/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > command search (Ctrl+R when not in shell) > expands and collapses long suggestion via Right/Left arrows
Error: Snapshot `InputPrompt > command search (Ctrl+R when not in shell) > expands and collapses long suggestion via Right/Left arrows > command-search-render-expanded-match 1` mismatched
- Expected
+ Received
 "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
- (r:) Type your message or @path/to/file 
+ (r:) Type your message or @path/to/file
 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
- lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll ← 
+ lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll ←
- lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll 
+ lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
- llllllllllllllllllllllllllllllllllllllllllllllllll 
+ llllllllllllllllllllllllllllllllllllllllllllllllll
 "
src/ui/components/InputPrompt.test.tsx:3428:34
3426| expect(clean(stdout.lastFrame())).toContain('←');
3427| });
3428| expect(stdout.lastFrame()).toMatchSnapshot(
| ^
3429| 'command-search-render-expanded-match',
3430| );
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[53/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > command search (Ctrl+R when not in shell) > renders match window and expanded view (snapshots)
Error: Snapshot `InputPrompt > command search (Ctrl+R when not in shell) > renders match window and expanded view (snapshots) > command-search-render-collapsed-match 1` mismatched
- Expected
+ Received
 "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
- (r:) commit 
+ (r:) commit
 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
- git commit -m "feat: add search" in src/app 
+ git commit -m "feat: add search" in src/app
 "
src/ui/components/InputPrompt.test.tsx:3470:34
3468| expect(stdout.lastFrame()).toContain('(r:)');
3469| });
3470| expect(stdout.lastFrame()).toMatchSnapshot(
| ^
3471| 'command-search-render-collapsed-match',
3472| );
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[54/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > snapshots > should render correctly in shell mode
Error: Snapshot `InputPrompt > snapshots > should render correctly in shell mode 1` mismatched
- Expected
+ Received
 "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
- ! Type your message or @path/to/file 
+ ! Type your message or @path/to/file
 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
 "
src/ui/components/InputPrompt.test.tsx:4184:34
4182| );
4183| await waitFor(() => expect(stdout.lastFrame()).toContain('!'));
4184| expect(stdout.lastFrame()).toMatchSnapshot();
| ^
4185| unmount();
4186| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[55/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > snapshots > should render correctly when accepting edits
Error: Snapshot `InputPrompt > snapshots > should render correctly when accepting edits 1` mismatched
- Expected
+ Received
 "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
- > Type your message or @path/to/file 
+ > Type your message or @path/to/file
 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
 "
src/ui/components/InputPrompt.test.tsx:4194:34
4192| );
4193| await waitFor(() => expect(stdout.lastFrame()).toContain('>'));
4194| expect(stdout.lastFrame()).toMatchSnapshot();
| ^
4195| unmount();
4196| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[56/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > snapshots > should render correctly in yolo mode
Error: Snapshot `InputPrompt > snapshots > should render correctly in yolo mode 1` mismatched
- Expected
+ Received
 "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
- * Type your message or @path/to/file 
+ * Type your message or @path/to/file
 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
 "
src/ui/components/InputPrompt.test.tsx:4204:34
4202| );
4203| await waitFor(() => expect(stdout.lastFrame()).toContain('*'));
4204| expect(stdout.lastFrame()).toMatchSnapshot();
| ^
4205| unmount();
4206| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[57/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > snapshots > should not show inverted cursor when shell is focused
Error: Snapshot `InputPrompt > snapshots > should not show inverted cursor when shell is focused 1` mismatched
- Expected
+ Received
 "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
- > Type your message or @path/to/file 
+ > Type your message or @path/to/file
 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄"
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:73:34
71|
72| // Assert the text matches standard snapshot, stripping ANSI for sta…
73| expect(stripAnsi(textContent)).toMatchSnapshot();
| ^
74|
75| // Assert the SVG matches the file snapshot
src/ui/components/InputPrompt.test.tsx:4214:34
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[58/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > image path transformation snapshots > should snapshot collapsed image path
Error: Snapshot `InputPrompt > image path transformation snapshots > should snapshot collapsed image path 1` mismatched
- Expected
+ Received
 "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
- > [Image ...reenshot2x.png] 
+ > [Image ...reenshot2x.png]
 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
 "
src/ui/components/InputPrompt.test.tsx:4521:34
4519| expect(stdout.lastFrame()).toContain('[Image');
4520| });
4521| expect(stdout.lastFrame()).toMatchSnapshot();
| ^
4522| unmount();
4523| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[59/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > image path transformation snapshots > should snapshot expanded image path when cursor is on it
Error: Snapshot `InputPrompt > image path transformation snapshots > should snapshot expanded image path when cursor is on it 1` mismatched
- Expected
+ Received
 "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
- > @/path/to/screenshots/screenshot2x.png 
+ > @/path/to/screenshots/screenshot2x.png
 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
 "
src/ui/components/InputPrompt.test.tsx:4540:34
4538| expect(stdout.lastFrame()).toContain('@/path/to/screenshots');
4539| });
4540| expect(stdout.lastFrame()).toMatchSnapshot();
| ^
4541| unmount();
4542| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[60/184]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > History Navigation and Completion Suppression > should not render suggestions during history navigation
Error: Snapshot `InputPrompt > History Navigation and Completion Suppression > should not render suggestions during history navigation 1` mismatched
- Expected
+ Received
 "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
- > second message 
+ > second message
 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
 "
src/ui/components/InputPrompt.test.tsx:4933:34
4931| });
4932|
4933| expect(stdout.lastFrame()).toMatchSnapshot();
| ^
4934| unmount();
4935| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[61/184]⎯
FAIL src/ui/components/LoadingIndicator.test.tsx > <LoadingIndicator /> > should transition correctly between states
AssertionError: expected 'MockRespondingSpinner Now Responding …' to contain '⠏'
- Expected
+ Received
- ⠏
+ MockRespondingSpinner Now Responding (esc to cancel, 2s)
+
src/ui/components/LoadingIndicator.test.tsx:222:20
220| await waitUntilReady();
221| output = lastFrame();
222| expect(output).toContain('⠏');
| ^
223| expect(output).toContain('Please Confirm');
224| expect(output).not.toContain('(esc to cancel)');
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[62/184]⎯
FAIL src/ui/components/MainContent.test.tsx > MainContent > renders mixed history items (user + gemini) with single line padding between them
Error: Snapshot `MainContent > renders mixed history items (user + gemini) with single line padding between them 1` mismatched
- Expected
+ Received
@@ -1,9 +1,9 @@
 "ScrollableList
 AppHeader(full)
 ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
- > User message 
+ > User message
 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
 ✦ Gemini response
 Gemini response
 Gemini response
 Gemini response
src/ui/components/MainContent.test.tsx:514:20
512|
513| const output = lastFrame();
514| expect(output).toMatchSnapshot();
| ^
515| unmount();
516| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[63/184]⎯
FAIL src/ui/components/MainContent.test.tsx > MainContent > renders a subagent with a complete box including bottom border
Error: Snapshot `MainContent > renders a subagent with a complete box including bottom border 1` mismatched
- Expected
+ Received
@@ -1,8 +1,8 @@
 "AppHeader(full)
 ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
- > Investigate 
+ > Investigate
 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
 ╭──────────────────────────────────────────────────────────────────────────╮
 │ ≡ Running Agent... (ctrl+o to collapse) │
 │ │
src/ui/components/MainContent.test.tsx:562:25
560| });
561|
562| expect(lastFrame()).toMatchSnapshot();
| ^
563| unmount();
564| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[64/184]⎯
FAIL src/ui/components/MainContent.test.tsx > MainContent > renders a ToolConfirmationQueue without an extra line when preceded by hidden tools
Error: Snapshot `MainContent > renders a ToolConfirmationQueue without an extra line when preceded by hidden tools 1` mismatched
- Expected
+ Received
@@ -1,8 +1,8 @@
 "AppHeader(full)
 ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
- > Apply plan 
+ > Apply plan
 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
 ╭──────────────────────────────────────────────────────────────────────────────╮
 │ Ready to start implementation? │
 │ │
src/ui/components/MainContent.test.tsx:689:25
687|
688| // Snapshot will reveal if there are extra blank lines
689| expect(lastFrame()).toMatchSnapshot();
| ^
690| unmount();
691| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[65/184]⎯
FAIL src/ui/components/MainContent.test.tsx > MainContent > renders a spurious line when a tool group has only hidden tools and borderBottom true
Error: Snapshot `MainContent > renders a spurious line when a tool group has only hidden tools and borderBottom true 1` mismatched
- Expected
+ Received
 "AppHeader(full)
 ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
- > Apply plan 
+ > Apply plan
 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
 "
src/ui/components/MainContent.test.tsx:727:25
725|
726| // This snapshot will show no spurious line because the group is n…
727| expect(lastFrame()).toMatchSnapshot();
| ^
728| unmount();
729| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[66/184]⎯
FAIL src/ui/components/MainContent.test.tsx > MainContent > renders multiple thinking messages sequentially correctly
Error: Snapshot `MainContent > renders multiple thinking messages sequentially correctly 1` mismatched
- Expected
+ Received
@@ -1,11 +1,11 @@
 "ScrollableList
 AppHeader(full)
 ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
- > Plan a solution 
+ > Plan a solution
 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
- Thinking... 
+ Thinking...
 │
 │ Initial analysis
 │ This is a multiple line paragraph for the first thinking message of how the
 │ model analyzes the problem.
 │
src/ui/components/MainContent.test.tsx:783:20
781| expect(output).toContain('Planning execution');
782| expect(output).toContain('Refining approach');
783| expect(output).toMatchSnapshot();
| ^
784| await expect(renderResult).toMatchSvgSnapshot();
785| renderResult.unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[67/184]⎯
FAIL src/ui/components/MainContent.test.tsx > MainContent > MainContent Tool Output Height Logic > 'ASB mode - Focused shell should expand'
FAIL src/ui/components/MainContent.test.tsx > MainContent > MainContent Tool Output Height Logic > 'ASB mode - Unfocused shell'
AssertionError: expected 'ScrollableList\nAppHeader(full)\n\n╭─…' not to match /\bLine 1\b/
- Expected:
/\bLine 1\b/
+ Received:
"ScrollableList
AppHeader(full)
╭──────────────────────────────────────────────────────────────────────────────────────────────╮
│ ⠋ Shell Command Running a long command... │
│ │
│ Line 1 █ │
│ Line 2 █ │
│ Line 3 █ │
│ Line 4 █ │
│ Line 5 █ │
│ Line 6 │
│ Line 7 │
│ Line 8 │
│ Line 9 │
│ Line 10 │
╰──────────────────────────────────────────────────────────────────────────────────────────────╯
"
src/ui/components/MainContent.test.tsx:898:30
896| expect(output).toMatch(line1Regex);
897| } else {
898| expect(output).not.toMatch(line1Regex);
| ^
899| }
900|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[68/184]⎯
FAIL src/ui/components/ModelDialog.test.tsx > <ModelDialog /> > Preview Models > shows Flash Lite Preview model regardless of tier when flag is enabled
AssertionError: expected '╭────────────────────────────────────…' to contain 'gemini-3.1-flash-lite-preview'
- Expected
+ Received
- gemini-3.1-flash-lite-preview
+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮
+ │ │
+ │ Select Model │
+ │ │
+ │ 1. Auto (Preview) │
+ │ Let Gemini CLI decide the best model for the task: gemini-3-pro, gemini-3-flash │
+ │ ● 2. Auto (Gemini 2.5) │
+ │ Let Gemini CLI decide the best model for the task: gemini-2.5-pro, gemini-2.5-flash │
+ │ 3. Manual │
+ │ Manually select a model │
+ │ │
+ │ Remember model for future sessions: false (Press Tab to toggle) │
+ │ > To use a specific Gemini model on startup, use the --model flag. │
+ │ │
+ │ (Press Esc to close) │
+ │ │
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
+
src/ui/components/ModelDialog.test.tsx:469:22
467|
468| const output = lastFrame();
469| expect(output).toContain(PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL);
| ^
470| unmount();
471| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[69/184]⎯
FAIL src/ui/components/ModelQuotaDisplay.test.tsx > <ModelQuotaDisplay /> > renders quota information when buckets are provided
Error: Snapshot `<ModelQuotaDisplay /> > renders quota information when buckets are provided 1` mismatched
- Expected
+ Received
 "
 ────────────────────────────────────────────────────────────────────────────────────────────────────
 Model usage
- Pro ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ 25% Resets: 1:30 PM (1h 30m) 
+ Pro ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ 25% Resets: 1:30 PM (1h 30m)
 "
src/ui/components/ModelQuotaDisplay.test.tsx:45:20
43| expect(output).toContain('25%');
44| expect(output).toContain('Resets:');
45| expect(output).toMatchSnapshot();
| ^
46|
47| vi.useRealTimers();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[70/184]⎯
FAIL src/ui/components/MultiFolderTrustDialog.test.tsx > MultiFolderTrustDialog > shows submitting message after a choice is made
AssertionError: expected ' ╭───────────────────────────────────…' to contain 'Applying trust settings...'
- Expected
+ Received
- Applying trust settings...
+ ╭────────────────────────────────────────────────────────────────────────────────────────────────╮
+ │ │
+ │ Do you trust the following folders being added to this workspace? │
+ │ - /path/to/folder1 │
+ │ Trusting a folder allows Gemini to read and perform auto-edits when in auto-approval mode. │
+ │ This is a security feature to prevent accidental execution in untrusted directories. │
+ │ │
+ │ │
+ ╰────────────────────────────────────────────────────────────────────────────────────────────────╯
+
src/ui/components/MultiFolderTrustDialog.test.tsx:221:25
219| await waitUntilReady();
220|
221| expect(lastFrame()).toContain('Applying trust settings...');
| ^
222| unmount();
223| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[71/184]⎯
FAIL src/ui/components/Notifications.test.tsx > Notifications > dismisses warnings on keypress
AssertionError: expected '\n⚠ High priority 1\n' not to contain 'High priority 1'
- Expected
+ Received
- High priority 1
+
+ ⚠ High priority 1
+
src/ui/components/Notifications.test.tsx:237:49
235| await waitUntilReady();
236|
237| expect(lastFrame({ allowEmpty: true })).not.toContain('High priori…
| ^
238| unmount();
239| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[72/184]⎯
FAIL src/ui/components/SessionBrowser.test.tsx > SessionBrowser component > renders a list of sessions and marks current session as disabled
Error: Snapshot `SessionBrowser component > renders a list of sessions and marks current session as disabled 1` mismatched
- Expected
+ Received
 " Chat Sessions (2 total) sorted by date desc
 Navigate: ↑/↓ Resume: Enter Search: / Delete: x Quit: q
 Sort: s Reverse: r First/Last: g/G
 Index │ Msgs │ Age │ Name
- #1 │ 5 │ 10mo │ Second conversation about dogs (current) 
+ #1 │ 5 │ 10mo │ Second conversation about dogs (current)
 #2 │ 2 │ 10mo │ First conversation about cats
 ▼
 "
src/ui/components/SessionBrowser.test.tsx:204:25
202| );
203|
204| expect(lastFrame()).toMatchSnapshot();
| ^
205| });
206|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[73/184]⎯
FAIL src/ui/components/SessionBrowser.test.tsx > SessionBrowser component > enters search mode, filters sessions, and renders match snippets
Error: Snapshot `SessionBrowser component > enters search mode, filters sessions, and renders match snippets 1` mismatched
- Expected
+ Received
 " Chat Sessions (1 total, filtered) sorted by date desc
 Search: query (Esc to cancel)
 Index │ Msgs │ Age │ Match
- #1 │ 1 │ 10mo │ You: Query is here a… (+1 more) 
+ #1 │ 1 │ 10mo │ You: Query is here a… (+1 more)
 ▼
 "
src/ui/components/SessionBrowser.test.tsx:281:25
279| expect(lastFrame()).toContain('Chat Sessions (1 total, filtered'…
280| });
281| expect(lastFrame()).toMatchSnapshot();
| ^
282| });
283|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[74/184]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Initial Rendering > should render settings list with visual indicators
Error: Snapshot `SettingsDialog > Initial Rendering > should render settings list with visual indicators 2` mismatched
- Expected
+ Received
@@ -2,144 +2,50 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="751" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#878787" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
- <text x="0" y="19" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="19" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="36" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="36" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs" font-weight="bold">&gt; Settings </text>
-  <text x="891" y="36" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; Settings │</text>
- <text x="0" y="53" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="53" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="70" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="18" y="70" fill="#d7ffd7" textLength="864" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │</text>
- <text x="891" y="70" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="87" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="87" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="85" width="9" height="17" fill="#ffffff" />
- <text x="36" y="87" fill="#000000" textLength="9" lengthAdjust="spacingAndGlyphs">S</text>
- <text x="45" y="87" fill="#afafaf" textLength="135" lengthAdjust="spacingAndGlyphs">earch to filter</text>
- <text x="873" y="87" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="87" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="104" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ Search to filter │ │</text>
- <text x="18" y="104" fill="#d7ffd7" textLength="864" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │</text>
- <text x="891" y="104" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="121" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="121" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="138" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="121" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="138" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">▲</text>
- <text x="891" y="138" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="155" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="153" width="9" height="17" fill="#005f00" />
- <text x="27" y="155" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">●</text>
- <rect x="36" y="153" width="9" height="17" fill="#005f00" />
-  <rect x="45" y="153" width="72" height="17" fill="#005f00" />
+ <text x="0" y="138" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ▲ │</text>
- <text x="45" y="155" fill="#d7ffd7" textLength="72" lengthAdjust="spacingAndGlyphs">Vim Mode</text>
- <rect x="117" y="153" width="711" height="17" fill="#005f00" />
- <rect x="828" y="153" width="45" height="17" fill="#005f00" />
- <text x="828" y="155" fill="#d7ffd7" textLength="45" lengthAdjust="spacingAndGlyphs">false</text>
- <text x="891" y="155" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="172" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="170" width="18" height="17" fill="#005f00" />
-  <rect x="45" y="170" width="198" height="17" fill="#005f00" />
+ <text x="0" y="155" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ● Vim Mode false │</text>
- <text x="45" y="172" fill="#afafaf" textLength="198" lengthAdjust="spacingAndGlyphs">Enable Vim keybindings</text>
- <rect x="243" y="170" width="630" height="17" fill="#005f00" />
-  <text x="891" y="172" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="172" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Vim keybindings │</text>
- <text x="0" y="189" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="189" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="206" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="189" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="206" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs">Default Approval Mode</text>
- <text x="810" y="206" fill="#afafaf" textLength="63" lengthAdjust="spacingAndGlyphs">Default</text>
- <text x="891" y="206" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="223" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="206" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Default Approval Mode Default │</text>
- <text x="45" y="223" fill="#afafaf" textLength="738" lengthAdjust="spacingAndGlyphs">The default approval mode for tool execution. &apos;default&apos; prompts for approval, &apos;au…</text>
-  <text x="891" y="223" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="223" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ The default approval mode for tool execution. &apos;default&apos; prompts for approval, &apos;au… │</text>
- <text x="0" y="240" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="240" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="257" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="240" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="257" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Enable Auto Update</text>
- <text x="837" y="257" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="257" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="274" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="257" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Auto Update true │</text>
- <text x="45" y="274" fill="#afafaf" textLength="225" lengthAdjust="spacingAndGlyphs">Enable automatic updates.</text>
-  <text x="891" y="274" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="274" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable automatic updates. │</text>
- <text x="0" y="291" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="291" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="308" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="291" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="308" fill="#ffffff" textLength="180" lengthAdjust="spacingAndGlyphs">Enable Notifications</text>
- <text x="828" y="308" fill="#afafaf" textLength="45" lengthAdjust="spacingAndGlyphs">false</text>
- <text x="891" y="308" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="325" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="308" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Notifications false │</text>
- <text x="45" y="325" fill="#afafaf" textLength="738" lengthAdjust="spacingAndGlyphs">Enable run-event notifications for action-required prompts and session completion.</text>
-  <text x="891" y="325" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="325" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable run-event notifications for action-required prompts and session completion. │</text>
- <text x="0" y="342" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="342" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="359" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="342" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="359" fill="#ffffff" textLength="144" lengthAdjust="spacingAndGlyphs">Enable Plan Mode</text>
- <text x="837" y="359" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="359" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="376" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="359" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Plan Mode true │</text>
- <text x="45" y="376" fill="#afafaf" textLength="486" lengthAdjust="spacingAndGlyphs">Enable Plan Mode for read-only safety during planning.</text>
-  <text x="891" y="376" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="376" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Plan Mode for read-only safety during planning. │</text>
- <text x="0" y="393" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="393" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="410" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="393" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="410" fill="#ffffff" textLength="126" lengthAdjust="spacingAndGlyphs">Plan Directory</text>
- <text x="792" y="410" fill="#afafaf" textLength="81" lengthAdjust="spacingAndGlyphs">undefined</text>
- <text x="891" y="410" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="427" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="410" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Plan Directory undefined │</text>
- <text x="45" y="427" fill="#afafaf" textLength="720" lengthAdjust="spacingAndGlyphs">The directory where planning artifacts are stored. If not specified, defaults t…</text>
-  <text x="891" y="427" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="427" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ The directory where planning artifacts are stored. If not specified, defaults t… │</text>
- <text x="0" y="444" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="444" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="461" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="444" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="461" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Plan Model Routing</text>
- <text x="837" y="461" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="461" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="478" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="461" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Plan Model Routing true │</text>
- <text x="45" y="478" fill="#afafaf" textLength="765" lengthAdjust="spacingAndGlyphs">Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr…</text>
-  <text x="891" y="478" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="478" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr… │</text>
- <text x="0" y="495" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="495" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="512" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="495" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="512" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Retry Fetch Errors</text>
- <text x="837" y="512" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="512" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="529" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="512" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Retry Fetch Errors true │</text>
- <text x="45" y="529" fill="#afafaf" textLength="612" lengthAdjust="spacingAndGlyphs">Retry on &quot;exception TypeError: fetch failed sending request&quot; errors.</text>
-  <text x="891" y="529" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="529" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Retry on &quot;exception TypeError: fetch failed sending request&quot; errors. │</text>
- <text x="0" y="546" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="546" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="563" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="546" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="563" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">▼</text>
-  <text x="891" y="563" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="563" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ▼ │</text>
- <text x="0" y="580" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="580" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="597" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="580" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="9" y="597" fill="#ffffff" textLength="882" lengthAdjust="spacingAndGlyphs"> Apply To </text>
+ <text x="0" y="597" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Apply To │</text>
- <text x="891" y="597" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="614" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="612" width="9" height="17" fill="#005f00" />
- <text x="27" y="614" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">●</text>
- <rect x="36" y="612" width="9" height="17" fill="#005f00" />
- <rect x="45" y="612" width="117" height="17" fill="#005f00" />
- <text x="45" y="614" fill="#d7ffd7" textLength="117" lengthAdjust="spacingAndGlyphs">User Settings</text>
- <rect x="162" y="612" width="711" height="17" fill="#005f00" />
- <text x="891" y="614" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="631" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="614" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ● User Settings │</text>
- <text x="45" y="631" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Workspace Settings</text>
- <text x="891" y="631" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="648" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="631" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Workspace Settings │</text>
- <text x="45" y="648" fill="#ffffff" textLength="135" lengthAdjust="spacingAndGlyphs">System Settings</text>
-  <text x="891" y="648" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="648" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ System Settings │</text>
- <text x="0" y="665" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="665" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="682" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="665" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="682" fill="#afafaf" textLength="657" lengthAdjust="spacingAndGlyphs">(Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close)</text>
-  <text x="891" y="682" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="682" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ (Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close) │</text>
- <text x="0" y="699" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="891" y="699" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="699" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="0" y="716" fill="#878787" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="716" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/SettingsDialog.test.tsx:305:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[75/184]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Snapshot Tests > should render 'default state' correctly
Error: Snapshot `SettingsDialog > Snapshot Tests > should render 'default state' correctly 2` mismatched
- Expected
+ Received
@@ -2,144 +2,50 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="751" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#878787" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
- <text x="0" y="19" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="19" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="36" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="36" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs" font-weight="bold">&gt; Settings </text>
-  <text x="891" y="36" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; Settings │</text>
- <text x="0" y="53" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="53" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="70" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="18" y="70" fill="#d7ffd7" textLength="864" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │</text>
- <text x="891" y="70" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="87" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="87" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="85" width="9" height="17" fill="#ffffff" />
- <text x="36" y="87" fill="#000000" textLength="9" lengthAdjust="spacingAndGlyphs">S</text>
- <text x="45" y="87" fill="#afafaf" textLength="135" lengthAdjust="spacingAndGlyphs">earch to filter</text>
- <text x="873" y="87" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="87" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="104" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ Search to filter │ │</text>
- <text x="18" y="104" fill="#d7ffd7" textLength="864" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │</text>
- <text x="891" y="104" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="121" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="121" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="138" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="121" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="138" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">▲</text>
- <text x="891" y="138" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="155" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="153" width="9" height="17" fill="#005f00" />
- <text x="27" y="155" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">●</text>
- <rect x="36" y="153" width="9" height="17" fill="#005f00" />
-  <rect x="45" y="153" width="72" height="17" fill="#005f00" />
+ <text x="0" y="138" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ▲ │</text>
- <text x="45" y="155" fill="#d7ffd7" textLength="72" lengthAdjust="spacingAndGlyphs">Vim Mode</text>
- <rect x="117" y="153" width="711" height="17" fill="#005f00" />
- <rect x="828" y="153" width="45" height="17" fill="#005f00" />
- <text x="828" y="155" fill="#d7ffd7" textLength="45" lengthAdjust="spacingAndGlyphs">false</text>
- <text x="891" y="155" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="172" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="170" width="18" height="17" fill="#005f00" />
-  <rect x="45" y="170" width="198" height="17" fill="#005f00" />
+ <text x="0" y="155" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ● Vim Mode false │</text>
- <text x="45" y="172" fill="#afafaf" textLength="198" lengthAdjust="spacingAndGlyphs">Enable Vim keybindings</text>
- <rect x="243" y="170" width="630" height="17" fill="#005f00" />
-  <text x="891" y="172" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="172" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Vim keybindings │</text>
- <text x="0" y="189" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="189" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="206" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="189" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="206" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs">Default Approval Mode</text>
- <text x="810" y="206" fill="#afafaf" textLength="63" lengthAdjust="spacingAndGlyphs">Default</text>
- <text x="891" y="206" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="223" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="206" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Default Approval Mode Default │</text>
- <text x="45" y="223" fill="#afafaf" textLength="738" lengthAdjust="spacingAndGlyphs">The default approval mode for tool execution. &apos;default&apos; prompts for approval, &apos;au…</text>
-  <text x="891" y="223" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="223" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ The default approval mode for tool execution. &apos;default&apos; prompts for approval, &apos;au… │</text>
- <text x="0" y="240" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="240" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="257" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="240" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="257" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Enable Auto Update</text>
- <text x="837" y="257" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="257" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="274" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="257" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Auto Update true │</text>
- <text x="45" y="274" fill="#afafaf" textLength="225" lengthAdjust="spacingAndGlyphs">Enable automatic updates.</text>
-  <text x="891" y="274" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="274" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable automatic updates. │</text>
- <text x="0" y="291" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="291" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="308" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="291" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="308" fill="#ffffff" textLength="180" lengthAdjust="spacingAndGlyphs">Enable Notifications</text>
- <text x="828" y="308" fill="#afafaf" textLength="45" lengthAdjust="spacingAndGlyphs">false</text>
- <text x="891" y="308" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="325" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="308" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Notifications false │</text>
- <text x="45" y="325" fill="#afafaf" textLength="738" lengthAdjust="spacingAndGlyphs">Enable run-event notifications for action-required prompts and session completion.</text>
-  <text x="891" y="325" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="325" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable run-event notifications for action-required prompts and session completion. │</text>
- <text x="0" y="342" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="342" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="359" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="342" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="359" fill="#ffffff" textLength="144" lengthAdjust="spacingAndGlyphs">Enable Plan Mode</text>
- <text x="837" y="359" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="359" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="376" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="359" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Plan Mode true │</text>
- <text x="45" y="376" fill="#afafaf" textLength="486" lengthAdjust="spacingAndGlyphs">Enable Plan Mode for read-only safety during planning.</text>
-  <text x="891" y="376" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="376" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Plan Mode for read-only safety during planning. │</text>
- <text x="0" y="393" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="393" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="410" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="393" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="410" fill="#ffffff" textLength="126" lengthAdjust="spacingAndGlyphs">Plan Directory</text>
- <text x="792" y="410" fill="#afafaf" textLength="81" lengthAdjust="spacingAndGlyphs">undefined</text>
- <text x="891" y="410" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="427" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="410" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Plan Directory undefined │</text>
- <text x="45" y="427" fill="#afafaf" textLength="720" lengthAdjust="spacingAndGlyphs">The directory where planning artifacts are stored. If not specified, defaults t…</text>
-  <text x="891" y="427" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="427" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ The directory where planning artifacts are stored. If not specified, defaults t… │</text>
- <text x="0" y="444" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="444" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="461" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="444" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="461" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Plan Model Routing</text>
- <text x="837" y="461" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="461" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="478" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="461" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Plan Model Routing true │</text>
- <text x="45" y="478" fill="#afafaf" textLength="765" lengthAdjust="spacingAndGlyphs">Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr…</text>
-  <text x="891" y="478" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="478" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr… │</text>
- <text x="0" y="495" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="495" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="512" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="495" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="512" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Retry Fetch Errors</text>
- <text x="837" y="512" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="512" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="529" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="512" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Retry Fetch Errors true │</text>
- <text x="45" y="529" fill="#afafaf" textLength="612" lengthAdjust="spacingAndGlyphs">Retry on &quot;exception TypeError: fetch failed sending request&quot; errors.</text>
-  <text x="891" y="529" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="529" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Retry on &quot;exception TypeError: fetch failed sending request&quot; errors. │</text>
- <text x="0" y="546" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="546" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="563" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="546" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="563" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">▼</text>
-  <text x="891" y="563" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="563" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ▼ │</text>
- <text x="0" y="580" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="580" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="597" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="580" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="9" y="597" fill="#ffffff" textLength="882" lengthAdjust="spacingAndGlyphs"> Apply To </text>
+ <text x="0" y="597" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Apply To │</text>
- <text x="891" y="597" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="614" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="612" width="9" height="17" fill="#005f00" />
- <text x="27" y="614" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">●</text>
- <rect x="36" y="612" width="9" height="17" fill="#005f00" />
- <rect x="45" y="612" width="117" height="17" fill="#005f00" />
- <text x="45" y="614" fill="#d7ffd7" textLength="117" lengthAdjust="spacingAndGlyphs">User Settings</text>
- <rect x="162" y="612" width="711" height="17" fill="#005f00" />
- <text x="891" y="614" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="631" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="614" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ● User Settings │</text>
- <text x="45" y="631" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Workspace Settings</text>
- <text x="891" y="631" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="648" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="631" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Workspace Settings │</text>
- <text x="45" y="648" fill="#ffffff" textLength="135" lengthAdjust="spacingAndGlyphs">System Settings</text>
-  <text x="891" y="648" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="648" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ System Settings │</text>
- <text x="0" y="665" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="665" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="682" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="665" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="682" fill="#afafaf" textLength="657" lengthAdjust="spacingAndGlyphs">(Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close)</text>
-  <text x="891" y="682" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="682" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ (Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close) │</text>
- <text x="0" y="699" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="891" y="699" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="699" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="0" y="716" fill="#878787" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="716" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/SettingsDialog.test.tsx:1784:9
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[76/184]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Snapshot Tests > should render 'various boolean settings enabled' correctly
Error: Snapshot `SettingsDialog > Snapshot Tests > should render 'various boolean settings enabled' correctly 2` mismatched
- Expected
+ Received
@@ -2,144 +2,50 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="751" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#878787" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
- <text x="0" y="19" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="19" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="36" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="36" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs" font-weight="bold">&gt; Settings </text>
-  <text x="891" y="36" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; Settings │</text>
- <text x="0" y="53" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="53" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="70" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="18" y="70" fill="#d7ffd7" textLength="864" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │</text>
- <text x="891" y="70" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="87" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="87" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="85" width="9" height="17" fill="#ffffff" />
- <text x="36" y="87" fill="#000000" textLength="9" lengthAdjust="spacingAndGlyphs">S</text>
- <text x="45" y="87" fill="#afafaf" textLength="135" lengthAdjust="spacingAndGlyphs">earch to filter</text>
- <text x="873" y="87" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="87" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="104" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ Search to filter │ │</text>
- <text x="18" y="104" fill="#d7ffd7" textLength="864" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │</text>
- <text x="891" y="104" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="121" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="121" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="138" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="121" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="138" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">▲</text>
- <text x="891" y="138" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="155" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="153" width="9" height="17" fill="#005f00" />
- <text x="27" y="155" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">●</text>
- <rect x="36" y="153" width="9" height="17" fill="#005f00" />
-  <rect x="45" y="153" width="72" height="17" fill="#005f00" />
+ <text x="0" y="138" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ▲ │</text>
- <text x="45" y="155" fill="#d7ffd7" textLength="72" lengthAdjust="spacingAndGlyphs">Vim Mode</text>
- <rect x="117" y="153" width="711" height="17" fill="#005f00" />
- <rect x="828" y="153" width="45" height="17" fill="#005f00" />
- <text x="828" y="155" fill="#d7ffd7" textLength="45" lengthAdjust="spacingAndGlyphs">true*</text>
- <text x="891" y="155" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="172" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="170" width="18" height="17" fill="#005f00" />
-  <rect x="45" y="170" width="198" height="17" fill="#005f00" />
+ <text x="0" y="155" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ● Vim Mode true* │</text>
- <text x="45" y="172" fill="#afafaf" textLength="198" lengthAdjust="spacingAndGlyphs">Enable Vim keybindings</text>
- <rect x="243" y="170" width="630" height="17" fill="#005f00" />
-  <text x="891" y="172" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="172" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Vim keybindings │</text>
- <text x="0" y="189" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="189" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="206" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="189" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="206" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs">Default Approval Mode</text>
- <text x="810" y="206" fill="#afafaf" textLength="63" lengthAdjust="spacingAndGlyphs">Default</text>
- <text x="891" y="206" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="223" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="206" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Default Approval Mode Default │</text>
- <text x="45" y="223" fill="#afafaf" textLength="738" lengthAdjust="spacingAndGlyphs">The default approval mode for tool execution. &apos;default&apos; prompts for approval, &apos;au…</text>
-  <text x="891" y="223" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="223" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ The default approval mode for tool execution. &apos;default&apos; prompts for approval, &apos;au… │</text>
- <text x="0" y="240" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="240" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="257" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="240" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="257" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Enable Auto Update</text>
- <text x="819" y="257" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">false*</text>
- <text x="891" y="257" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="274" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="257" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Auto Update false* │</text>
- <text x="45" y="274" fill="#afafaf" textLength="225" lengthAdjust="spacingAndGlyphs">Enable automatic updates.</text>
-  <text x="891" y="274" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="274" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable automatic updates. │</text>
- <text x="0" y="291" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="291" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="308" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="291" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="308" fill="#ffffff" textLength="180" lengthAdjust="spacingAndGlyphs">Enable Notifications</text>
- <text x="828" y="308" fill="#afafaf" textLength="45" lengthAdjust="spacingAndGlyphs">false</text>
- <text x="891" y="308" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="325" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="308" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Notifications false │</text>
- <text x="45" y="325" fill="#afafaf" textLength="738" lengthAdjust="spacingAndGlyphs">Enable run-event notifications for action-required prompts and session completion.</text>
-  <text x="891" y="325" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="325" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable run-event notifications for action-required prompts and session completion. │</text>
- <text x="0" y="342" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="342" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="359" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="342" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="359" fill="#ffffff" textLength="144" lengthAdjust="spacingAndGlyphs">Enable Plan Mode</text>
- <text x="837" y="359" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="359" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="376" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="359" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Plan Mode true │</text>
- <text x="45" y="376" fill="#afafaf" textLength="486" lengthAdjust="spacingAndGlyphs">Enable Plan Mode for read-only safety during planning.</text>
-  <text x="891" y="376" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="376" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Plan Mode for read-only safety during planning. │</text>
- <text x="0" y="393" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="393" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="410" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="393" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="410" fill="#ffffff" textLength="126" lengthAdjust="spacingAndGlyphs">Plan Directory</text>
- <text x="792" y="410" fill="#afafaf" textLength="81" lengthAdjust="spacingAndGlyphs">undefined</text>
- <text x="891" y="410" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="427" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="410" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Plan Directory undefined │</text>
- <text x="45" y="427" fill="#afafaf" textLength="720" lengthAdjust="spacingAndGlyphs">The directory where planning artifacts are stored. If not specified, defaults t…</text>
-  <text x="891" y="427" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="427" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ The directory where planning artifacts are stored. If not specified, defaults t… │</text>
- <text x="0" y="444" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="444" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="461" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="444" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="461" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Plan Model Routing</text>
- <text x="837" y="461" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="461" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="478" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="461" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Plan Model Routing true │</text>
- <text x="45" y="478" fill="#afafaf" textLength="765" lengthAdjust="spacingAndGlyphs">Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr…</text>
-  <text x="891" y="478" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="478" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr… │</text>
- <text x="0" y="495" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="495" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="512" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="495" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="512" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Retry Fetch Errors</text>
- <text x="837" y="512" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="512" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="529" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="512" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Retry Fetch Errors true │</text>
- <text x="45" y="529" fill="#afafaf" textLength="612" lengthAdjust="spacingAndGlyphs">Retry on &quot;exception TypeError: fetch failed sending request&quot; errors.</text>
-  <text x="891" y="529" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="529" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Retry on &quot;exception TypeError: fetch failed sending request&quot; errors. │</text>
- <text x="0" y="546" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="546" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="563" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="546" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="563" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">▼</text>
-  <text x="891" y="563" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="563" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ▼ │</text>
- <text x="0" y="580" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="580" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="597" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="580" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="9" y="597" fill="#ffffff" textLength="882" lengthAdjust="spacingAndGlyphs"> Apply To </text>
+ <text x="0" y="597" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Apply To │</text>
- <text x="891" y="597" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="614" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="612" width="9" height="17" fill="#005f00" />
- <text x="27" y="614" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">●</text>
- <rect x="36" y="612" width="9" height="17" fill="#005f00" />
- <rect x="45" y="612" width="117" height="17" fill="#005f00" />
- <text x="45" y="614" fill="#d7ffd7" textLength="117" lengthAdjust="spacingAndGlyphs">User Settings</text>
- <rect x="162" y="612" width="711" height="17" fill="#005f00" />
- <text x="891" y="614" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="631" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="614" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ● User Settings │</text>
- <text x="45" y="631" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Workspace Settings</text>
- <text x="891" y="631" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="648" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="631" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Workspace Settings │</text>
- <text x="45" y="648" fill="#ffffff" textLength="135" lengthAdjust="spacingAndGlyphs">System Settings</text>
-  <text x="891" y="648" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="648" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ System Settings │</text>
- <text x="0" y="665" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="665" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="682" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="665" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="682" fill="#afafaf" textLength="657" lengthAdjust="spacingAndGlyphs">(Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close)</text>
-  <text x="891" y="682" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="682" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ (Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close) │</text>
- <text x="0" y="699" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="891" y="699" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="699" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="0" y="716" fill="#878787" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="716" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/SettingsDialog.test.tsx:1784:9
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[77/184]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Snapshot Tests > should render 'mixed boolean and number settings' correctly
Error: Snapshot `SettingsDialog > Snapshot Tests > should render 'mixed boolean and number settings' correctly 2` mismatched
- Expected
+ Received
@@ -2,144 +2,50 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="751" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#878787" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
- <text x="0" y="19" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="19" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="36" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="36" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs" font-weight="bold">&gt; Settings </text>
-  <text x="891" y="36" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; Settings │</text>
- <text x="0" y="53" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="53" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="70" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="18" y="70" fill="#d7ffd7" textLength="864" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │</text>
- <text x="891" y="70" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="87" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="87" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="85" width="9" height="17" fill="#ffffff" />
- <text x="36" y="87" fill="#000000" textLength="9" lengthAdjust="spacingAndGlyphs">S</text>
- <text x="45" y="87" fill="#afafaf" textLength="135" lengthAdjust="spacingAndGlyphs">earch to filter</text>
- <text x="873" y="87" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="87" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="104" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ Search to filter │ │</text>
- <text x="18" y="104" fill="#d7ffd7" textLength="864" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │</text>
- <text x="891" y="104" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="121" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="121" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="138" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="121" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="138" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">▲</text>
- <text x="891" y="138" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="155" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="153" width="9" height="17" fill="#005f00" />
- <text x="27" y="155" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">●</text>
- <rect x="36" y="153" width="9" height="17" fill="#005f00" />
-  <rect x="45" y="153" width="72" height="17" fill="#005f00" />
+ <text x="0" y="138" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ▲ │</text>
- <text x="45" y="155" fill="#d7ffd7" textLength="72" lengthAdjust="spacingAndGlyphs">Vim Mode</text>
- <rect x="117" y="153" width="702" height="17" fill="#005f00" />
- <rect x="819" y="153" width="54" height="17" fill="#005f00" />
- <text x="819" y="155" fill="#d7ffd7" textLength="54" lengthAdjust="spacingAndGlyphs">false*</text>
- <text x="891" y="155" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="172" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="170" width="18" height="17" fill="#005f00" />
-  <rect x="45" y="170" width="198" height="17" fill="#005f00" />
+ <text x="0" y="155" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ● Vim Mode false* │</text>
- <text x="45" y="172" fill="#afafaf" textLength="198" lengthAdjust="spacingAndGlyphs">Enable Vim keybindings</text>
- <rect x="243" y="170" width="630" height="17" fill="#005f00" />
-  <text x="891" y="172" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="172" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Vim keybindings │</text>
- <text x="0" y="189" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="189" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="206" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="189" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="206" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs">Default Approval Mode</text>
- <text x="810" y="206" fill="#afafaf" textLength="63" lengthAdjust="spacingAndGlyphs">Default</text>
- <text x="891" y="206" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="223" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="206" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Default Approval Mode Default │</text>
- <text x="45" y="223" fill="#afafaf" textLength="738" lengthAdjust="spacingAndGlyphs">The default approval mode for tool execution. &apos;default&apos; prompts for approval, &apos;au…</text>
-  <text x="891" y="223" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="223" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ The default approval mode for tool execution. &apos;default&apos; prompts for approval, &apos;au… │</text>
- <text x="0" y="240" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="240" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="257" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="240" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="257" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Enable Auto Update</text>
- <text x="819" y="257" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">false*</text>
- <text x="891" y="257" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="274" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="257" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Auto Update false* │</text>
- <text x="45" y="274" fill="#afafaf" textLength="225" lengthAdjust="spacingAndGlyphs">Enable automatic updates.</text>
-  <text x="891" y="274" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="274" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable automatic updates. │</text>
- <text x="0" y="291" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="291" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="308" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="291" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="308" fill="#ffffff" textLength="180" lengthAdjust="spacingAndGlyphs">Enable Notifications</text>
- <text x="828" y="308" fill="#afafaf" textLength="45" lengthAdjust="spacingAndGlyphs">false</text>
- <text x="891" y="308" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="325" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="308" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Notifications false │</text>
- <text x="45" y="325" fill="#afafaf" textLength="738" lengthAdjust="spacingAndGlyphs">Enable run-event notifications for action-required prompts and session completion.</text>
-  <text x="891" y="325" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="325" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable run-event notifications for action-required prompts and session completion. │</text>
- <text x="0" y="342" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="342" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="359" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="342" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="359" fill="#ffffff" textLength="144" lengthAdjust="spacingAndGlyphs">Enable Plan Mode</text>
- <text x="837" y="359" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="359" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="376" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="359" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Plan Mode true │</text>
- <text x="45" y="376" fill="#afafaf" textLength="486" lengthAdjust="spacingAndGlyphs">Enable Plan Mode for read-only safety during planning.</text>
-  <text x="891" y="376" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="376" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Plan Mode for read-only safety during planning. │</text>
- <text x="0" y="393" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="393" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="410" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="393" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="410" fill="#ffffff" textLength="126" lengthAdjust="spacingAndGlyphs">Plan Directory</text>
- <text x="792" y="410" fill="#afafaf" textLength="81" lengthAdjust="spacingAndGlyphs">undefined</text>
- <text x="891" y="410" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="427" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="410" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Plan Directory undefined │</text>
- <text x="45" y="427" fill="#afafaf" textLength="720" lengthAdjust="spacingAndGlyphs">The directory where planning artifacts are stored. If not specified, defaults t…</text>
-  <text x="891" y="427" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="427" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ The directory where planning artifacts are stored. If not specified, defaults t… │</text>
- <text x="0" y="444" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="444" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="461" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="444" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="461" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Plan Model Routing</text>
- <text x="837" y="461" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="461" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="478" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="461" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Plan Model Routing true │</text>
- <text x="45" y="478" fill="#afafaf" textLength="765" lengthAdjust="spacingAndGlyphs">Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr…</text>
-  <text x="891" y="478" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="478" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr… │</text>
- <text x="0" y="495" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="495" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="512" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="495" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="512" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Retry Fetch Errors</text>
- <text x="837" y="512" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="512" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="529" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="512" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Retry Fetch Errors true │</text>
- <text x="45" y="529" fill="#afafaf" textLength="612" lengthAdjust="spacingAndGlyphs">Retry on &quot;exception TypeError: fetch failed sending request&quot; errors.</text>
-  <text x="891" y="529" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="529" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Retry on &quot;exception TypeError: fetch failed sending request&quot; errors. │</text>
- <text x="0" y="546" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="546" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="563" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="546" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="563" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">▼</text>
-  <text x="891" y="563" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="563" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ▼ │</text>
- <text x="0" y="580" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="580" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="597" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="580" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="9" y="597" fill="#ffffff" textLength="882" lengthAdjust="spacingAndGlyphs"> Apply To </text>
+ <text x="0" y="597" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Apply To │</text>
- <text x="891" y="597" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="614" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="612" width="9" height="17" fill="#005f00" />
- <text x="27" y="614" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">●</text>
- <rect x="36" y="612" width="9" height="17" fill="#005f00" />
- <rect x="45" y="612" width="117" height="17" fill="#005f00" />
- <text x="45" y="614" fill="#d7ffd7" textLength="117" lengthAdjust="spacingAndGlyphs">User Settings</text>
- <rect x="162" y="612" width="711" height="17" fill="#005f00" />
- <text x="891" y="614" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="631" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="614" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ● User Settings │</text>
- <text x="45" y="631" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Workspace Settings</text>
- <text x="891" y="631" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="648" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="631" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Workspace Settings │</text>
- <text x="45" y="648" fill="#ffffff" textLength="135" lengthAdjust="spacingAndGlyphs">System Settings</text>
-  <text x="891" y="648" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="648" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ System Settings │</text>
- <text x="0" y="665" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="665" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="682" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="665" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="682" fill="#afafaf" textLength="657" lengthAdjust="spacingAndGlyphs">(Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close)</text>
-  <text x="891" y="682" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="682" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ (Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close) │</text>
- <text x="0" y="699" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="891" y="699" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="699" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="0" y="716" fill="#878787" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="716" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/SettingsDialog.test.tsx:1784:9
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[78/184]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Snapshot Tests > should render 'focused on scope selector' correctly
Error: Snapshot `SettingsDialog > Snapshot Tests > should render 'focused on scope selector' correctly 2` mismatched
- Expected
+ Received
@@ -2,138 +2,50 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="751" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#878787" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
- <text x="0" y="19" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="19" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="36" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="9" y="36" fill="#ffffff" textLength="882" lengthAdjust="spacingAndGlyphs"> Settings </text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Settings │</text>
- <text x="891" y="36" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="53" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="53" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="70" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="18" y="70" fill="#878787" textLength="864" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │</text>
- <text x="891" y="70" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="87" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="87" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="87" fill="#afafaf" textLength="144" lengthAdjust="spacingAndGlyphs">Search to filter</text>
- <text x="873" y="87" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="87" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="104" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ Search to filter │ │</text>
- <text x="18" y="104" fill="#878787" textLength="864" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │</text>
- <text x="891" y="104" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="121" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="121" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="138" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="121" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="138" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">▲</text>
- <text x="891" y="138" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="155" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="138" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ▲ │</text>
- <text x="45" y="155" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs">Vim Mode</text>
- <text x="828" y="155" fill="#afafaf" textLength="45" lengthAdjust="spacingAndGlyphs">false</text>
- <text x="891" y="155" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="172" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="155" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Vim Mode false │</text>
- <text x="45" y="172" fill="#afafaf" textLength="198" lengthAdjust="spacingAndGlyphs">Enable Vim keybindings</text>
-  <text x="891" y="172" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="172" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Vim keybindings │</text>
- <text x="0" y="189" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="189" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="206" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="189" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="206" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs">Default Approval Mode</text>
- <text x="810" y="206" fill="#afafaf" textLength="63" lengthAdjust="spacingAndGlyphs">Default</text>
- <text x="891" y="206" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="223" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="206" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Default Approval Mode Default │</text>
- <text x="45" y="223" fill="#afafaf" textLength="738" lengthAdjust="spacingAndGlyphs">The default approval mode for tool execution. &apos;default&apos; prompts for approval, &apos;au…</text>
-  <text x="891" y="223" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="223" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ The default approval mode for tool execution. &apos;default&apos; prompts for approval, &apos;au… │</text>
- <text x="0" y="240" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="240" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="257" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="240" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="257" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Enable Auto Update</text>
- <text x="837" y="257" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="257" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="274" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="257" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Auto Update true │</text>
- <text x="45" y="274" fill="#afafaf" textLength="225" lengthAdjust="spacingAndGlyphs">Enable automatic updates.</text>
-  <text x="891" y="274" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="274" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable automatic updates. │</text>
- <text x="0" y="291" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="291" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="308" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="291" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="308" fill="#ffffff" textLength="180" lengthAdjust="spacingAndGlyphs">Enable Notifications</text>
- <text x="828" y="308" fill="#afafaf" textLength="45" lengthAdjust="spacingAndGlyphs">false</text>
- <text x="891" y="308" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="325" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="308" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Notifications false │</text>
- <text x="45" y="325" fill="#afafaf" textLength="738" lengthAdjust="spacingAndGlyphs">Enable run-event notifications for action-required prompts and session completion.</text>
-  <text x="891" y="325" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="325" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable run-event notifications for action-required prompts and session completion. │</text>
- <text x="0" y="342" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="342" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="359" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="342" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="359" fill="#ffffff" textLength="144" lengthAdjust="spacingAndGlyphs">Enable Plan Mode</text>
- <text x="837" y="359" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="359" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="376" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="359" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Plan Mode true │</text>
- <text x="45" y="376" fill="#afafaf" textLength="486" lengthAdjust="spacingAndGlyphs">Enable Plan Mode for read-only safety during planning.</text>
-  <text x="891" y="376" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="376" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Plan Mode for read-only safety during planning. │</text>
- <text x="0" y="393" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="393" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="410" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="393" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="410" fill="#ffffff" textLength="126" lengthAdjust="spacingAndGlyphs">Plan Directory</text>
- <text x="792" y="410" fill="#afafaf" textLength="81" lengthAdjust="spacingAndGlyphs">undefined</text>
- <text x="891" y="410" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="427" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="410" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Plan Directory undefined │</text>
- <text x="45" y="427" fill="#afafaf" textLength="720" lengthAdjust="spacingAndGlyphs">The directory where planning artifacts are stored. If not specified, defaults t…</text>
-  <text x="891" y="427" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="427" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ The directory where planning artifacts are stored. If not specified, defaults t… │</text>
- <text x="0" y="444" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="444" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="461" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="444" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="461" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Plan Model Routing</text>
- <text x="837" y="461" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="461" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="478" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="461" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Plan Model Routing true │</text>
- <text x="45" y="478" fill="#afafaf" textLength="765" lengthAdjust="spacingAndGlyphs">Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr…</text>
-  <text x="891" y="478" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="478" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr… │</text>
- <text x="0" y="495" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="495" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="512" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="495" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="512" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Retry Fetch Errors</text>
- <text x="837" y="512" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="512" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="529" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="512" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Retry Fetch Errors true │</text>
- <text x="45" y="529" fill="#afafaf" textLength="612" lengthAdjust="spacingAndGlyphs">Retry on &quot;exception TypeError: fetch failed sending request&quot; errors.</text>
-  <text x="891" y="529" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="529" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Retry on &quot;exception TypeError: fetch failed sending request&quot; errors. │</text>
- <text x="0" y="546" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="546" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="563" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="546" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="563" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">▼</text>
-  <text x="891" y="563" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="563" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ▼ │</text>
- <text x="0" y="580" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="580" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="597" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="580" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="597" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs" font-weight="bold">&gt; Apply To</text>
- <text x="891" y="597" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="614" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="612" width="9" height="17" fill="#005f00" />
- <text x="27" y="614" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">●</text>
- <rect x="36" y="612" width="9" height="17" fill="#005f00" />
- <rect x="45" y="612" width="18" height="17" fill="#005f00" />
- <text x="45" y="614" fill="#d7ffd7" textLength="18" lengthAdjust="spacingAndGlyphs">1.</text>
- <rect x="63" y="612" width="9" height="17" fill="#005f00" />
-  <rect x="72" y="612" width="117" height="17" fill="#005f00" />
+ <text x="0" y="597" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; Apply To │</text>
- <text x="72" y="614" fill="#d7ffd7" textLength="117" lengthAdjust="spacingAndGlyphs">User Settings</text>
- <rect x="189" y="612" width="684" height="17" fill="#005f00" />
- <text x="891" y="614" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="631" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="631" fill="#ffffff" textLength="18" lengthAdjust="spacingAndGlyphs">2.</text>
+ <text x="0" y="614" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ● 1. User Settings │</text>
- <text x="72" y="631" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Workspace Settings</text>
- <text x="891" y="631" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="648" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="45" y="648" fill="#ffffff" textLength="18" lengthAdjust="spacingAndGlyphs">3.</text>
+ <text x="0" y="631" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ 2. Workspace Settings │</text>
- <text x="72" y="648" fill="#ffffff" textLength="135" lengthAdjust="spacingAndGlyphs">System Settings</text>
-  <text x="891" y="648" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="648" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ 3. System Settings │</text>
- <text x="0" y="665" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="665" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="682" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="665" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="682" fill="#afafaf" textLength="657" lengthAdjust="spacingAndGlyphs">(Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close)</text>
-  <text x="891" y="682" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="682" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ (Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close) │</text>
- <text x="0" y="699" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="891" y="699" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="699" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="0" y="716" fill="#878787" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="716" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/SettingsDialog.test.tsx:1784:9
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[79/184]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Snapshot Tests > should render 'accessibility settings enabled' correctly
Error: Snapshot `SettingsDialog > Snapshot Tests > should render 'accessibility settings enabled' correctly 2` mismatched
- Expected
+ Received
@@ -2,144 +2,50 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="751" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#878787" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
- <text x="0" y="19" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="19" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="36" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="36" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs" font-weight="bold">&gt; Settings </text>
-  <text x="891" y="36" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; Settings │</text>
- <text x="0" y="53" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="53" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="70" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="18" y="70" fill="#d7ffd7" textLength="864" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │</text>
- <text x="891" y="70" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="87" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="87" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="85" width="9" height="17" fill="#ffffff" />
- <text x="36" y="87" fill="#000000" textLength="9" lengthAdjust="spacingAndGlyphs">S</text>
- <text x="45" y="87" fill="#afafaf" textLength="135" lengthAdjust="spacingAndGlyphs">earch to filter</text>
- <text x="873" y="87" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="87" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="104" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ Search to filter │ │</text>
- <text x="18" y="104" fill="#d7ffd7" textLength="864" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │</text>
- <text x="891" y="104" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="121" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="121" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="138" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="121" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="138" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">▲</text>
- <text x="891" y="138" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="155" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="153" width="9" height="17" fill="#005f00" />
- <text x="27" y="155" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">●</text>
- <rect x="36" y="153" width="9" height="17" fill="#005f00" />
-  <rect x="45" y="153" width="72" height="17" fill="#005f00" />
+ <text x="0" y="138" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ▲ │</text>
- <text x="45" y="155" fill="#d7ffd7" textLength="72" lengthAdjust="spacingAndGlyphs">Vim Mode</text>
- <rect x="117" y="153" width="711" height="17" fill="#005f00" />
- <rect x="828" y="153" width="45" height="17" fill="#005f00" />
- <text x="828" y="155" fill="#d7ffd7" textLength="45" lengthAdjust="spacingAndGlyphs">true*</text>
- <text x="891" y="155" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="172" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="170" width="18" height="17" fill="#005f00" />
-  <rect x="45" y="170" width="198" height="17" fill="#005f00" />
+ <text x="0" y="155" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ● Vim Mode true* │</text>
- <text x="45" y="172" fill="#afafaf" textLength="198" lengthAdjust="spacingAndGlyphs">Enable Vim keybindings</text>
- <rect x="243" y="170" width="630" height="17" fill="#005f00" />
-  <text x="891" y="172" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="172" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Vim keybindings │</text>
- <text x="0" y="189" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="189" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="206" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="189" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="206" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs">Default Approval Mode</text>
- <text x="810" y="206" fill="#afafaf" textLength="63" lengthAdjust="spacingAndGlyphs">Default</text>
- <text x="891" y="206" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="223" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="206" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Default Approval Mode Default │</text>
- <text x="45" y="223" fill="#afafaf" textLength="738" lengthAdjust="spacingAndGlyphs">The default approval mode for tool execution. &apos;default&apos; prompts for approval, &apos;au…</text>
-  <text x="891" y="223" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="223" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ The default approval mode for tool execution. &apos;default&apos; prompts for approval, &apos;au… │</text>
- <text x="0" y="240" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="240" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="257" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="240" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="257" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Enable Auto Update</text>
- <text x="837" y="257" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="257" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="274" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="257" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Auto Update true │</text>
- <text x="45" y="274" fill="#afafaf" textLength="225" lengthAdjust="spacingAndGlyphs">Enable automatic updates.</text>
-  <text x="891" y="274" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="274" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable automatic updates. │</text>
- <text x="0" y="291" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="291" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="308" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="291" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="308" fill="#ffffff" textLength="180" lengthAdjust="spacingAndGlyphs">Enable Notifications</text>
- <text x="828" y="308" fill="#afafaf" textLength="45" lengthAdjust="spacingAndGlyphs">false</text>
- <text x="891" y="308" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="325" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="308" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Notifications false │</text>
- <text x="45" y="325" fill="#afafaf" textLength="738" lengthAdjust="spacingAndGlyphs">Enable run-event notifications for action-required prompts and session completion.</text>
-  <text x="891" y="325" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="325" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable run-event notifications for action-required prompts and session completion. │</text>
- <text x="0" y="342" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="342" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="359" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="342" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="359" fill="#ffffff" textLength="144" lengthAdjust="spacingAndGlyphs">Enable Plan Mode</text>
- <text x="837" y="359" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="359" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="376" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="359" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Plan Mode true │</text>
- <text x="45" y="376" fill="#afafaf" textLength="486" lengthAdjust="spacingAndGlyphs">Enable Plan Mode for read-only safety during planning.</text>
-  <text x="891" y="376" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="376" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Plan Mode for read-only safety during planning. │</text>
- <text x="0" y="393" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="393" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="410" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="393" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="410" fill="#ffffff" textLength="126" lengthAdjust="spacingAndGlyphs">Plan Directory</text>
- <text x="792" y="410" fill="#afafaf" textLength="81" lengthAdjust="spacingAndGlyphs">undefined</text>
- <text x="891" y="410" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="427" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="410" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Plan Directory undefined │</text>
- <text x="45" y="427" fill="#afafaf" textLength="720" lengthAdjust="spacingAndGlyphs">The directory where planning artifacts are stored. If not specified, defaults t…</text>
-  <text x="891" y="427" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="427" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ The directory where planning artifacts are stored. If not specified, defaults t… │</text>
- <text x="0" y="444" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="444" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="461" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="444" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="461" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Plan Model Routing</text>
- <text x="837" y="461" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="461" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="478" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="461" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Plan Model Routing true │</text>
- <text x="45" y="478" fill="#afafaf" textLength="765" lengthAdjust="spacingAndGlyphs">Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr…</text>
-  <text x="891" y="478" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="478" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr… │</text>
- <text x="0" y="495" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="495" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="512" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="495" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="512" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Retry Fetch Errors</text>
- <text x="837" y="512" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="512" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="529" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="512" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Retry Fetch Errors true │</text>
- <text x="45" y="529" fill="#afafaf" textLength="612" lengthAdjust="spacingAndGlyphs">Retry on &quot;exception TypeError: fetch failed sending request&quot; errors.</text>
-  <text x="891" y="529" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="529" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Retry on &quot;exception TypeError: fetch failed sending request&quot; errors. │</text>
- <text x="0" y="546" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="546" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="563" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="546" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="563" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">▼</text>
-  <text x="891" y="563" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="563" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ▼ │</text>
- <text x="0" y="580" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="580" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="597" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="580" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="9" y="597" fill="#ffffff" textLength="882" lengthAdjust="spacingAndGlyphs"> Apply To </text>
+ <text x="0" y="597" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Apply To │</text>
- <text x="891" y="597" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="614" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="612" width="9" height="17" fill="#005f00" />
- <text x="27" y="614" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">●</text>
- <rect x="36" y="612" width="9" height="17" fill="#005f00" />
- <rect x="45" y="612" width="117" height="17" fill="#005f00" />
- <text x="45" y="614" fill="#d7ffd7" textLength="117" lengthAdjust="spacingAndGlyphs">User Settings</text>
- <rect x="162" y="612" width="711" height="17" fill="#005f00" />
- <text x="891" y="614" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="631" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="614" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ● User Settings │</text>
- <text x="45" y="631" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Workspace Settings</text>
- <text x="891" y="631" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="648" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="631" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Workspace Settings │</text>
- <text x="45" y="648" fill="#ffffff" textLength="135" lengthAdjust="spacingAndGlyphs">System Settings</text>
-  <text x="891" y="648" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="648" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ System Settings │</text>
- <text x="0" y="665" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="665" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="682" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="665" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="682" fill="#afafaf" textLength="657" lengthAdjust="spacingAndGlyphs">(Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close)</text>
-  <text x="891" y="682" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="682" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ (Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close) │</text>
- <text x="0" y="699" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="891" y="699" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="699" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="0" y="716" fill="#878787" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="716" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/SettingsDialog.test.tsx:1784:9
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[80/184]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Snapshot Tests > should render 'file filtering settings configured' correctly
Error: Snapshot `SettingsDialog > Snapshot Tests > should render 'file filtering settings configured' correctly 2` mismatched
- Expected
+ Received
@@ -2,144 +2,50 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="751" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#878787" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
- <text x="0" y="19" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="19" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="36" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="36" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs" font-weight="bold">&gt; Settings </text>
-  <text x="891" y="36" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; Settings │</text>
- <text x="0" y="53" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="53" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="70" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="18" y="70" fill="#d7ffd7" textLength="864" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │</text>
- <text x="891" y="70" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="87" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="87" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="85" width="9" height="17" fill="#ffffff" />
- <text x="36" y="87" fill="#000000" textLength="9" lengthAdjust="spacingAndGlyphs">S</text>
- <text x="45" y="87" fill="#afafaf" textLength="135" lengthAdjust="spacingAndGlyphs">earch to filter</text>
- <text x="873" y="87" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="87" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="104" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ Search to filter │ │</text>
- <text x="18" y="104" fill="#d7ffd7" textLength="864" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │</text>
- <text x="891" y="104" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="121" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="121" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="138" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="121" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="138" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">▲</text>
- <text x="891" y="138" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="155" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="153" width="9" height="17" fill="#005f00" />
- <text x="27" y="155" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">●</text>
- <rect x="36" y="153" width="9" height="17" fill="#005f00" />
-  <rect x="45" y="153" width="72" height="17" fill="#005f00" />
+ <text x="0" y="138" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ▲ │</text>
- <text x="45" y="155" fill="#d7ffd7" textLength="72" lengthAdjust="spacingAndGlyphs">Vim Mode</text>
- <rect x="117" y="153" width="711" height="17" fill="#005f00" />
- <rect x="828" y="153" width="45" height="17" fill="#005f00" />
- <text x="828" y="155" fill="#d7ffd7" textLength="45" lengthAdjust="spacingAndGlyphs">false</text>
- <text x="891" y="155" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="172" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="170" width="18" height="17" fill="#005f00" />
-  <rect x="45" y="170" width="198" height="17" fill="#005f00" />
+ <text x="0" y="155" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ● Vim Mode false │</text>
- <text x="45" y="172" fill="#afafaf" textLength="198" lengthAdjust="spacingAndGlyphs">Enable Vim keybindings</text>
- <rect x="243" y="170" width="630" height="17" fill="#005f00" />
-  <text x="891" y="172" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="172" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Vim keybindings │</text>
- <text x="0" y="189" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="189" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="206" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="189" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="206" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs">Default Approval Mode</text>
- <text x="810" y="206" fill="#afafaf" textLength="63" lengthAdjust="spacingAndGlyphs">Default</text>
- <text x="891" y="206" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="223" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="206" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Default Approval Mode Default │</text>
- <text x="45" y="223" fill="#afafaf" textLength="738" lengthAdjust="spacingAndGlyphs">The default approval mode for tool execution. &apos;default&apos; prompts for approval, &apos;au…</text>
-  <text x="891" y="223" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="223" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ The default approval mode for tool execution. &apos;default&apos; prompts for approval, &apos;au… │</text>
- <text x="0" y="240" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="240" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="257" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="240" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="257" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Enable Auto Update</text>
- <text x="837" y="257" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="257" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="274" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="257" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Auto Update true │</text>
- <text x="45" y="274" fill="#afafaf" textLength="225" lengthAdjust="spacingAndGlyphs">Enable automatic updates.</text>
-  <text x="891" y="274" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="274" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable automatic updates. │</text>
- <text x="0" y="291" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="291" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="308" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="291" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="308" fill="#ffffff" textLength="180" lengthAdjust="spacingAndGlyphs">Enable Notifications</text>
- <text x="828" y="308" fill="#afafaf" textLength="45" lengthAdjust="spacingAndGlyphs">false</text>
- <text x="891" y="308" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="325" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="308" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Notifications false │</text>
- <text x="45" y="325" fill="#afafaf" textLength="738" lengthAdjust="spacingAndGlyphs">Enable run-event notifications for action-required prompts and session completion.</text>
-  <text x="891" y="325" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="325" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable run-event notifications for action-required prompts and session completion. │</text>
- <text x="0" y="342" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="342" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="359" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="342" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="359" fill="#ffffff" textLength="144" lengthAdjust="spacingAndGlyphs">Enable Plan Mode</text>
- <text x="837" y="359" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="359" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="376" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="359" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Plan Mode true │</text>
- <text x="45" y="376" fill="#afafaf" textLength="486" lengthAdjust="spacingAndGlyphs">Enable Plan Mode for read-only safety during planning.</text>
-  <text x="891" y="376" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="376" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Plan Mode for read-only safety during planning. │</text>
- <text x="0" y="393" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="393" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="410" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="393" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="410" fill="#ffffff" textLength="126" lengthAdjust="spacingAndGlyphs">Plan Directory</text>
- <text x="792" y="410" fill="#afafaf" textLength="81" lengthAdjust="spacingAndGlyphs">undefined</text>
- <text x="891" y="410" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="427" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="410" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Plan Directory undefined │</text>
- <text x="45" y="427" fill="#afafaf" textLength="720" lengthAdjust="spacingAndGlyphs">The directory where planning artifacts are stored. If not specified, defaults t…</text>
-  <text x="891" y="427" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="427" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ The directory where planning artifacts are stored. If not specified, defaults t… │</text>
- <text x="0" y="444" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="444" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="461" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="444" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="461" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Plan Model Routing</text>
- <text x="837" y="461" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="461" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="478" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="461" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Plan Model Routing true │</text>
- <text x="45" y="478" fill="#afafaf" textLength="765" lengthAdjust="spacingAndGlyphs">Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr…</text>
-  <text x="891" y="478" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="478" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr… │</text>
- <text x="0" y="495" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="495" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="512" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="495" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="512" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Retry Fetch Errors</text>
- <text x="837" y="512" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="512" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="529" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="512" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Retry Fetch Errors true │</text>
- <text x="45" y="529" fill="#afafaf" textLength="612" lengthAdjust="spacingAndGlyphs">Retry on &quot;exception TypeError: fetch failed sending request&quot; errors.</text>
-  <text x="891" y="529" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="529" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Retry on &quot;exception TypeError: fetch failed sending request&quot; errors. │</text>
- <text x="0" y="546" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="546" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="563" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="546" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="563" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">▼</text>
-  <text x="891" y="563" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="563" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ▼ │</text>
- <text x="0" y="580" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="580" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="597" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="580" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="9" y="597" fill="#ffffff" textLength="882" lengthAdjust="spacingAndGlyphs"> Apply To </text>
+ <text x="0" y="597" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Apply To │</text>
- <text x="891" y="597" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="614" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="612" width="9" height="17" fill="#005f00" />
- <text x="27" y="614" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">●</text>
- <rect x="36" y="612" width="9" height="17" fill="#005f00" />
- <rect x="45" y="612" width="117" height="17" fill="#005f00" />
- <text x="45" y="614" fill="#d7ffd7" textLength="117" lengthAdjust="spacingAndGlyphs">User Settings</text>
- <rect x="162" y="612" width="711" height="17" fill="#005f00" />
- <text x="891" y="614" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="631" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="614" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ● User Settings │</text>
- <text x="45" y="631" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Workspace Settings</text>
- <text x="891" y="631" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="648" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="631" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Workspace Settings │</text>
- <text x="45" y="648" fill="#ffffff" textLength="135" lengthAdjust="spacingAndGlyphs">System Settings</text>
-  <text x="891" y="648" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="648" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ System Settings │</text>
- <text x="0" y="665" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="665" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="682" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="665" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="682" fill="#afafaf" textLength="657" lengthAdjust="spacingAndGlyphs">(Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close)</text>
-  <text x="891" y="682" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="682" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ (Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close) │</text>
- <text x="0" y="699" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="891" y="699" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="699" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="0" y="716" fill="#878787" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="716" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/SettingsDialog.test.tsx:1784:9
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[81/184]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Snapshot Tests > should render 'tools and security settings' correctly
Error: Snapshot `SettingsDialog > Snapshot Tests > should render 'tools and security settings' correctly 2` mismatched
- Expected
+ Received
@@ -2,144 +2,50 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="751" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#878787" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
- <text x="0" y="19" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="19" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="36" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="36" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs" font-weight="bold">&gt; Settings </text>
-  <text x="891" y="36" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; Settings │</text>
- <text x="0" y="53" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="53" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="70" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="18" y="70" fill="#d7ffd7" textLength="864" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │</text>
- <text x="891" y="70" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="87" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="87" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="85" width="9" height="17" fill="#ffffff" />
- <text x="36" y="87" fill="#000000" textLength="9" lengthAdjust="spacingAndGlyphs">S</text>
- <text x="45" y="87" fill="#afafaf" textLength="135" lengthAdjust="spacingAndGlyphs">earch to filter</text>
- <text x="873" y="87" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="87" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="104" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ Search to filter │ │</text>
- <text x="18" y="104" fill="#d7ffd7" textLength="864" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │</text>
- <text x="891" y="104" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="121" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="121" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="138" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="121" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="138" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">▲</text>
- <text x="891" y="138" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="155" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="153" width="9" height="17" fill="#005f00" />
- <text x="27" y="155" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">●</text>
- <rect x="36" y="153" width="9" height="17" fill="#005f00" />
-  <rect x="45" y="153" width="72" height="17" fill="#005f00" />
+ <text x="0" y="138" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ▲ │</text>
- <text x="45" y="155" fill="#d7ffd7" textLength="72" lengthAdjust="spacingAndGlyphs">Vim Mode</text>
- <rect x="117" y="153" width="711" height="17" fill="#005f00" />
- <rect x="828" y="153" width="45" height="17" fill="#005f00" />
- <text x="828" y="155" fill="#d7ffd7" textLength="45" lengthAdjust="spacingAndGlyphs">false</text>
- <text x="891" y="155" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="172" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="170" width="18" height="17" fill="#005f00" />
-  <rect x="45" y="170" width="198" height="17" fill="#005f00" />
+ <text x="0" y="155" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ● Vim Mode false │</text>
- <text x="45" y="172" fill="#afafaf" textLength="198" lengthAdjust="spacingAndGlyphs">Enable Vim keybindings</text>
- <rect x="243" y="170" width="630" height="17" fill="#005f00" />
-  <text x="891" y="172" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="172" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Vim keybindings │</text>
- <text x="0" y="189" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="189" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="206" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="189" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="206" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs">Default Approval Mode</text>
- <text x="810" y="206" fill="#afafaf" textLength="63" lengthAdjust="spacingAndGlyphs">Default</text>
- <text x="891" y="206" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="223" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="206" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Default Approval Mode Default │</text>
- <text x="45" y="223" fill="#afafaf" textLength="738" lengthAdjust="spacingAndGlyphs">The default approval mode for tool execution. &apos;default&apos; prompts for approval, &apos;au…</text>
-  <text x="891" y="223" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="223" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ The default approval mode for tool execution. &apos;default&apos; prompts for approval, &apos;au… │</text>
- <text x="0" y="240" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="240" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="257" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="240" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="257" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Enable Auto Update</text>
- <text x="837" y="257" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="257" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="274" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="257" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Auto Update true │</text>
- <text x="45" y="274" fill="#afafaf" textLength="225" lengthAdjust="spacingAndGlyphs">Enable automatic updates.</text>
-  <text x="891" y="274" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="274" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable automatic updates. │</text>
- <text x="0" y="291" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="291" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="308" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="291" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="308" fill="#ffffff" textLength="180" lengthAdjust="spacingAndGlyphs">Enable Notifications</text>
- <text x="828" y="308" fill="#afafaf" textLength="45" lengthAdjust="spacingAndGlyphs">false</text>
- <text x="891" y="308" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="325" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="308" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Notifications false │</text>
- <text x="45" y="325" fill="#afafaf" textLength="738" lengthAdjust="spacingAndGlyphs">Enable run-event notifications for action-required prompts and session completion.</text>
-  <text x="891" y="325" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="325" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable run-event notifications for action-required prompts and session completion. │</text>
- <text x="0" y="342" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="342" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="359" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="342" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="359" fill="#ffffff" textLength="144" lengthAdjust="spacingAndGlyphs">Enable Plan Mode</text>
- <text x="837" y="359" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="359" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="376" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="359" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Plan Mode true │</text>
- <text x="45" y="376" fill="#afafaf" textLength="486" lengthAdjust="spacingAndGlyphs">Enable Plan Mode for read-only safety during planning.</text>
-  <text x="891" y="376" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="376" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Plan Mode for read-only safety during planning. │</text>
- <text x="0" y="393" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="393" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="410" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="393" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="410" fill="#ffffff" textLength="126" lengthAdjust="spacingAndGlyphs">Plan Directory</text>
- <text x="792" y="410" fill="#afafaf" textLength="81" lengthAdjust="spacingAndGlyphs">undefined</text>
- <text x="891" y="410" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="427" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="410" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Plan Directory undefined │</text>
- <text x="45" y="427" fill="#afafaf" textLength="720" lengthAdjust="spacingAndGlyphs">The directory where planning artifacts are stored. If not specified, defaults t…</text>
-  <text x="891" y="427" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="427" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ The directory where planning artifacts are stored. If not specified, defaults t… │</text>
- <text x="0" y="444" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="444" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="461" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="444" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="461" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Plan Model Routing</text>
- <text x="837" y="461" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="461" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="478" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="461" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Plan Model Routing true │</text>
- <text x="45" y="478" fill="#afafaf" textLength="765" lengthAdjust="spacingAndGlyphs">Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr…</text>
-  <text x="891" y="478" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="478" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr… │</text>
- <text x="0" y="495" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="495" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="512" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="495" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="512" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Retry Fetch Errors</text>
- <text x="837" y="512" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="512" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="529" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="512" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Retry Fetch Errors true │</text>
- <text x="45" y="529" fill="#afafaf" textLength="612" lengthAdjust="spacingAndGlyphs">Retry on &quot;exception TypeError: fetch failed sending request&quot; errors.</text>
-  <text x="891" y="529" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="529" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Retry on &quot;exception TypeError: fetch failed sending request&quot; errors. │</text>
- <text x="0" y="546" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="546" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="563" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="546" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="563" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">▼</text>
-  <text x="891" y="563" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="563" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ▼ │</text>
- <text x="0" y="580" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="580" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="597" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="580" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="9" y="597" fill="#ffffff" textLength="882" lengthAdjust="spacingAndGlyphs"> Apply To </text>
+ <text x="0" y="597" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Apply To │</text>
- <text x="891" y="597" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="614" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="612" width="9" height="17" fill="#005f00" />
- <text x="27" y="614" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">●</text>
- <rect x="36" y="612" width="9" height="17" fill="#005f00" />
- <rect x="45" y="612" width="117" height="17" fill="#005f00" />
- <text x="45" y="614" fill="#d7ffd7" textLength="117" lengthAdjust="spacingAndGlyphs">User Settings</text>
- <rect x="162" y="612" width="711" height="17" fill="#005f00" />
- <text x="891" y="614" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="631" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="614" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ● User Settings │</text>
- <text x="45" y="631" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Workspace Settings</text>
- <text x="891" y="631" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="648" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="631" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Workspace Settings │</text>
- <text x="45" y="648" fill="#ffffff" textLength="135" lengthAdjust="spacingAndGlyphs">System Settings</text>
-  <text x="891" y="648" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="648" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ System Settings │</text>
- <text x="0" y="665" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="665" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="682" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="665" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="682" fill="#afafaf" textLength="657" lengthAdjust="spacingAndGlyphs">(Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close)</text>
-  <text x="891" y="682" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="682" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ (Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close) │</text>
- <text x="0" y="699" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="891" y="699" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="699" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="0" y="716" fill="#878787" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="716" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/SettingsDialog.test.tsx:1784:9
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[82/184]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Snapshot Tests > should render 'all boolean settings disabled' correctly
Error: Snapshot `SettingsDialog > Snapshot Tests > should render 'all boolean settings disabled' correctly 2` mismatched
- Expected
+ Received
@@ -2,144 +2,50 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="751" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#878787" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────────╮</text>
- <text x="0" y="19" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="19" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="36" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="36" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs" font-weight="bold">&gt; Settings </text>
-  <text x="891" y="36" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ &gt; Settings │</text>
- <text x="0" y="53" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="53" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="70" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="18" y="70" fill="#d7ffd7" textLength="864" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │</text>
- <text x="891" y="70" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="87" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="87" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="85" width="9" height="17" fill="#ffffff" />
- <text x="36" y="87" fill="#000000" textLength="9" lengthAdjust="spacingAndGlyphs">S</text>
- <text x="45" y="87" fill="#afafaf" textLength="135" lengthAdjust="spacingAndGlyphs">earch to filter</text>
- <text x="873" y="87" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="87" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="104" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ Search to filter │ │</text>
- <text x="18" y="104" fill="#d7ffd7" textLength="864" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │</text>
- <text x="891" y="104" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="121" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="121" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="138" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="121" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="138" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">▲</text>
- <text x="891" y="138" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="155" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="153" width="9" height="17" fill="#005f00" />
- <text x="27" y="155" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">●</text>
- <rect x="36" y="153" width="9" height="17" fill="#005f00" />
-  <rect x="45" y="153" width="72" height="17" fill="#005f00" />
+ <text x="0" y="138" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ▲ │</text>
- <text x="45" y="155" fill="#d7ffd7" textLength="72" lengthAdjust="spacingAndGlyphs">Vim Mode</text>
- <rect x="117" y="153" width="702" height="17" fill="#005f00" />
- <rect x="819" y="153" width="54" height="17" fill="#005f00" />
- <text x="819" y="155" fill="#d7ffd7" textLength="54" lengthAdjust="spacingAndGlyphs">false*</text>
- <text x="891" y="155" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="172" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="170" width="18" height="17" fill="#005f00" />
-  <rect x="45" y="170" width="198" height="17" fill="#005f00" />
+ <text x="0" y="155" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ● Vim Mode false* │</text>
- <text x="45" y="172" fill="#afafaf" textLength="198" lengthAdjust="spacingAndGlyphs">Enable Vim keybindings</text>
- <rect x="243" y="170" width="630" height="17" fill="#005f00" />
-  <text x="891" y="172" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="172" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Vim keybindings │</text>
- <text x="0" y="189" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="189" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="206" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="189" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="206" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs">Default Approval Mode</text>
- <text x="810" y="206" fill="#afafaf" textLength="63" lengthAdjust="spacingAndGlyphs">Default</text>
- <text x="891" y="206" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="223" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="206" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Default Approval Mode Default │</text>
- <text x="45" y="223" fill="#afafaf" textLength="738" lengthAdjust="spacingAndGlyphs">The default approval mode for tool execution. &apos;default&apos; prompts for approval, &apos;au…</text>
-  <text x="891" y="223" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="223" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ The default approval mode for tool execution. &apos;default&apos; prompts for approval, &apos;au… │</text>
- <text x="0" y="240" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="240" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="257" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="240" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="257" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Enable Auto Update</text>
- <text x="828" y="257" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs">true*</text>
- <text x="891" y="257" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="274" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="257" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Auto Update true* │</text>
- <text x="45" y="274" fill="#afafaf" textLength="225" lengthAdjust="spacingAndGlyphs">Enable automatic updates.</text>
-  <text x="891" y="274" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="274" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable automatic updates. │</text>
- <text x="0" y="291" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="291" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="308" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="291" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="308" fill="#ffffff" textLength="180" lengthAdjust="spacingAndGlyphs">Enable Notifications</text>
- <text x="828" y="308" fill="#afafaf" textLength="45" lengthAdjust="spacingAndGlyphs">false</text>
- <text x="891" y="308" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="325" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="308" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Notifications false │</text>
- <text x="45" y="325" fill="#afafaf" textLength="738" lengthAdjust="spacingAndGlyphs">Enable run-event notifications for action-required prompts and session completion.</text>
-  <text x="891" y="325" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="325" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable run-event notifications for action-required prompts and session completion. │</text>
- <text x="0" y="342" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="342" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="359" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="342" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="359" fill="#ffffff" textLength="144" lengthAdjust="spacingAndGlyphs">Enable Plan Mode</text>
- <text x="837" y="359" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="359" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="376" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="359" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Plan Mode true │</text>
- <text x="45" y="376" fill="#afafaf" textLength="486" lengthAdjust="spacingAndGlyphs">Enable Plan Mode for read-only safety during planning.</text>
-  <text x="891" y="376" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="376" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Enable Plan Mode for read-only safety during planning. │</text>
- <text x="0" y="393" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="393" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="410" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="393" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="410" fill="#ffffff" textLength="126" lengthAdjust="spacingAndGlyphs">Plan Directory</text>
- <text x="792" y="410" fill="#afafaf" textLength="81" lengthAdjust="spacingAndGlyphs">undefined</text>
- <text x="891" y="410" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="427" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="410" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Plan Directory undefined │</text>
- <text x="45" y="427" fill="#afafaf" textLength="720" lengthAdjust="spacingAndGlyphs">The directory where planning artifacts are stored. If not specified, defaults t…</text>
-  <text x="891" y="427" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="427" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ The directory where planning artifacts are stored. If not specified, defaults t… │</text>
- <text x="0" y="444" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="444" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="461" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="444" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="461" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Plan Model Routing</text>
- <text x="837" y="461" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="461" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="478" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="461" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Plan Model Routing true │</text>
- <text x="45" y="478" fill="#afafaf" textLength="765" lengthAdjust="spacingAndGlyphs">Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr…</text>
-  <text x="891" y="478" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="478" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr… │</text>
- <text x="0" y="495" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="495" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="512" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="495" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="45" y="512" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Retry Fetch Errors</text>
- <text x="837" y="512" fill="#afafaf" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <text x="891" y="512" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="529" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="512" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Retry Fetch Errors true │</text>
- <text x="45" y="529" fill="#afafaf" textLength="612" lengthAdjust="spacingAndGlyphs">Retry on &quot;exception TypeError: fetch failed sending request&quot; errors.</text>
-  <text x="891" y="529" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="529" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Retry on &quot;exception TypeError: fetch failed sending request&quot; errors. │</text>
- <text x="0" y="546" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="546" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="563" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="546" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="563" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">▼</text>
-  <text x="891" y="563" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="563" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ▼ │</text>
- <text x="0" y="580" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="580" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="597" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="580" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="9" y="597" fill="#ffffff" textLength="882" lengthAdjust="spacingAndGlyphs"> Apply To </text>
+ <text x="0" y="597" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Apply To │</text>
- <text x="891" y="597" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="614" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="27" y="612" width="9" height="17" fill="#005f00" />
- <text x="27" y="614" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">●</text>
- <rect x="36" y="612" width="9" height="17" fill="#005f00" />
- <rect x="45" y="612" width="117" height="17" fill="#005f00" />
- <text x="45" y="614" fill="#d7ffd7" textLength="117" lengthAdjust="spacingAndGlyphs">User Settings</text>
- <rect x="162" y="612" width="711" height="17" fill="#005f00" />
- <text x="891" y="614" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="631" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="614" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ● User Settings │</text>
- <text x="45" y="631" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Workspace Settings</text>
- <text x="891" y="631" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="648" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="631" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Workspace Settings │</text>
- <text x="45" y="648" fill="#ffffff" textLength="135" lengthAdjust="spacingAndGlyphs">System Settings</text>
-  <text x="891" y="648" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="648" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ System Settings │</text>
- <text x="0" y="665" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="891" y="665" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="682" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="665" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="27" y="682" fill="#afafaf" textLength="657" lengthAdjust="spacingAndGlyphs">(Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close)</text>
-  <text x="891" y="682" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="682" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ (Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close) │</text>
- <text x="0" y="699" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="891" y="699" fill="#878787" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="699" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="0" y="716" fill="#878787" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="716" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────────╯</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/SettingsDialog.test.tsx:1784:9
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[83/184]⎯
FAIL src/ui/components/SuggestionsDisplay.test.tsx > SuggestionsDisplay > renders suggestions list
Error: Snapshot `SuggestionsDisplay > renders suggestions list 1` mismatched
- Expected
+ Received
- " command1 Description 1 
+ " command1 Description 1
 command2 Description 2
 command3 Description 3
 "
src/ui/components/SuggestionsDisplay.test.tsx:61:25
59| />,
60| );
61| expect(lastFrame()).toMatchSnapshot();
| ^
62| });
63|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[84/184]⎯
FAIL src/ui/components/SuggestionsDisplay.test.tsx > SuggestionsDisplay > highlights active item
Error: Snapshot `SuggestionsDisplay > highlights active item 1` mismatched
- Expected
+ Received
 " command1 Description 1
- command2 Description 2 
+ command2 Description 2
 command3 Description 3
 "
src/ui/components/SuggestionsDisplay.test.tsx:78:25
76| />,
77| );
78| expect(lastFrame()).toMatchSnapshot();
| ^
79| });
80|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[85/184]⎯
FAIL src/ui/components/SuggestionsDisplay.test.tsx > SuggestionsDisplay > handles scrolling
Error: Snapshot `SuggestionsDisplay > handles scrolling 1` mismatched
- Expected
+ Received
@@ -2,11 +2,11 @@
 Cmd 5 Description 5
 Cmd 6 Description 6
 Cmd 7 Description 7
 Cmd 8 Description 8
 Cmd 9 Description 9
- Cmd 10 Description 10 
+ Cmd 10 Description 10
 Cmd 11 Description 11
 Cmd 12 Description 12
 ▼
 (11/20)
 "
src/ui/components/SuggestionsDisplay.test.tsx:99:25
97| />,
98| );
99| expect(lastFrame()).toMatchSnapshot();
| ^
100| });
101|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[86/184]⎯
FAIL src/ui/components/SuggestionsDisplay.test.tsx > SuggestionsDisplay > renders MCP tag for MCP prompts
Error: Snapshot `SuggestionsDisplay > renders MCP tag for MCP prompts 1` mismatched
- Expected
+ Received
- " mcp-tool [MCP] 
+ " mcp-tool [MCP]
 "
src/ui/components/SuggestionsDisplay.test.tsx:122:25
120| />,
121| );
122| expect(lastFrame()).toMatchSnapshot();
| ^
123| });
124|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[87/184]⎯
FAIL src/ui/components/Table.test.tsx > Table > should render headers and data correctly
Error: Snapshot `Table > should render headers and data correctly 2` mismatched
- Expected
+ Received
@@ -2,14 +2,11 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="88" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#ffffff" textLength="18" lengthAdjust="spacingAndGlyphs" font-weight="bold">ID</text>
-  <text x="45" y="2" fill="#ffffff" textLength="36" lengthAdjust="spacingAndGlyphs" font-weight="bold">Name</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">ID Name </text>
- <text x="0" y="19" fill="#878787" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
- <text x="0" y="36" fill="#ffffff" textLength="9" lengthAdjust="spacingAndGlyphs">1</text>
-  <text x="45" y="36" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs">Alice</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">1 Alice </text>
- <text x="0" y="53" fill="#ffffff" textLength="9" lengthAdjust="spacingAndGlyphs">2</text>
-  <text x="45" y="53" fill="#ffffff" textLength="27" lengthAdjust="spacingAndGlyphs">Bob</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">2 Bob </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/Table.test.tsx:35:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[88/184]⎯
FAIL src/ui/components/Table.test.tsx > Table > should support custom cell rendering
Error: Snapshot `Table > should support custom cell rendering 2` mismatched
- Expected
+ Received
@@ -2,10 +2,10 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="71" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs" font-weight="bold">Value</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Value </text>
- <text x="0" y="19" fill="#878787" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
- <text x="0" y="36" fill="#00cd00" textLength="18" lengthAdjust="spacingAndGlyphs">20</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">20 </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/Table.test.tsx:59:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[89/184]⎯
FAIL src/ui/components/Table.test.tsx > Table > should support inverse text rendering
Error: Snapshot `Table > should support inverse text rendering 2` mismatched
- Expected
+ Received
@@ -2,11 +2,10 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="71" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs" font-weight="bold">Status</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Status </text>
- <text x="0" y="19" fill="#878787" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">────────────────────────────────────────────────────────────────────────────────────────────────────</text>
- <rect x="0" y="34" width="54" height="17" fill="#ffffff" />
-  <text x="0" y="36" fill="#000000" textLength="54" lengthAdjust="spacingAndGlyphs">Active</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Active </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/Table.test.tsx:94:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[90/184]⎯
FAIL src/ui/components/ThemeDialog.test.tsx > ThemeDialog Snapshots > should render correctly in scope selector mode
Error: Snapshot `ThemeDialog Snapshots > should render correctly in scope selector mode 1` mismatched
- Expected
+ Received
 "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮
 │ │
- │ > Apply To  │
+ │ > Select Theme Preview  │
+ │ ▲  ┌─────────────────────────────────────────────────┐ │
- │ ● 1. User Settings      │
- │ 2. Workspace Settings │
+ │ ●  1. ANSI Dark (Matches terminal) │ │ │
+ │ 2. Atom One Dark │ 1 # function │ │
+ │ 3. Ayu Dark │ 2 def fibonacci(n): │ │
+ │ 4. Default Dark │ 3 a, b = 0, 1 │ │
+ │ 5. Dracula Dark │ 4 for _ in range(n): │ │
+ │ 6. GitHub Dark │ 5 a, b = b, a + b │ │
+ │ 7. Holiday Dark │ 6 return a │ │
+ │ 8. Shades Of Purple Dark │ │ │
+ │ 9. Solarized Dark │ 1 - print("Hello, " + name) │ │
+ │ 10. Tokyo Night Dark │ 1 + print(f"Hello, {name}!") │ │
+ │ 11. ANSI Light   │ │ │
- │ 3. System Settings │
+ │ 12. Ayu Light └─────────────────────────────────────────────────┘ │
+ │ ▼   │
 │ │
- │ (Use Enter to apply scope, Tab to select theme, Esc to close) │
+ │ (Use Enter to select, Tab to configure scope, Esc to close)  │
 │ │
 ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
 "
src/ui/components/ThemeDialog.test.tsx:80:25
78| await waitUntilReady();
79|
80| expect(lastFrame()).toMatchSnapshot();
| ^
81| unmount();
82| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[91/184]⎯
FAIL src/ui/components/ToolConfirmationQueue.test.tsx > ToolConfirmationQueue > height allocation and layout > should render the full queue wrapper with borders and content for large edit diffs
Error: Snapshot `ToolConfirmationQueue > height allocation and layout > should render the full queue wrapper with borders and content for large edit diffs 2` mismatched
- Expected
+ Received
@@ -2,543 +2,46 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="740" height="683" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="720" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────╮</text>
- <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#ffffaf" textLength="99" lengthAdjust="spacingAndGlyphs" font-weight="bold">? replace </text>
- <text x="117" y="19" fill="#ffffff" textLength="234" lengthAdjust="spacingAndGlyphs">Replaces content in a file</text>
- <text x="711" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="36" fill="#333333" textLength="684" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────╮</text>
- <text x="711" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="53" fill="#afafaf" textLength="234" lengthAdjust="spacingAndGlyphs">... 13 hidden (Ctrl+O) ...</text>
- <text x="693" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="68" width="9" height="17" fill="#005f00" />
- <rect x="45" y="68" width="9" height="17" fill="#005f00" />
- <text x="45" y="70" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">7</text>
- <rect x="54" y="68" width="9" height="17" fill="#005f00" />
- <rect x="63" y="68" width="9" height="17" fill="#005f00" />
- <text x="63" y="70" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">+</text>
- <rect x="72" y="68" width="9" height="17" fill="#005f00" />
- <rect x="81" y="68" width="45" height="17" fill="#005f00" />
- <text x="81" y="70" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="68" width="108" height="17" fill="#005f00" />
- <text x="126" y="70" fill="#e5e5e5" textLength="108" lengthAdjust="spacingAndGlyphs"> newLine7 = </text>
- <rect x="234" y="68" width="36" height="17" fill="#005f00" />
- <text x="234" y="70" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="270" y="68" width="9" height="17" fill="#005f00" />
- <text x="270" y="70" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="85" width="9" height="17" fill="#5f0000" />
- <rect x="45" y="85" width="9" height="17" fill="#5f0000" />
- <text x="45" y="87" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">8</text>
- <rect x="54" y="85" width="9" height="17" fill="#5f0000" />
- <rect x="63" y="85" width="9" height="17" fill="#5f0000" />
- <text x="63" y="87" fill="#ff87af" textLength="9" lengthAdjust="spacingAndGlyphs">-</text>
- <rect x="72" y="85" width="9" height="17" fill="#5f0000" />
- <rect x="81" y="85" width="45" height="17" fill="#5f0000" />
- <text x="81" y="87" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="85" width="108" height="17" fill="#5f0000" />
- <text x="126" y="87" fill="#e5e5e5" textLength="108" lengthAdjust="spacingAndGlyphs"> oldLine8 = </text>
- <rect x="234" y="85" width="36" height="17" fill="#5f0000" />
- <text x="234" y="87" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="270" y="85" width="9" height="17" fill="#5f0000" />
- <text x="270" y="87" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="102" width="9" height="17" fill="#005f00" />
- <rect x="45" y="102" width="9" height="17" fill="#005f00" />
- <text x="45" y="104" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">8</text>
- <rect x="54" y="102" width="9" height="17" fill="#005f00" />
- <rect x="63" y="102" width="9" height="17" fill="#005f00" />
- <text x="63" y="104" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">+</text>
- <rect x="72" y="102" width="9" height="17" fill="#005f00" />
- <rect x="81" y="102" width="45" height="17" fill="#005f00" />
- <text x="81" y="104" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="102" width="108" height="17" fill="#005f00" />
- <text x="126" y="104" fill="#e5e5e5" textLength="108" lengthAdjust="spacingAndGlyphs"> newLine8 = </text>
- <rect x="234" y="102" width="36" height="17" fill="#005f00" />
- <text x="234" y="104" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="270" y="102" width="9" height="17" fill="#005f00" />
- <text x="270" y="104" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="119" width="9" height="17" fill="#5f0000" />
- <rect x="45" y="119" width="9" height="17" fill="#5f0000" />
- <text x="45" y="121" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">9</text>
- <rect x="54" y="119" width="9" height="17" fill="#5f0000" />
- <rect x="63" y="119" width="9" height="17" fill="#5f0000" />
- <text x="63" y="121" fill="#ff87af" textLength="9" lengthAdjust="spacingAndGlyphs">-</text>
- <rect x="72" y="119" width="9" height="17" fill="#5f0000" />
- <rect x="81" y="119" width="45" height="17" fill="#5f0000" />
- <text x="81" y="121" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="119" width="108" height="17" fill="#5f0000" />
- <text x="126" y="121" fill="#e5e5e5" textLength="108" lengthAdjust="spacingAndGlyphs"> oldLine9 = </text>
- <rect x="234" y="119" width="36" height="17" fill="#5f0000" />
- <text x="234" y="121" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="270" y="119" width="9" height="17" fill="#5f0000" />
- <text x="270" y="121" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="138" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="138" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="136" width="9" height="17" fill="#005f00" />
- <rect x="45" y="136" width="9" height="17" fill="#005f00" />
- <text x="45" y="138" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">9</text>
- <rect x="54" y="136" width="9" height="17" fill="#005f00" />
- <rect x="63" y="136" width="9" height="17" fill="#005f00" />
- <text x="63" y="138" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">+</text>
- <rect x="72" y="136" width="9" height="17" fill="#005f00" />
- <rect x="81" y="136" width="45" height="17" fill="#005f00" />
- <text x="81" y="138" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="136" width="108" height="17" fill="#005f00" />
- <text x="126" y="138" fill="#e5e5e5" textLength="108" lengthAdjust="spacingAndGlyphs"> newLine9 = </text>
- <rect x="234" y="136" width="36" height="17" fill="#005f00" />
- <text x="234" y="138" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="270" y="136" width="9" height="17" fill="#005f00" />
- <text x="270" y="138" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="138" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="138" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="153" width="18" height="17" fill="#5f0000" />
- <text x="36" y="155" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">10</text>
- <rect x="54" y="153" width="9" height="17" fill="#5f0000" />
- <rect x="63" y="153" width="9" height="17" fill="#5f0000" />
- <text x="63" y="155" fill="#ff87af" textLength="9" lengthAdjust="spacingAndGlyphs">-</text>
- <rect x="72" y="153" width="9" height="17" fill="#5f0000" />
- <rect x="81" y="153" width="45" height="17" fill="#5f0000" />
- <text x="81" y="155" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="153" width="117" height="17" fill="#5f0000" />
- <text x="126" y="155" fill="#e5e5e5" textLength="117" lengthAdjust="spacingAndGlyphs"> oldLine10 = </text>
- <rect x="243" y="153" width="36" height="17" fill="#5f0000" />
- <text x="243" y="155" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="279" y="153" width="9" height="17" fill="#5f0000" />
- <text x="279" y="155" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="170" width="18" height="17" fill="#005f00" />
- <text x="36" y="172" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">10</text>
- <rect x="54" y="170" width="9" height="17" fill="#005f00" />
- <rect x="63" y="170" width="9" height="17" fill="#005f00" />
- <text x="63" y="172" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">+</text>
- <rect x="72" y="170" width="9" height="17" fill="#005f00" />
- <rect x="81" y="170" width="45" height="17" fill="#005f00" />
- <text x="81" y="172" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="170" width="117" height="17" fill="#005f00" />
- <text x="126" y="172" fill="#e5e5e5" textLength="117" lengthAdjust="spacingAndGlyphs"> newLine10 = </text>
- <rect x="243" y="170" width="36" height="17" fill="#005f00" />
- <text x="243" y="172" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="279" y="170" width="9" height="17" fill="#005f00" />
- <text x="279" y="172" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="187" width="18" height="17" fill="#5f0000" />
- <text x="36" y="189" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">11</text>
- <rect x="54" y="187" width="9" height="17" fill="#5f0000" />
- <rect x="63" y="187" width="9" height="17" fill="#5f0000" />
- <text x="63" y="189" fill="#ff87af" textLength="9" lengthAdjust="spacingAndGlyphs">-</text>
- <rect x="72" y="187" width="9" height="17" fill="#5f0000" />
- <rect x="81" y="187" width="45" height="17" fill="#5f0000" />
- <text x="81" y="189" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="187" width="117" height="17" fill="#5f0000" />
- <text x="126" y="189" fill="#e5e5e5" textLength="117" lengthAdjust="spacingAndGlyphs"> oldLine11 = </text>
- <rect x="243" y="187" width="36" height="17" fill="#5f0000" />
- <text x="243" y="189" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="279" y="187" width="9" height="17" fill="#5f0000" />
- <text x="279" y="189" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="204" width="18" height="17" fill="#005f00" />
- <text x="36" y="206" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">11</text>
- <rect x="54" y="204" width="9" height="17" fill="#005f00" />
- <rect x="63" y="204" width="9" height="17" fill="#005f00" />
- <text x="63" y="206" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">+</text>
- <rect x="72" y="204" width="9" height="17" fill="#005f00" />
- <rect x="81" y="204" width="45" height="17" fill="#005f00" />
- <text x="81" y="206" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="204" width="117" height="17" fill="#005f00" />
- <text x="126" y="206" fill="#e5e5e5" textLength="117" lengthAdjust="spacingAndGlyphs"> newLine11 = </text>
- <rect x="243" y="204" width="36" height="17" fill="#005f00" />
- <text x="243" y="206" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="279" y="204" width="9" height="17" fill="#005f00" />
- <text x="279" y="206" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="221" width="18" height="17" fill="#5f0000" />
- <text x="36" y="223" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">12</text>
- <rect x="54" y="221" width="9" height="17" fill="#5f0000" />
- <rect x="63" y="221" width="9" height="17" fill="#5f0000" />
- <text x="63" y="223" fill="#ff87af" textLength="9" lengthAdjust="spacingAndGlyphs">-</text>
- <rect x="72" y="221" width="9" height="17" fill="#5f0000" />
- <rect x="81" y="221" width="45" height="17" fill="#5f0000" />
- <text x="81" y="223" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="221" width="117" height="17" fill="#5f0000" />
- <text x="126" y="223" fill="#e5e5e5" textLength="117" lengthAdjust="spacingAndGlyphs"> oldLine12 = </text>
- <rect x="243" y="221" width="36" height="17" fill="#5f0000" />
- <text x="243" y="223" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="279" y="221" width="9" height="17" fill="#5f0000" />
- <text x="279" y="223" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="238" width="18" height="17" fill="#005f00" />
- <text x="36" y="240" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">12</text>
- <rect x="54" y="238" width="9" height="17" fill="#005f00" />
- <rect x="63" y="238" width="9" height="17" fill="#005f00" />
- <text x="63" y="240" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">+</text>
- <rect x="72" y="238" width="9" height="17" fill="#005f00" />
- <rect x="81" y="238" width="45" height="17" fill="#005f00" />
- <text x="81" y="240" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="238" width="117" height="17" fill="#005f00" />
- <text x="126" y="240" fill="#e5e5e5" textLength="117" lengthAdjust="spacingAndGlyphs"> newLine12 = </text>
- <rect x="243" y="238" width="36" height="17" fill="#005f00" />
- <text x="243" y="240" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="279" y="238" width="9" height="17" fill="#005f00" />
- <text x="279" y="240" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="255" width="18" height="17" fill="#5f0000" />
- <text x="36" y="257" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">13</text>
- <rect x="54" y="255" width="9" height="17" fill="#5f0000" />
- <rect x="63" y="255" width="9" height="17" fill="#5f0000" />
- <text x="63" y="257" fill="#ff87af" textLength="9" lengthAdjust="spacingAndGlyphs">-</text>
- <rect x="72" y="255" width="9" height="17" fill="#5f0000" />
- <rect x="81" y="255" width="45" height="17" fill="#5f0000" />
- <text x="81" y="257" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="255" width="117" height="17" fill="#5f0000" />
- <text x="126" y="257" fill="#e5e5e5" textLength="117" lengthAdjust="spacingAndGlyphs"> oldLine13 = </text>
- <rect x="243" y="255" width="36" height="17" fill="#5f0000" />
- <text x="243" y="257" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="279" y="255" width="9" height="17" fill="#5f0000" />
- <text x="279" y="257" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="272" width="18" height="17" fill="#005f00" />
- <text x="36" y="274" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">13</text>
- <rect x="54" y="272" width="9" height="17" fill="#005f00" />
- <rect x="63" y="272" width="9" height="17" fill="#005f00" />
- <text x="63" y="274" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">+</text>
- <rect x="72" y="272" width="9" height="17" fill="#005f00" />
- <rect x="81" y="272" width="45" height="17" fill="#005f00" />
- <text x="81" y="274" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="272" width="117" height="17" fill="#005f00" />
- <text x="126" y="274" fill="#e5e5e5" textLength="117" lengthAdjust="spacingAndGlyphs"> newLine13 = </text>
- <rect x="243" y="272" width="36" height="17" fill="#005f00" />
- <text x="243" y="274" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="279" y="272" width="9" height="17" fill="#005f00" />
- <text x="279" y="274" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="289" width="18" height="17" fill="#5f0000" />
- <text x="36" y="291" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">14</text>
- <rect x="54" y="289" width="9" height="17" fill="#5f0000" />
- <rect x="63" y="289" width="9" height="17" fill="#5f0000" />
- <text x="63" y="291" fill="#ff87af" textLength="9" lengthAdjust="spacingAndGlyphs">-</text>
- <rect x="72" y="289" width="9" height="17" fill="#5f0000" />
- <rect x="81" y="289" width="45" height="17" fill="#5f0000" />
- <text x="81" y="291" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="289" width="117" height="17" fill="#5f0000" />
- <text x="126" y="291" fill="#e5e5e5" textLength="117" lengthAdjust="spacingAndGlyphs"> oldLine14 = </text>
- <rect x="243" y="289" width="36" height="17" fill="#5f0000" />
- <text x="243" y="291" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="279" y="289" width="9" height="17" fill="#5f0000" />
- <text x="279" y="291" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="306" width="18" height="17" fill="#005f00" />
- <text x="36" y="308" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">14</text>
- <rect x="54" y="306" width="9" height="17" fill="#005f00" />
- <rect x="63" y="306" width="9" height="17" fill="#005f00" />
- <text x="63" y="308" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">+</text>
- <rect x="72" y="306" width="9" height="17" fill="#005f00" />
- <rect x="81" y="306" width="45" height="17" fill="#005f00" />
- <text x="81" y="308" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="306" width="117" height="17" fill="#005f00" />
- <text x="126" y="308" fill="#e5e5e5" textLength="117" lengthAdjust="spacingAndGlyphs"> newLine14 = </text>
- <rect x="243" y="306" width="36" height="17" fill="#005f00" />
- <text x="243" y="308" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="279" y="306" width="9" height="17" fill="#005f00" />
- <text x="279" y="308" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="323" width="18" height="17" fill="#5f0000" />
- <text x="36" y="325" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">15</text>
- <rect x="54" y="323" width="9" height="17" fill="#5f0000" />
- <rect x="63" y="323" width="9" height="17" fill="#5f0000" />
- <text x="63" y="325" fill="#ff87af" textLength="9" lengthAdjust="spacingAndGlyphs">-</text>
- <rect x="72" y="323" width="9" height="17" fill="#5f0000" />
- <rect x="81" y="323" width="45" height="17" fill="#5f0000" />
- <text x="81" y="325" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="323" width="117" height="17" fill="#5f0000" />
- <text x="126" y="325" fill="#e5e5e5" textLength="117" lengthAdjust="spacingAndGlyphs"> oldLine15 = </text>
- <rect x="243" y="323" width="36" height="17" fill="#5f0000" />
- <text x="243" y="325" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="279" y="323" width="9" height="17" fill="#5f0000" />
- <text x="279" y="325" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="340" width="18" height="17" fill="#005f00" />
- <text x="36" y="342" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">15</text>
- <rect x="54" y="340" width="9" height="17" fill="#005f00" />
- <rect x="63" y="340" width="9" height="17" fill="#005f00" />
- <text x="63" y="342" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">+</text>
- <rect x="72" y="340" width="9" height="17" fill="#005f00" />
- <rect x="81" y="340" width="45" height="17" fill="#005f00" />
- <text x="81" y="342" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="340" width="117" height="17" fill="#005f00" />
- <text x="126" y="342" fill="#e5e5e5" textLength="117" lengthAdjust="spacingAndGlyphs"> newLine15 = </text>
- <rect x="243" y="340" width="36" height="17" fill="#005f00" />
- <text x="243" y="342" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="279" y="340" width="9" height="17" fill="#005f00" />
- <text x="279" y="342" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="357" width="18" height="17" fill="#5f0000" />
- <text x="36" y="359" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">16</text>
- <rect x="54" y="357" width="9" height="17" fill="#5f0000" />
- <rect x="63" y="357" width="9" height="17" fill="#5f0000" />
- <text x="63" y="359" fill="#ff87af" textLength="9" lengthAdjust="spacingAndGlyphs">-</text>
- <rect x="72" y="357" width="9" height="17" fill="#5f0000" />
- <rect x="81" y="357" width="45" height="17" fill="#5f0000" />
- <text x="81" y="359" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="357" width="117" height="17" fill="#5f0000" />
- <text x="126" y="359" fill="#e5e5e5" textLength="117" lengthAdjust="spacingAndGlyphs"> oldLine16 = </text>
- <rect x="243" y="357" width="36" height="17" fill="#5f0000" />
- <text x="243" y="359" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="279" y="357" width="9" height="17" fill="#5f0000" />
- <text x="279" y="359" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="374" width="18" height="17" fill="#005f00" />
- <text x="36" y="376" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">16</text>
- <rect x="54" y="374" width="9" height="17" fill="#005f00" />
- <rect x="63" y="374" width="9" height="17" fill="#005f00" />
- <text x="63" y="376" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">+</text>
- <rect x="72" y="374" width="9" height="17" fill="#005f00" />
- <rect x="81" y="374" width="45" height="17" fill="#005f00" />
- <text x="81" y="376" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="374" width="117" height="17" fill="#005f00" />
- <text x="126" y="376" fill="#e5e5e5" textLength="117" lengthAdjust="spacingAndGlyphs"> newLine16 = </text>
- <rect x="243" y="374" width="36" height="17" fill="#005f00" />
- <text x="243" y="376" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="279" y="374" width="9" height="17" fill="#005f00" />
- <text x="279" y="376" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="391" width="18" height="17" fill="#5f0000" />
- <text x="36" y="393" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">17</text>
- <rect x="54" y="391" width="9" height="17" fill="#5f0000" />
- <rect x="63" y="391" width="9" height="17" fill="#5f0000" />
- <text x="63" y="393" fill="#ff87af" textLength="9" lengthAdjust="spacingAndGlyphs">-</text>
- <rect x="72" y="391" width="9" height="17" fill="#5f0000" />
- <rect x="81" y="391" width="45" height="17" fill="#5f0000" />
- <text x="81" y="393" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="391" width="117" height="17" fill="#5f0000" />
- <text x="126" y="393" fill="#e5e5e5" textLength="117" lengthAdjust="spacingAndGlyphs"> oldLine17 = </text>
- <rect x="243" y="391" width="36" height="17" fill="#5f0000" />
- <text x="243" y="393" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="279" y="391" width="9" height="17" fill="#5f0000" />
- <text x="279" y="393" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="408" width="18" height="17" fill="#005f00" />
- <text x="36" y="410" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">17</text>
- <rect x="54" y="408" width="9" height="17" fill="#005f00" />
- <rect x="63" y="408" width="9" height="17" fill="#005f00" />
- <text x="63" y="410" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">+</text>
- <rect x="72" y="408" width="9" height="17" fill="#005f00" />
- <rect x="81" y="408" width="45" height="17" fill="#005f00" />
- <text x="81" y="410" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="408" width="117" height="17" fill="#005f00" />
- <text x="126" y="410" fill="#e5e5e5" textLength="117" lengthAdjust="spacingAndGlyphs"> newLine17 = </text>
- <rect x="243" y="408" width="36" height="17" fill="#005f00" />
- <text x="243" y="410" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="279" y="408" width="9" height="17" fill="#005f00" />
- <text x="279" y="410" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="425" width="18" height="17" fill="#5f0000" />
- <text x="36" y="427" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">18</text>
- <rect x="54" y="425" width="9" height="17" fill="#5f0000" />
- <rect x="63" y="425" width="9" height="17" fill="#5f0000" />
- <text x="63" y="427" fill="#ff87af" textLength="9" lengthAdjust="spacingAndGlyphs">-</text>
- <rect x="72" y="425" width="9" height="17" fill="#5f0000" />
- <rect x="81" y="425" width="45" height="17" fill="#5f0000" />
- <text x="81" y="427" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="425" width="117" height="17" fill="#5f0000" />
- <text x="126" y="427" fill="#e5e5e5" textLength="117" lengthAdjust="spacingAndGlyphs"> oldLine18 = </text>
- <rect x="243" y="425" width="36" height="17" fill="#5f0000" />
- <text x="243" y="427" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="279" y="425" width="9" height="17" fill="#5f0000" />
- <text x="279" y="427" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="442" width="18" height="17" fill="#005f00" />
- <text x="36" y="444" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">18</text>
- <rect x="54" y="442" width="9" height="17" fill="#005f00" />
- <rect x="63" y="442" width="9" height="17" fill="#005f00" />
- <text x="63" y="444" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">+</text>
- <rect x="72" y="442" width="9" height="17" fill="#005f00" />
- <rect x="81" y="442" width="45" height="17" fill="#005f00" />
- <text x="81" y="444" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="442" width="117" height="17" fill="#005f00" />
- <text x="126" y="444" fill="#e5e5e5" textLength="117" lengthAdjust="spacingAndGlyphs"> newLine18 = </text>
- <rect x="243" y="442" width="36" height="17" fill="#005f00" />
- <text x="243" y="444" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="279" y="442" width="9" height="17" fill="#005f00" />
- <text x="279" y="444" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="459" width="18" height="17" fill="#5f0000" />
- <text x="36" y="461" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">19</text>
- <rect x="54" y="459" width="9" height="17" fill="#5f0000" />
- <rect x="63" y="459" width="9" height="17" fill="#5f0000" />
- <text x="63" y="461" fill="#ff87af" textLength="9" lengthAdjust="spacingAndGlyphs">-</text>
- <rect x="72" y="459" width="9" height="17" fill="#5f0000" />
- <rect x="81" y="459" width="45" height="17" fill="#5f0000" />
- <text x="81" y="461" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="459" width="117" height="17" fill="#5f0000" />
- <text x="126" y="461" fill="#e5e5e5" textLength="117" lengthAdjust="spacingAndGlyphs"> oldLine19 = </text>
- <rect x="243" y="459" width="36" height="17" fill="#5f0000" />
- <text x="243" y="461" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="279" y="459" width="9" height="17" fill="#5f0000" />
- <text x="279" y="461" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="476" width="18" height="17" fill="#005f00" />
- <text x="36" y="478" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">19</text>
- <rect x="54" y="476" width="9" height="17" fill="#005f00" />
- <rect x="63" y="476" width="9" height="17" fill="#005f00" />
- <text x="63" y="478" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">+</text>
- <rect x="72" y="476" width="9" height="17" fill="#005f00" />
- <rect x="81" y="476" width="45" height="17" fill="#005f00" />
- <text x="81" y="478" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="476" width="117" height="17" fill="#005f00" />
- <text x="126" y="478" fill="#e5e5e5" textLength="117" lengthAdjust="spacingAndGlyphs"> newLine19 = </text>
- <rect x="243" y="476" width="36" height="17" fill="#005f00" />
- <text x="243" y="478" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="279" y="476" width="9" height="17" fill="#005f00" />
- <text x="279" y="478" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="493" width="18" height="17" fill="#5f0000" />
- <text x="36" y="495" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">20</text>
- <rect x="54" y="493" width="9" height="17" fill="#5f0000" />
- <rect x="63" y="493" width="9" height="17" fill="#5f0000" />
- <text x="63" y="495" fill="#ff87af" textLength="9" lengthAdjust="spacingAndGlyphs">-</text>
- <rect x="72" y="493" width="9" height="17" fill="#5f0000" />
- <rect x="81" y="493" width="45" height="17" fill="#5f0000" />
- <text x="81" y="495" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="493" width="117" height="17" fill="#5f0000" />
- <text x="126" y="495" fill="#e5e5e5" textLength="117" lengthAdjust="spacingAndGlyphs"> oldLine20 = </text>
- <rect x="243" y="493" width="36" height="17" fill="#5f0000" />
- <text x="243" y="495" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="279" y="493" width="9" height="17" fill="#5f0000" />
- <text x="279" y="495" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="36" y="510" width="18" height="17" fill="#005f00" />
- <text x="36" y="512" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">20</text>
- <rect x="54" y="510" width="9" height="17" fill="#005f00" />
- <rect x="63" y="510" width="9" height="17" fill="#005f00" />
- <text x="63" y="512" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">+</text>
- <rect x="72" y="510" width="9" height="17" fill="#005f00" />
- <rect x="81" y="510" width="45" height="17" fill="#005f00" />
- <text x="81" y="512" fill="#0000ee" textLength="45" lengthAdjust="spacingAndGlyphs">const</text>
- <rect x="126" y="510" width="117" height="17" fill="#005f00" />
- <text x="126" y="512" fill="#e5e5e5" textLength="117" lengthAdjust="spacingAndGlyphs"> newLine20 = </text>
- <rect x="243" y="510" width="36" height="17" fill="#005f00" />
- <text x="243" y="512" fill="#0000ee" textLength="36" lengthAdjust="spacingAndGlyphs">true</text>
- <rect x="279" y="510" width="9" height="17" fill="#005f00" />
- <text x="279" y="512" fill="#e5e5e5" textLength="9" lengthAdjust="spacingAndGlyphs">;</text>
- <text x="693" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="529" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="529" fill="#333333" textLength="684" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────╯</text>
- <text x="711" y="529" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="546" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="546" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Apply this change?</text>
- <text x="711" y="546" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="563" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="563" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="580" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="18" y="578" width="9" height="17" fill="#001a00" />
- <text x="18" y="580" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">●</text>
- <rect x="27" y="578" width="9" height="17" fill="#001a00" />
- <rect x="36" y="578" width="18" height="17" fill="#001a00" />
- <text x="36" y="580" fill="#00cd00" textLength="18" lengthAdjust="spacingAndGlyphs">1.</text>
- <rect x="54" y="578" width="9" height="17" fill="#001a00" />
- <rect x="63" y="578" width="90" height="17" fill="#001a00" />
- <text x="63" y="580" fill="#00cd00" textLength="90" lengthAdjust="spacingAndGlyphs">Allow once</text>
- <rect x="153" y="578" width="153" height="17" fill="#001a00" />
- <text x="711" y="580" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="597" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="597" fill="#ffffff" textLength="18" lengthAdjust="spacingAndGlyphs">2.</text>
- <text x="63" y="597" fill="#ffffff" textLength="198" lengthAdjust="spacingAndGlyphs">Allow for this session</text>
- <text x="711" y="597" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="614" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="614" fill="#ffffff" textLength="18" lengthAdjust="spacingAndGlyphs">3.</text>
- <text x="63" y="614" fill="#ffffff" textLength="243" lengthAdjust="spacingAndGlyphs">Modify with external editor</text>
- <text x="711" y="614" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="631" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="631" fill="#ffffff" textLength="18" lengthAdjust="spacingAndGlyphs">4.</text>
- <text x="63" y="631" fill="#ffffff" textLength="225" lengthAdjust="spacingAndGlyphs">No, suggest changes (esc)</text>
- <text x="711" y="631" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="648" fill="#333333" textLength="720" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="2" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="19" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ ? replace Replaces content in a file │</text>
+ <text x="0" y="36" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ ╭──────────────────────────────────────────────────────────────────────────╮ │</text>
+ <text x="0" y="53" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ ... 13 hidden (Ctrl+O) ... │ │</text>
+ <text x="0" y="70" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 7 + const newLine7 = true; │ │</text>
+ <text x="0" y="87" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 8 - const oldLine8 = true; │ │</text>
+ <text x="0" y="104" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 8 + const newLine8 = true; │ │</text>
+ <text x="0" y="121" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 9 - const oldLine9 = true; │ │</text>
+ <text x="0" y="138" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 9 + const newLine9 = true; │ │</text>
+ <text x="0" y="155" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 10 - const oldLine10 = true; │ │</text>
+ <text x="0" y="172" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 10 + const newLine10 = true; │ │</text>
+ <text x="0" y="189" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 11 - const oldLine11 = true; │ │</text>
+ <text x="0" y="206" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 11 + const newLine11 = true; │ │</text>
+ <text x="0" y="223" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 12 - const oldLine12 = true; │ │</text>
+ <text x="0" y="240" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 12 + const newLine12 = true; │ │</text>
+ <text x="0" y="257" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 13 - const oldLine13 = true; │ │</text>
+ <text x="0" y="274" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 13 + const newLine13 = true; │ │</text>
+ <text x="0" y="291" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 14 - const oldLine14 = true; │ │</text>
+ <text x="0" y="308" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 14 + const newLine14 = true; │ │</text>
+ <text x="0" y="325" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 15 - const oldLine15 = true; │ │</text>
+ <text x="0" y="342" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 15 + const newLine15 = true; │ │</text>
+ <text x="0" y="359" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 16 - const oldLine16 = true; │ │</text>
+ <text x="0" y="376" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 16 + const newLine16 = true; │ │</text>
+ <text x="0" y="393" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 17 - const oldLine17 = true; │ │</text>
+ <text x="0" y="410" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 17 + const newLine17 = true; │ │</text>
+ <text x="0" y="427" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 18 - const oldLine18 = true; │ │</text>
+ <text x="0" y="444" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 18 + const newLine18 = true; │ │</text>
+ <text x="0" y="461" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 19 - const oldLine19 = true; │ │</text>
+ <text x="0" y="478" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 19 + const newLine19 = true; │ │</text>
+ <text x="0" y="495" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 20 - const oldLine20 = true; │ │</text>
+ <text x="0" y="512" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ 20 + const newLine20 = true; │ │</text>
+ <text x="0" y="529" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ ╰──────────────────────────────────────────────────────────────────────────╯ │</text>
+ <text x="0" y="546" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ Apply this change? │</text>
+ <text x="0" y="563" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │</text>
+ <text x="0" y="580" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ ● 1. Allow once │</text>
+ <text x="0" y="597" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ 2. Allow for this session │</text>
+ <text x="0" y="614" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ 3. Modify with external editor │</text>
+ <text x="0" y="631" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ 4. No, suggest changes (esc) │</text>
+ <text x="0" y="648" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────╯</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/ToolConfirmationQueue.test.tsx:455:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[92/184]⎯
FAIL src/ui/components/ToolConfirmationQueue.test.tsx > ToolConfirmationQueue > height allocation and layout > should render the full queue wrapper with borders and content for large exec commands
Error: Snapshot `ToolConfirmationQueue > height allocation and layout > should render the full queue wrapper with borders and content for large exec commands 2` mismatched
- Expected
+ Received
@@ -2,219 +2,46 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="740" height="683" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="720" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────╮</text>
- <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#ffffaf" textLength="81" lengthAdjust="spacingAndGlyphs" font-weight="bold">? Shell </text>
- <text x="99" y="19" fill="#ffffff" textLength="207" lengthAdjust="spacingAndGlyphs">Executes a bash command</text>
- <text x="648" y="19" fill="#afafaf" textLength="54" lengthAdjust="spacingAndGlyphs">2 of 3</text>
- <text x="711" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="36" fill="#333333" textLength="684" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────╮</text>
- <text x="711" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="53" fill="#afafaf" textLength="234" lengthAdjust="spacingAndGlyphs">... 22 hidden (Ctrl+O) ...</text>
- <text x="693" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="70" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="70" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 23&quot;</text>
- <text x="693" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="87" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="87" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 24&quot;</text>
- <text x="693" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="104" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="104" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 25&quot;</text>
- <text x="693" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="121" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="121" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 26&quot;</text>
- <text x="693" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="138" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="138" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="138" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="138" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 27&quot;</text>
- <text x="693" y="138" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="138" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="155" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="155" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 28&quot;</text>
- <text x="693" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="172" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="172" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 29&quot;</text>
- <text x="693" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="189" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="189" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 30&quot;</text>
- <text x="693" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="206" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="206" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 31&quot;</text>
- <text x="693" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="223" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="223" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 32&quot;</text>
- <text x="693" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="240" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="240" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 33&quot;</text>
- <text x="693" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="257" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="257" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 34&quot;</text>
- <text x="693" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="274" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="274" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 35&quot;</text>
- <text x="693" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="291" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="291" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 36&quot;</text>
- <text x="693" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="308" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="308" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 37&quot;</text>
- <text x="693" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="325" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="325" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 38&quot;</text>
- <text x="693" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="342" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="342" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 39&quot;</text>
- <text x="693" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="359" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="359" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 40&quot;</text>
- <text x="693" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="376" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="376" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 41&quot;</text>
- <text x="693" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="393" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="393" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 42&quot;</text>
- <text x="693" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="410" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="410" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 43&quot;</text>
- <text x="693" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="427" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="427" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 44&quot;</text>
- <text x="693" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="444" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="444" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 45&quot;</text>
- <text x="693" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="461" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="461" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 46&quot;</text>
- <text x="693" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="478" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="478" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 47&quot;</text>
- <text x="693" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="495" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="495" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 48&quot;</text>
- <text x="693" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="512" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="512" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 49&quot;</text>
- <text x="693" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="529" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="529" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="529" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
- <text x="81" y="529" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 50&quot;</text>
- <text x="693" y="529" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="529" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="546" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="546" fill="#333333" textLength="684" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────╯</text>
- <text x="711" y="546" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="563" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="9" y="563" fill="#ffffff" textLength="180" lengthAdjust="spacingAndGlyphs"> Allow execution of </text>
- <text x="189" y="563" fill="#ffffaf" textLength="54" lengthAdjust="spacingAndGlyphs" font-weight="bold">[echo]</text>
- <text x="243" y="563" fill="#ffffff" textLength="468" lengthAdjust="spacingAndGlyphs">? </text>
- <text x="711" y="563" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="580" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="580" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="597" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="18" y="595" width="9" height="17" fill="#001a00" />
- <text x="18" y="597" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">●</text>
- <rect x="27" y="595" width="9" height="17" fill="#001a00" />
- <rect x="36" y="595" width="18" height="17" fill="#001a00" />
- <text x="36" y="597" fill="#00cd00" textLength="18" lengthAdjust="spacingAndGlyphs">1.</text>
- <rect x="54" y="595" width="9" height="17" fill="#001a00" />
- <rect x="63" y="595" width="90" height="17" fill="#001a00" />
- <text x="63" y="597" fill="#00cd00" textLength="90" lengthAdjust="spacingAndGlyphs">Allow once</text>
- <rect x="153" y="595" width="135" height="17" fill="#001a00" />
- <text x="711" y="597" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="614" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="614" fill="#ffffff" textLength="18" lengthAdjust="spacingAndGlyphs">2.</text>
- <text x="63" y="614" fill="#ffffff" textLength="198" lengthAdjust="spacingAndGlyphs">Allow for this session</text>
- <text x="711" y="614" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="631" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="36" y="631" fill="#ffffff" textLength="18" lengthAdjust="spacingAndGlyphs">3.</text>
- <text x="63" y="631" fill="#ffffff" textLength="225" lengthAdjust="spacingAndGlyphs">No, suggest changes (esc)</text>
- <text x="711" y="631" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="648" fill="#333333" textLength="720" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="2" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="19" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ ? Shell Executes a bash command 2 of 3 │</text>
+ <text x="0" y="36" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ ╭──────────────────────────────────────────────────────────────────────────╮ │</text>
+ <text x="0" y="53" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ ... 22 hidden (Ctrl+O) ... │ │</text>
+ <text x="0" y="70" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 23&quot; │ │</text>
+ <text x="0" y="87" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 24&quot; │ │</text>
+ <text x="0" y="104" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 25&quot; │ │</text>
+ <text x="0" y="121" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 26&quot; │ │</text>
+ <text x="0" y="138" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 27&quot; │ │</text>
+ <text x="0" y="155" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 28&quot; │ │</text>
+ <text x="0" y="172" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 29&quot; │ │</text>
+ <text x="0" y="189" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 30&quot; │ │</text>
+ <text x="0" y="206" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 31&quot; │ │</text>
+ <text x="0" y="223" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 32&quot; │ │</text>
+ <text x="0" y="240" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 33&quot; │ │</text>
+ <text x="0" y="257" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 34&quot; │ │</text>
+ <text x="0" y="274" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 35&quot; │ │</text>
+ <text x="0" y="291" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 36&quot; │ │</text>
+ <text x="0" y="308" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 37&quot; │ │</text>
+ <text x="0" y="325" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 38&quot; │ │</text>
+ <text x="0" y="342" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 39&quot; │ │</text>
+ <text x="0" y="359" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 40&quot; │ │</text>
+ <text x="0" y="376" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 41&quot; │ │</text>
+ <text x="0" y="393" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 42&quot; │ │</text>
+ <text x="0" y="410" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 43&quot; │ │</text>
+ <text x="0" y="427" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 44&quot; │ │</text>
+ <text x="0" y="444" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 45&quot; │ │</text>
+ <text x="0" y="461" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 46&quot; │ │</text>
+ <text x="0" y="478" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 47&quot; │ │</text>
+ <text x="0" y="495" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 48&quot; │ │</text>
+ <text x="0" y="512" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 49&quot; │ │</text>
+ <text x="0" y="529" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 50&quot; │ │</text>
+ <text x="0" y="546" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ ╰──────────────────────────────────────────────────────────────────────────╯ │</text>
+ <text x="0" y="563" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ Allow execution of [echo]? │</text>
+ <text x="0" y="580" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │</text>
+ <text x="0" y="597" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ ● 1. Allow once │</text>
+ <text x="0" y="614" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ 2. Allow for this session │</text>
+ <text x="0" y="631" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ 3. No, suggest changes (esc) │</text>
+ <text x="0" y="648" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────╯</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/ToolConfirmationQueue.test.tsx:503:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[93/184]⎯
FAIL src/ui/components/ToolConfirmationQueue.test.tsx > ToolConfirmationQueue > height allocation and layout > should handle security warning height correctly
Error: Snapshot `ToolConfirmationQueue > height allocation and layout > should handle security warning height correctly 2` mismatched
- Expected
+ Received
@@ -2,112 +2,31 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="740" height="428" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="720" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="2" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────╮</text>
- <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="18" y="19" fill="#ffffaf" textLength="81" lengthAdjust="spacingAndGlyphs" font-weight="bold">? Shell </text>
- <text x="99" y="19" fill="#ffffff" textLength="396" lengthAdjust="spacingAndGlyphs">Executes a bash command with a deceptive URL</text>
- <text x="648" y="19" fill="#afafaf" textLength="54" lengthAdjust="spacingAndGlyphs">3 of 3</text>
- <text x="711" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="18" y="36" fill="#afafaf" textLength="225" lengthAdjust="spacingAndGlyphs">... 6 hidden (Ctrl+O) ...</text>
- <text x="711" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="36" y="53" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
+ <text x="0" y="19" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ ? Shell Executes a bash command with a deceptive URL 3 of 3 │</text>
+  <text x="0" y="36" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ ... 6 hidden (Ctrl+O) ... │</text>
- <text x="81" y="53" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 44&quot;</text>
- <text x="693" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="36" y="70" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
+ <text x="0" y="53" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 44&quot; │ │</text>
- <text x="81" y="70" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 45&quot;</text>
- <text x="693" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="36" y="87" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
+ <text x="0" y="70" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 45&quot; │ │</text>
- <text x="81" y="87" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 46&quot;</text>
- <text x="693" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="36" y="104" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
+ <text x="0" y="87" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 46&quot; │ │</text>
- <text x="81" y="104" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 47&quot;</text>
- <text x="693" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="36" y="121" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
+ <text x="0" y="104" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 47&quot; │ │</text>
- <text x="81" y="121" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 48&quot;</text>
- <text x="693" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="138" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="138" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="36" y="138" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
+ <text x="0" y="121" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 48&quot; │ │</text>
- <text x="81" y="138" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 49&quot;</text>
- <text x="693" y="138" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="138" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="36" y="155" fill="#00cdcd" textLength="36" lengthAdjust="spacingAndGlyphs">echo</text>
+ <text x="0" y="138" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 49&quot; │ │</text>
- <text x="81" y="155" fill="#cdcd00" textLength="81" lengthAdjust="spacingAndGlyphs">&quot;Line 50&quot;</text>
- <text x="693" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="18" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="155" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ echo &quot;Line 50&quot; │ │</text>
- <text x="36" y="172" fill="#e5e5e5" textLength="189" lengthAdjust="spacingAndGlyphs">curl https://täst.com</text>
- <text x="693" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="172" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │ curl https://täst.com │ │</text>
- <text x="18" y="189" fill="#333333" textLength="684" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="189" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ ╰──────────────────────────────────────────────────────────────────────────╯ │</text>
- <text x="711" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="223" fill="#ffffaf" textLength="18" lengthAdjust="spacingAndGlyphs">⚠ </text>
-  <text x="45" y="223" fill="#ffffaf" textLength="72" lengthAdjust="spacingAndGlyphs" font-weight="bold">Warning:</text>
+ <text x="0" y="206" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="117" y="223" fill="#ffffaf" textLength="243" lengthAdjust="spacingAndGlyphs"> Deceptive URL(s) detected:</text>
-  <text x="711" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="223" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ ⚠ Warning: Deceptive URL(s) detected: │</text>
- <text x="0" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="240" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="72" y="257" fill="#ffffaf" textLength="81" lengthAdjust="spacingAndGlyphs" font-weight="bold">Original:</text>
- <text x="162" y="257" fill="#87afff" textLength="153" lengthAdjust="spacingAndGlyphs">https://täst.com/</text>
- <text x="711" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="257" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ Original: https://täst.com/ │</text>
- <text x="72" y="274" fill="#ffffaf" textLength="207" lengthAdjust="spacingAndGlyphs" font-weight="bold">Actual Host (Punycode):</text>
- <text x="288" y="274" fill="#87afff" textLength="216" lengthAdjust="spacingAndGlyphs">https://xn--tst-qla.com/</text>
-  <text x="711" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="274" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ Actual Host (Punycode): https://xn--tst-qla.com/ │</text>
- <text x="0" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="291" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="9" y="308" fill="#ffffff" textLength="180" lengthAdjust="spacingAndGlyphs"> Allow execution of </text>
- <text x="189" y="308" fill="#ffffaf" textLength="54" lengthAdjust="spacingAndGlyphs" font-weight="bold">[echo]</text>
- <text x="243" y="308" fill="#ffffff" textLength="468" lengthAdjust="spacingAndGlyphs">? </text>
-  <text x="711" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="308" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ Allow execution of [echo]? │</text>
- <text x="0" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="711" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <rect x="18" y="340" width="9" height="17" fill="#001a00" />
- <text x="18" y="342" fill="#00cd00" textLength="9" lengthAdjust="spacingAndGlyphs">●</text>
- <rect x="27" y="340" width="9" height="17" fill="#001a00" />
- <rect x="36" y="340" width="18" height="17" fill="#001a00" />
- <text x="36" y="342" fill="#00cd00" textLength="18" lengthAdjust="spacingAndGlyphs">1.</text>
- <rect x="54" y="340" width="9" height="17" fill="#001a00" />
-  <rect x="63" y="340" width="90" height="17" fill="#001a00" />
+ <text x="0" y="325" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ │</text>
- <text x="63" y="342" fill="#00cd00" textLength="90" lengthAdjust="spacingAndGlyphs">Allow once</text>
- <rect x="153" y="340" width="135" height="17" fill="#001a00" />
- <text x="711" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="36" y="359" fill="#ffffff" textLength="18" lengthAdjust="spacingAndGlyphs">2.</text>
+ <text x="0" y="342" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ ● 1. Allow once │</text>
- <text x="63" y="359" fill="#ffffff" textLength="198" lengthAdjust="spacingAndGlyphs">Allow for this session</text>
- <text x="711" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="36" y="376" fill="#ffffff" textLength="18" lengthAdjust="spacingAndGlyphs">3.</text>
+ <text x="0" y="359" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ 2. Allow for this session │</text>
- <text x="63" y="376" fill="#ffffff" textLength="225" lengthAdjust="spacingAndGlyphs">No, suggest changes (esc)</text>
-  <text x="711" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="376" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ 3. No, suggest changes (esc) │</text>
- <text x="0" y="393" fill="#333333" textLength="720" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="393" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────╯</text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/ToolConfirmationQueue.test.tsx:552:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[94/184]⎯
FAIL src/ui/components/UserIdentity.test.tsx > <UserIdentity /> > should render login message and auth indicator
AssertionError: expected 'Signed in with Google /auth\n' to contain 'Signed in with Google: test@example.c…'
- Expected
+ Received
- Signed in with Google: test@example.com
+ Signed in with Google /auth
+
src/ui/components/UserIdentity.test.tsx:47:20
45|
46| const output = lastFrame();
47| expect(output).toContain('Signed in with Google: test@example.com'…
| ^
48| expect(output).toContain('/auth');
49| expect(output).not.toContain('/upgrade');
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[95/184]⎯
FAIL src/ui/components/UserIdentity.test.tsx > <UserIdentity /> > should render the user email on the very first frame (regression test)
AssertionError: expected 'Signed in with Google /auth' to contain 'test@example.com'
Expected: "test@example.com"
Received: "Signed in with Google /auth"
src/ui/components/UserIdentity.test.tsx:67:20
65| // Assert immediately on the first available frame before any asyn…
66| const output = lastFrameRaw();
67| expect(output).toContain('test@example.com');
| ^
68| unmount();
69| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[96/184]⎯
FAIL src/ui/components/UserIdentity.test.tsx > <UserIdentity /> > should render plan name and upgrade indicator
AssertionError: expected 'Signed in with Google /auth\nPlan: Pr…' to contain 'Signed in with Google: test@example.c…'
- Expected
+ Received
- Signed in with Google: test@example.com
+ Signed in with Google /auth
+ Plan: Premium Plan /upgrade
+
src/ui/components/UserIdentity.test.tsx:112:20
110|
111| const output = lastFrame();
112| expect(output).toContain('Signed in with Google: test@example.com'…
| ^
113| expect(output).toContain('/auth');
114| expect(output).toContain('Plan: Premium Plan');
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[97/184]⎯
FAIL src/ui/components/ValidationDialog.test.tsx > ValidationDialog > onChoice handling > should open browser and transition to waiting state when verify is selected with a link
AssertionError: expected '╭────────────────────────────────────…' to contain 'Waiting for verification...'
- Expected
+ Received
- Waiting for verification...
+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮
+ │ │
+ │ Further action is required to use this service. │
+ │ │
+ │ │
+ │ │
+ │ │
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
+
src/ui/components/ValidationDialog.test.tsx:189:27
187| 'https://accounts.google.com/verify',
188| );
189| expect(lastFrame()).toContain('Waiting for verification...');
| ^
190| unmount();
191| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[98/184]⎯
FAIL src/ui/components/ValidationDialog.test.tsx > ValidationDialog > headless mode > should show URL in message when browser cannot be launched
AssertionError: expected '╭────────────────────────────────────…' to contain 'Please open this URL in a browser:'
- Expected
+ Received
- Please open this URL in a browser:
+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮
+ │ │
+ │ Further action is required to use this service. │
+ │ │
+ │ │
+ │ │
+ │ │
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
+
src/ui/components/ValidationDialog.test.tsx:212:27
210|
211| expect(mockOpenBrowserSecurely).not.toHaveBeenCalled();
212| expect(lastFrame()).toContain('Please open this URL in a browser…
| ^
213| expect(lastFrame()).toContain('https://accounts.google.com/verif…
214| unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[99/184]⎯
FAIL src/ui/components/ValidationDialog.test.tsx > ValidationDialog > error state > should show error and options when browser fails to open
AssertionError: expected '╭────────────────────────────────────…' to contain 'Browser not found'
- Expected
+ Received
- Browser not found
+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮
+ │ │
+ │ Further action is required to use this service. │
+ │ │
+ │ │
+ │ │
+ │ │
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
+
src/ui/components/ValidationDialog.test.tsx:235:27
233| await waitUntilReady();
234|
235| expect(lastFrame()).toContain('Browser not found');
| ^
236| // RadioButtonSelect should be rendered again with options in er…
237| expect((RadioButtonSelect as Mock).mock.calls.length).toBeGreate…
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[100/184]⎯
FAIL src/ui/utils/CodeColorizer.test.tsx > colorizeCode > does not let colors from ansi escape codes leak into colorized code
Error: Snapshot `colorizeCode > does not let colors from ansi escape codes leak into colorized code 2` mismatched
- Expected
+ Received
@@ -2,15 +2,10 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="71" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs">line </text>
- <text x="45" y="2" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">1</text>
- <text x="0" y="19" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs">line </text>
- <text x="45" y="19" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">2</text>
-  <text x="63" y="19" fill="#87afff" textLength="36" lengthAdjust="spacingAndGlyphs">with</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">line 1 </text>
- <text x="99" y="19" fill="#ffffff" textLength="135" lengthAdjust="spacingAndGlyphs"> red background</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">line 2 with red background </text>
- <text x="0" y="36" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs">line </text>
-  <text x="45" y="36" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">3</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">line 3 </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/CodeColorizer.test.tsx:79:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[101/184]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > renders a 3x3 table correctly
Error: Snapshot `TableRenderer > renders a 3x3 table correctly 2` mismatched
- Expected
+ Received
@@ -2,38 +2,14 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="139" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="414" lengthAdjust="spacingAndGlyphs">┌──────────────┬──────────────┬──────────────┐</text>
- <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#87afff" textLength="72" lengthAdjust="spacingAndGlyphs" font-weight="bold">Header 1</text>
-  <text x="135" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">┌──────────────┬──────────────┬──────────────┐ </text>
- <text x="153" y="19" fill="#87afff" textLength="72" lengthAdjust="spacingAndGlyphs" font-weight="bold">Header 2</text>
- <text x="270" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="19" fill="#87afff" textLength="72" lengthAdjust="spacingAndGlyphs" font-weight="bold">Header 3</text>
-  <text x="405" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Header 1 │ Header 2 │ Header 3 │ </text>
- <text x="0" y="36" fill="#333333" textLength="414" lengthAdjust="spacingAndGlyphs">├──────────────┼──────────────┼──────────────┤</text>
-  <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">├──────────────┼──────────────┼──────────────┤ </text>
- <text x="18" y="53" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs">Row 1, Col 1</text>
- <text x="135" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="153" y="53" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs">Row 1, Col 2</text>
- <text x="270" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="53" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs">Row 1, Col 3</text>
- <text x="405" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Row 1, Col 1 │ Row 1, Col 2 │ Row 1, Col 3 │ </text>
- <text x="18" y="70" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs">Row 2, Col 1</text>
- <text x="135" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="153" y="70" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs">Row 2, Col 2</text>
- <text x="270" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="70" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs">Row 2, Col 3</text>
- <text x="405" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Row 2, Col 1 │ Row 2, Col 2 │ Row 2, Col 3 │ </text>
- <text x="18" y="87" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs">Row 3, Col 1</text>
- <text x="135" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="153" y="87" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs">Row 3, Col 2</text>
- <text x="270" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="87" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs">Row 3, Col 3</text>
-  <text x="405" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Row 3, Col 1 │ Row 3, Col 2 │ Row 3, Col 3 │ </text>
- <text x="0" y="104" fill="#333333" textLength="414" lengthAdjust="spacingAndGlyphs">└──────────────┴──────────────┴──────────────┘</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">└──────────────┴──────────────┴──────────────┘ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/TableRenderer.test.tsx:32:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[102/184]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > renders a table with long headers and 4 columns correctly
Error: Snapshot `TableRenderer > renders a table with long headers and 4 columns correctly 2` mismatched
- Expected
+ Received
@@ -2,62 +2,16 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="173" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="639" lengthAdjust="spacingAndGlyphs">┌───────────────┬───────────────┬──────────────────┬──────────────────┐</text>
- <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#87afff" textLength="81" lengthAdjust="spacingAndGlyphs" font-weight="bold">Very Long</text>
-  <text x="144" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">┌───────────────┬───────────────┬──────────────────┬──────────────────┐ </text>
- <text x="162" y="19" fill="#87afff" textLength="81" lengthAdjust="spacingAndGlyphs" font-weight="bold">Very Long</text>
- <text x="288" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="306" y="19" fill="#87afff" textLength="144" lengthAdjust="spacingAndGlyphs" font-weight="bold">Very Long Column</text>
- <text x="459" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="477" y="19" fill="#87afff" textLength="144" lengthAdjust="spacingAndGlyphs" font-weight="bold">Very Long Column</text>
-  <text x="630" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Very Long │ Very Long │ Very Long Column │ Very Long Column │ </text>
- <text x="0" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="36" fill="#87afff" textLength="117" lengthAdjust="spacingAndGlyphs" font-weight="bold">Column Header</text>
- <text x="144" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="162" y="36" fill="#87afff" textLength="117" lengthAdjust="spacingAndGlyphs" font-weight="bold">Column Header</text>
- <text x="288" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="306" y="36" fill="#87afff" textLength="108" lengthAdjust="spacingAndGlyphs" font-weight="bold">Header Three</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Column Header │ Column Header │ Header Three │ Header Four │ </text>
- <text x="459" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="477" y="36" fill="#87afff" textLength="99" lengthAdjust="spacingAndGlyphs" font-weight="bold">Header Four</text>
- <text x="630" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="53" fill="#87afff" textLength="27" lengthAdjust="spacingAndGlyphs" font-weight="bold">One</text>
- <text x="144" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="162" y="53" fill="#87afff" textLength="27" lengthAdjust="spacingAndGlyphs" font-weight="bold">Two</text>
- <text x="288" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="459" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="630" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ One │ Two │ │ │ </text>
- <text x="0" y="70" fill="#333333" textLength="639" lengthAdjust="spacingAndGlyphs">├───────────────┼───────────────┼──────────────────┼──────────────────┤</text>
- <text x="0" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="87" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs">Data 1.1</text>
-  <text x="144" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">├───────────────┼───────────────┼──────────────────┼──────────────────┤ </text>
- <text x="162" y="87" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs">Data 1.2</text>
- <text x="288" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="306" y="87" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs">Data 1.3</text>
- <text x="459" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="477" y="87" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs">Data 1.4</text>
- <text x="630" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="104" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs">Data 2.1</text>
-  <text x="144" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Data 1.1 │ Data 1.2 │ Data 1.3 │ Data 1.4 │ </text>
- <text x="162" y="104" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs">Data 2.2</text>
- <text x="288" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="306" y="104" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs">Data 2.3</text>
- <text x="459" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="477" y="104" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs">Data 2.4</text>
- <text x="630" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Data 2.1 │ Data 2.2 │ Data 2.3 │ Data 2.4 │ </text>
- <text x="18" y="121" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs">Data 3.1</text>
- <text x="144" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="162" y="121" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs">Data 3.2</text>
- <text x="288" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="306" y="121" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs">Data 3.3</text>
- <text x="459" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="477" y="121" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs">Data 3.4</text>
-  <text x="630" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="121" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Data 3.1 │ Data 3.2 │ Data 3.3 │ Data 3.4 │ </text>
- <text x="0" y="138" fill="#333333" textLength="639" lengthAdjust="spacingAndGlyphs">└───────────────┴───────────────┴──────────────────┴──────────────────┘</text>
+ <text x="0" y="138" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">└───────────────┴───────────────┴──────────────────┴──────────────────┘ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/TableRenderer.test.tsx:63:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[103/184]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > wraps long cell content correctly
Error: Snapshot `TableRenderer > wraps long cell content correctly 2` mismatched
- Expected
+ Received
@@ -2,34 +2,14 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="139" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="423" lengthAdjust="spacingAndGlyphs">┌───────┬─────────────────────────────┬───────┐</text>
- <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#87afff" textLength="45" lengthAdjust="spacingAndGlyphs" font-weight="bold">Col 1</text>
-  <text x="72" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">┌───────┬─────────────────────────────┬───────┐ </text>
- <text x="90" y="19" fill="#87afff" textLength="45" lengthAdjust="spacingAndGlyphs" font-weight="bold">Col 2</text>
- <text x="342" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="360" y="19" fill="#87afff" textLength="45" lengthAdjust="spacingAndGlyphs" font-weight="bold">Col 3</text>
-  <text x="414" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Col 1 │ Col 2 │ Col 3 │ </text>
- <text x="0" y="36" fill="#333333" textLength="423" lengthAdjust="spacingAndGlyphs">├───────┼─────────────────────────────┼───────┤</text>
- <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="53" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs">Short</text>
-  <text x="72" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">├───────┼─────────────────────────────┼───────┤ </text>
- <text x="90" y="53" fill="#ffffff" textLength="216" lengthAdjust="spacingAndGlyphs">This is a very long cell</text>
- <text x="342" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="360" y="53" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs">Short</text>
- <text x="414" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="72" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Short │ This is a very long cell │ Short │ </text>
- <text x="90" y="70" fill="#ffffff" textLength="243" lengthAdjust="spacingAndGlyphs">content that should wrap to</text>
- <text x="342" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="414" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="72" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ content that should wrap to │ │ </text>
- <text x="90" y="87" fill="#ffffff" textLength="126" lengthAdjust="spacingAndGlyphs">multiple lines</text>
- <text x="342" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="414" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ multiple lines │ │ </text>
- <text x="0" y="104" fill="#333333" textLength="423" lengthAdjust="spacingAndGlyphs">└───────┴─────────────────────────────┴───────┘</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">└───────┴─────────────────────────────┴───────┘ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/TableRenderer.test.tsx:89:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[104/184]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > wraps all long columns correctly
Error: Snapshot `TableRenderer > wraps all long columns correctly 2` mismatched
- Expected
+ Received
@@ -2,51 +2,16 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="173" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="477" lengthAdjust="spacingAndGlyphs">┌────────────────┬────────────────┬─────────────────┐</text>
- <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#87afff" textLength="45" lengthAdjust="spacingAndGlyphs" font-weight="bold">Col 1</text>
-  <text x="153" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">┌────────────────┬────────────────┬─────────────────┐ </text>
- <text x="171" y="19" fill="#87afff" textLength="45" lengthAdjust="spacingAndGlyphs" font-weight="bold">Col 2</text>
- <text x="306" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="324" y="19" fill="#87afff" textLength="45" lengthAdjust="spacingAndGlyphs" font-weight="bold">Col 3</text>
-  <text x="468" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Col 1 │ Col 2 │ Col 3 │ </text>
- <text x="0" y="36" fill="#333333" textLength="477" lengthAdjust="spacingAndGlyphs">├────────────────┼────────────────┼─────────────────┤</text>
- <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="53" fill="#ffffff" textLength="126" lengthAdjust="spacingAndGlyphs">This is a very</text>
-  <text x="153" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">├────────────────┼────────────────┼─────────────────┤ </text>
- <text x="171" y="53" fill="#ffffff" textLength="126" lengthAdjust="spacingAndGlyphs">This is also a</text>
- <text x="306" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="324" y="53" fill="#ffffff" textLength="135" lengthAdjust="spacingAndGlyphs">And this is the</text>
- <text x="468" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ This is a very │ This is also a │ And this is the │ </text>
- <text x="18" y="70" fill="#ffffff" textLength="126" lengthAdjust="spacingAndGlyphs">long text that</text>
- <text x="153" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="171" y="70" fill="#ffffff" textLength="126" lengthAdjust="spacingAndGlyphs">very long text</text>
- <text x="306" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="324" y="70" fill="#ffffff" textLength="135" lengthAdjust="spacingAndGlyphs">third long text</text>
- <text x="468" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ long text that │ very long text │ third long text │ </text>
- <text x="18" y="87" fill="#ffffff" textLength="126" lengthAdjust="spacingAndGlyphs">needs wrapping</text>
- <text x="153" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="171" y="87" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">that needs</text>
- <text x="306" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="324" y="87" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">that needs</text>
- <text x="468" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ needs wrapping │ that needs │ that needs │ </text>
- <text x="18" y="104" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs">in column 1</text>
- <text x="153" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="171" y="104" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs">wrapping in</text>
- <text x="306" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="324" y="104" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs">wrapping in</text>
- <text x="468" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="153" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ in column 1 │ wrapping in │ wrapping in │ </text>
- <text x="171" y="121" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs">column 2</text>
- <text x="306" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="324" y="121" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs">column 3</text>
-  <text x="468" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="121" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ column 2 │ column 3 │ </text>
- <text x="0" y="138" fill="#333333" textLength="477" lengthAdjust="spacingAndGlyphs">└────────────────┴────────────────┴─────────────────┘</text>
+ <text x="0" y="138" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">└────────────────┴────────────────┴─────────────────┘ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/TableRenderer.test.tsx:114:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[105/184]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > wraps mixed long and short columns correctly
Error: Snapshot `TableRenderer > wraps mixed long and short columns correctly 2` mismatched
- Expected
+ Received
@@ -2,35 +2,14 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="139" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="405" lengthAdjust="spacingAndGlyphs">┌───────┬──────────────────────────┬────────┐</text>
- <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#87afff" textLength="45" lengthAdjust="spacingAndGlyphs" font-weight="bold">Short</text>
-  <text x="72" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">┌───────┬──────────────────────────┬────────┐ </text>
- <text x="90" y="19" fill="#87afff" textLength="36" lengthAdjust="spacingAndGlyphs" font-weight="bold">Long</text>
- <text x="315" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="333" y="19" fill="#87afff" textLength="54" lengthAdjust="spacingAndGlyphs" font-weight="bold">Medium</text>
-  <text x="396" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Short │ Long │ Medium │ </text>
- <text x="0" y="36" fill="#333333" textLength="405" lengthAdjust="spacingAndGlyphs">├───────┼──────────────────────────┼────────┤</text>
- <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="53" fill="#ffffff" textLength="36" lengthAdjust="spacingAndGlyphs">Tiny</text>
-  <text x="72" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">├───────┼──────────────────────────┼────────┤ </text>
- <text x="90" y="53" fill="#ffffff" textLength="216" lengthAdjust="spacingAndGlyphs">This is a very long text</text>
- <text x="315" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="333" y="53" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Not so</text>
- <text x="396" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="72" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Tiny │ This is a very long text │ Not so │ </text>
- <text x="90" y="70" fill="#ffffff" textLength="216" lengthAdjust="spacingAndGlyphs">that definitely needs to</text>
- <text x="315" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="333" y="70" fill="#ffffff" textLength="36" lengthAdjust="spacingAndGlyphs">long</text>
- <text x="396" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="72" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ that definitely needs to │ long │ </text>
- <text x="90" y="87" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs">wrap to the next line</text>
- <text x="315" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="396" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ wrap to the next line │ │ </text>
- <text x="0" y="104" fill="#333333" textLength="405" lengthAdjust="spacingAndGlyphs">└───────┴──────────────────────────┴────────┘</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">└───────┴──────────────────────────┴────────┘ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/TableRenderer.test.tsx:140:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[106/184]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > wraps columns with punctuation correctly
Error: Snapshot `TableRenderer > wraps columns with punctuation correctly 2` mismatched
- Expected
+ Received
@@ -2,50 +2,16 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="173" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="495" lengthAdjust="spacingAndGlyphs">┌───────────────────┬───────────────┬─────────────────┐</text>
-  <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">┌───────────────────┬───────────────┬─────────────────┐ </text>
- <text x="18" y="19" fill="#87afff" textLength="117" lengthAdjust="spacingAndGlyphs" font-weight="bold">Punctuation 1</text>
- <text x="180" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="198" y="19" fill="#87afff" textLength="117" lengthAdjust="spacingAndGlyphs" font-weight="bold">Punctuation 2</text>
- <text x="324" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="342" y="19" fill="#87afff" textLength="117" lengthAdjust="spacingAndGlyphs" font-weight="bold">Punctuation 3</text>
-  <text x="486" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Punctuation 1 │ Punctuation 2 │ Punctuation 3 │ </text>
- <text x="0" y="36" fill="#333333" textLength="495" lengthAdjust="spacingAndGlyphs">├───────────────────┼───────────────┼─────────────────┤</text>
-  <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">├───────────────────┼───────────────┼─────────────────┤ </text>
- <text x="18" y="53" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs">Start. Stop.</text>
- <text x="180" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="198" y="53" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs">Semi; colon:</text>
- <text x="324" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="342" y="53" fill="#ffffff" textLength="81" lengthAdjust="spacingAndGlyphs">At@ Hash#</text>
- <text x="486" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Start. Stop. │ Semi; colon: │ At@ Hash# │ </text>
- <text x="18" y="70" fill="#ffffff" textLength="153" lengthAdjust="spacingAndGlyphs">Comma, separated.</text>
- <text x="180" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="198" y="70" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs">Pipe| Slash/</text>
- <text x="324" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="342" y="70" fill="#ffffff" textLength="63" lengthAdjust="spacingAndGlyphs">Dollar$</text>
- <text x="486" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Comma, separated. │ Pipe| Slash/ │ Dollar$ │ </text>
- <text x="18" y="87" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs">Exclamation!</text>
- <text x="180" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="198" y="87" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">Backslash\</text>
- <text x="324" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="342" y="87" fill="#ffffff" textLength="135" lengthAdjust="spacingAndGlyphs">Percent% Caret^</text>
- <text x="486" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Exclamation! │ Backslash\ │ Percent% Caret^ │ </text>
- <text x="18" y="104" fill="#ffffff" textLength="81" lengthAdjust="spacingAndGlyphs">Question?</text>
- <text x="180" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="324" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="342" y="104" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">Ampersand&amp;</text>
- <text x="486" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Question? │ │ Ampersand&amp; │ </text>
- <text x="18" y="121" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs">hyphen-ated</text>
- <text x="180" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="324" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="342" y="121" fill="#ffffff" textLength="81" lengthAdjust="spacingAndGlyphs">Asterisk*</text>
-  <text x="486" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="121" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ hyphen-ated │ │ Asterisk* │ </text>
- <text x="0" y="138" fill="#333333" textLength="495" lengthAdjust="spacingAndGlyphs">└───────────────────┴───────────────┴─────────────────┘</text>
+ <text x="0" y="138" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">└───────────────────┴───────────────┴─────────────────┘ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/TableRenderer.test.tsx:166:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[107/184]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > strips bold markers from headers and renders them correctly
Error: Snapshot `TableRenderer > strips bold markers from headers and renders them correctly 2` mismatched
- Expected
+ Received
@@ -2,24 +2,12 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="105" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="414" lengthAdjust="spacingAndGlyphs">┌─────────────┬───────────────┬──────────────┐</text>
- <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#87afff" textLength="99" lengthAdjust="spacingAndGlyphs" font-weight="bold">Bold Header</text>
-  <text x="126" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">┌─────────────┬───────────────┬──────────────┐ </text>
- <text x="144" y="19" fill="#87afff" textLength="117" lengthAdjust="spacingAndGlyphs" font-weight="bold">Normal Header</text>
- <text x="270" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="19" fill="#87afff" textLength="108" lengthAdjust="spacingAndGlyphs" font-weight="bold">Another Bold</text>
-  <text x="405" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Bold Header │ Normal Header │ Another Bold │ </text>
- <text x="0" y="36" fill="#333333" textLength="414" lengthAdjust="spacingAndGlyphs">├─────────────┼───────────────┼──────────────┤</text>
-  <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">├─────────────┼───────────────┼──────────────┤ </text>
- <text x="18" y="53" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Data 1</text>
- <text x="126" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="144" y="53" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Data 2</text>
- <text x="270" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="53" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Data 3</text>
-  <text x="405" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Data 1 │ Data 2 │ Data 3 │ </text>
- <text x="0" y="70" fill="#333333" textLength="414" lengthAdjust="spacingAndGlyphs">└─────────────┴───────────────┴──────────────┘</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">└─────────────┴───────────────┴──────────────┘ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/TableRenderer.test.tsx:187:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[108/184]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > handles wrapped bold headers without showing markers
Error: Snapshot `TableRenderer > handles wrapped bold headers without showing markers 2` mismatched
- Expected
+ Received
@@ -2,46 +2,16 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="173" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="297" lengthAdjust="spacingAndGlyphs">┌─────────────┬───────┬─────────┐</text>
- <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#87afff" textLength="81" lengthAdjust="spacingAndGlyphs" font-weight="bold">Very Long</text>
- <text x="126" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="144" y="19" fill="#87afff" textLength="45" lengthAdjust="spacingAndGlyphs" font-weight="bold">Short</text>
-  <text x="198" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">┌─────────────┬───────┬─────────┐ </text>
- <text x="216" y="19" fill="#87afff" textLength="63" lengthAdjust="spacingAndGlyphs" font-weight="bold">Another</text>
- <text x="288" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Very Long │ Short │ Another │ </text>
- <text x="18" y="36" fill="#87afff" textLength="99" lengthAdjust="spacingAndGlyphs" font-weight="bold">Bold Header</text>
- <text x="126" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="198" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="216" y="36" fill="#87afff" textLength="36" lengthAdjust="spacingAndGlyphs" font-weight="bold">Long</text>
- <text x="288" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Bold Header │ │ Long │ </text>
- <text x="18" y="53" fill="#87afff" textLength="81" lengthAdjust="spacingAndGlyphs" font-weight="bold">That Will</text>
- <text x="126" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="198" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="216" y="53" fill="#87afff" textLength="54" lengthAdjust="spacingAndGlyphs" font-weight="bold">Header</text>
- <text x="288" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ That Will │ │ Header │  </text>
- <text x="18" y="70" fill="#87afff" textLength="36" lengthAdjust="spacingAndGlyphs" font-weight="bold">Wrap</text>
- <text x="126" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="198" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="288" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Wrap │ │ │ </text>
- <text x="0" y="87" fill="#333333" textLength="297" lengthAdjust="spacingAndGlyphs">├─────────────┼───────┼─────────┤</text>
- <text x="0" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="104" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Data 1</text>
-  <text x="126" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">├─────────────┼───────┼─────────┤ </text>
- <text x="144" y="104" fill="#ffffff" textLength="36" lengthAdjust="spacingAndGlyphs">Data</text>
- <text x="198" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="216" y="104" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Data 3</text>
- <text x="288" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="126" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Data 1 │ Data │ Data 3 │ </text>
- <text x="144" y="121" fill="#ffffff" textLength="9" lengthAdjust="spacingAndGlyphs">2</text>
- <text x="198" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="288" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="121" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ 2 │ │ </text>
- <text x="0" y="138" fill="#333333" textLength="297" lengthAdjust="spacingAndGlyphs">└─────────────┴───────┴─────────┘</text>
+ <text x="0" y="138" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">└─────────────┴───────┴─────────┘ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/TableRenderer.test.tsx:212:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[109/184]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > renders a complex table with mixed content lengths correctly
Error: Snapshot `TableRenderer > renders a complex table with mixed content lengths correctly 2` mismatched
- Expected
+ Received
@@ -2,400 +2,41 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="1460" height="598" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="1404" lengthAdjust="spacingAndGlyphs">┌─────────────────────────────┬──────────────────────────────┬─────────────────────────────┬──────────────────────────────┬─────┬────────┬─────────┬───────┐</text>
- <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#87afff" textLength="243" lengthAdjust="spacingAndGlyphs" font-weight="bold">Comprehensive Architectural</text>
- <text x="270" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="19" fill="#87afff" textLength="234" lengthAdjust="spacingAndGlyphs" font-weight="bold">Implementation Details for</text>
- <text x="549" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="19" fill="#87afff" textLength="216" lengthAdjust="spacingAndGlyphs" font-weight="bold">Longitudinal Performance</text>
- <text x="819" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="19" fill="#87afff" textLength="252" lengthAdjust="spacingAndGlyphs" font-weight="bold">Strategic Security Framework</text>
- <text x="1098" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1116" y="19" fill="#87afff" textLength="27" lengthAdjust="spacingAndGlyphs" font-weight="bold">Key</text>
- <text x="1152" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1170" y="19" fill="#87afff" textLength="54" lengthAdjust="spacingAndGlyphs" font-weight="bold">Status</text>
- <text x="1233" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1251" y="19" fill="#87afff" textLength="63" lengthAdjust="spacingAndGlyphs" font-weight="bold">Version</text>
- <text x="1323" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1341" y="19" fill="#87afff" textLength="45" lengthAdjust="spacingAndGlyphs" font-weight="bold">Owner</text>
- <text x="1395" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="36" fill="#87afff" textLength="189" lengthAdjust="spacingAndGlyphs" font-weight="bold">Specification for the</text>
- <text x="270" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="36" fill="#87afff" textLength="171" lengthAdjust="spacingAndGlyphs" font-weight="bold">the High-Throughput</text>
- <text x="549" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="36" fill="#87afff" textLength="135" lengthAdjust="spacingAndGlyphs" font-weight="bold">Analysis Across</text>
- <text x="819" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="36" fill="#87afff" textLength="252" lengthAdjust="spacingAndGlyphs" font-weight="bold">for Mitigating Sophisticated</text>
- <text x="1098" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="36" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="53" fill="#87afff" textLength="234" lengthAdjust="spacingAndGlyphs" font-weight="bold">Distributed Infrastructure</text>
- <text x="270" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="53" fill="#87afff" textLength="180" lengthAdjust="spacingAndGlyphs" font-weight="bold">Asynchronous Message</text>
- <text x="549" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="53" fill="#87afff" textLength="180" lengthAdjust="spacingAndGlyphs" font-weight="bold">Multi-Regional Cloud</text>
- <text x="819" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="53" fill="#87afff" textLength="180" lengthAdjust="spacingAndGlyphs" font-weight="bold">Cross-Site Scripting</text>
- <text x="1098" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="70" fill="#87afff" textLength="45" lengthAdjust="spacingAndGlyphs" font-weight="bold">Layer</text>
- <text x="270" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="70" fill="#87afff" textLength="216" lengthAdjust="spacingAndGlyphs" font-weight="bold">Processing Pipeline with</text>
- <text x="549" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="70" fill="#87afff" textLength="171" lengthAdjust="spacingAndGlyphs" font-weight="bold">Deployment Clusters</text>
- <text x="819" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="70" fill="#87afff" textLength="135" lengthAdjust="spacingAndGlyphs" font-weight="bold">Vulnerabilities</text>
- <text x="1098" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="270" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="87" fill="#87afff" textLength="180" lengthAdjust="spacingAndGlyphs" font-weight="bold">Extended Scalability</text>
- <text x="549" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="819" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1098" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="270" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="104" fill="#87afff" textLength="207" lengthAdjust="spacingAndGlyphs" font-weight="bold">Features and Redundancy</text>
- <text x="549" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="819" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1098" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="270" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="121" fill="#87afff" textLength="81" lengthAdjust="spacingAndGlyphs" font-weight="bold">Protocols</text>
- <text x="549" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="819" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1098" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="138" fill="#333333" textLength="1404" lengthAdjust="spacingAndGlyphs">├─────────────────────────────┼──────────────────────────────┼─────────────────────────────┼──────────────────────────────┼─────┼────────┼─────────┼───────┤</text>
- <text x="0" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="155" fill="#ffffff" textLength="216" lengthAdjust="spacingAndGlyphs">The primary architecture</text>
- <text x="270" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="155" fill="#ffffff" textLength="225" lengthAdjust="spacingAndGlyphs">Each message is processed</text>
- <text x="549" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="155" fill="#ffffff" textLength="243" lengthAdjust="spacingAndGlyphs">Historical data indicates a</text>
- <text x="819" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="155" fill="#ffffff" textLength="207" lengthAdjust="spacingAndGlyphs">A multi-layered defense</text>
- <text x="1098" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1116" y="155" fill="#ffffff" textLength="27" lengthAdjust="spacingAndGlyphs">INF</text>
- <text x="1152" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1170" y="155" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Active</text>
- <text x="1233" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1251" y="155" fill="#ffffff" textLength="36" lengthAdjust="spacingAndGlyphs">v2.4</text>
- <text x="1323" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1341" y="155" fill="#ffffff" textLength="18" lengthAdjust="spacingAndGlyphs">J.</text>
- <text x="1395" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="172" fill="#ffffff" textLength="180" lengthAdjust="spacingAndGlyphs">utilizes a decoupled</text>
- <text x="270" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="172" fill="#ffffff" textLength="171" lengthAdjust="spacingAndGlyphs">through a series of</text>
- <text x="549" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="172" fill="#ffffff" textLength="216" lengthAdjust="spacingAndGlyphs">significant reduction in</text>
- <text x="819" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="172" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs">strategy incorporates</text>
- <text x="1098" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1341" y="172" fill="#ffffff" textLength="27" lengthAdjust="spacingAndGlyphs">Doe</text>
- <text x="1395" y="172" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="189" fill="#ffffff" textLength="207" lengthAdjust="spacingAndGlyphs">microservices approach,</text>
- <text x="270" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="189" fill="#ffffff" textLength="216" lengthAdjust="spacingAndGlyphs">specialized workers that</text>
- <text x="549" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="189" fill="#ffffff" textLength="243" lengthAdjust="spacingAndGlyphs">tail latency when utilizing</text>
- <text x="819" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="189" fill="#ffffff" textLength="234" lengthAdjust="spacingAndGlyphs">content security policies,</text>
- <text x="1098" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="189" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="206" fill="#ffffff" textLength="180" lengthAdjust="spacingAndGlyphs">leveraging container</text>
- <text x="270" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="206" fill="#ffffff" textLength="243" lengthAdjust="spacingAndGlyphs">handle data transformation,</text>
- <text x="549" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="206" fill="#ffffff" textLength="243" lengthAdjust="spacingAndGlyphs">edge computing nodes closer</text>
- <text x="819" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="206" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">input sanitization</text>
- <text x="1098" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="206" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="223" fill="#ffffff" textLength="153" lengthAdjust="spacingAndGlyphs">orchestration for</text>
- <text x="270" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="223" fill="#ffffff" textLength="234" lengthAdjust="spacingAndGlyphs">validation, and persistent</text>
- <text x="549" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="223" fill="#ffffff" textLength="234" lengthAdjust="spacingAndGlyphs">to the geographic location</text>
- <text x="819" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="223" fill="#ffffff" textLength="198" lengthAdjust="spacingAndGlyphs">libraries, and regular</text>
- <text x="1098" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="223" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="240" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs">scalability and fault</text>
- <text x="270" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="240" fill="#ffffff" textLength="234" lengthAdjust="spacingAndGlyphs">storage using a persistent</text>
- <text x="549" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="240" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs">of the end-user base.</text>
- <text x="819" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="240" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs">automated penetration</text>
- <text x="1098" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="240" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="257" fill="#ffffff" textLength="198" lengthAdjust="spacingAndGlyphs">tolerance in high-load</text>
- <text x="270" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="257" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">queue.</text>
- <text x="549" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="819" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="257" fill="#ffffff" textLength="153" lengthAdjust="spacingAndGlyphs">testing routines.</text>
- <text x="1098" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="257" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="274" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">scenarios.</text>
- <text x="270" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="549" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="274" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs">Monitoring tools have</text>
- <text x="819" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1098" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="274" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="270" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="291" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs">The pipeline features</text>
- <text x="549" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="291" fill="#ffffff" textLength="234" lengthAdjust="spacingAndGlyphs">captured a steady increase</text>
- <text x="819" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="291" fill="#ffffff" textLength="234" lengthAdjust="spacingAndGlyphs">Developers are required to</text>
- <text x="1098" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="291" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="308" fill="#ffffff" textLength="207" lengthAdjust="spacingAndGlyphs">This layer provides the</text>
- <text x="270" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="308" fill="#ffffff" textLength="225" lengthAdjust="spacingAndGlyphs">built-in retry mechanisms</text>
- <text x="549" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="308" fill="#ffffff" textLength="216" lengthAdjust="spacingAndGlyphs">in throughput efficiency</text>
- <text x="819" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="308" fill="#ffffff" textLength="234" lengthAdjust="spacingAndGlyphs">undergo mandatory security</text>
- <text x="1098" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="308" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="325" fill="#ffffff" textLength="243" lengthAdjust="spacingAndGlyphs">fundamental building blocks</text>
- <text x="270" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="325" fill="#ffffff" textLength="243" lengthAdjust="spacingAndGlyphs">with exponential backoff to</text>
- <text x="549" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="325" fill="#ffffff" textLength="225" lengthAdjust="spacingAndGlyphs">since the introduction of</text>
- <text x="819" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="325" fill="#ffffff" textLength="216" lengthAdjust="spacingAndGlyphs">training focusing on the</text>
- <text x="1098" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="325" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="342" fill="#ffffff" textLength="243" lengthAdjust="spacingAndGlyphs">for service discovery, load</text>
- <text x="270" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="342" fill="#ffffff" textLength="207" lengthAdjust="spacingAndGlyphs">ensure message delivery</text>
- <text x="549" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="342" fill="#ffffff" textLength="243" lengthAdjust="spacingAndGlyphs">the vectorized query engine</text>
- <text x="819" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="342" fill="#ffffff" textLength="252" lengthAdjust="spacingAndGlyphs">OWASP Top Ten to ensure that</text>
- <text x="1098" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="342" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="359" fill="#ffffff" textLength="126" lengthAdjust="spacingAndGlyphs">balancing, and</text>
- <text x="270" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="359" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs">integrity even during</text>
- <text x="549" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="359" fill="#ffffff" textLength="171" lengthAdjust="spacingAndGlyphs">in the primary data</text>
- <text x="819" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="359" fill="#ffffff" textLength="243" lengthAdjust="spacingAndGlyphs">security is integrated into</text>
- <text x="1098" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="359" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="376" fill="#ffffff" textLength="243" lengthAdjust="spacingAndGlyphs">inter-service communication</text>
- <text x="270" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="376" fill="#ffffff" textLength="252" lengthAdjust="spacingAndGlyphs">transient network or service</text>
- <text x="549" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="376" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">warehouse.</text>
- <text x="819" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="376" fill="#ffffff" textLength="225" lengthAdjust="spacingAndGlyphs">the initial design phase.</text>
- <text x="1098" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="376" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="393" fill="#ffffff" textLength="180" lengthAdjust="spacingAndGlyphs">via highly efficient</text>
- <text x="270" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="393" fill="#ffffff" textLength="81" lengthAdjust="spacingAndGlyphs">failures.</text>
- <text x="549" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="819" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1098" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="393" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="410" fill="#ffffff" textLength="153" lengthAdjust="spacingAndGlyphs">protocol buffers.</text>
- <text x="270" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="549" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="410" fill="#ffffff" textLength="180" lengthAdjust="spacingAndGlyphs">Resource utilization</text>
- <text x="819" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="410" fill="#ffffff" textLength="207" lengthAdjust="spacingAndGlyphs">The implementation of a</text>
- <text x="1098" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="410" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="270" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="427" fill="#ffffff" textLength="225" lengthAdjust="spacingAndGlyphs">Horizontal autoscaling is</text>
- <text x="549" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="427" fill="#ffffff" textLength="216" lengthAdjust="spacingAndGlyphs">metrics demonstrate that</text>
- <text x="819" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="427" fill="#ffffff" textLength="234" lengthAdjust="spacingAndGlyphs">robust Identity and Access</text>
- <text x="1098" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="427" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="444" fill="#ffffff" textLength="198" lengthAdjust="spacingAndGlyphs">Advanced telemetry and</text>
- <text x="270" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="444" fill="#ffffff" textLength="207" lengthAdjust="spacingAndGlyphs">triggered automatically</text>
- <text x="549" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="444" fill="#ffffff" textLength="153" lengthAdjust="spacingAndGlyphs">the transition to</text>
- <text x="819" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="444" fill="#ffffff" textLength="225" lengthAdjust="spacingAndGlyphs">Management system ensures</text>
- <text x="1098" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="444" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="461" fill="#ffffff" textLength="234" lengthAdjust="spacingAndGlyphs">logging integrations allow</text>
- <text x="270" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="461" fill="#ffffff" textLength="225" lengthAdjust="spacingAndGlyphs">based on the depth of the</text>
- <text x="549" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="461" fill="#ffffff" textLength="198" lengthAdjust="spacingAndGlyphs">serverless compute for</text>
- <text x="819" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="461" fill="#ffffff" textLength="243" lengthAdjust="spacingAndGlyphs">that the principle of least</text>
- <text x="1098" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="461" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="478" fill="#ffffff" textLength="243" lengthAdjust="spacingAndGlyphs">for real-time monitoring of</text>
- <text x="270" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="478" fill="#ffffff" textLength="234" lengthAdjust="spacingAndGlyphs">processing queue, ensuring</text>
- <text x="549" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="478" fill="#ffffff" textLength="198" lengthAdjust="spacingAndGlyphs">intermittent tasks has</text>
- <text x="819" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="478" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs">privilege is strictly</text>
- <text x="1098" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="478" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="495" fill="#ffffff" textLength="207" lengthAdjust="spacingAndGlyphs">system health and rapid</text>
- <text x="270" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="495" fill="#ffffff" textLength="198" lengthAdjust="spacingAndGlyphs">consistent performance</text>
- <text x="549" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="495" fill="#ffffff" textLength="180" lengthAdjust="spacingAndGlyphs">resulted in a thirty</text>
- <text x="819" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="495" fill="#ffffff" textLength="171" lengthAdjust="spacingAndGlyphs">enforced across all</text>
- <text x="1098" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="495" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="512" fill="#ffffff" textLength="153" lengthAdjust="spacingAndGlyphs">identification of</text>
- <text x="270" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="512" fill="#ffffff" textLength="225" lengthAdjust="spacingAndGlyphs">during unexpected traffic</text>
- <text x="549" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="567" y="512" fill="#ffffff" textLength="234" lengthAdjust="spacingAndGlyphs">percent cost optimization.</text>
- <text x="819" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="837" y="512" fill="#ffffff" textLength="117" lengthAdjust="spacingAndGlyphs">environments.</text>
- <text x="1098" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="512" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="529" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="529" fill="#ffffff" textLength="198" lengthAdjust="spacingAndGlyphs">bottlenecks within the</text>
- <text x="270" y="529" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="529" fill="#ffffff" textLength="63" lengthAdjust="spacingAndGlyphs">spikes.</text>
- <text x="549" y="529" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="819" y="529" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1098" y="529" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="529" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="529" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="529" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="529" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="546" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="546" fill="#ffffff" textLength="117" lengthAdjust="spacingAndGlyphs">service mesh.</text>
- <text x="270" y="546" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="549" y="546" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="819" y="546" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1098" y="546" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1152" y="546" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1233" y="546" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1323" y="546" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="1395" y="546" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="563" fill="#333333" textLength="1404" lengthAdjust="spacingAndGlyphs">└─────────────────────────────┴──────────────────────────────┴─────────────────────────────┴──────────────────────────────┴─────┴────────┴─────────┴───────┘</text>
+ <text x="0" y="2" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">┌─────────────────────────────┬──────────────────────────────┬─────────────────────────────┬──────────────────────────────┬─────┬────────┬─────────┬───────┐ </text>
+ <text x="0" y="19" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ Comprehensive Architectural │ Implementation Details for │ Longitudinal Performance │ Strategic Security Framework │ Key │ Status │ Version │ Owner │ </text>
+ <text x="0" y="36" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ Specification for the │ the High-Throughput │ Analysis Across │ for Mitigating Sophisticated │ │ │ │ │ </text>
+ <text x="0" y="53" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ Distributed Infrastructure │ Asynchronous Message │ Multi-Regional Cloud │ Cross-Site Scripting │ │ │ │ │ </text>
+ <text x="0" y="70" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ Layer │ Processing Pipeline with │ Deployment Clusters │ Vulnerabilities │ │ │ │ │ </text>
+ <text x="0" y="87" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ │ Extended Scalability │ │ │ │ │ │ │ </text>
+ <text x="0" y="104" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ │ Features and Redundancy │ │ │ │ │ │ │ </text>
+ <text x="0" y="121" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ │ Protocols │ │ │ │ │ │ │ </text>
+ <text x="0" y="138" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">├─────────────────────────────┼──────────────────────────────┼─────────────────────────────┼──────────────────────────────┼─────┼────────┼─────────┼───────┤ </text>
+ <text x="0" y="155" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ The primary architecture │ Each message is processed │ Historical data indicates a │ A multi-layered defense │ INF │ Active │ v2.4 │ J. │ </text>
+ <text x="0" y="172" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ utilizes a decoupled │ through a series of │ significant reduction in │ strategy incorporates │ │ │ │ Doe │ </text>
+ <text x="0" y="189" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ microservices approach, │ specialized workers that │ tail latency when utilizing │ content security policies, │ │ │ │ │ </text>
+ <text x="0" y="206" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ leveraging container │ handle data transformation, │ edge computing nodes closer │ input sanitization │ │ │ │ │ </text>
+ <text x="0" y="223" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ orchestration for │ validation, and persistent │ to the geographic location │ libraries, and regular │ │ │ │ │ </text>
+ <text x="0" y="240" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ scalability and fault │ storage using a persistent │ of the end-user base. │ automated penetration │ │ │ │ │ </text>
+ <text x="0" y="257" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ tolerance in high-load │ queue. │ │ testing routines. │ │ │ │ │ </text>
+ <text x="0" y="274" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ scenarios. │ │ Monitoring tools have │ │ │ │ │ │ </text>
+ <text x="0" y="291" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ │ The pipeline features │ captured a steady increase │ Developers are required to │ │ │ │ │ </text>
+ <text x="0" y="308" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ This layer provides the │ built-in retry mechanisms │ in throughput efficiency │ undergo mandatory security │ │ │ │ │ </text>
+ <text x="0" y="325" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ fundamental building blocks │ with exponential backoff to │ since the introduction of │ training focusing on the │ │ │ │ │ </text>
+ <text x="0" y="342" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ for service discovery, load │ ensure message delivery │ the vectorized query engine │ OWASP Top Ten to ensure that │ │ │ │ │ </text>
+ <text x="0" y="359" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ balancing, and │ integrity even during │ in the primary data │ security is integrated into │ │ │ │ │ </text>
+ <text x="0" y="376" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ inter-service communication │ transient network or service │ warehouse. │ the initial design phase. │ │ │ │ │ </text>
+ <text x="0" y="393" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ via highly efficient │ failures. │ │ │ │ │ │ │ </text>
+ <text x="0" y="410" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ protocol buffers. │ │ Resource utilization │ The implementation of a │ │ │ │ │ </text>
+ <text x="0" y="427" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ │ Horizontal autoscaling is │ metrics demonstrate that │ robust Identity and Access │ │ │ │ │ </text>
+ <text x="0" y="444" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ Advanced telemetry and │ triggered automatically │ the transition to │ Management system ensures │ │ │ │ │ </text>
+ <text x="0" y="461" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ logging integrations allow │ based on the depth of the │ serverless compute for │ that the principle of least │ │ │ │ │ </text>
+ <text x="0" y="478" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ for real-time monitoring of │ processing queue, ensuring │ intermittent tasks has │ privilege is strictly │ │ │ │ │ </text>
+ <text x="0" y="495" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ system health and rapid │ consistent performance │ resulted in a thirty │ enforced across all │ │ │ │ │ </text>
+ <text x="0" y="512" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ identification of │ during unexpected traffic │ percent cost optimization. │ environments. │ │ │ │ │ </text>
+ <text x="0" y="529" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ bottlenecks within the │ spikes. │ │ │ │ │ │ │ </text>
+ <text x="0" y="546" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">│ service mesh. │ │ │ │ │ │ │ │ </text>
+ <text x="0" y="563" fill="#ffffff" textLength="1440" lengthAdjust="spacingAndGlyphs">└─────────────────────────────┴──────────────────────────────┴─────────────────────────────┴──────────────────────────────┴─────┴────────┴─────────┴───────┘ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/TableRenderer.test.tsx:264:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[110/184]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > 'handles non-ASCII characters (emojis …'
Error: Snapshot `TableRenderer > 'handles non-ASCII characters (emojis …' 2` mismatched
- Expected
+ Received
@@ -2,31 +2,13 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="560" height="122" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="405" lengthAdjust="spacingAndGlyphs">┌──────────────┬────────────┬───────────────┐</text>
-  <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="2" fill="#ffffff" textLength="540" lengthAdjust="spacingAndGlyphs">┌──────────────┬────────────┬───────────────┐ </text>
- <text x="18" y="19" fill="#87afff" textLength="63" lengthAdjust="spacingAndGlyphs" font-weight="bold">Emoji 😃</text>
- <text x="126" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="144" y="19" fill="#87afff" textLength="90" lengthAdjust="spacingAndGlyphs" font-weight="bold">Asian 汉字</text>
- <text x="243" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="261" y="19" fill="#87afff" textLength="108" lengthAdjust="spacingAndGlyphs" font-weight="bold">Mixed 🚀 Text</text>
-  <text x="378" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="540" lengthAdjust="spacingAndGlyphs">│ Emoji 😃 │ Asian 汉字 │ Mixed 🚀 Text │ </text>
- <text x="0" y="36" fill="#333333" textLength="405" lengthAdjust="spacingAndGlyphs">├──────────────┼────────────┼───────────────┤</text>
-  <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="540" lengthAdjust="spacingAndGlyphs">├──────────────┼────────────┼───────────────┤ </text>
- <text x="18" y="53" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs">Start 🌟 End</text>
- <text x="126" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="144" y="53" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs">你好世界</text>
- <text x="243" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="261" y="53" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs">Rocket 🚀 Man</text>
- <text x="378" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="540" lengthAdjust="spacingAndGlyphs">│ Start 🌟 End │ 你好世界 │ Rocket 🚀 Man │ </text>
- <text x="18" y="70" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs">Thumbs 👍 Up</text>
- <text x="126" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="144" y="70" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">こんにちは</text>
- <text x="243" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="261" y="70" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Fire 🔥</text>
-  <text x="378" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="70" fill="#ffffff" textLength="540" lengthAdjust="spacingAndGlyphs">│ Thumbs 👍 Up │ こんにちは │ Fire 🔥 │ </text>
- <text x="0" y="87" fill="#333333" textLength="405" lengthAdjust="spacingAndGlyphs">└──────────────┴────────────┴───────────────┘</text>
+ <text x="0" y="87" fill="#ffffff" textLength="540" lengthAdjust="spacingAndGlyphs">└──────────────┴────────────┴───────────────┘ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/TableRenderer.test.tsx:323:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[111/184]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > 'renders a table with only emojis and …'
Error: Snapshot `TableRenderer > 'renders a table with only emojis and …' 2` mismatched
- Expected
+ Received
@@ -2,31 +2,13 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="560" height="122" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="315" lengthAdjust="spacingAndGlyphs">┌──────────┬───────────┬──────────┐</text>
- <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#87afff" textLength="63" lengthAdjust="spacingAndGlyphs" font-weight="bold">Happy 😀</text>
-  <text x="90" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="2" fill="#ffffff" textLength="540" lengthAdjust="spacingAndGlyphs">┌──────────┬───────────┬──────────┐ </text>
- <text x="108" y="19" fill="#87afff" textLength="72" lengthAdjust="spacingAndGlyphs" font-weight="bold">Rocket 🚀</text>
- <text x="189" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="207" y="19" fill="#87afff" textLength="63" lengthAdjust="spacingAndGlyphs" font-weight="bold">Heart ❤️</text>
-  <text x="279" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="540" lengthAdjust="spacingAndGlyphs">│ Happy 😀 │ Rocket 🚀 │ Heart ❤️ │ </text>
- <text x="0" y="36" fill="#333333" textLength="315" lengthAdjust="spacingAndGlyphs">├──────────┼───────────┼──────────┤</text>
- <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="53" fill="#ffffff" textLength="63" lengthAdjust="spacingAndGlyphs">Smile 😃</text>
-  <text x="90" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="540" lengthAdjust="spacingAndGlyphs">├──────────┼───────────┼──────────┤ </text>
- <text x="108" y="53" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Fire 🔥</text>
- <text x="189" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="207" y="53" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Love 💖</text>
- <text x="279" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="540" lengthAdjust="spacingAndGlyphs">│ Smile 😃 │ Fire 🔥 │ Love 💖 │ </text>
- <text x="18" y="70" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Cool 😎</text>
- <text x="90" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="108" y="70" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Star ⭐</text>
- <text x="189" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="207" y="70" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Blue 💙</text>
-  <text x="279" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="70" fill="#ffffff" textLength="540" lengthAdjust="spacingAndGlyphs">│ Cool 😎 │ Star ⭐ │ Blue 💙 │ </text>
- <text x="0" y="87" fill="#333333" textLength="315" lengthAdjust="spacingAndGlyphs">└──────────┴───────────┴──────────┘</text>
+ <text x="0" y="87" fill="#ffffff" textLength="540" lengthAdjust="spacingAndGlyphs">└──────────┴───────────┴──────────┘ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/TableRenderer.test.tsx:323:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[112/184]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > 'renders a table with only Asian chara…'
Error: Snapshot `TableRenderer > 'renders a table with only Asian chara…' 2` mismatched
- Expected
+ Received
@@ -2,31 +2,13 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="560" height="122" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="450" lengthAdjust="spacingAndGlyphs">┌──────────────┬─────────────────┬───────────────┐</text>
-  <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="2" fill="#ffffff" textLength="540" lengthAdjust="spacingAndGlyphs">┌──────────────┬─────────────────┬───────────────┐ </text>
- <text x="18" y="19" fill="#87afff" textLength="108" lengthAdjust="spacingAndGlyphs" font-weight="bold">Chinese 中文</text>
- <text x="135" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="153" y="19" fill="#87afff" textLength="135" lengthAdjust="spacingAndGlyphs" font-weight="bold">Japanese 日本語</text>
- <text x="297" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="315" y="19" fill="#87afff" textLength="117" lengthAdjust="spacingAndGlyphs" font-weight="bold">Korean 한국어</text>
-  <text x="441" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="540" lengthAdjust="spacingAndGlyphs">│ Chinese 中文 │ Japanese 日本語 │ Korean 한국어 │ </text>
- <text x="0" y="36" fill="#333333" textLength="450" lengthAdjust="spacingAndGlyphs">├──────────────┼─────────────────┼───────────────┤</text>
-  <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="540" lengthAdjust="spacingAndGlyphs">├──────────────┼─────────────────┼───────────────┤ </text>
- <text x="18" y="53" fill="#ffffff" textLength="36" lengthAdjust="spacingAndGlyphs">你好</text>
- <text x="135" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="153" y="53" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">こんにちは</text>
- <text x="297" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="315" y="53" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">안녕하세요</text>
- <text x="441" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="540" lengthAdjust="spacingAndGlyphs">│ 你好 │ こんにちは │ 안녕하세요 │ </text>
- <text x="18" y="70" fill="#ffffff" textLength="36" lengthAdjust="spacingAndGlyphs">世界</text>
- <text x="135" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="153" y="70" fill="#ffffff" textLength="36" lengthAdjust="spacingAndGlyphs">世界</text>
- <text x="297" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="315" y="70" fill="#ffffff" textLength="36" lengthAdjust="spacingAndGlyphs">세계</text>
-  <text x="441" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="70" fill="#ffffff" textLength="540" lengthAdjust="spacingAndGlyphs">│ 世界 │ 世界 │ 세계 │ </text>
- <text x="0" y="87" fill="#333333" textLength="450" lengthAdjust="spacingAndGlyphs">└──────────────┴─────────────────┴───────────────┘</text>
+ <text x="0" y="87" fill="#ffffff" textLength="540" lengthAdjust="spacingAndGlyphs">└──────────────┴─────────────────┴───────────────┘ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/TableRenderer.test.tsx:323:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[113/184]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > 'renders a table with mixed emojis, As…'
Error: Snapshot `TableRenderer > 'renders a table with mixed emojis, As…' 2` mismatched
- Expected
+ Received
@@ -2,31 +2,13 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="740" height="122" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="486" lengthAdjust="spacingAndGlyphs">┌───────────────┬───────────────────┬────────────────┐</text>
- <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#87afff" textLength="108" lengthAdjust="spacingAndGlyphs" font-weight="bold">Mixed 😃 中文</text>
-  <text x="135" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="2" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">┌───────────────┬───────────────────┬────────────────┐ </text>
- <text x="153" y="19" fill="#87afff" textLength="144" lengthAdjust="spacingAndGlyphs" font-weight="bold">Complex 🚀 日本語</text>
- <text x="306" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="324" y="19" fill="#87afff" textLength="117" lengthAdjust="spacingAndGlyphs" font-weight="bold">Text 📝 한국어</text>
-  <text x="450" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ Mixed 😃 中文 │ Complex 🚀 日本語 │ Text 📝 한국어 │ </text>
- <text x="0" y="36" fill="#333333" textLength="486" lengthAdjust="spacingAndGlyphs">├───────────────┼───────────────────┼────────────────┤</text>
- <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="53" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">你好 😃</text>
-  <text x="135" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">├───────────────┼───────────────────┼────────────────┤ </text>
- <text x="153" y="53" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs">こんにちは 🚀</text>
- <text x="306" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="324" y="53" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs">안녕하세요 📝</text>
- <text x="450" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ 你好 😃 │ こんにちは 🚀 │ 안녕하세요 📝 │ </text>
- <text x="18" y="70" fill="#ffffff" textLength="63" lengthAdjust="spacingAndGlyphs">World 🌍</text>
- <text x="135" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="153" y="70" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Code 💻</text>
- <text x="306" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="324" y="70" fill="#ffffff" textLength="63" lengthAdjust="spacingAndGlyphs">Pizza 🍕</text>
-  <text x="450" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="70" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ World 🌍 │ Code 💻 │ Pizza 🍕 │ </text>
- <text x="0" y="87" fill="#333333" textLength="486" lengthAdjust="spacingAndGlyphs">└───────────────┴───────────────────┴────────────────┘</text>
+ <text x="0" y="87" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">└───────────────┴───────────────────┴────────────────┘ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/TableRenderer.test.tsx:323:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[114/184]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > 'renders correctly when headers are em…'
Error: Snapshot `TableRenderer > 'renders correctly when headers are em…' 2` mismatched
- Expected
+ Received
@@ -2,18 +2,12 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="105" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="171" lengthAdjust="spacingAndGlyphs">┌────────┬────────┐</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">┌────────┬────────┐ </text>
- <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="81" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="162" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ │ </text>
- <text x="0" y="36" fill="#333333" textLength="171" lengthAdjust="spacingAndGlyphs">├────────┼────────┤</text>
-  <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">├────────┼────────┤ </text>
- <text x="18" y="53" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Data 1</text>
- <text x="81" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="99" y="53" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Data 2</text>
-  <text x="162" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Data 1 │ Data 2 │ </text>
- <text x="0" y="70" fill="#333333" textLength="171" lengthAdjust="spacingAndGlyphs">└────────┴────────┘</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">└────────┴────────┘ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/TableRenderer.test.tsx:355:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[115/184]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > 'renders correctly when there are more…'
Error: Snapshot `TableRenderer > 'renders correctly when there are more…' 2` mismatched
- Expected
+ Received
@@ -2,23 +2,12 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="105" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="306" lengthAdjust="spacingAndGlyphs">┌──────────┬──────────┬──────────┐</text>
- <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#87afff" textLength="72" lengthAdjust="spacingAndGlyphs" font-weight="bold">Header 1</text>
-  <text x="99" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">┌──────────┬──────────┬──────────┐ </text>
- <text x="117" y="19" fill="#87afff" textLength="72" lengthAdjust="spacingAndGlyphs" font-weight="bold">Header 2</text>
- <text x="198" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="216" y="19" fill="#87afff" textLength="72" lengthAdjust="spacingAndGlyphs" font-weight="bold">Header 3</text>
-  <text x="297" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Header 1 │ Header 2 │ Header 3 │ </text>
- <text x="0" y="36" fill="#333333" textLength="306" lengthAdjust="spacingAndGlyphs">├──────────┼──────────┼──────────┤</text>
-  <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">├──────────┼──────────┼──────────┤ </text>
- <text x="18" y="53" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Data 1</text>
- <text x="99" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="117" y="53" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Data 2</text>
- <text x="198" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="297" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Data 1 │ Data 2 │ │ </text>
- <text x="0" y="70" fill="#333333" textLength="306" lengthAdjust="spacingAndGlyphs">└──────────┴──────────┴──────────┘</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">└──────────┴──────────┴──────────┘ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/TableRenderer.test.tsx:355:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[116/184]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > 'renders complex markdown in rows and …'
Error: Snapshot `TableRenderer > 'renders complex markdown in rows and …' 2` mismatched
- Expected
+ Received
@@ -2,52 +2,18 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="740" height="207" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="423" lengthAdjust="spacingAndGlyphs">┌───────────────┬─────────────────────────────┐</text>
- <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#87afff" textLength="63" lengthAdjust="spacingAndGlyphs" font-weight="bold">Feature</text>
-  <text x="144" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="2" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">┌───────────────┬─────────────────────────────┐ </text>
- <text x="162" y="19" fill="#87afff" textLength="72" lengthAdjust="spacingAndGlyphs" font-weight="bold">Markdown</text>
-  <text x="414" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ Feature │ Markdown │ </text>
- <text x="0" y="36" fill="#333333" textLength="423" lengthAdjust="spacingAndGlyphs">├───────────────┼─────────────────────────────┤</text>
- <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="53" fill="#ffffff" textLength="36" lengthAdjust="spacingAndGlyphs">Bold</text>
-  <text x="144" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">├───────────────┼─────────────────────────────┤ </text>
- <text x="162" y="53" fill="#ffffff" textLength="81" lengthAdjust="spacingAndGlyphs" font-weight="bold">Bold Text</text>
- <text x="414" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="70" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Italic</text>
-  <text x="144" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ Bold │ Bold Text  │ </text>
- <text x="162" y="70" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs" font-style="italic">Italic Text</text>
- <text x="414" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="87" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs">Combined</text>
-  <text x="144" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="70" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ Italic │ Italic Text │ </text>
- <text x="162" y="87" fill="#ffffff" textLength="135" lengthAdjust="spacingAndGlyphs" font-weight="bold" font-style="italic">Bold and Italic</text>
- <text x="414" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="104" fill="#ffffff" textLength="36" lengthAdjust="spacingAndGlyphs">Link</text>
-  <text x="144" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="87" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ Combined │ Bold and Italic │ </text>
- <text x="162" y="104" fill="#ffffff" textLength="72" lengthAdjust="spacingAndGlyphs">Google (</text>
- <text x="234" y="104" fill="#87afff" textLength="162" lengthAdjust="spacingAndGlyphs">https://google.com</text>
- <text x="396" y="104" fill="#ffffff" textLength="9" lengthAdjust="spacingAndGlyphs">)</text>
- <text x="414" y="104" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="104" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ Link │ Google (https://google.com) │ </text>
- <text x="18" y="121" fill="#ffffff" textLength="36" lengthAdjust="spacingAndGlyphs">Code</text>
- <text x="144" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="162" y="121" fill="#d7afff" textLength="99" lengthAdjust="spacingAndGlyphs">const x = 1</text>
- <text x="414" y="121" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="138" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="121" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ Code │ const x = 1 │ </text>
- <text x="18" y="138" fill="#ffffff" textLength="117" lengthAdjust="spacingAndGlyphs">Strikethrough</text>
- <text x="144" y="138" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="162" y="138" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Strike</text>
- <text x="414" y="138" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="155" fill="#ffffff" textLength="81" lengthAdjust="spacingAndGlyphs">Underline</text>
-  <text x="144" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="138" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ Strikethrough │ Strike │ </text>
- <text x="162" y="155" fill="#ffffff" textLength="81" lengthAdjust="spacingAndGlyphs" text-decoration="underline">Underline</text>
-  <text x="414" y="155" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="155" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">│ Underline │ Underline │ </text>
- <text x="0" y="172" fill="#333333" textLength="423" lengthAdjust="spacingAndGlyphs">└───────────────┴─────────────────────────────┘</text>
+ <text x="0" y="172" fill="#ffffff" textLength="720" lengthAdjust="spacingAndGlyphs">└───────────────┴─────────────────────────────┘ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/TableRenderer.test.tsx:483:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[117/184]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > 'calculates column widths based on ren…'
Error: Snapshot `TableRenderer > 'calculates column widths based on ren…' 2` mismatched
- Expected
+ Received
@@ -2,38 +2,14 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="380" height="139" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="252" lengthAdjust="spacingAndGlyphs">┌────────┬────────┬────────┐</text>
-  <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="2" fill="#ffffff" textLength="360" lengthAdjust="spacingAndGlyphs">┌────────┬────────┬────────┐ </text>
- <text x="18" y="19" fill="#87afff" textLength="45" lengthAdjust="spacingAndGlyphs" font-weight="bold">Col 1</text>
- <text x="81" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="99" y="19" fill="#87afff" textLength="45" lengthAdjust="spacingAndGlyphs" font-weight="bold">Col 2</text>
-  <text x="162" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="360" lengthAdjust="spacingAndGlyphs">│ Col 1 │ Col 2 │ Col 3 │ </text>
- <text x="180" y="19" fill="#87afff" textLength="45" lengthAdjust="spacingAndGlyphs" font-weight="bold">Col 3</text>
- <text x="243" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="36" fill="#333333" textLength="252" lengthAdjust="spacingAndGlyphs">├────────┼────────┼────────┤</text>
-  <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="360" lengthAdjust="spacingAndGlyphs">├────────┼────────┼────────┤ </text>
- <text x="18" y="53" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs" font-weight="bold">123456</text>
- <text x="81" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="99" y="53" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Normal</text>
- <text x="162" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="180" y="53" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs">Short</text>
- <text x="243" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="360" lengthAdjust="spacingAndGlyphs">│ 123456 │ Normal │ Short │ </text>
- <text x="18" y="70" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs">Short</text>
- <text x="81" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="99" y="70" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs" font-weight="bold">123456</text>
- <text x="162" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="180" y="70" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Normal</text>
- <text x="243" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="70" fill="#ffffff" textLength="360" lengthAdjust="spacingAndGlyphs">│ Short │ 123456 │ Normal │ </text>
- <text x="18" y="87" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Normal</text>
- <text x="81" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="99" y="87" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs">Short</text>
- <text x="162" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="180" y="87" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs" font-weight="bold">123456</text>
-  <text x="243" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="87" fill="#ffffff" textLength="360" lengthAdjust="spacingAndGlyphs">│ Normal │ Short │ 123456 │ </text>
- <text x="0" y="104" fill="#333333" textLength="252" lengthAdjust="spacingAndGlyphs">└────────┴────────┴────────┘</text>
+ <text x="0" y="104" fill="#ffffff" textLength="360" lengthAdjust="spacingAndGlyphs">└────────┴────────┴────────┘ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/TableRenderer.test.tsx:483:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[118/184]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > 'handles nested markdown styles recurs…'
Error: Snapshot `TableRenderer > 'handles nested markdown styles recurs…' 2` mismatched
- Expected
+ Received
@@ -2,44 +2,14 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="139" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="819" lengthAdjust="spacingAndGlyphs">┌─────────────────────────────┬─────────────────────────────┬─────────────────────────────┐</text>
-  <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">┌─────────────────────────────┬─────────────────────────────┬─────────────────────────────┐ </text>
- <text x="18" y="19" fill="#87afff" textLength="72" lengthAdjust="spacingAndGlyphs" font-weight="bold">Header 1</text>
- <text x="270" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="19" fill="#87afff" textLength="72" lengthAdjust="spacingAndGlyphs" font-weight="bold">Header 2</text>
- <text x="540" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="558" y="19" fill="#87afff" textLength="72" lengthAdjust="spacingAndGlyphs" font-weight="bold">Header 3</text>
-  <text x="810" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Header 1 │ Header 2 │ Header 3 │ </text>
- <text x="0" y="36" fill="#333333" textLength="819" lengthAdjust="spacingAndGlyphs">├─────────────────────────────┼─────────────────────────────┼─────────────────────────────┤</text>
-  <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">├─────────────────────────────┼─────────────────────────────┼─────────────────────────────┤ </text>
- <text x="18" y="53" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs" font-weight="bold">Bold with </text>
- <text x="108" y="53" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs" font-weight="bold" font-style="italic">Italic</text>
- <text x="162" y="53" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs" font-weight="bold"> and Strike</text>
- <text x="270" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="53" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Normal</text>
- <text x="540" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="558" y="53" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs">Short</text>
- <text x="810" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="70" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs">Short</text>
-  <text x="270" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Bold with Italic and Strike │ Normal │ Short │ </text>
- <text x="288" y="70" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs" font-weight="bold">Bold with </text>
- <text x="378" y="70" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs" font-weight="bold" font-style="italic">Italic</text>
- <text x="432" y="70" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs" font-weight="bold"> and Strike</text>
- <text x="540" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="558" y="70" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Normal</text>
- <text x="810" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Short │ Bold with Italic and Strike │ Normal │ </text>
- <text x="18" y="87" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Normal</text>
- <text x="270" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="288" y="87" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs">Short</text>
- <text x="540" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="558" y="87" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs" font-weight="bold">Bold with </text>
- <text x="648" y="87" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs" font-weight="bold" font-style="italic">Italic</text>
- <text x="702" y="87" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs" font-weight="bold"> and Strike</text>
-  <text x="810" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Normal │ Short │ Bold with Italic and Strike │ </text>
- <text x="0" y="104" fill="#333333" textLength="819" lengthAdjust="spacingAndGlyphs">└─────────────────────────────┴─────────────────────────────┴─────────────────────────────┘</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">└─────────────────────────────┴─────────────────────────────┴─────────────────────────────┘ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/TableRenderer.test.tsx:483:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[119/184]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > 'calculates width correctly for conten…'
Error: Snapshot `TableRenderer > 'calculates width correctly for conten…' 2` mismatched
- Expected
+ Received
@@ -2,44 +2,14 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="1100" height="139" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="927" lengthAdjust="spacingAndGlyphs">┌───────────────────────────────────┬───────────────────────────────┬─────────────────────────────────┐</text>
-  <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="2" fill="#ffffff" textLength="1080" lengthAdjust="spacingAndGlyphs">┌───────────────────────────────────┬───────────────────────────────┬─────────────────────────────────┐ </text>
- <text x="18" y="19" fill="#87afff" textLength="45" lengthAdjust="spacingAndGlyphs" font-weight="bold">Col 1</text>
- <text x="324" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="342" y="19" fill="#87afff" textLength="45" lengthAdjust="spacingAndGlyphs" font-weight="bold">Col 2</text>
- <text x="612" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="630" y="19" fill="#87afff" textLength="45" lengthAdjust="spacingAndGlyphs" font-weight="bold">Col 3</text>
-  <text x="918" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="1080" lengthAdjust="spacingAndGlyphs">│ Col 1 │ Col 2 │ Col 3 │ </text>
- <text x="0" y="36" fill="#333333" textLength="927" lengthAdjust="spacingAndGlyphs">├───────────────────────────────────┼───────────────────────────────┼─────────────────────────────────┤</text>
-  <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="1080" lengthAdjust="spacingAndGlyphs">├───────────────────────────────────┼───────────────────────────────┼─────────────────────────────────┤ </text>
- <text x="18" y="53" fill="#ffffff" textLength="126" lengthAdjust="spacingAndGlyphs">Visit Google (</text>
- <text x="144" y="53" fill="#87afff" textLength="162" lengthAdjust="spacingAndGlyphs">https://google.com</text>
- <text x="306" y="53" fill="#ffffff" textLength="9" lengthAdjust="spacingAndGlyphs">)</text>
- <text x="324" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="342" y="53" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">Plain Text</text>
- <text x="612" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="630" y="53" fill="#ffffff" textLength="81" lengthAdjust="spacingAndGlyphs">More Info</text>
- <text x="918" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="1080" lengthAdjust="spacingAndGlyphs">│ Visit Google (https://google.com) │ Plain Text │ More Info │ </text>
- <text x="18" y="70" fill="#ffffff" textLength="81" lengthAdjust="spacingAndGlyphs">Info Here</text>
- <text x="324" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="342" y="70" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs">Visit Bing (</text>
- <text x="450" y="70" fill="#87afff" textLength="144" lengthAdjust="spacingAndGlyphs">https://bing.com</text>
- <text x="594" y="70" fill="#ffffff" textLength="9" lengthAdjust="spacingAndGlyphs">)</text>
- <text x="612" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="630" y="70" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs">Links</text>
- <text x="918" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="70" fill="#ffffff" textLength="1080" lengthAdjust="spacingAndGlyphs">│ Info Here │ Visit Bing (https://bing.com) │ Links  │  </text>
- <text x="18" y="87" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">Check This</text>
- <text x="324" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="342" y="87" fill="#ffffff" textLength="54" lengthAdjust="spacingAndGlyphs">Search</text>
- <text x="612" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="630" y="87" fill="#ffffff" textLength="117" lengthAdjust="spacingAndGlyphs">Visit Yahoo (</text>
- <text x="747" y="87" fill="#87afff" textLength="153" lengthAdjust="spacingAndGlyphs">https://yahoo.com</text>
- <text x="900" y="87" fill="#ffffff" textLength="9" lengthAdjust="spacingAndGlyphs">)</text>
-  <text x="918" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="87" fill="#ffffff" textLength="1080" lengthAdjust="spacingAndGlyphs">│ Check This │ Search │ Visit Yahoo (https://yahoo.com) │ </text>
- <text x="0" y="104" fill="#333333" textLength="927" lengthAdjust="spacingAndGlyphs">└───────────────────────────────────┴───────────────────────────────┴─────────────────────────────────┘</text>
+ <text x="0" y="104" fill="#ffffff" textLength="1080" lengthAdjust="spacingAndGlyphs">└───────────────────────────────────┴───────────────────────────────┴─────────────────────────────────┘ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/TableRenderer.test.tsx:483:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[120/184]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > 'does not parse markdown inside code s…'
Error: Snapshot `TableRenderer > 'does not parse markdown inside code s…' 2` mismatched
- Expected
+ Received
@@ -2,39 +2,14 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="139" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#333333" textLength="549" lengthAdjust="spacingAndGlyphs">┌─────────────────┬──────────────────────┬──────────────────┐</text>
- <text x="0" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="19" fill="#87afff" textLength="45" lengthAdjust="spacingAndGlyphs" font-weight="bold">Col 1</text>
-  <text x="162" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">┌─────────────────┬──────────────────────┬──────────────────┐ </text>
- <text x="180" y="19" fill="#87afff" textLength="45" lengthAdjust="spacingAndGlyphs" font-weight="bold">Col 2</text>
- <text x="369" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="387" y="19" fill="#87afff" textLength="45" lengthAdjust="spacingAndGlyphs" font-weight="bold">Col 3</text>
-  <text x="540" y="19" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Col 1 │ Col 2 │ Col 3 │ </text>
- <text x="0" y="36" fill="#333333" textLength="549" lengthAdjust="spacingAndGlyphs">├─────────────────┼──────────────────────┼──────────────────┤</text>
- <text x="0" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="53" fill="#d7afff" textLength="108" lengthAdjust="spacingAndGlyphs">**not bold**</text>
-  <text x="162" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">├─────────────────┼──────────────────────┼──────────────────┤ </text>
- <text x="180" y="53" fill="#d7afff" textLength="108" lengthAdjust="spacingAndGlyphs">_not italic_</text>
- <text x="369" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="387" y="53" fill="#d7afff" textLength="126" lengthAdjust="spacingAndGlyphs">~~not strike~~</text>
- <text x="540" y="53" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="70" fill="#d7afff" textLength="135" lengthAdjust="spacingAndGlyphs">[not link](url)</text>
-  <text x="162" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ **not bold** │ _not italic_ │ ~~not strike~~ │ </text>
- <text x="180" y="70" fill="#d7afff" textLength="180" lengthAdjust="spacingAndGlyphs">&lt;u&gt;not underline&lt;/u&gt;</text>
- <text x="369" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="387" y="70" fill="#d7afff" textLength="144" lengthAdjust="spacingAndGlyphs">https://not.link</text>
- <text x="540" y="70" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="0" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="18" y="87" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs">Normal Text</text>
-  <text x="162" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ [not link](url) │ &lt;u&gt;not underline&lt;/u&gt; │ https://not.link │ </text>
- <text x="180" y="87" fill="#ffffff" textLength="99" lengthAdjust="spacingAndGlyphs">More Code: </text>
- <text x="279" y="87" fill="#d7afff" textLength="54" lengthAdjust="spacingAndGlyphs">*test*</text>
- <text x="369" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="387" y="87" fill="#d7afff" textLength="108" lengthAdjust="spacingAndGlyphs">***nested***</text>
-  <text x="540" y="87" fill="#333333" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Normal Text │ More Code: *test* │ ***nested*** │ </text>
- <text x="0" y="104" fill="#333333" textLength="549" lengthAdjust="spacingAndGlyphs">└─────────────────┴──────────────────────┴──────────────────┘</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">└─────────────────┴──────────────────────┴──────────────────┘ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/TableRenderer.test.tsx:483:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[121/184]⎯
FAIL src/ui/utils/borderStyles.test.tsx > MainContent tool group border SVG snapshots > should render SVG snapshot for a pending search dialog (google_web_search)
Error: Snapshot `MainContent tool group border SVG snapshots > should render SVG snapshot for a pending search dialog (google_web_search) 2` mismatched
- Expected
+ Received
@@ -2,44 +2,22 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="360" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="9" y="19" fill="#4796e4" textLength="9" lengthAdjust="spacingAndGlyphs">▝</text>
- <text x="18" y="19" fill="#6688d9" textLength="9" lengthAdjust="spacingAndGlyphs">▜</text>
-  <text x="27" y="19" fill="#847ace" textLength="9" lengthAdjust="spacingAndGlyphs">▄</text>
- <text x="90" y="19" fill="#ffffff" textLength="297" lengthAdjust="spacingAndGlyphs">▗█▀▀▜▙▝█▛▀▀▌▜██▖▟██▘▜█▘▜██▖▝█▛▝█▛</text>
- <text x="27" y="36" fill="#847ace" textLength="9" lengthAdjust="spacingAndGlyphs">▝</text>
- <text x="36" y="36" fill="#a471a7" textLength="9" lengthAdjust="spacingAndGlyphs">▜</text>
-  <text x="45" y="36" fill="#c3677f" textLength="9" lengthAdjust="spacingAndGlyphs">▄</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> ▝▜▄ ▗█▀▀▜▙▝█▛▀▀▌▜██▖▟██▘▜█▘▜██▖▝█▛▝█▛ </text>
- <text x="90" y="36" fill="#ffffff" textLength="297" lengthAdjust="spacingAndGlyphs">█▌ █▙▟ ▐█▝█▛▐█ ▐█ ▐█▝█▖█▌ █▌</text>
- <text x="18" y="53" fill="#6688d9" textLength="9" lengthAdjust="spacingAndGlyphs">▗</text>
- <text x="27" y="53" fill="#847ace" textLength="9" lengthAdjust="spacingAndGlyphs">▟</text>
-  <text x="36" y="53" fill="#a471a7" textLength="9" lengthAdjust="spacingAndGlyphs">▀</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> ▝▜▄ █▌ █▙▟ ▐█▝█▛▐█ ▐█ ▐█▝█▖█▌ █▌ </text>
- <text x="90" y="53" fill="#ffffff" textLength="297" lengthAdjust="spacingAndGlyphs">▜▙ ▝█▛ █▌▝ ▖▐█ ▐█ ▐█ ▐█ ▝██▌ █▌</text>
- <text x="9" y="70" fill="#4796e4" textLength="9" lengthAdjust="spacingAndGlyphs">▝</text>
-  <text x="18" y="70" fill="#6688d9" textLength="9" lengthAdjust="spacingAndGlyphs">▀</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> ▗▟▀ ▜▙ ▝█▛ █▌▝ ▖▐█ ▐█ ▐█ ▐█ ▝██▌ █▌ </text>
- <text x="90" y="70" fill="#ffffff" textLength="297" lengthAdjust="spacingAndGlyphs"> ▀▀▀▀▘▝▀▀▀▀▘▀▀▘ ▀▀▘▀▀▘▀▀▘ ▝▀▀▝▀▀</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> ▝▀  ▀▀▀▀▘▝▀▀▀▀▘▀▀▘ ▀▀▘▀▀▘▀▀▘ ▝▀▀▝▀▀ </text>
- <text x="9" y="104" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs" font-weight="bold">Gemini CLI</text>
-  <text x="99" y="104" fill="#afafaf" textLength="63" lengthAdjust="spacingAndGlyphs"> v1.2.3</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> Gemini CLI v1.2.3 </text>
- <text x="0" y="155" fill="#ffffff" textLength="225" lengthAdjust="spacingAndGlyphs">Tips for getting started:</text>
-  <text x="0" y="172" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">1. Create </text>
+ <text x="0" y="155" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Tips for getting started:  </text>
- <text x="90" y="172" fill="#ffffff" textLength="81" lengthAdjust="spacingAndGlyphs" font-weight="bold">GEMINI.md</text>
- <text x="171" y="172" fill="#ffffff" textLength="333" lengthAdjust="spacingAndGlyphs"> files to customize your interactions</text>
- <text x="0" y="189" fill="#ffffff" textLength="27" lengthAdjust="spacingAndGlyphs">2. </text>
-  <text x="27" y="189" fill="#afafaf" textLength="45" lengthAdjust="spacingAndGlyphs">/help</text>
+ <text x="0" y="172" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">1. Create GEMINI.md files to customize your interactions </text>
- <text x="72" y="189" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs"> for more information</text>
+ <text x="0" y="189" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">2. /help for more information </text>
- <text x="0" y="206" fill="#ffffff" textLength="450" lengthAdjust="spacingAndGlyphs">3. Ask coding questions, edit code or run commands</text>
+ <text x="0" y="206" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">3. Ask coding questions, edit code or run commands </text>
- <text x="0" y="223" fill="#ffffff" textLength="315" lengthAdjust="spacingAndGlyphs">4. Be specific for the best results</text>
+ <text x="0" y="223" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">4. Be specific for the best results </text>
- <text x="0" y="257" fill="#ffffaf" textLength="864" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────╮</text>
-  <text x="0" y="274" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="257" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────╮ </text>
- <text x="18" y="274" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs">⊶</text>
- <text x="45" y="274" fill="#ffffff" textLength="153" lengthAdjust="spacingAndGlyphs" font-weight="bold">google_web_search</text>
-  <text x="855" y="274" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="274" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ⊶ google_web_search │ </text>
- <text x="0" y="291" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="855" y="291" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="308" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="291" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ </text>
- <text x="18" y="308" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs">Searching...</text>
-  <text x="855" y="308" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="308" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Searching... │ </text>
- <text x="0" y="325" fill="#ffffaf" textLength="864" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="325" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────╯ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/borderStyles.test.tsx:134:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[122/184]⎯
FAIL src/ui/utils/borderStyles.test.tsx > MainContent tool group border SVG snapshots > should render SVG snapshot for an empty slice following a search tool
Error: Snapshot `MainContent tool group border SVG snapshots > should render SVG snapshot for an empty slice following a search tool 2` mismatched
- Expected
+ Received
@@ -2,44 +2,22 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="360" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="9" y="19" fill="#4796e4" textLength="9" lengthAdjust="spacingAndGlyphs">▝</text>
- <text x="18" y="19" fill="#6688d9" textLength="9" lengthAdjust="spacingAndGlyphs">▜</text>
-  <text x="27" y="19" fill="#847ace" textLength="9" lengthAdjust="spacingAndGlyphs">▄</text>
- <text x="90" y="19" fill="#ffffff" textLength="297" lengthAdjust="spacingAndGlyphs">▗█▀▀▜▙▝█▛▀▀▌▜██▖▟██▘▜█▘▜██▖▝█▛▝█▛</text>
- <text x="27" y="36" fill="#847ace" textLength="9" lengthAdjust="spacingAndGlyphs">▝</text>
- <text x="36" y="36" fill="#a471a7" textLength="9" lengthAdjust="spacingAndGlyphs">▜</text>
-  <text x="45" y="36" fill="#c3677f" textLength="9" lengthAdjust="spacingAndGlyphs">▄</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> ▝▜▄ ▗█▀▀▜▙▝█▛▀▀▌▜██▖▟██▘▜█▘▜██▖▝█▛▝█▛ </text>
- <text x="90" y="36" fill="#ffffff" textLength="297" lengthAdjust="spacingAndGlyphs">█▌ █▙▟ ▐█▝█▛▐█ ▐█ ▐█▝█▖█▌ █▌</text>
- <text x="18" y="53" fill="#6688d9" textLength="9" lengthAdjust="spacingAndGlyphs">▗</text>
- <text x="27" y="53" fill="#847ace" textLength="9" lengthAdjust="spacingAndGlyphs">▟</text>
-  <text x="36" y="53" fill="#a471a7" textLength="9" lengthAdjust="spacingAndGlyphs">▀</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> ▝▜▄ █▌ █▙▟ ▐█▝█▛▐█ ▐█ ▐█▝█▖█▌ █▌ </text>
- <text x="90" y="53" fill="#ffffff" textLength="297" lengthAdjust="spacingAndGlyphs">▜▙ ▝█▛ █▌▝ ▖▐█ ▐█ ▐█ ▐█ ▝██▌ █▌</text>
- <text x="9" y="70" fill="#4796e4" textLength="9" lengthAdjust="spacingAndGlyphs">▝</text>
-  <text x="18" y="70" fill="#6688d9" textLength="9" lengthAdjust="spacingAndGlyphs">▀</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> ▗▟▀ ▜▙ ▝█▛ █▌▝ ▖▐█ ▐█ ▐█ ▐█ ▝██▌ █▌ </text>
- <text x="90" y="70" fill="#ffffff" textLength="297" lengthAdjust="spacingAndGlyphs"> ▀▀▀▀▘▝▀▀▀▀▘▀▀▘ ▀▀▘▀▀▘▀▀▘ ▝▀▀▝▀▀</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> ▝▀  ▀▀▀▀▘▝▀▀▀▀▘▀▀▘ ▀▀▘▀▀▘▀▀▘ ▝▀▀▝▀▀ </text>
- <text x="9" y="104" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs" font-weight="bold">Gemini CLI</text>
-  <text x="99" y="104" fill="#afafaf" textLength="63" lengthAdjust="spacingAndGlyphs"> v1.2.3</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> Gemini CLI v1.2.3 </text>
- <text x="0" y="155" fill="#ffffff" textLength="225" lengthAdjust="spacingAndGlyphs">Tips for getting started:</text>
-  <text x="0" y="172" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">1. Create </text>
+ <text x="0" y="155" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Tips for getting started:  </text>
- <text x="90" y="172" fill="#ffffff" textLength="81" lengthAdjust="spacingAndGlyphs" font-weight="bold">GEMINI.md</text>
- <text x="171" y="172" fill="#ffffff" textLength="333" lengthAdjust="spacingAndGlyphs"> files to customize your interactions</text>
- <text x="0" y="189" fill="#ffffff" textLength="27" lengthAdjust="spacingAndGlyphs">2. </text>
-  <text x="27" y="189" fill="#afafaf" textLength="45" lengthAdjust="spacingAndGlyphs">/help</text>
+ <text x="0" y="172" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">1. Create GEMINI.md files to customize your interactions </text>
- <text x="72" y="189" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs"> for more information</text>
+ <text x="0" y="189" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">2. /help for more information </text>
- <text x="0" y="206" fill="#ffffff" textLength="450" lengthAdjust="spacingAndGlyphs">3. Ask coding questions, edit code or run commands</text>
+ <text x="0" y="206" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">3. Ask coding questions, edit code or run commands </text>
- <text x="0" y="223" fill="#ffffff" textLength="315" lengthAdjust="spacingAndGlyphs">4. Be specific for the best results</text>
+ <text x="0" y="223" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">4. Be specific for the best results </text>
- <text x="0" y="257" fill="#ffffaf" textLength="864" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────╮</text>
-  <text x="0" y="274" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="257" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────╮ </text>
- <text x="18" y="274" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs">⊶</text>
- <text x="45" y="274" fill="#ffffff" textLength="153" lengthAdjust="spacingAndGlyphs" font-weight="bold">google_web_search</text>
-  <text x="855" y="274" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="274" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ⊶ google_web_search │ </text>
- <text x="0" y="291" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="855" y="291" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="308" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="291" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ </text>
- <text x="18" y="308" fill="#ffffff" textLength="108" lengthAdjust="spacingAndGlyphs">Searching...</text>
-  <text x="855" y="308" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="308" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Searching... │ </text>
- <text x="0" y="325" fill="#ffffaf" textLength="864" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="325" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────╯ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/borderStyles.test.tsx:163:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[123/184]⎯
FAIL src/ui/utils/borderStyles.test.tsx > MainContent tool group border SVG snapshots > should render SVG snapshot for a shell tool
Error: Snapshot `MainContent tool group border SVG snapshots > should render SVG snapshot for a shell tool 2` mismatched
- Expected
+ Received
@@ -2,44 +2,22 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="360" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="9" y="19" fill="#4796e4" textLength="9" lengthAdjust="spacingAndGlyphs">▝</text>
- <text x="18" y="19" fill="#6688d9" textLength="9" lengthAdjust="spacingAndGlyphs">▜</text>
- <text x="27" y="19" fill="#847ace" textLength="9" lengthAdjust="spacingAndGlyphs">▄</text>
- <text x="90" y="19" fill="#ffffff" textLength="297" lengthAdjust="spacingAndGlyphs">▗█▀▀▜▙▝█▛▀▀▌▜██▖▟██▘▜█▘▜██▖▝█▛▝█▛</text>
- <text x="27" y="36" fill="#847ace" textLength="9" lengthAdjust="spacingAndGlyphs">▝</text>
- <text x="36" y="36" fill="#a471a7" textLength="9" lengthAdjust="spacingAndGlyphs">▜</text>
-  <text x="45" y="36" fill="#c3677f" textLength="9" lengthAdjust="spacingAndGlyphs">▄</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> ▝▜▄ ▗█▀▀▜▙▝█▛▀▀▌▜██▖▟██▘▜█▘▜██▖▝█▛▝█▛ </text>
- <text x="90" y="36" fill="#ffffff" textLength="297" lengthAdjust="spacingAndGlyphs">█▌ █▙▟ ▐█▝█▛▐█ ▐█ ▐█▝█▖█▌ █▌</text>
- <text x="18" y="53" fill="#6688d9" textLength="9" lengthAdjust="spacingAndGlyphs">▗</text>
- <text x="27" y="53" fill="#847ace" textLength="9" lengthAdjust="spacingAndGlyphs">▟</text>
-  <text x="36" y="53" fill="#a471a7" textLength="9" lengthAdjust="spacingAndGlyphs">▀</text>
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> ▝▜▄ █▌ █▙▟ ▐█▝█▛▐█ ▐█ ▐█▝█▖█▌ █▌ </text>
- <text x="90" y="53" fill="#ffffff" textLength="297" lengthAdjust="spacingAndGlyphs">▜▙ ▝█▛ █▌▝ ▖▐█ ▐█ ▐█ ▐█ ▝██▌ █▌</text>
- <text x="9" y="70" fill="#4796e4" textLength="9" lengthAdjust="spacingAndGlyphs">▝</text>
-  <text x="18" y="70" fill="#6688d9" textLength="9" lengthAdjust="spacingAndGlyphs">▀</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> ▗▟▀ ▜▙ ▝█▛ █▌▝ ▖▐█ ▐█ ▐█ ▐█ ▝██▌ █▌ </text>
- <text x="90" y="70" fill="#ffffff" textLength="297" lengthAdjust="spacingAndGlyphs"> ▀▀▀▀▘▝▀▀▀▀▘▀▀▘ ▀▀▘▀▀▘▀▀▘ ▝▀▀▝▀▀</text>
+ <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> ▝▀  ▀▀▀▀▘▝▀▀▀▀▘▀▀▘ ▀▀▘▀▀▘▀▀▘ ▝▀▀▝▀▀ </text>
- <text x="9" y="104" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs" font-weight="bold">Gemini CLI</text>
-  <text x="99" y="104" fill="#afafaf" textLength="63" lengthAdjust="spacingAndGlyphs"> v1.2.3</text>
+ <text x="0" y="104" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> Gemini CLI v1.2.3 </text>
- <text x="0" y="155" fill="#ffffff" textLength="225" lengthAdjust="spacingAndGlyphs">Tips for getting started:</text>
-  <text x="0" y="172" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs">1. Create </text>
+ <text x="0" y="155" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Tips for getting started:  </text>
- <text x="90" y="172" fill="#ffffff" textLength="81" lengthAdjust="spacingAndGlyphs" font-weight="bold">GEMINI.md</text>
- <text x="171" y="172" fill="#ffffff" textLength="333" lengthAdjust="spacingAndGlyphs"> files to customize your interactions</text>
- <text x="0" y="189" fill="#ffffff" textLength="27" lengthAdjust="spacingAndGlyphs">2. </text>
-  <text x="27" y="189" fill="#afafaf" textLength="45" lengthAdjust="spacingAndGlyphs">/help</text>
+ <text x="0" y="172" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">1. Create GEMINI.md files to customize your interactions </text>
- <text x="72" y="189" fill="#ffffff" textLength="189" lengthAdjust="spacingAndGlyphs"> for more information</text>
+ <text x="0" y="189" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">2. /help for more information </text>
- <text x="0" y="206" fill="#ffffff" textLength="450" lengthAdjust="spacingAndGlyphs">3. Ask coding questions, edit code or run commands</text>
+ <text x="0" y="206" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">3. Ask coding questions, edit code or run commands </text>
- <text x="0" y="223" fill="#ffffff" textLength="315" lengthAdjust="spacingAndGlyphs">4. Be specific for the best results</text>
+ <text x="0" y="223" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">4. Be specific for the best results </text>
- <text x="0" y="257" fill="#87afff" textLength="864" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────╮</text>
+ <text x="0" y="257" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╭──────────────────────────────────────────────────────────────────────────────────────────────╮ </text>
- <text x="0" y="274" fill="#87afff" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="18" y="274" fill="#87afff" textLength="9" lengthAdjust="spacingAndGlyphs">⊶</text>
- <text x="45" y="274" fill="#ffffff" textLength="153" lengthAdjust="spacingAndGlyphs" font-weight="bold">run_shell_command</text>
-  <text x="855" y="274" fill="#87afff" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="274" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ ⊶ run_shell_command │ </text>
- <text x="0" y="291" fill="#87afff" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
- <text x="855" y="291" fill="#87afff" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
-  <text x="0" y="308" fill="#87afff" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="291" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ │ </text>
- <text x="18" y="308" fill="#ffffff" textLength="162" lengthAdjust="spacingAndGlyphs">Running command...</text>
-  <text x="855" y="308" fill="#87afff" textLength="9" lengthAdjust="spacingAndGlyphs">│</text>
+ <text x="0" y="308" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">│ Running command... │ </text>
- <text x="0" y="325" fill="#87afff" textLength="864" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────╯</text>
+ <text x="0" y="325" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">╰──────────────────────────────────────────────────────────────────────────────────────────────╯ </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/utils/borderStyles.test.tsx:188:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[124/184]⎯
FAIL src/ui/components/shared/BaseSelectionList.test.tsx > BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should scroll down when activeIndex moves beyond the visible window
Error: lastFrame() returned an empty string. If this is intentional, use lastFrame({ allowEmpty: true }). Otherwise, ensure you are calling await waitUntilReady() and that the component is rendering correctly.
lastFrame src/test-utils/render.tsx:201:13
199|
200| if (normalized === '' && !options.allowEmpty) {
201| throw new Error(
| ^
202| 'lastFrame() returned an empty string. If this is intentional,…
203| 'Otherwise, ensure you are calling await waitUntilReady() an…
src/ui/components/shared/BaseSelectionList.test.tsx:352:22
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[125/184]⎯
FAIL src/ui/components/shared/BaseSelectionList.test.tsx > BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should scroll up when activeIndex moves before the visible window
Error: lastFrame() returned an empty string. If this is intentional, use lastFrame({ allowEmpty: true }). Otherwise, ensure you are calling await waitUntilReady() and that the component is rendering correctly.
lastFrame src/test-utils/render.tsx:201:13
199|
200| if (normalized === '' && !options.allowEmpty) {
201| throw new Error(
| ^
202| 'lastFrame() returned an empty string. If this is intentional,…
203| 'Otherwise, ensure you are calling await waitUntilReady() an…
src/ui/components/shared/BaseSelectionList.test.tsx:366:20
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[126/184]⎯
FAIL src/ui/components/shared/BaseSelectionList.test.tsx > BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should handle dynamic scrolling through multiple activeIndex changes
Error: lastFrame() returned an empty string. If this is intentional, use lastFrame({ allowEmpty: true }). Otherwise, ensure you are calling await waitUntilReady() and that the component is rendering correctly.
lastFrame src/test-utils/render.tsx:201:13
199|
200| if (normalized === '' && !options.allowEmpty) {
201| throw new Error(
| ^
202| 'lastFrame() returned an empty string. If this is intentional,…
203| 'Otherwise, ensure you are calling await waitUntilReady() an…
src/ui/components/shared/BaseSelectionList.test.tsx:404:14
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[127/184]⎯
FAIL src/ui/components/shared/BaseSettingsDialog.test.tsx > BaseSettingsDialog > edit mode > should commit edit on Enter
AssertionError: expected "spy" to be called with arguments: [ 'string-setting', …(2) ]
Number of calls: 0

src/ui/components/shared/BaseSettingsDialog.test.tsx:577:34
575|
576| await waitFor(() => {
577| expect(mockOnEditCommit).toHaveBeenCalledWith(
| ^
578| 'string-setting',
579| 'test-valuex',
waitFor src/test-utils/async.ts:23:13
src/ui/components/shared/BaseSettingsDialog.test.tsx:576:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[128/184]⎯
FAIL src/ui/components/shared/BaseSettingsDialog.test.tsx > BaseSettingsDialog > edit mode > should support quick number entry for number fields
AssertionError: expected "spy" to be called with arguments: [ 'number-setting', '5', …(1) ]
Number of calls: 0

src/ui/components/shared/BaseSettingsDialog.test.tsx:738:34
736|
737| await waitFor(() => {
738| expect(mockOnEditCommit).toHaveBeenCalledWith(
| ^
739| 'number-setting',
740| '5',
waitFor src/test-utils/async.ts:23:13
src/ui/components/shared/BaseSettingsDialog.test.tsx:737:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[129/184]⎯
FAIL src/ui/components/shared/BaseSettingsDialog.test.tsx > BaseSettingsDialog > edit mode > should allow j and k characters to be typed in string edit fields without triggering navigation
AssertionError: expected "spy" to be called with arguments: [ 'string-setting', …(2) ]
Number of calls: 0

src/ui/components/shared/BaseSettingsDialog.test.tsx:780:34
778| // j and k should be typed into the field
779| await waitFor(() => {
780| expect(mockOnEditCommit).toHaveBeenCalledWith(
| ^
781| 'string-setting',
782| 'test-valuejk', // entered value + j and k
waitFor src/test-utils/async.ts:23:13
src/ui/components/shared/BaseSettingsDialog.test.tsx:779:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[130/184]⎯
FAIL src/ui/components/shared/EnumSelector.test.tsx > <EnumSelector /> > renders with single option and matches snapshot
Error: Snapshot `<EnumSelector /> > renders with single option and matches snapshot 1` mismatched
- Expected
+ Received
- " Only Option 
+ " Only Option
 "
src/ui/components/shared/EnumSelector.test.tsx:78:25
76| />,
77| );
78| expect(lastFrame()).toMatchSnapshot();
| ^
79| unmount();
80| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[131/184]⎯
FAIL src/ui/components/shared/EnumSelector.test.tsx > <EnumSelector /> > updates when currentValue changes externally
Error: lastFrame() returned an empty string. If this is intentional, use lastFrame({ allowEmpty: true }). Otherwise, ensure you are calling await waitUntilReady() and that the component is rendering correctly.
lastFrame src/test-utils/render.tsx:201:13
199|
200| if (normalized === '' && !options.allowEmpty) {
201| throw new Error(
| ^
202| 'lastFrame() returned an empty string. If this is intentional,…
203| 'Otherwise, ensure you are calling await waitUntilReady() an…
src/ui/components/shared/EnumSelector.test.tsx:132:12
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[132/184]⎯
FAIL src/ui/components/shared/ExpandableText.test.tsx > ExpandableText > renders plain label when no match (short label)
Error: Snapshot `ExpandableText > renders plain label when no match (short label) 2` mismatched
- Expected
+ Received
@@ -2,8 +2,8 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="37" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#e5e5e5" textLength="126" lengthAdjust="spacingAndGlyphs">simple command</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">simple command </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/shared/ExpandableText.test.tsx:26:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[133/184]⎯
FAIL src/ui/components/shared/ExpandableText.test.tsx > ExpandableText > truncates long label when collapsed and no match
Error: Snapshot `ExpandableText > truncates long label when collapsed and no match 2` mismatched
- Expected
+ Received
@@ -2,9 +2,9 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="54" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#e5e5e5" textLength="900" lengthAdjust="spacingAndGlyphs">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</text>
- <text x="0" y="19" fill="#e5e5e5" textLength="477" lengthAdjust="spacingAndGlyphs">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx... </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/shared/ExpandableText.test.tsx:45:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[134/184]⎯
FAIL src/ui/components/shared/ExpandableText.test.tsx > ExpandableText > shows full long label when expanded and no match
Error: Snapshot `ExpandableText > shows full long label when expanded and no match 2` mismatched
- Expected
+ Received
@@ -2,9 +2,9 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="54" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#e5e5e5" textLength="900" lengthAdjust="spacingAndGlyphs">yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy</text>
- <text x="0" y="19" fill="#e5e5e5" textLength="675" lengthAdjust="spacingAndGlyphs">yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/shared/ExpandableText.test.tsx:63:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[135/184]⎯
FAIL src/ui/components/shared/ExpandableText.test.tsx > ExpandableText > highlights matched substring when expanded (text only visible)
Error: Snapshot `ExpandableText > highlights matched substring when expanded (text only visible) 2` mismatched
- Expected
+ Received
@@ -2,11 +2,8 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="37" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#e5e5e5" textLength="81" lengthAdjust="spacingAndGlyphs">run: git </text>
- <rect x="81" y="0" width="54" height="17" fill="#e5e5e5" />
- <text x="81" y="2" fill="#000000" textLength="54" lengthAdjust="spacingAndGlyphs">commit</text>
-  <text x="135" y="2" fill="#e5e5e5" textLength="198" lengthAdjust="spacingAndGlyphs"> -m &quot;feat: add search&quot;</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">run: git commit -m &quot;feat: add search&quot; </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/shared/ExpandableText.test.tsx:82:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[136/184]⎯
FAIL src/ui/components/shared/ExpandableText.test.tsx > ExpandableText > creates centered window around match when collapsed
Error: Snapshot `ExpandableText > creates centered window around match when collapsed 2` mismatched
- Expected
+ Received
@@ -2,12 +2,9 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="54" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#e5e5e5" textLength="621" lengthAdjust="spacingAndGlyphs">...ry/long/path/that/keeps/going/cd_/very/long/path/that/keeps/going/</text>
- <rect x="621" y="0" width="99" height="17" fill="#e5e5e5" />
- <text x="621" y="2" fill="#000000" textLength="99" lengthAdjust="spacingAndGlyphs">search-here</text>
-  <text x="720" y="2" fill="#e5e5e5" textLength="180" lengthAdjust="spacingAndGlyphs">/and/then/some/more/</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">...ry/long/path/that/keeps/going/cd_/very/long/path/that/keeps/going/search-here/and/then/some/more/</text>
- <text x="0" y="19" fill="#e5e5e5" textLength="450" lengthAdjust="spacingAndGlyphs">components//and/then/some/more/components//and/...</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">components//and/then/some/more/components//and/... </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/shared/ExpandableText.test.tsx:108:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[137/184]⎯
FAIL src/ui/components/shared/ExpandableText.test.tsx > ExpandableText > truncates match itself when match is very long
Error: Snapshot `ExpandableText > truncates match itself when match is very long 2` mismatched
- Expected
+ Received
@@ -2,11 +2,9 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="54" fill="#000000" />
 <g transform="translate(10, 10)">
- <rect x="0" y="0" width="900" height="17" fill="#e5e5e5" />
- <text x="0" y="2" fill="#000000" textLength="900" lengthAdjust="spacingAndGlyphs">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</text>
- <rect x="0" y="17" width="468" height="17" fill="#e5e5e5" />
- <text x="0" y="19" fill="#000000" textLength="468" lengthAdjust="spacingAndGlyphs">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...</text>
+ <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx... </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/shared/ExpandableText.test.tsx:134:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[138/184]⎯
FAIL src/ui/components/shared/ExpandableText.test.tsx > ExpandableText > respects custom maxWidth
Error: Snapshot `ExpandableText > respects custom maxWidth 2` mismatched
- Expected
+ Received
@@ -2,8 +2,8 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="37" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#e5e5e5" textLength="477" lengthAdjust="spacingAndGlyphs">zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz... </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/shared/ExpandableText.test.tsx:155:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[139/184]⎯
FAIL src/ui/components/shared/HalfLinePaddedBox.test.tsx > <HalfLinePaddedBox /> > renders standard background and blocks when not iTerm2
Error: Snapshot `<HalfLinePaddedBox /> > renders standard background and blocks when not iTerm2 1` mismatched
- Expected
+ Received
 "▀▀▀▀▀▀▀▀▀▀
- Content 
+ Content
 ▄▄▄▄▄▄▄▄▄▄
 "
src/ui/components/shared/HalfLinePaddedBox.test.tsx:38:25
36| );
37|
38| expect(lastFrame()).toMatchSnapshot();
| ^
39|
40| unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[140/184]⎯
FAIL src/ui/components/shared/HalfLinePaddedBox.test.tsx > <HalfLinePaddedBox /> > renders iTerm2-specific blocks when iTerm2 is detected
Error: Snapshot `<HalfLinePaddedBox /> > renders iTerm2-specific blocks when iTerm2 is detected 1` mismatched
- Expected
+ Received
 "▄▄▄▄▄▄▄▄▄▄
- Content 
+ Content
 ▀▀▀▀▀▀▀▀▀▀
 "
src/ui/components/shared/HalfLinePaddedBox.test.tsx:53:25
51| );
52|
53| expect(lastFrame()).toMatchSnapshot();
| ^
54|
55| unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[141/184]⎯
FAIL src/ui/components/shared/SearchableList.test.tsx > SearchableList > should reset selection to top when items change if resetSelectionOnItemsChange is true
Error: Snapshot `SearchableList > should reset selection to top when items change if resetSelectionOnItemsChange is true 1` mismatched
- Expected
+ Received
@@ -2,14 +2,14 @@
 ╭────────────────────────────────────────────────────────────────────────────────────────────────╮
 │ Search... │
 ╰────────────────────────────────────────────────────────────────────────────────────────────────╯
- Item One 
+ Item One
 Description for item one
- ● Item Two 
+ ● Item Two
 Description for item two
 Item Three
 Description for item three
 "
src/ui/components/shared/SearchableList.test.tsx:123:25
121| expect(frame).toContain('● Item Two');
122| });
123| expect(lastFrame()).toMatchSnapshot();
| ^
124|
125| await React.act(async () => {
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[142/184]⎯
FAIL src/ui/components/shared/SearchableList.test.tsx > SearchableList > should match snapshot
Error: Snapshot `SearchableList > should match snapshot 1` mismatched
- Expected
+ Received
@@ -2,14 +2,14 @@
 ╭────────────────────────────────────────────────────────────────────────────────────────────────╮
 │ Search... │
 ╰────────────────────────────────────────────────────────────────────────────────────────────────╯
- ● Item One 
+ ● Item One
 Description for item one
- Item Two 
+ Item Two
 Description for item two
 Item Three
 Description for item three
 "
src/ui/components/shared/SearchableList.test.tsx:220:25
218| it('should match snapshot', async () => {
219| const { lastFrame } = await renderList();
220| expect(lastFrame()).toMatchSnapshot();
| ^
221| });
222| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[143/184]⎯
FAIL src/ui/components/shared/VirtualizedList.test.tsx > <VirtualizedList /> > with 10px height and 100 items > renders only visible items ('top')
AssertionError: expected '╭────────────────────────────────────…' to contain 'Item 0'
- Expected
+ Received
- Item 0
+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮
+ │ █│
+ │ ▀│
+ │ │
+ │ │
+ │ │
+ │ │
+ │ │
+ │ │
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
+
src/ui/components/shared/VirtualizedList.test.tsx:69:26
67| const output = lastFrame();
68| visible.forEach((item) => {
69| expect(output).toContain(item);
| ^
70| });
71| notVisible.forEach((item) => {
src/ui/components/shared/VirtualizedList.test.tsx:68:17
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[144/184]⎯
FAIL src/ui/components/shared/VirtualizedList.test.tsx > <VirtualizedList /> > with 10px height and 100 items > sticks to bottom when new items added
AssertionError: expected '╭────────────────────────────────────…' to contain 'Item 99'
- Expected
+ Received
- Item 99
+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮
+ │ │
+ │ │
+ │ │
+ │ │
+ │ │
+ │ │
+ │ │
+ │ █│
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
+
src/ui/components/shared/VirtualizedList.test.tsx:92:27
90| );
91|
92| expect(lastFrame()).toContain('Item 99');
| ^
93|
94| // Add items
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[145/184]⎯
FAIL src/ui/components/shared/VirtualizedList.test.tsx > <VirtualizedList /> > with 10px height and 100 items > scrolls down to show new items when requested via ref
AssertionError: expected '╭────────────────────────────────────…' to contain 'Item 0'
- Expected
+ Received
- Item 0
+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮
+ │ █│
+ │ ▀│
+ │ │
+ │ │
+ │ │
+ │ │
+ │ │
+ │ │
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
+
src/ui/components/shared/VirtualizedList.test.tsx:132:27
130| );
131|
132| expect(lastFrame()).toContain('Item 0');
| ^
133|
134| // Scroll to bottom via ref
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[146/184]⎯
FAIL src/ui/components/shared/VirtualizedList.test.tsx > <VirtualizedList /> > with 10px height and 100 items > mounts only visible items with 1000 items and 10px height (scroll: +0)
Error: Snapshot `<VirtualizedList /> > with 10px height and 100 items > mounts only visible items with 1000 items and 10px height (scroll: +0) 1` mismatched
- Expected
+ Received
 "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮
- │Item 0 █│
+ │  █│
 │ │
 │ │
 │ │
 │ │
- │Item 1 │
+ │  │
 │ │
 │ │
 │ │
 │ │
- │Item 2 │
+ │  │
 │ │
 │ │
 │ │
 │ │
- │Item 3 │
+ │  │
 │ │
 │ │
 ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
 "
src/ui/components/shared/VirtualizedList.test.tsx:189:23
187| const frame = lastFrame();
188| expect(mountedCount).toBe(expectedMountedCount);
189| expect(frame).toMatchSnapshot();
| ^
190| unmount();
191| },
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[147/184]⎯
FAIL src/ui/components/shared/VirtualizedList.test.tsx > <VirtualizedList /> > with 10px height and 100 items > mounts only visible items with 1000 items and 10px height (scroll: 500)
Error: Snapshot `<VirtualizedList /> > with 10px height and 100 items > mounts only visible items with 1000 items and 10px height (scroll: 500) 1` mismatched
- Expected
+ Received
 "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮
- │Item 500 │
+ │  │
 │ │
 │ │
 │ │
 │ │
- │Item 501 │
+ │  │
 │ │
 │ │
 │ ▄│
 │ ▀│
- │Item 502 │
+ │  │
 │ │
 │ │
 │ │
 │ │
- │Item 503 │
+ │  │
 │ │
 │ │
 ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
 "
src/ui/components/shared/VirtualizedList.test.tsx:189:23
187| const frame = lastFrame();
188| expect(mountedCount).toBe(expectedMountedCount);
189| expect(frame).toMatchSnapshot();
| ^
190| unmount();
191| },
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[148/184]⎯
FAIL src/ui/components/shared/VirtualizedList.test.tsx > <VirtualizedList /> > renders more items when a visible item shrinks via context update
Error: lastFrame() returned an empty string. If this is intentional, use lastFrame({ allowEmpty: true }). Otherwise, ensure you are calling await waitUntilReady() and that the component is rendering correctly.
lastFrame src/test-utils/render.tsx:201:13
199|
200| if (normalized === '' && !options.allowEmpty) {
201| throw new Error(
| ^
202| 'lastFrame() returned an empty string. If this is intentional,…
203| 'Otherwise, ensure you are calling await waitUntilReady() an…
src/ui/components/shared/VirtualizedList.test.tsx:259:12
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[149/184]⎯
FAIL src/ui/components/shared/VirtualizedList.test.tsx > <VirtualizedList /> > renders correctly in copyModeEnabled when scrolled
Error: lastFrame() returned an empty string. If this is intentional, use lastFrame({ allowEmpty: true }). Otherwise, ensure you are calling await waitUntilReady() and that the component is rendering correctly.
lastFrame src/test-utils/render.tsx:201:13
199|
200| if (normalized === '' && !options.allowEmpty) {
201| throw new Error(
| ^
202| 'lastFrame() returned an empty string. If this is intentional,…
203| 'Otherwise, ensure you are calling await waitUntilReady() an…
src/ui/components/shared/VirtualizedList.test.tsx:340:12
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[150/184]⎯
FAIL src/ui/components/messages/DenseToolMessage.test.tsx > DenseToolMessage > Visual Regression > matches SVG snapshot for an Accepted file edit with diff stats
Error: Snapshot `DenseToolMessage > Visual Regression > matches SVG snapshot for an Accepted file edit with diff stats 2` mismatched
- Expected
+ Received
@@ -2,32 +2,10 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="88" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="18" y="2" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">✓</text>
- <text x="45" y="2" fill="#ffffff" textLength="45" lengthAdjust="spacingAndGlyphs" font-weight="bold">edit </text>
- <text x="99" y="2" fill="#afafaf" textLength="63" lengthAdjust="spacingAndGlyphs">test.ts</text>
- <text x="171" y="2" fill="#d7afff" textLength="90" lengthAdjust="spacingAndGlyphs">→ Accepted</text>
- <text x="270" y="2" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">(</text>
- <text x="279" y="2" fill="#d7ffd7" textLength="18" lengthAdjust="spacingAndGlyphs">+1</text>
- <text x="297" y="2" fill="#afafaf" textLength="18" lengthAdjust="spacingAndGlyphs">, </text>
-  <text x="315" y="2" fill="#ff87af" textLength="18" lengthAdjust="spacingAndGlyphs">-1</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> ✓ edit test.ts → Accepted (+1, -1) </text>
- <text x="333" y="2" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">)</text>
- <rect x="54" y="34" width="9" height="17" fill="#5f0000" />
- <text x="54" y="36" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">1</text>
- <rect x="63" y="34" width="9" height="17" fill="#5f0000" />
- <rect x="72" y="34" width="9" height="17" fill="#5f0000" />
- <text x="72" y="36" fill="#ff87af" textLength="9" lengthAdjust="spacingAndGlyphs">-</text>
- <rect x="81" y="34" width="9" height="17" fill="#5f0000" />
- <rect x="90" y="34" width="27" height="17" fill="#5f0000" />
- <text x="90" y="36" fill="#e5e5e5" textLength="27" lengthAdjust="spacingAndGlyphs">old</text>
-  <rect x="54" y="51" width="9" height="17" fill="#005f00" />
+ <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> 1 - old </text>
- <text x="54" y="53" fill="#afafaf" textLength="9" lengthAdjust="spacingAndGlyphs">1</text>
- <rect x="63" y="51" width="9" height="17" fill="#005f00" />
- <rect x="72" y="51" width="9" height="17" fill="#005f00" />
- <text x="72" y="53" fill="#d7ffd7" textLength="9" lengthAdjust="spacingAndGlyphs">+</text>
- <rect x="81" y="51" width="9" height="17" fill="#005f00" />
- <rect x="90" y="51" width="27" height="17" fill="#005f00" />
-  <text x="90" y="53" fill="#0000ee" textLength="27" lengthAdjust="spacingAndGlyphs">new</text>
+ <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> 1 + new </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/messages/DenseToolMessage.test.tsx:599:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[151/184]⎯
FAIL src/ui/components/messages/DenseToolMessage.test.tsx > DenseToolMessage > Visual Regression > matches SVG snapshot for a Rejected tool call
Error: Snapshot `DenseToolMessage > Visual Regression > matches SVG snapshot for a Rejected tool call 2` mismatched
- Expected
+ Received
@@ -2,10 +2,8 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="37" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="18" y="2" fill="#ffffaf" textLength="9" lengthAdjust="spacingAndGlyphs" font-weight="bold">-</text>
- <text x="45" y="2" fill="#ffffff" textLength="90" lengthAdjust="spacingAndGlyphs" font-weight="bold">read_file </text>
-  <text x="144" y="2" fill="#afafaf" textLength="189" lengthAdjust="spacingAndGlyphs">Reading important.txt</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs"> - read_file Reading important.txt </text>
 </g>
 </svg>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/messages/DenseToolMessage.test.tsx:614:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[152/184]⎯
FAIL src/ui/components/messages/RedirectionConfirmation.test.tsx > ToolConfirmationMessage Redirection > should display redirection warning and tip for redirected commands
Error: Snapshot `ToolConfirmationMessage Redirection > should display redirection warning and tip for redirected commands 1` mismatched
- Expected
+ Received
@@ -2,9 +2,9 @@
 │ echo "hello" > test.txt │
 ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
 Allow execution of [echo]?
 Redirection detected. To auto-accept, press Shift+Tab
- ● 1. Allow once 
+ ● 1. Allow once
 2. Allow for this session
 3. No, suggest changes (esc)
 "
src/ui/components/messages/RedirectionConfirmation.test.tsx:50:20
48|
49| const output = lastFrame();
50| expect(output).toMatchSnapshot();
| ^
51| unmount();
52| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[153/184]⎯
FAIL src/ui/components/messages/ThinkingMessage.test.tsx > ThinkingMessage > renders subject line with vertical rule and "Thinking..." header
Error: Snapshot `ThinkingMessage > renders subject line with vertical rule and "Thinking..." header 1` mismatched
- Expected
+ Received
- " Thinking... 
+ " Thinking...
 │
 │ Planning
 │ test
 "
src/ui/components/messages/ThinkingMessage.test.tsx:27:20
25| expect(output).toContain('│');
26| expect(output).toContain('Planning');
27| expect(output).toMatchSnapshot();
| ^
28| await expect(renderResult).toMatchSvgSnapshot();
29| renderResult.unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[154/184]⎯
FAIL src/ui/components/messages/ThinkingMessage.test.tsx > ThinkingMessage > uses description when subject is empty
Error: Snapshot `ThinkingMessage > uses description when subject is empty 1` mismatched
- Expected
+ Received
- " Thinking... 
+ " Thinking...
 │
 │ Processing details
 "
src/ui/components/messages/ThinkingMessage.test.tsx:45:20
43| expect(output).toContain('Processing details');
44| expect(output).toContain('│');
45| expect(output).toMatchSnapshot();
| ^
46| await expect(renderResult).toMatchSvgSnapshot();
47| renderResult.unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[155/184]⎯
FAIL src/ui/components/messages/ThinkingMessage.test.tsx > ThinkingMessage > renders full mode with left border and full text
Error: Snapshot `ThinkingMessage > renders full mode with left border and full text 1` mismatched
- Expected
+ Received
- " Thinking... 
+ " Thinking...
 │
 │ Planning
 │ I am planning the solution.
 "
src/ui/components/messages/ThinkingMessage.test.tsx:67:20
65| expect(output).toContain('Planning');
66| expect(output).toContain('I am planning the solution.');
67| expect(output).toMatchSnapshot();
| ^
68| await expect(renderResult).toMatchSvgSnapshot();
69| renderResult.unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[156/184]⎯
FAIL src/ui/components/messages/ThinkingMessage.test.tsx > ThinkingMessage > renders "Thinking..." header when isFirstThinking is true
Error: Snapshot `ThinkingMessage > renders "Thinking..." header when isFirstThinking is true 1` mismatched
- Expected
+ Received
- " Thinking... 
+ " Thinking...
 │
 │ Summary line
 │ First body line
 "
src/ui/components/messages/ThinkingMessage.test.tsx:89:20
87| expect(output).toContain('Summary line');
88| expect(output).toContain('│');
89| expect(output).toMatchSnapshot();
| ^
90| await expect(renderResult).toMatchSvgSnapshot();
91| renderResult.unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[157/184]⎯
FAIL src/ui/components/messages/ThinkingMessage.test.tsx > ThinkingMessage > normalizes escaped newline tokens
Error: Snapshot `ThinkingMessage > normalizes escaped newline tokens 1` mismatched
- Expected
+ Received
- " Thinking... 
+ " Thinking...
 │
 │ Matching the Blocks
 │ Some more text
 "
src/ui/components/messages/ThinkingMessage.test.tsx:107:38
105| await renderResult.waitUntilReady();
106|
107| expect(renderResult.lastFrame()).toMatchSnapshot();
| ^
108| await expect(renderResult).toMatchSvgSnapshot();
109| renderResult.unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[158/184]⎯
FAIL src/ui/components/messages/ThinkingMessage.test.tsx > ThinkingMessage > renders multiple thinking messages sequentially correctly
Error: Snapshot `ThinkingMessage > renders multiple thinking messages sequentially correctly 1` mismatched
- Expected
+ Received
@@ -1,6 +1,6 @@
- " Thinking... 
+ " Thinking...
 │
 │ Initial analysis
 │ This is a multiple line paragraph for the first thinking message of how the
 │ model analyzes the problem.
 │
src/ui/components/messages/ThinkingMessage.test.tsx:158:38
156| await renderResult.waitUntilReady();
157|
158| expect(renderResult.lastFrame()).toMatchSnapshot();
| ^
159| await expect(renderResult).toMatchSvgSnapshot();
160| renderResult.unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[159/184]⎯
FAIL src/ui/components/messages/ThinkingMessage.test.tsx > ThinkingMessage > filters out progress dots and empty lines
Error: Snapshot `ThinkingMessage > filters out progress dots and empty lines 1` mismatched
- Expected
+ Received
- " Thinking... 
+ " Thinking...
 │
 │ Thinking
 │ Done
 "
src/ui/components/messages/ThinkingMessage.test.tsx:176:38
174| expect(output).toContain('Thinking');
175| expect(output).toContain('Done');
176| expect(renderResult.lastFrame()).toMatchSnapshot();
| ^
177| await expect(renderResult).toMatchSvgSnapshot();
178| renderResult.unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[160/184]⎯
FAIL src/ui/components/messages/ToolConfirmationMessage.test.tsx > ToolConfirmationMessage > should not display urls if prompt and url are the same
Error: Snapshot `ToolConfirmationMessage > should not display urls if prompt and url are the same 1` mismatched
- Expected
+ Received
 "https://example.com
 Do you want to proceed?
- ● 1. Allow once 
+ ● 1. Allow once
 2. Allow for this session
 3. No, suggest changes (esc)
 "
src/ui/components/messages/ToolConfirmationMessage.test.tsx:69:25
67| );
68|
69| expect(lastFrame()).toMatchSnapshot();
| ^
70| unmount();
71| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[161/184]⎯
FAIL src/ui/components/messages/ToolConfirmationMessage.test.tsx > ToolConfirmationMessage > should display urls if prompt and url are different
Error: Snapshot `ToolConfirmationMessage > should display urls if prompt and url are different 1` mismatched
- Expected
+ Received
@@ -2,9 +2,9 @@
 URLs to fetch:
 - https://raw.githubusercontent.com/google/gemini-react/main/README.md
 Do you want to proceed?
- ● 1. Allow once 
+ ● 1. Allow once
 2. Allow for this session
 3. No, suggest changes (esc)
 "
src/ui/components/messages/ToolConfirmationMessage.test.tsx:96:25
94| );
95|
96| expect(lastFrame()).toMatchSnapshot();
| ^
97| unmount();
98| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[162/184]⎯
FAIL src/ui/components/messages/ToolConfirmationMessage.test.tsx > ToolConfirmationMessage > should display multiple commands for exec type when provided
Error: Snapshot `ToolConfirmationMessage > should display multiple commands for exec type when provided 1` mismatched
- Expected
+ Received
@@ -5,9 +5,9 @@
 │ │
 │ whoami │
 ╰──────────────────────────────────────────────────────────────────────────────╯
 Allow execution of [echo, ls, whoami]?
- ● 1. Allow once 
+ ● 1. Allow once
 2. Allow for this session
 3. No, suggest changes (esc)
 "
src/ui/components/messages/ToolConfirmationMessage.test.tsx:242:20
240| expect(output).toContain('ls -la');
241| expect(output).toContain('whoami');
242| expect(output).toMatchSnapshot();
| ^
243| unmount();
244| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[163/184]⎯
FAIL src/ui/components/messages/ToolConfirmationMessage.test.tsx > ToolConfirmationMessage > should render multiline shell scripts with correct newlines and syntax highlighting
Error: Snapshot `ToolConfirmationMessage > should render multiline shell scripts with correct newlines and syntax highlighting 1` mismatched
- Expected
+ Received
@@ -4,8 +4,8 @@
 │ echo $i │
 │ done │
 ╰──────────────────────────────────────────────────────────────────────────────╯
 Allow execution of [echo]?
- ● 1. Allow once 
+ ● 1. Allow once
 2. Allow for this session
 3. No, suggest changes (esc)"
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:73:34
71|
72| // Assert the text matches standard snapshot, stripping ANSI for sta…
73| expect(stripAnsi(textContent)).toMatchSnapshot();
| ^
74|
75| // Assert the SVG matches the file snapshot
src/ui/components/messages/ToolConfirmationMessage.test.tsx:274:26
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[164/184]⎯
FAIL src/ui/components/messages/ToolConfirmationMessage.test.tsx > ToolConfirmationMessage > with folder trust > 'for edit confirmations' > should show "allow always" when folder is trusted
Error: Snapshot `ToolConfirmationMessage > with folder trust > 'for edit confirmations' > should show "allow always" when folder is trusted 1` mismatched
- Expected
+ Received
@@ -3,10 +3,10 @@
 │ No changes detected. │
 │ │
 ╰──────────────────────────────────────────────────────────────────────────────╯
 Apply this change?
- ● 1. Allow once 
+ ● 1. Allow once
 2. Allow for this session
 3. Modify with external editor
 4. No, suggest changes (esc)
 "
src/ui/components/messages/ToolConfirmationMessage.test.tsx:353:29
351| );
352|
353| expect(lastFrame()).toMatchSnapshot();
| ^
354| unmount();
355| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[165/184]⎯
FAIL src/ui/components/messages/ToolConfirmationMessage.test.tsx > ToolConfirmationMessage > with folder trust > 'for edit confirmations' > should NOT show "allow always" when folder is untrusted
Error: Snapshot `ToolConfirmationMessage > with folder trust > 'for edit confirmations' > should NOT show "allow always" when folder is untrusted 1` mismatched
- Expected
+ Received
@@ -3,9 +3,9 @@
 │ No changes detected. │
 │ │
 ╰──────────────────────────────────────────────────────────────────────────────╯
 Apply this change?
- ● 1. Allow once 
+ ● 1. Allow once
 2. Modify with external editor
 3. No, suggest changes (esc)
 "
src/ui/components/messages/ToolConfirmationMessage.test.tsx:377:29
375| );
376|
377| expect(lastFrame()).toMatchSnapshot();
| ^
378| unmount();
379| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[166/184]⎯
FAIL src/ui/components/messages/ToolConfirmationMessage.test.tsx > ToolConfirmationMessage > with folder trust > 'for exec confirmations' > should show "allow always" when folder is trusted
Error: Snapshot `ToolConfirmationMessage > with folder trust > 'for exec confirmations' > should show "allow always" when folder is trusted 1` mismatched
- Expected
+ Received
 "╭──────────────────────────────────────────────────────────────────────────────╮
 │ echo "hello" │
 ╰──────────────────────────────────────────────────────────────────────────────╯
 Allow execution of [echo]?
- ● 1. Allow once 
+ ● 1. Allow once
 2. Allow for this session
 3. No, suggest changes (esc)
 "
src/ui/components/messages/ToolConfirmationMessage.test.tsx:353:29
351| );
352|
353| expect(lastFrame()).toMatchSnapshot();
| ^
354| unmount();
355| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[167/184]⎯
FAIL src/ui/components/messages/ToolConfirmationMessage.test.tsx > ToolConfirmationMessage > with folder trust > 'for exec confirmations' > should NOT show "allow always" when folder is untrusted
Error: Snapshot `ToolConfirmationMessage > with folder trust > 'for exec confirmations' > should NOT show "allow always" when folder is untrusted 1` mismatched
- Expected
+ Received
 "╭──────────────────────────────────────────────────────────────────────────────╮
 │ echo "hello" │
 ╰──────────────────────────────────────────────────────────────────────────────╯
 Allow execution of [echo]?
- ● 1. Allow once 
+ ● 1. Allow once
 2. No, suggest changes (esc)
 "
src/ui/components/messages/ToolConfirmationMessage.test.tsx:377:29
375| );
376|
377| expect(lastFrame()).toMatchSnapshot();
| ^
378| unmount();
379| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[168/184]⎯
FAIL src/ui/components/messages/ToolConfirmationMessage.test.tsx > ToolConfirmationMessage > with folder trust > 'for info confirmations' > should show "allow always" when folder is trusted
Error: Snapshot `ToolConfirmationMessage > with folder trust > 'for info confirmations' > should show "allow always" when folder is trusted 1` mismatched
- Expected
+ Received
 "https://example.com
 Do you want to proceed?
- ● 1. Allow once 
+ ● 1. Allow once
 2. Allow for this session
 3. No, suggest changes (esc)
 "
src/ui/components/messages/ToolConfirmationMessage.test.tsx:353:29
351| );
352|
353| expect(lastFrame()).toMatchSnapshot();
| ^
354| unmount();
355| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[169/184]⎯
FAIL src/ui/components/messages/ToolConfirmationMessage.test.tsx > ToolConfirmationMessage > with folder trust > 'for info confirmations' > should NOT show "allow always" when folder is untrusted
Error: Snapshot `ToolConfirmationMessage > with folder trust > 'for info confirmations' > should NOT show "allow always" when folder is untrusted 1` mismatched
- Expected
+ Received
 "https://example.com
 Do you want to proceed?
- ● 1. Allow once 
+ ● 1. Allow once
 2. No, suggest changes (esc)
 "
src/ui/components/messages/ToolConfirmationMessage.test.tsx:377:29
375| );
376|
377| expect(lastFrame()).toMatchSnapshot();
| ^
378| unmount();
379| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[170/184]⎯
FAIL src/ui/components/messages/ToolConfirmationMessage.test.tsx > ToolConfirmationMessage > with folder trust > 'for mcp confirmations' > should show "allow always" when folder is trusted
Error: Snapshot `ToolConfirmationMessage > with folder trust > 'for mcp confirmations' > should show "allow always" when folder is trusted 1` mismatched
- Expected
+ Received
 "MCP Server: test-server
 Tool: test-tool
 Allow execution of MCP tool "test-tool" from server "test-server"?
- ● 1. Allow once 
+ ● 1. Allow once
 2. Allow tool for this session
 3. Allow all server tools for this session
 4. No, suggest changes (esc)
 "
src/ui/components/messages/ToolConfirmationMessage.test.tsx:353:29
351| );
352|
353| expect(lastFrame()).toMatchSnapshot();
| ^
354| unmount();
355| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[171/184]⎯
FAIL src/ui/components/messages/ToolConfirmationMessage.test.tsx > ToolConfirmationMessage > with folder trust > 'for mcp confirmations' > should NOT show "allow always" when folder is untrusted
Error: Snapshot `ToolConfirmationMessage > with folder trust > 'for mcp confirmations' > should NOT show "allow always" when folder is untrusted 1` mismatched
- Expected
+ Received
 "MCP Server: test-server
 Tool: test-tool
 Allow execution of MCP tool "test-tool" from server "test-server"?
- ● 1. Allow once 
+ ● 1. Allow once
 2. No, suggest changes (esc)
 "
src/ui/components/messages/ToolConfirmationMessage.test.tsx:377:29
375| );
376|
377| expect(lastFrame()).toMatchSnapshot();
| ^
378| unmount();
379| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[172/184]⎯
FAIL src/ui/components/messages/ToolConfirmationMessage.test.tsx > ToolConfirmationMessage > enablePermanentToolApproval setting > should show "Allow for all future sessions" when trusted
Error: Snapshot `ToolConfirmationMessage > enablePermanentToolApproval setting > should show "Allow for all future sessions" when trusted 1` mismatched
- Expected
+ Received
@@ -3,11 +3,11 @@
 │ No changes detected. │
 │ │
 ╰──────────────────────────────────────────────────────────────────────────────╯
 Apply this change?
- ● 1. Allow once 
+ ● 1. Allow once
 2. Allow for this session
 3. Allow for this file in all future sessions ~/.gemini/policies/auto-saved.toml
 4. Modify with external editor
 5. No, suggest changes (esc)
 "
src/ui/components/messages/ToolConfirmationMessage.test.tsx:449:22
447| expect(output).toContain('future sessions');
448| // Verify it is the default selection (matching the indicator in…
449| expect(output).toMatchSnapshot();
| ^
450| unmount();
451| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[173/184]⎯
FAIL src/ui/components/messages/ToolConfirmationMessage.test.tsx > ToolConfirmationMessage > should strip BiDi characters from MCP tool and server names
Error: Snapshot `ToolConfirmationMessage > should strip BiDi characters from MCP tool and server names 1` mismatched
- Expected
+ Received
 "MCP Server: testserver
 Tool: testtool
 Allow execution of MCP tool "testtool" from server "testserver"?
- ● 1. Allow once 
+ ● 1. Allow once
 2. Allow tool for this session
 3. Allow all server tools for this session
 4. No, suggest changes (esc)
 "
src/ui/components/messages/ToolConfirmationMessage.test.tsx:590:20
588| expect(output).toContain('Allow execution of MCP tool "testtool"');
589| expect(output).toContain('from server "testserver"?');
590| expect(output).toMatchSnapshot();
| ^
591| unmount();
592| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[174/184]⎯
FAIL src/ui/components/messages/ToolConfirmationMessage.test.tsx > ToolConfirmationMessage > height allocation and layout > should expand to available height for large exec commands
Error: Snapshot `ToolConfirmationMessage > height allocation and layout > should expand to available height for large exec commands 1` mismatched
- Expected
+ Received
@@ -32,9 +32,9 @@
 │ echo "Line 49" │
 │ echo "Line 50" │
 ╰──────────────────────────────────────────────────────────────────────────────╯
 Allow execution of [echo]?
- ● 1. Allow once 
+ ● 1. Allow once
 2. Allow for this session
 3. No, suggest changes (esc)
 "
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:73:34
71|
72| // Assert the text matches standard snapshot, stripping ANSI for sta…
73| expect(stripAnsi(textContent)).toMatchSnapshot();
| ^
74|
75| // Assert the SVG matches the file snapshot
src/ui/components/messages/ToolConfirmationMessage.test.tsx:702:48
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[175/184]⎯
FAIL src/ui/components/messages/ToolConfirmationMessage.test.tsx > ToolConfirmationMessage > height allocation and layout > should expand to available height for large edit diffs
Error: Snapshot `ToolConfirmationMessage > height allocation and layout > should expand to available height for large edit diffs 1` mismatched
- Expected
+ Received
@@ -31,10 +31,10 @@
 │ 20 - const oldLine20 = true; │
 │ 20 + const newLine20 = true; │
 ╰──────────────────────────────────────────────────────────────────────────────╯
 Apply this change?
- ● 1. Allow once 
+ ● 1. Allow once
 2. Allow for this session
 3. Modify with external editor
 4. No, suggest changes (esc)
 "
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:73:34
71|
72| // Assert the text matches standard snapshot, stripping ANSI for sta…
73| expect(stripAnsi(textContent)).toMatchSnapshot();
| ^
74|
75| // Assert the SVG matches the file snapshot
src/ui/components/messages/ToolConfirmationMessage.test.tsx:743:48
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[176/184]⎯
FAIL src/ui/components/messages/ToolGroupMessage.test.tsx > <ToolGroupMessage /> > Golden Snapshots > renders header when scrolled
Error: Snapshot `<ToolGroupMessage /> > Golden Snapshots > renders header when scrolled 1` mismatched
- Expected
+ Received
- "╭──────────────────────────────────────────────────────────────────────────╮
+ "╭──────────────────────────────────────────────────────────────────────────╮ █
- │ ✓ tool-1 Description 1. This is a long description that will need to b… │ ▄
+ │ ✓ tool-1 Description 1. This is a long description that will need to b… │ █
- │──────────────────────────────────────────────────────────────────────────│ █
+ │ │ █
- │ line3 │ █
+ │ line1 │ █
- │ line4 │ █
+ │ line2 │ █
- │ line5 │ █
+ │ line3 │ █
- │ │  █
- │ ✓ tool-2 Description 2 │ █
+ │ line4 │   █
+ │ line5  │ █
 │ │ █
- │ line1 │ █
- │ line2 │ █
- ╰──────────────────────────────────────────────────────────────────────────╯ █
+ │ ✓ tool-2 Description 2  │ █
+ │   │  ▀
+ │ line1   │
 "
src/ui/components/messages/ToolGroupMessage.test.tsx:501:47
499| },
500| );
501| expect(lastFrame({ allowEmpty: true })).toMatchSnapshot();
| ^
502| unmount();
503| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[177/184]⎯
FAIL src/ui/components/messages/ToolGroupMessage.test.tsx > <ToolGroupMessage /> > Golden Snapshots > renders two tool groups where only the last line of the previous group is visible
Error: Snapshot `<ToolGroupMessage /> > Golden Snapshots > renders two tool groups where only the last line of the previous group is visible 1` mismatched
- Expected
+ Received
- "╰──────────────────────────────────────────────────────────────────────────╯
- ╭──────────────────────────────────────────────────────────────────────────╮
+ "╭──────────────────────────────────────────────────────────────────────────╮ █
- │ ✓ tool-2 Description 2 │
+ │ ✓ tool-1 Description 1 │ █
- │ │ ▄
+ │ │ ▀
- │ line1 │  █
- ╰──────────────────────────────────────────────────────────────────────────╯ █
+ │ line1 │
+ │ line2  │
+ │ line3  │
 "
src/ui/components/messages/ToolGroupMessage.test.tsx:585:47
583| },
584| );
585| expect(lastFrame({ allowEmpty: true })).toMatchSnapshot();
| ^
586| unmount();
587| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[178/184]⎯
FAIL src/ui/components/messages/ToolResultDisplay.test.tsx > ToolResultDisplay > truncates ANSI output when maxLines is provided, even if availableTerminalHeight is undefined
Error: Snapshot `ToolResultDisplay > truncates ANSI output when maxLines is provided, even if availableTerminalHeight is undefined 2` mismatched
- Expected
+ Received
@@ -2,11 +2,11 @@
 <style>
 text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }
 </style>
 <rect width="920" height="445" fill="#000000" />
 <g transform="translate(10, 10)">
- <text x="0" y="2" fill="#afafaf" textLength="234" lengthAdjust="spacingAndGlyphs">... 26 hidden (Ctrl+O) ...</text>
+ <text x="0" y="2" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">... 26 hidden (Ctrl+O) ... </text>
 <text x="0" y="19" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Line 27 </text>
 <text x="0" y="36" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Line 28 </text>
 <text x="0" y="53" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Line 29 </text>
 <text x="0" y="70" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Line 30 </text>
 <text x="0" y="87" fill="#ffffff" textLength="900" lengthAdjust="spacingAndGlyphs">Line 31 </text>
Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:76:3
74|
75| // Assert the SVG matches the file snapshot
76| await expect(svgContent).toMatchFileSnapshot(svgFilePath);
| ^
77|
78| return { pass: true, message: () => '' };
src/ui/components/messages/ToolResultDisplay.test.tsx:393:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[179/184]⎯
FAIL src/ui/components/messages/UserMessage.test.tsx > UserMessage > renders normal user message with correct prefix
Error: Snapshot `UserMessage > renders normal user message with correct prefix 1` mismatched
- Expected
+ Received
 "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
- > Hello Gemini 
+ > Hello Gemini
 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
 "
src/ui/components/messages/UserMessage.test.tsx:24:20
22| const output = lastFrame();
23|
24| expect(output).toMatchSnapshot();
| ^
25| unmount();
26| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[180/184]⎯
FAIL src/ui/components/messages/UserMessage.test.tsx > UserMessage > renders slash command message
Error: Snapshot `UserMessage > renders slash command message 1` mismatched
- Expected
+ Received
 "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
- > /help 
+ > /help
 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
 "
src/ui/components/messages/UserMessage.test.tsx:35:20
33| const output = lastFrame();
34|
35| expect(output).toMatchSnapshot();
| ^
36| unmount();
37| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[181/184]⎯
FAIL src/ui/components/messages/UserMessage.test.tsx > UserMessage > renders multiline user message
Error: Snapshot `UserMessage > renders multiline user message 1` mismatched
- Expected
+ Received
 "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
- > Line 1 
- Line 2 
+ > Line 1
+ Line 2
 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
 "
src/ui/components/messages/UserMessage.test.tsx:47:20
45| const output = lastFrame();
46|
47| expect(output).toMatchSnapshot();
| ^
48| unmount();
49| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[182/184]⎯
FAIL src/ui/components/messages/UserMessage.test.tsx > UserMessage > transforms image paths in user message
Error: Snapshot `UserMessage > transforms image paths in user message 1` mismatched
- Expected
+ Received
 "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
- > Check out this image: [Image my-image.png] 
+ > Check out this image: [Image my-image.png]
 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
 "
src/ui/components/messages/UserMessage.test.tsx:60:20
58|
59| expect(output).toContain('[Image my-image.png]');
60| expect(output).toMatchSnapshot();
| ^
61| unmount();
62| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[183/184]⎯
Snapshots 165 failed
16 obsolete
↳ src/ui/components/InputPrompt.test.tsx
· InputPrompt > command search (Ctrl+R when not in shell) > expands and collapses long suggestion via Right/Left arrows > command-search-render-collapsed-match 1
· InputPrompt > command search (Ctrl+R when not in shell) > renders match window and expanded view (snapshots) > command-search-render-expanded-match 1
↳ src/ui/components/shared/VirtualizedList.test.tsx
· <VirtualizedList /> > with 10px height and 100 items > renders only visible items ('top') 1
↳ src/ui/components/MainContent.test.tsx
· MainContent > MainContent Tool Output Height Logic > 'ASB mode - Focused shell should expand' 1
· MainContent > MainContent Tool Output Height Logic > 'ASB mode - Unfocused shell' 1
· MainContent > renders multiple thinking messages sequentially correctly 2
↳ src/ui/components/shared/SearchableList.test.tsx
· SearchableList > should reset selection to top when items change if resetSelectionOnItemsChange is true 2
· SearchableList > should reset selection to top when items change if resetSelectionOnItemsChange is true 3
↳ src/ui/components/messages/ThinkingMessage.test.tsx
· ThinkingMessage > filters out progress dots and empty lines 2
· ThinkingMessage > normalizes escaped newline tokens 2
· ThinkingMessage > renders "Thinking..." header when isFirstThinking is true 2
· ThinkingMessage > renders full mode with left border and full text 2
· ThinkingMessage > renders multiple thinking messages sequentially correctly 2
· ThinkingMessage > renders subject line with vertical rule and "Thinking..." header 2
· ThinkingMessage > uses description when subject is empty 2
↳ src/ui/components/messages/DiffRenderer.test.tsx
· <OverflowProvider><DiffRenderer /></OverflowProvider> > with useAlternateBuffer = false > should not render a gap indicator for small gaps (<= MAX_CONTEXT_LINES_WITHOUT_GAP) 2
Test Files 47 failed | 387 passed (434)
Tests 184 failed | 6268 passed | 4 skipped (6456)
Start at 22:29:41
Duration 296.82s (transform 10.91s, setup 1360.04s, collect 147.37s, tests 223.12s, environment 148ms, prepare 39.40s)
JUNIT report written to /Users/mattkorwel/dev/gemini-cli/main/packages/cli/junit.xml
npm error Lifecycle script `test` failed with error:
npm error code 1
npm error path /Users/mattkorwel/dev/gemini-cli/main/packages/cli
npm error workspace @google/gemini-cli@0.39.0-nightly.20260408.e77b22e63
npm error location /Users/mattkorwel/dev/gemini-cli/main/packages/cli
npm error command failed
npm error command sh -c vitest run