[1m[32m==>[m[1m Building on aurorus[m
[1m[32m==>[m[1m Checking for remote environment...[m
[1m[32m==>[m[1m Syncing package to remote host...[m
sending incremental file list
./
.SRCINFO
952 100% 0.00kB/s 0:00:00
952 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=7/9)
.nvchecker.toml
55 100% 53.71kB/s 0:00:00
55 100% 53.71kB/s 0:00:00 (xfr#2, to-chk=6/9)
LICENSE
646 100% 630.86kB/s 0:00:00
646 100% 630.86kB/s 0:00:00 (xfr#3, to-chk=5/9)
PKGBUILD
2,029 100% 1.94MB/s 0:00:00
2,029 100% 1.94MB/s 0:00:00 (xfr#4, to-chk=4/9)
REUSE.toml
375 100% 366.21kB/s 0:00:00
375 100% 366.21kB/s 0:00:00 (xfr#5, to-chk=3/9)
gemini-cli-1:0.38.2-1.log
694 100% 677.73kB/s 0:00:00
694 100% 677.73kB/s 0:00:00 (xfr#6, to-chk=2/9)
LICENSES/
sent 2,358 bytes received 180 bytes 1,692.00 bytes/sec
total size is 4,261 speedup is 1.68
[1m[32m==>[m[1m Patching arch to riscv64...[m
[1m[32m==>[m[1m Running pkgctl build --arch riscv64 on remote host...[m
[1m[33m==> WARNING:[m[1m invalid architecture: riscv64[m
[1m[32m==>[m[1m Updating pacman database cache[m
[?25l:: Synchronizing package databases...
core downloading...
extra downloading...
multilib downloading...
[?25h[1m[32m==>[m[1m Building gemini-cli[m
[1m[34m ->[m[1m repo: extra[m
[1m[34m ->[m[1m arch: riscv64[m
[1m[34m ->[m[1m worker: felix-2[m
[1m[32m==>[m[1m Building gemini-cli for [extra] (riscv64)[m
]3008;start=4c0257861b63483ba64adb0861ec009b;user=root;hostname=aurorus.felixc.at;machineid=01ca1404c26b4b3a80152fb4f25f4ca7;bootid=1ee86ff79c6840889d464954b77b1fe7;pid=2624976;comm=systemd-nspawn;container=arch-nspawn-2624976;type=container\]11;?\[22;2t]2;🔵 Container arch-nspawn-2624976 on aurorus.felixc.at\[?25l:: Synchronizing package databases...
core downloading...
extra downloading...
:: Starting full system upgrade...
there is nothing to do
[?25h[23;2t[!p]104\[0m[?7h[1G[0J]3008;end=4c0257861b63483ba64adb0861ec009b\[1m[32m==>[m[1m Building in chroot for [extra] (riscv64)...[m
[1m[32m==>[m[1m Locking clean chroot [/var/lib/archbuild/extra-riscv64/root]...[m[1mdone[m
[1m[32m==>[m[1m Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix-2]...[m[1mdone[m
[1m[32m==>[m[1m Making package: gemini-cli 1:0.38.2-1 (Sun Apr 19 14:14:51 2026)[m
[1m[32m==>[m[1m Retrieving sources...[m
[1m[34m ->[m[1m Updating gemini-cli git repo...[m
From https://github.com/google-gemini/gemini-cli
- [deleted] (none) -> 14385-remove-vertical-lines-on-sides
- [deleted] (none) -> 3.0-changes
- [deleted] (none) -> 7232-improve-triage-to-not-overwrite-manual-labels
- [deleted] (none) -> MJjainam/built-in-command
- [deleted] (none) -> MJjainam/terminal-hackathon
- [deleted] (none) -> MJjainam/triage-issue-fix
- [deleted] (none) -> Mukamik-patch-1
- [deleted] (none) -> VsCode-language-model-tools
- [deleted] (none) -> a2a-client-checkpoint
- [deleted] (none) -> a2a-manager-1
- [deleted] (none) -> a2a-settings
- [deleted] (none) -> a2a-update
- [deleted] (none) -> abhipatel12-init-model-routing
- [deleted] (none) -> abhipatel12/add-slash-command-error-handling
- [deleted] (none) -> abhipatel12/agents-settings
- [deleted] (none) -> abhipatel12/codebase-investigator
- [deleted] (none) -> abhipatel12/codebase-investigator-v2
- [deleted] (none) -> abhipatel12/command-loading
- [deleted] (none) -> abhipatel12/compression-e2e-fix
- [deleted] (none) -> abhipatel12/compression-integration-tests
- [deleted] (none) -> abhipatel12/context-harvester
- [deleted] (none) -> abhipatel12/context-v1
- [deleted] (none) -> abhipatel12/create-core-session-backup
- [deleted] (none) -> abhipatel12/deprecate-legacy-agent-settings
- [deleted] (none) -> abhipatel12/end-tool-test
- [deleted] (none) -> abhipatel12/fix-auto-policy-switch
- [deleted] (none) -> abhipatel12/fix-e2e-windows-docker
- [deleted] (none) -> abhipatel12/fix-formatting-math
- [deleted] (none) -> abhipatel12/fix-mode-switch-policy
- [deleted] (none) -> abhipatel12/flash-first-routing
- [deleted] (none) -> abhipatel12/flash-first-routing-LITE
- [deleted] (none) -> abhipatel12/flash-mitigation
- [deleted] (none) -> abhipatel12/hooks-clearcut-logging
- [deleted] (none) -> abhipatel12/improve-edit-tool
- [deleted] (none) -> abhipatel12/init-model-routing
- [deleted] (none) -> abhipatel12/jit-init-context-manager
- [deleted] (none) -> abhipatel12/queue-message-input-bar
- [deleted] (none) -> abhipatel12/remove-debug-console-prod
- [deleted] (none) -> abhipatel12/remove-many-read
- [deleted] (none) -> abhipatel12/subagent-tool-ux
- [deleted] (none) -> abhipatel12/test
- [deleted] (none) -> abhipatel12/use-model-router-fallback
- [deleted] (none) -> ablation_base
- [deleted] (none) -> ablation_ci
- [deleted] (none) -> ablation_todo
- [deleted] (none) -> ablation_todo_ci
- [deleted] (none) -> action-test
- [deleted] (none) -> active-file
- [deleted] (none) -> adamfw/modifiable-tool-extend
- [deleted] (none) -> add-linter
- [deleted] (none) -> add-mcp-oauth
- [deleted] (none) -> add_evals
- [deleted] (none) -> add_filecontent
- [deleted] (none) -> add_settings_v1
- [deleted] (none) -> add_settings_v2
- [deleted] (none) -> add_to_preview
- [deleted] (none) -> add_webfetcher
- [deleted] (none) -> adding-oauth-to-sse
- [deleted] (none) -> adh/feat/delegated-confirmation-refactor
- [deleted] (none) -> adh/feat/subagent-confirmation
- [deleted] (none) -> adh/fix/pr-15006-feedback
- [deleted] (none) -> adh/fix/tool-confirmation-policy
- [deleted] (none) -> adibakm/add-history-viwer-quick-edit
- [deleted] (none) -> adibakm/debug-console-only-dev
- [deleted] (none) -> adibakm/deflake-stdin-context
- [deleted] (none) -> adibakm/lines-accepted-user
- [deleted] (none) -> adibakm/migrate-review-console-error
- [deleted] (none) -> adibakm/prototype-gca-event
- [deleted] (none) -> afw/auth-pluggable
- [deleted] (none) -> afw/avail-cleanup3
- [deleted] (none) -> afw/avail5
- [deleted] (none) -> afw/cleanup-1
- [deleted] (none) -> afw/iam
- [deleted] (none) -> afw/modelavailability
- [deleted] (none) -> agmsb/add-extensions-ref-help
- [deleted] (none) -> agmsb/correct-path-xplat
- [deleted] (none) -> agmsb/fallback-history
- [deleted] (none) -> agmsb/fix-auth-test
- [deleted] (none) -> agmsb/fix-loop-detection-slicing
- [deleted] (none) -> agmsb/fix-simple-mcp-server-test
- [deleted] (none) -> agmsb/init-tool-call-metadata
- [deleted] (none) -> agmsb/iterate-eval
- [deleted] (none) -> agmsb/json-output-test-fix
- [deleted] (none) -> agmsb/mcp-status
- [deleted] (none) -> agmsb/non-interactive-exit-code
- [deleted] (none) -> agmsb/patch_and_context_harvest
- [deleted] (none) -> agmsb/patchv2_and_context_harvest
- [deleted] (none) -> agmsb/search-replace
- [deleted] (none) -> agmsb/search_replace_with_context_harvest
- [deleted] (none) -> agmsb/smart-edit-hints
- [deleted] (none) -> agmsb/truncate_context_harvest
- [deleted] (none) -> agmsb/update-edit-errors
- [deleted] (none) -> asadm/bellencore
- [deleted] (none) -> asadm/queuemsgs
- [deleted] (none) -> avilladsen/table-wrap
- [deleted] (none) -> bobcatfish/7414-gemini-dir
- [deleted] (none) -> bobcatfish/7565-alerts-consistent-alerts
- [deleted] (none) -> branch_ink_package
- [deleted] (none) -> branch_scroll
- [deleted] (none) -> brandonin/main
- [deleted] (none) -> bryanmorgan-fix-for-pr-4131
- [deleted] (none) -> bug-slash-command
- [deleted] (none) -> cat_history
- [deleted] (none) -> cb/addSettingsToList
- [deleted] (none) -> cb/authheader
- [deleted] (none) -> cb/bestpractices
- [deleted] (none) -> cb/ctrlr
- [deleted] (none) -> cb/diff
- [deleted] (none) -> cb/diffhandling2
- [deleted] (none) -> cb/enforceddomain
- [deleted] (none) -> cb/extensionff
- [deleted] (none) -> cb/fixes
- [deleted] (none) -> cb/fixrelease
- [deleted] (none) -> cb/fixworkspace
- [deleted] (none) -> cb/generalizereload
- [deleted] (none) -> cb/ignorecase
- [deleted] (none) -> cb/inkscreenreader
- [deleted] (none) -> cb/installuninstall
- [deleted] (none) -> cb/keystroke
- [deleted] (none) -> cb/listmissingsettings
- [deleted] (none) -> cb/listsettings
- [deleted] (none) -> cb/logtype
- [deleted] (none) -> cb/mcpPromptDocs
- [deleted] (none) -> cb/new
- [deleted] (none) -> cb/refreshcommands
- [deleted] (none) -> cb/registryincli
- [deleted] (none) -> cb/removeflag
- [deleted] (none) -> cb/screenreader
- [deleted] (none) -> cb/screenreader3
- [deleted] (none) -> cb/stale
- [deleted] (none) -> cb/system
- [deleted] (none) -> cb/systemext
- [deleted] (none) -> cb/tags
- [deleted] (none) -> cb/telemetry
- [deleted] (none) -> cb/terminal
- [deleted] (none) -> cb/threadMode
- [deleted] (none) -> cb/updateupdates
- [deleted] (none) -> cb/use-flash
- [deleted] (none) -> cb/vscode
- [deleted] (none) -> chat_history_fix
- [deleted] (none) -> chore/constrain-powershell-shell
- [deleted] (none) -> chore/nightly-version-bump-0.22.0-nightly.20251209.364b12e2f
- [deleted] (none) -> chore/nightly-version-bump-0.23.0-nightly.20251216.5ea5107d0
- [deleted] (none) -> chore/nightly-version-bump-0.7.0-nightly.20250917.1a6e4a11
- [deleted] (none) -> chore/nightly-version-bump-0.7.0-nightly.20250917.efb57e1c
- [deleted] (none) -> chore/nightly-version-bump-0.8.0-nightly.20250924.ce92ed3f
- [deleted] (none) -> cli-code-coverage
- [deleted] (none) -> context
- [deleted] (none) -> context_engineering_suite
- [deleted] (none) -> context_harvest
- [deleted] (none) -> context_harvester_agent_tool
- [deleted] (none) -> copilot/restore-previous-cli-behavior
- [deleted] (none) -> critique_tool
- [deleted] (none) -> debug-release-logs
- [deleted] (none) -> debug/workflow
- [deleted] (none) -> default_editor_tool_name
- [deleted] (none) -> deflake-replace-hopefully
- [deleted] (none) -> deflake_tests
- [deleted] (none) -> dependabot/npm_and_yarn/jws-4.0.1
- [deleted] (none) -> dependabot/npm_and_yarn/modelcontextprotocol/sdk-1.24.0
- [deleted] (none) -> devr0306/apply-setting-defaults
- [deleted] (none) -> dewitt/7796-allow-for-slash-commands-to-opt-out-of-autocompletion-and-help-discovery
- [deleted] (none) -> dewitt/gemini-cli-api
- [deleted] (none) -> dewitt/keybindings-refactoring
- [deleted] (none) -> dino
- [deleted] (none) -> disable-hooks-install
- [deleted] (none) -> display_message_subagent
- [deleted] (none) -> dl-noninteractive-env
- [deleted] (none) -> docs-add-faq
- [deleted] (none) -> docs-code-of-conduct
- [deleted] (none) -> docs-core-refresh
- [deleted] (none) -> docs-getting-started
- [deleted] (none) -> docs-waitlist-update
- [deleted] (none) -> docs/telemetry-updates
- [deleted] (none) -> dynamicport
- [deleted] (none) -> e2e-docker-error
- [deleted] (none) -> edit_modes
- [deleted] (none) -> editor_alternatives
- [deleted] (none) -> enforce-oauth-resource-validation
- [deleted] (none) -> extract-file-tests
- [deleted] (none) -> feat-copy-command-for-history-copy
- [deleted] (none) -> feat/ctrl-backspace-delete
- [deleted] (none) -> feat/ineligible-tier-error
- [deleted] (none) -> feat/session-stats-tracking
- [deleted] (none) -> feat/tier-description
- [deleted] (none) -> feature/3.0-launch
- [deleted] (none) -> feature/a2a-interactive-env
- [deleted] (none) -> feature/cli-ui-changes
- [deleted] (none) -> feature/mcp-client-integration
- [deleted] (none) -> feature/oauth-infrastructure
- [deleted] (none) -> features/fork-regulation
- [deleted] (none) -> file_nuked
- [deleted] (none) -> fix-acp-conn
- [deleted] (none) -> fix-alt-remap-linux-locale
- [deleted] (none) -> fix-bundle
- [deleted] (none) -> fix-config
- [deleted] (none) -> fix-ide-fetch
- [deleted] (none) -> fix-nightly-10-20
- [deleted] (none) -> fix-quit
- [deleted] (none) -> fix-race-2
- [deleted] (none) -> fix-release-11-4
- [deleted] (none) -> fix-slash
- [deleted] (none) -> fix-windows
- [deleted] (none) -> fix/default-file-token-storage
- [deleted] (none) -> fix/fix-LS
- [deleted] (none) -> fix/hook-shell-no-spawn
- [deleted] (none) -> fix/noninteractive-allowed-tools
- [deleted] (none) -> fix/oauth-issuer-path-preservation
- [deleted] (none) -> fix/strong-quoting
- [deleted] (none) -> fix/v0.9.0-push-issue
- [deleted] (none) -> fix_logging_error_edit_tool
- [deleted] (none) -> fix_missing_tool_call_decisions
- [deleted] (none) -> fix_tool_error_logging
- [deleted] (none) -> flash_budget
- [deleted] (none) -> force_not_read_files
- [deleted] (none) -> force_nudge
- [deleted] (none) -> force_response
- [deleted] (none) -> gal/fix/node-pty-import
- [deleted] (none) -> galzahavi/add/background-commands
- [deleted] (none) -> galzahavi/add/enableAutoConfigureMaxOldSpaceSize
- [deleted] (none) -> galzahavi/add/prerelease-eval
- [deleted] (none) -> galzahavi/add/robust-window
- [deleted] (none) -> galzahavi/add/secure_cicd
- [deleted] (none) -> galzahavi/add/stale-issue-workflow
- [deleted] (none) -> galzahavi/add/vterminal
- [deleted] (none) -> galzahavi/fix/default_settings
- [deleted] (none) -> galzahavi/fix/setting-enable-bug
- [deleted] (none) -> galzahavi/fix/setting-path-issue
- [deleted] (none) -> galzahavi/fix/shell-exit
- [deleted] (none) -> galzahavi/fix/shell-timeout
- [deleted] (none) -> galzahavi/improve/vim-mode
- [deleted] (none) -> galzahavi/mode_repro
- [deleted] (none) -> galzahavi/research/a
- [deleted] (none) -> galzahavi/research/fc
- [deleted] (none) -> galzahavi/research/rpi
- [deleted] (none) -> galzahavi/research/sp
- [deleted] (none) -> galzahavi/research/sys-rem
- [deleted] (none) -> galzahavi/research/thinking
- [deleted] (none) -> galzahavi/research/tool-call
- [deleted] (none) -> galzahavi/revert/9114
- [deleted] (none) -> galzahavi/update/dep
- [deleted] (none) -> gb-10-5316-fix
- [deleted] (none) -> gb-11-5316-fix
- [deleted] (none) -> gb-11-6018-5316-fix
- [deleted] (none) -> gb-11-6022-5316-fix
- [deleted] (none) -> gb-12-5316-fix
- [deleted] (none) -> gb-7-5613-fix
- [deleted] (none) -> gb-8-5613-fix
- [deleted] (none) -> gb-9-4454-5316-fix
- [deleted] (none) -> gb-9-4738-5316-fix
- [deleted] (none) -> gb-9-5316-fix
- [deleted] (none) -> gcp-telem-fix
- [deleted] (none) -> gcp_auth_test
- [deleted] (none) -> gemini-gui
- [deleted] (none) -> gemini_tool
- [deleted] (none) -> github-actions-sheet-writer
- [deleted] (none) -> gsquared94/run-eval
- [deleted] (none) -> gundermanc/unified-env-sanitization
- [deleted] (none) -> hadi/compress-threshold
- [deleted] (none) -> hadi/compress-threshold-.1
- [deleted] (none) -> hadi/compress-threshold-.15
- [deleted] (none) -> hadi/compress-threshold-.2
- [deleted] (none) -> hadi/disable-ci
- [deleted] (none) -> hadi/fix-apikey-test
- [deleted] (none) -> hadi/improve-shell-v1
- [deleted] (none) -> hadi/improve-shell-v2-output-effic-off
- [deleted] (none) -> hadi/improve-shell-v2-output-effic-trunc-off
- [deleted] (none) -> hadi/improve-shell-v3
- [deleted] (none) -> hadi/improve-shell-v3-with-truncation
- [deleted] (none) -> hadi/improve-shell-v4
- [deleted] (none) -> hadi/optimize-shell-commands
- [deleted] (none) -> hadi/optimize-shell-commands-2
- [deleted] (none) -> hadi/optimize-shell-commands-3
- [deleted] (none) -> hadi/optimize-shell-commands-4
- [deleted] (none) -> hadi/reduce-variance
- [deleted] (none) -> hadi/reduce-variance-v050preview1
- [deleted] (none) -> hadi/static-prompt-experiment
- [deleted] (none) -> hadi/tool-output-summarization
- [deleted] (none) -> hadi/tune-decoding-params
- [deleted] (none) -> hadi/tune-temp01topp095
- [deleted] (none) -> hadi/tune-temp025topp095
- [deleted] (none) -> hadi/tune-temp05topp095
- [deleted] (none) -> hadi/tune-temp10topp095
- [deleted] (none) -> helpful_agent
- [deleted] (none) -> hriday/debug-flaky-int-tests
- [deleted] (none) -> hriday/enable_win_int_test
- [deleted] (none) -> hriday/enable_win_int_tests
- [deleted] (none) -> hriday/fsMulti
- [deleted] (none) -> hriday/intg_test_chat_compress_NI
- [deleted] (none) -> hriday/press_r
- [deleted] (none) -> hriday/press_r_extended
- [deleted] (none) -> hriday/read-tool
- [deleted] (none) -> hriday/suppress_non_llm_output
- [deleted] (none) -> hriday/test-build-1
- [deleted] (none) -> hugo-11226/robust-solution-for-incomplete-model-responses
- [deleted] (none) -> hugo-9203/integration-tests-for-ide-integration
- [deleted] (none) -> ide-auth-security
- [deleted] (none) -> ide-command-extensibility
- [deleted] (none) -> ide-context-selection
- [deleted] (none) -> ide-debug
- [deleted] (none) -> ide-debug-edit
- [deleted] (none) -> ide-detect
- [deleted] (none) -> ide-ext-port-file-updates
- [deleted] (none) -> ide-ext-port-updates
- [deleted] (none) -> ide-flags
- [deleted] (none) -> ide-forks
- [deleted] (none) -> ide-metrics
- [deleted] (none) -> ide-metrics-final
- [deleted] (none) -> ide-metrics2
- [deleted] (none) -> ide-mode-clean-ux
- [deleted] (none) -> ide-post-install
- [deleted] (none) -> ide-readme
- [deleted] (none) -> ide-req-auth
- [deleted] (none) -> ide-schema-refactor
- [deleted] (none) -> ide-selected-files
- [deleted] (none) -> ide-spec
- [deleted] (none) -> ide-vsix
- [deleted] (none) -> ide-workspace-parse-update
- [deleted] (none) -> image-placeholder
- [deleted] (none) -> improve-sys-instructions
- [deleted] (none) -> include-wasm-bundle-test-parallel-from-main
- [deleted] (none) -> inclusive-lint
- [deleted] (none) -> input_background
- [deleted] (none) -> int-shell-message
- [deleted] (none) -> interactive_shell_mode
- [deleted] (none) -> invalid_message_metric
- [deleted] (none) -> investigator_v2
- [deleted] (none) -> issue-10925
- [deleted] (none) -> issue11511
- [deleted] (none) -> jacob314/alternate_buffer_documentation
- [deleted] (none) -> jacob314/fix_extension_updates
- [deleted] (none) -> jacob314/fix_input2
- [deleted] (none) -> jacob314/fix_kitty_input
- [deleted] (none) -> jacob314/fix_lints
- [deleted] (none) -> jacob314/fix_lints_example
- [deleted] (none) -> jacob314/fix_tests
- [deleted] (none) -> jacob314/remove_paste_timeout
- [deleted] (none) -> jacob314/snapshot_tests
- [deleted] (none) -> jacobr_more_verbose_optional
- [deleted] (none) -> jdemeulenaere/mcp-exclude-tools
- [deleted] (none) -> jl/fix-retry
- [deleted] (none) -> jl/late-resolution
- [deleted] (none) -> jl/rg-in-path
- [deleted] (none) -> jl/test-finish
- [deleted] (none) -> jules-7972605920577643123-cd36e719
- [deleted] (none) -> karmel/adk-2
- [deleted] (none) -> karmel/adk-3
- [deleted] (none) -> karmel/looping
- [deleted] (none) -> karmel/looping-empty-parts
- [deleted] (none) -> karmel/looping-part1
- [deleted] (none) -> karmel/looping-part2
- [deleted] (none) -> keepalive
- [deleted] (none) -> keijibranshi/feat/memscan
- [deleted] (none) -> keijibranshi/feat/sandbox-args-cherry-pick
- [deleted] (none) -> keijibranshi/fix/self-ref-package
- [deleted] (none) -> keir/ambient-file-context
- [deleted] (none) -> kevin-ramdass/dir-context
- [deleted] (none) -> kevin-ramdass/exp
- [deleted] (none) -> kevin-ramdass/logging
- [deleted] (none) -> land_scrolling
- [deleted] (none) -> launch-banner
- [deleted] (none) -> less_terse
- [deleted] (none) -> lint
- [deleted] (none) -> linter
- [deleted] (none) -> log_all_parts_of_the_response
- [deleted] (none) -> log_tool_failures
- [deleted] (none) -> log_viewer
- [deleted] (none) -> loopback-ip-oauth
- [deleted] (none) -> lsp
- [deleted] (none) -> mainroach_chathistory
- [deleted] (none) -> mainroach_smarttools
- [deleted] (none) -> manual-v12-preview-1
- [deleted] (none) -> maratb-cloud-settings
- [deleted] (none) -> maratb-user-session
- [deleted] (none) -> mb/telemetry-jsonl
- [deleted] (none) -> mcp-resources
- [deleted] (none) -> mcp-urls
- [deleted] (none) -> miguelsolorio/distinct-thoughts
- [deleted] (none) -> miguelsolorio/experimental/border-less-prompts
- [deleted] (none) -> miguelsolorio/is-narrow
- [deleted] (none) -> miguelsolorio/is-narrow-2
- [deleted] (none) -> miguelsolorio/minimal-mode
- [deleted] (none) -> miguelsolorio/model-dialog
- [deleted] (none) -> miguelsolorio/model-dialog-selection
- [deleted] (none) -> miguelsolorio/settings-scope
- [deleted] (none) -> miguelsolorio/verbose-mode
- [deleted] (none) -> mk-bundling-no-npmrc
- [deleted] (none) -> mk-errors-with-older-cli
- [deleted] (none) -> mk/build-improvements
- [deleted] (none) -> mk/integration-vertex
- [deleted] (none) -> mk/promote-correct-preview
- [deleted] (none) -> modify-logging
- [deleted] (none) -> monk_mode
- [deleted] (none) -> mpAtGoogle-patch-1
- [deleted] (none) -> mrahs-filtering
- [deleted] (none) -> mrcabbage972/disable-routing-auth-change
- [deleted] (none) -> mrcabbage972/enable-model-router
- [deleted] (none) -> mrcabbage972/enable-model-router-2
- [deleted] (none) -> mrcabbage972/gemini-flash-lite-baseline
- [deleted] (none) -> mrk/HandleStdInNonResponsiveness
- [deleted] (none) -> mrk/issue_759
- [deleted] (none) -> mrk/prompt_imp
- [deleted] (none) -> my-param-updates
- [deleted] (none) -> nailedit
- [deleted] (none) -> native-a2a-step1
- [deleted] (none) -> new_si_no_ci_todo
- [deleted] (none) -> no_animate_fast
- [deleted] (none) -> no_speaker_check
- [deleted] (none) -> ntm/aiderdiff
- [deleted] (none) -> ntm/gh.11893.1
- [deleted] (none) -> ntm/maxfolderstructure
- [deleted] (none) -> ntm/mcpimage
- [deleted] (none) -> ntm/mcpimage-optimized
- [deleted] (none) -> ntm/mcpimage.final
- [deleted] (none) -> ntm/noexamples
- [deleted] (none) -> ntm/noexamples_finished
- [deleted] (none) -> ntm/noexamples_impsys_fs1
- [deleted] (none) -> ntm/noexamples_noextracontext
- [deleted] (none) -> ntm/noexamples_nofolders
- [deleted] (none) -> ntm/noexamples_reviewer
- [deleted] (none) -> ntm/noexamples_workflows
- [deleted] (none) -> ntm/nofolders
- [deleted] (none) -> ntm/noworkflows
- [deleted] (none) -> ntm/reviewer
- [deleted] (none) -> ntm/skills.officialspec
- [deleted] (none) -> ntm/storage
- [deleted] (none) -> ntm/sysprompt1
- [deleted] (none) -> ntm/sysprompt2
- [deleted] (none) -> ntm/v0.2.1
- [deleted] (none) -> nuke_si
- [deleted] (none) -> nuked_prompt
- [deleted] (none) -> oauth-split-part-1
- [deleted] (none) -> oauth-wip-raybrian
- [deleted] (none) -> origin/hadi/improve-shell-v4
- [deleted] (none) -> palladius-patch-1
- [deleted] (none) -> parameterize-ut
- [deleted] (none) -> patch-2
- [deleted] (none) -> patch-process
- [deleted] (none) -> patch14
- [deleted] (none) -> post_session_follow_up
- [deleted] (none) -> pr-11358
- [deleted] (none) -> pr-12450
- [deleted] (none) -> pr-review
- [deleted] (none) -> pr/tool-sandbox-cli-wiring
- [deleted] (none) -> pr/tool-sandbox-runner
- [deleted] (none) -> pr/tool-sandbox-shell
- [deleted] (none) -> pref-grep
- [deleted] (none) -> privacy-tos-clarification
- [deleted] (none) -> process-title-test
- [deleted] (none) -> prog_chk_srv
- [deleted] (none) -> prt-v15
- [deleted] (none) -> ps/test
- [deleted] (none) -> publish-as-bundle
- [deleted] (none) -> publish-github
- [deleted] (none) -> refactored_investigator
- [deleted] (none) -> release/v0.12.0-preview.6-pr-12299
- [deleted] (none) -> release/v0.19.0-pr-14301
- [deleted] (none) -> release/v0.19.0-preview.0-pr-14099
- [deleted] (none) -> release/v0.19.0-preview.0-pr-14301
- [deleted] (none) -> release/v0.19.1-pr-14545
- [deleted] (none) -> release/v0.19.3-pr-14092
- [deleted] (none) -> release/v0.20.0-pr-14843
- [deleted] (none) -> release/v0.20.0-preview.0-pr-14545
- [deleted] (none) -> release/v0.20.0-preview.2-pr-14742
- [deleted] (none) -> release/v0.20.1-pr-15007
- [deleted] (none) -> release/v0.21.0
- [deleted] (none) -> release/v0.21.0-preview.0-pr-14843
- [deleted] (none) -> release/v0.21.0-preview.3-pr-15000
- [deleted] (none) -> release/v0.21.0-preview.5-pr-15131
- [deleted] (none) -> release/v0.22.0-preview.0
- [deleted] (none) -> reset-it
- [deleted] (none) -> resume-startup-failure
- [deleted] (none) -> retry_empty_chunks
- [deleted] (none) -> retry_ux_change
- [deleted] (none) -> retry_ux_test
- [deleted] (none) -> revert-11064-revert-10627-adamfw/a2a-bin-publish
- [deleted] (none) -> rf/dead-tests
- [deleted] (none) -> rf/debug
- [deleted] (none) -> rf/docker-release
- [deleted] (none) -> rf/env2
- [deleted] (none) -> rf/firebase-studio
- [deleted] (none) -> rf/fix-comma
- [deleted] (none) -> rf/sandbox-2
- [deleted] (none) -> rf/sandbox-release
- [deleted] (none) -> rf/settings-opt
- [deleted] (none) -> rf/settings-optional
- [deleted] (none) -> rf/settings-trust
- [deleted] (none) -> rf/test
- [deleted] (none) -> rf/tidy-gh
- [deleted] (none) -> rf/ts
- [deleted] (none) -> rf/why-not-bundle
- [deleted] (none) -> ripgrep-checksum-guard
- [deleted] (none) -> rjs
- [deleted] (none) -> rmf_json_out
- [deleted] (none) -> robust-extension-management-5987
- [deleted] (none) -> robust-window-proto
- [deleted] (none) -> schema
- [deleted] (none) -> scratch_g3
- [deleted] (none) -> screen-reader
- [deleted] (none) -> screenreader
- [deleted] (none) -> screenreadermode
- [deleted] (none) -> screenshot
- [deleted] (none) -> scroll_no_animate
- [deleted] (none) -> scroll_speed
- [deleted] (none) -> secure-oauth-key-storage
- [deleted] (none) -> sehoon/hooks-security
- [deleted] (none) -> sehoon/models
- [deleted] (none) -> sensitive-keywords
- [deleted] (none) -> set-tag
- [deleted] (none) -> sethtroisi/auth_headless
- [deleted] (none) -> settings_md
- [deleted] (none) -> setup-chat
- [deleted] (none) -> sgeraldes_code_review_fixes
- [deleted] (none) -> shell-command-clarification
- [deleted] (none) -> shortenPath_fix
- [deleted] (none) -> silviojr_context
- [deleted] (none) -> silviojr_subagents
- [deleted] (none) -> single_message_format
- [deleted] (none) -> skip-bad-test
- [deleted] (none) -> slighlyt_more_verbose
- [deleted] (none) -> smart_edit
- [deleted] (none) -> smart_edit_flash
- [deleted] (none) -> sp/auth
- [deleted] (none) -> sp/workspace
- [deleted] (none) -> srithreepo-limit-re-triage
- [deleted] (none) -> ss/genTok
- [deleted] (none) -> ss/inkUp
- [deleted] (none) -> ss/testTri
- [deleted] (none) -> st/feat/fake-response-request-matching
- [deleted] (none) -> st/refactor/hierarchical-memory-tests
- [deleted] (none) -> st/shell
- [deleted] (none) -> st/smarter-edit
- [deleted] (none) -> stats_breakdown
- [deleted] (none) -> streaming_retry_ui_fix
- [deleted] (none) -> structured_investigator
- [deleted] (none) -> tab
- [deleted] (none) -> telemetry_noninteractive_mode
- [deleted] (none) -> test-from-head-1758274552
- [deleted] (none) -> test-from-head-1758277743
- [deleted] (none) -> test-from-v053-1758274553
- [deleted] (none) -> test-from-v053-1758277744
- [deleted] (none) -> test-ide-mode
- [deleted] (none) -> test-merge
- [deleted] (none) -> test-merge-2
- [deleted] (none) -> test-ps
- [deleted] (none) -> test-registry
- [deleted] (none) -> test_edit_modes
- [deleted] (none) -> test_errors
- [deleted] (none) -> test_force_response
- [deleted] (none) -> test_replace_edit
- [deleted] (none) -> test_si_3
- [deleted] (none) -> test_silviojr
- [deleted] (none) -> testpromote
- [deleted] (none) -> tests/remove-mock-fs
- [deleted] (none) -> thinking
- [deleted] (none) -> tomm_paste
- [deleted] (none) -> tsr
- [deleted] (none) -> u/anj/cleanups
- [deleted] (none) -> u/anj/enable-ci
- [deleted] (none) -> u/anj/endless-loops-fix
- [deleted] (none) -> u/anj/eval-optimize
- [deleted] (none) -> u/anj/evals_exp_thinking
- [deleted] (none) -> u/anj/fc2-evals
- [deleted] (none) -> u/anj/fix-p0
- [deleted] (none) -> u/anj/gb-1
- [deleted] (none) -> u/anj/gb-1-with-revert-5613
- [deleted] (none) -> u/anj/gb-2
- [deleted] (none) -> u/anj/gb1-with-fix
- [deleted] (none) -> u/anj/gb1-with-reverts
- [deleted] (none) -> u/anj/no_examples
- [deleted] (none) -> u/anj/no_examples_no_examples_op_guidelines
- [deleted] (none) -> u/anj/no_examples_opguide_primatywf
- [deleted] (none) -> u/anj/no_examples_v2
- [deleted] (none) -> u/anj/repro-loops-main
- [deleted] (none) -> u/anj/si-exp
- [deleted] (none) -> u/anj/si-v1
- [deleted] (none) -> u/anj/si-v2
- [deleted] (none) -> u/anj/subagents
- [deleted] (none) -> u/anj/sys-prompt-breakdown
- [deleted] (none) -> u/anj/test-noni-regression
- [deleted] (none) -> u/anj/test-p0-fix
- [deleted] (none) -> u/anj/todo-p1
- [deleted] (none) -> u/anj/todo-v2
- [deleted] (none) -> u/anj/write-todo-prompt-si
- [deleted] (none) -> u/anj/write-todos-v2
- [deleted] (none) -> u/anj/yolo-add-logging
- [deleted] (none) -> ua-host
- [deleted] (none) -> ui-fix
- [deleted] (none) -> update-config
- [deleted] (none) -> update-lock-file
- [deleted] (none) -> update-yargs
- [deleted] (none) -> updatedocs
- [deleted] (none) -> ux-update
- [deleted] (none) -> vendor-ink
- [deleted] (none) -> vendor-ink-3
- [deleted] (none) -> vendor-ink-published-pacakge
- [deleted] (none) -> vendor-ink2
- [deleted] (none) -> vite-up
- [deleted] (none) -> working-oauth-client
- [deleted] (none) -> workspace-path
- [deleted] (none) -> refs/pull/10001/merge
- [deleted] (none) -> refs/pull/10022/merge
- [deleted] (none) -> refs/pull/10028/merge
- [deleted] (none) -> refs/pull/10029/merge
- [deleted] (none) -> refs/pull/10079/merge
- [deleted] (none) -> refs/pull/10089/merge
- [deleted] (none) -> refs/pull/10135/merge
- [deleted] (none) -> refs/pull/10146/merge
- [deleted] (none) -> refs/pull/10152/merge
- [deleted] (none) -> refs/pull/10156/merge
- [deleted] (none) -> refs/pull/10195/merge
- [deleted] (none) -> refs/pull/10213/merge
- [deleted] (none) -> refs/pull/10220/merge
- [deleted] (none) -> refs/pull/10225/merge
- [deleted] (none) -> refs/pull/10226/merge
- [deleted] (none) -> refs/pull/10403/merge
- [deleted] (none) -> refs/pull/10413/merge
- [deleted] (none) -> refs/pull/10465/merge
- [deleted] (none) -> refs/pull/10483/merge
- [deleted] (none) -> refs/pull/10531/merge
- [deleted] (none) -> refs/pull/10554/merge
- [deleted] (none) -> refs/pull/10557/merge
- [deleted] (none) -> refs/pull/10560/merge
- [deleted] (none) -> refs/pull/10561/merge
- [deleted] (none) -> refs/pull/10566/merge
- [deleted] (none) -> refs/pull/10603/merge
- [deleted] (none) -> refs/pull/10614/merge
- [deleted] (none) -> refs/pull/10625/merge
- [deleted] (none) -> refs/pull/10648/merge
- [deleted] (none) -> refs/pull/10654/merge
- [deleted] (none) -> refs/pull/10670/merge
- [deleted] (none) -> refs/pull/10706/merge
- [deleted] (none) -> refs/pull/10712/merge
- [deleted] (none) -> refs/pull/10847/merge
- [deleted] (none) -> refs/pull/10892/merge
- [deleted] (none) -> refs/pull/10917/merge
- [deleted] (none) -> refs/pull/10924/merge
- [deleted] (none) -> refs/pull/10938/merge
- [deleted] (none) -> refs/pull/10962/merge
- [deleted] (none) -> refs/pull/10982/merge
- [deleted] (none) -> refs/pull/10991/merge
- [deleted] (none) -> refs/pull/10993/merge
- [deleted] (none) -> refs/pull/11006/merge
- [deleted] (none) -> refs/pull/11007/merge
- [deleted] (none) -> refs/pull/11013/merge
- [deleted] (none) -> refs/pull/11030/merge
- [deleted] (none) -> refs/pull/11041/merge
- [deleted] (none) -> refs/pull/11078/merge
- [deleted] (none) -> refs/pull/11088/merge
- [deleted] (none) -> refs/pull/11089/merge
- [deleted] (none) -> refs/pull/11090/merge
- [deleted] (none) -> refs/pull/11099/merge
- [deleted] (none) -> refs/pull/11137/merge
- [deleted] (none) -> refs/pull/11139/merge
- [deleted] (none) -> refs/pull/11141/merge
- [deleted] (none) -> refs/pull/11142/merge
- [deleted] (none) -> refs/pull/11155/merge
- [deleted] (none) -> refs/pull/11177/merge
- [deleted] (none) -> refs/pull/11178/merge
- [deleted] (none) -> refs/pull/11182/merge
- [deleted] (none) -> refs/pull/11207/merge
- [deleted] (none) -> refs/pull/11234/merge
- [deleted] (none) -> refs/pull/11242/merge
- [deleted] (none) -> refs/pull/11245/merge
- [deleted] (none) -> refs/pull/11247/merge
- [deleted] (none) -> refs/pull/11250/merge
- [deleted] (none) -> refs/pull/11314/merge
- [deleted] (none) -> refs/pull/11332/merge
- [deleted] (none) -> refs/pull/11352/merge
- [deleted] (none) -> refs/pull/11357/merge
- [deleted] (none) -> refs/pull/11359/merge
- [deleted] (none) -> refs/pull/11378/merge
- [deleted] (none) -> refs/pull/11379/merge
- [deleted] (none) -> refs/pull/11398/merge
- [deleted] (none) -> refs/pull/11420/merge
- [deleted] (none) -> refs/pull/11421/merge
- [deleted] (none) -> refs/pull/11422/merge
- [deleted] (none) -> refs/pull/11423/merge
- [deleted] (none) -> refs/pull/11424/merge
- [deleted] (none) -> refs/pull/11444/merge
- [deleted] (none) -> refs/pull/11471/merge
- [deleted] (none) -> refs/pull/11548/merge
- [deleted] (none) -> refs/pull/11583/merge
- [deleted] (none) -> refs/pull/11596/merge
- [deleted] (none) -> refs/pull/11604/merge
- [deleted] (none) -> refs/pull/11617/merge
- [deleted] (none) -> refs/pull/11633/merge
- [deleted] (none) -> refs/pull/11680/merge
- [deleted] (none) -> refs/pull/11754/merge
- [deleted] (none) -> refs/pull/11800/merge
- [deleted] (none) -> refs/pull/11817/merge
- [deleted] (none) -> refs/pull/11847/merge
- [deleted] (none) -> refs/pull/11919/merge
- [deleted] (none) -> refs/pull/11936/merge
- [deleted] (none) -> refs/pull/11938/merge
- [deleted] (none) -> refs/pull/11965/merge
- [deleted] (none) -> refs/pull/11974/merge
- [deleted] (none) -> refs/pull/11997/merge
- [deleted] (none) -> refs/pull/11999/merge
- [deleted] (none) -> refs/pull/12010/merge
- [deleted] (none) -> refs/pull/12029/merge
- [deleted] (none) -> refs/pull/12038/merge
- [deleted] (none) -> refs/pull/12062/merge
- [deleted] (none) -> refs/pull/12074/merge
- [deleted] (none) -> refs/pull/12078/merge
- [deleted] (none) -> refs/pull/12110/merge
- [deleted] (none) -> refs/pull/12154/merge
- [deleted] (none) -> refs/pull/12161/merge
- [deleted] (none) -> refs/pull/12182/merge
- [deleted] (none) -> refs/pull/12187/merge
- [deleted] (none) -> refs/pull/12200/merge
- [deleted] (none) -> refs/pull/12210/merge
- [deleted] (none) -> refs/pull/12217/merge
- [deleted] (none) -> refs/pull/12222/merge
- [deleted] (none) -> refs/pull/12245/merge
- [deleted] (none) -> refs/pull/12246/merge
- [deleted] (none) -> refs/pull/12280/merge
- [deleted] (none) -> refs/pull/12340/merge
- [deleted] (none) -> refs/pull/12348/merge
- [deleted] (none) -> refs/pull/12384/merge
- [deleted] (none) -> refs/pull/12389/merge
- [deleted] (none) -> refs/pull/12444/merge
- [deleted] (none) -> refs/pull/12458/merge
- [deleted] (none) -> refs/pull/12465/merge
- [deleted] (none) -> refs/pull/12475/merge
- [deleted] (none) -> refs/pull/12491/merge
- [deleted] (none) -> refs/pull/12515/merge
- [deleted] (none) -> refs/pull/12521/merge
- [deleted] (none) -> refs/pull/12523/merge
- [deleted] (none) -> refs/pull/12536/merge
- [deleted] (none) -> refs/pull/12537/merge
- [deleted] (none) -> refs/pull/12609/merge
- [deleted] (none) -> refs/pull/12619/merge
- [deleted] (none) -> refs/pull/12637/merge
- [deleted] (none) -> refs/pull/12649/merge
- [deleted] (none) -> refs/pull/12676/merge
- [deleted] (none) -> refs/pull/12690/merge
- [deleted] (none) -> refs/pull/12722/merge
- [deleted] (none) -> refs/pull/12747/merge
- [deleted] (none) -> refs/pull/12749/merge
- [deleted] (none) -> refs/pull/12766/merge
- [deleted] (none) -> refs/pull/12773/merge
- [deleted] (none) -> refs/pull/12790/merge
- [deleted] (none) -> refs/pull/12801/merge
- [deleted] (none) -> refs/pull/12807/merge
- [deleted] (none) -> refs/pull/12820/merge
- [deleted] (none) -> refs/pull/12829/merge
- [deleted] (none) -> refs/pull/12843/merge
- [deleted] (none) -> refs/pull/12877/merge
- [deleted] (none) -> refs/pull/12879/merge
- [deleted] (none) -> refs/pull/12887/merge
- [deleted] (none) -> refs/pull/12899/merge
- [deleted] (none) -> refs/pull/12930/merge
- [deleted] (none) -> refs/pull/12941/merge
- [deleted] (none) -> refs/pull/12973/merge
- [deleted] (none) -> refs/pull/12985/merge
- [deleted] (none) -> refs/pull/13030/merge
- [deleted] (none) -> refs/pull/13047/merge
- [deleted] (none) -> refs/pull/13048/merge
- [deleted] (none) -> refs/pull/13078/merge
- [deleted] (none) -> refs/pull/13090/merge
- [deleted] (none) -> refs/pull/13102/merge
- [deleted] (none) -> refs/pull/13165/merge
- [deleted] (none) -> refs/pull/13193/merge
- [deleted] (none) -> refs/pull/13199/merge
- [deleted] (none) -> refs/pull/13227/merge
- [deleted] (none) -> refs/pull/13290/merge
- [deleted] (none) -> refs/pull/13315/merge
- [deleted] (none) -> refs/pull/13337/merge
- [deleted] (none) -> refs/pull/13340/merge
- [deleted] (none) -> refs/pull/13358/merge
- [deleted] (none) -> refs/pull/13362/merge
- [deleted] (none) -> refs/pull/13372/merge
- [deleted] (none) -> refs/pull/13378/merge
- [deleted] (none) -> refs/pull/13381/merge
- [deleted] (none) -> refs/pull/13386/merge
- [deleted] (none) -> refs/pull/13397/merge
- [deleted] (none) -> refs/pull/13403/merge
- [deleted] (none) -> refs/pull/13407/merge
- [deleted] (none) -> refs/pull/13408/merge
- [deleted] (none) -> refs/pull/13439/merge
- [deleted] (none) -> refs/pull/13451/merge
- [deleted] (none) -> refs/pull/13455/merge
- [deleted] (none) -> refs/pull/13461/merge
- [deleted] (none) -> refs/pull/13465/merge
- [deleted] (none) -> refs/pull/13481/merge
- [deleted] (none) -> refs/pull/13482/merge
- [deleted] (none) -> refs/pull/13486/merge
- [deleted] (none) -> refs/pull/13507/merge
- [deleted] (none) -> refs/pull/13514/merge
- [deleted] (none) -> refs/pull/13522/merge
- [deleted] (none) -> refs/pull/13526/merge
- [deleted] (none) -> refs/pull/13530/merge
- [deleted] (none) -> refs/pull/13532/merge
- [deleted] (none) -> refs/pull/13539/merge
- [deleted] (none) -> refs/pull/13550/merge
- [deleted] (none) -> refs/pull/13581/merge
- [deleted] (none) -> refs/pull/13583/merge
- [deleted] (none) -> refs/pull/13609/merge
- [deleted] (none) -> refs/pull/13616/merge
- [deleted] (none) -> refs/pull/13622/merge
- [deleted] (none) -> refs/pull/13644/merge
- [deleted] (none) -> refs/pull/13650/merge
- [deleted] (none) -> refs/pull/13674/merge
- [deleted] (none) -> refs/pull/13681/merge
- [deleted] (none) -> refs/pull/13684/merge
- [deleted] (none) -> refs/pull/13686/merge
- [deleted] (none) -> refs/pull/13689/merge
- [deleted] (none) -> refs/pull/13692/merge
- [deleted] (none) -> refs/pull/13706/merge
- [deleted] (none) -> refs/pull/13720/merge
- [deleted] (none) -> refs/pull/13735/merge
- [deleted] (none) -> refs/pull/13763/merge
- [deleted] (none) -> refs/pull/13769/merge
- [deleted] (none) -> refs/pull/13789/merge
- [deleted] (none) -> refs/pull/13797/merge
- [deleted] (none) -> refs/pull/13838/merge
- [deleted] (none) -> refs/pull/13841/merge
- [deleted] (none) -> refs/pull/13855/merge
- [deleted] (none) -> refs/pull/13867/merge
- [deleted] (none) -> refs/pull/13868/merge
- [deleted] (none) -> refs/pull/13872/merge
- [deleted] (none) -> refs/pull/13873/merge
- [deleted] (none) -> refs/pull/13875/merge
- [deleted] (none) -> refs/pull/13881/merge
- [deleted] (none) -> refs/pull/13883/merge
- [deleted] (none) -> refs/pull/13963/merge
- [deleted] (none) -> refs/pull/13981/merge
- [deleted] (none) -> refs/pull/13991/merge
- [deleted] (none) -> refs/pull/14094/merge
- [deleted] (none) -> refs/pull/14096/merge
- [deleted] (none) -> refs/pull/14126/merge
- [deleted] (none) -> refs/pull/14141/merge
- [deleted] (none) -> refs/pull/14142/merge
- [deleted] (none) -> refs/pull/14147/merge
- [deleted] (none) -> refs/pull/14150/merge
- [deleted] (none) -> refs/pull/14175/merge
- [deleted] (none) -> refs/pull/14190/merge
- [deleted] (none) -> refs/pull/14263/merge
- [deleted] (none) -> refs/pull/14267/merge
- [deleted] (none) -> refs/pull/14326/merge
- [deleted] (none) -> refs/pull/14331/merge
- [deleted] (none) -> refs/pull/14332/merge
- [deleted] (none) -> refs/pull/14362/merge
- [deleted] (none) -> refs/pull/14366/merge
- [deleted] (none) -> refs/pull/14372/merge
- [deleted] (none) -> refs/pull/14381/merge
- [deleted] (none) -> refs/pull/14384/merge
- [deleted] (none) -> refs/pull/14408/merge
- [deleted] (none) -> refs/pull/14432/merge
- [deleted] (none) -> refs/pull/14433/merge
- [deleted] (none) -> refs/pull/14450/merge
- [deleted] (none) -> refs/pull/14456/merge
- [deleted] (none) -> refs/pull/14466/merge
- [deleted] (none) -> refs/pull/14479/merge
- [deleted] (none) -> refs/pull/14480/merge
- [deleted] (none) -> refs/pull/14494/merge
- [deleted] (none) -> refs/pull/14496/merge
- [deleted] (none) -> refs/pull/14499/merge
- [deleted] (none) -> refs/pull/14501/merge
- [deleted] (none) -> refs/pull/14511/merge
- [deleted] (none) -> refs/pull/14517/merge
- [deleted] (none) -> refs/pull/14600/merge
- [deleted] (none) -> refs/pull/14608/merge
- [deleted] (none) -> refs/pull/14610/merge
- [deleted] (none) -> refs/pull/14611/merge
- [deleted] (none) -> refs/pull/14616/merge
- [deleted] (none) -> refs/pull/14618/merge
- [deleted] (none) -> refs/pull/14640/merge
- [deleted] (none) -> refs/pull/14650/merge
- [deleted] (none) -> refs/pull/14652/merge
- [deleted] (none) -> refs/pull/14661/merge
- [deleted] (none) -> refs/pull/14667/merge
- [deleted] (none) -> refs/pull/14668/merge
- [deleted] (none) -> refs/pull/14675/merge
- [deleted] (none) -> refs/pull/14676/merge
- [deleted] (none) -> refs/pull/14681/merge
- [deleted] (none) -> refs/pull/14684/merge
- [deleted] (none) -> refs/pull/14685/merge
- [deleted] (none) -> refs/pull/14699/merge
- [deleted] (none) -> refs/pull/14701/merge
- [deleted] (none) -> refs/pull/14703/merge
- [deleted] (none) -> refs/pull/14706/merge
- [deleted] (none) -> refs/pull/14727/merge
- [deleted] (none) -> refs/pull/14738/merge
- [deleted] (none) -> refs/pull/14740/merge
- [deleted] (none) -> refs/pull/14748/merge
- [deleted] (none) -> refs/pull/14774/merge
- [deleted] (none) -> refs/pull/14776/merge
- [deleted] (none) -> refs/pull/14786/merge
- [deleted] (none) -> refs/pull/14809/merge
- [deleted] (none) -> refs/pull/14834/merge
- [deleted] (none) -> refs/pull/14835/merge
- [deleted] (none) -> refs/pull/14849/merge
- [deleted] (none) -> refs/pull/14852/merge
- [deleted] (none) -> refs/pull/14854/merge
- [deleted] (none) -> refs/pull/14855/merge
- [deleted] (none) -> refs/pull/14863/merge
- [deleted] (none) -> refs/pull/14872/merge
- [deleted] (none) -> refs/pull/14875/merge
- [deleted] (none) -> refs/pull/14877/merge
- [deleted] (none) -> refs/pull/14878/merge
- [deleted] (none) -> refs/pull/14880/merge
- [deleted] (none) -> refs/pull/14881/merge
- [deleted] (none) -> refs/pull/14894/merge
- [deleted] (none) -> refs/pull/14895/merge
- [deleted] (none) -> refs/pull/14900/merge
- [deleted] (none) -> refs/pull/14901/merge
- [deleted] (none) -> refs/pull/14905/merge
- [deleted] (none) -> refs/pull/14907/merge
- [deleted] (none) -> refs/pull/14915/merge
- [deleted] (none) -> refs/pull/14923/merge
- [deleted] (none) -> refs/pull/14927/merge
- [deleted] (none) -> refs/pull/14930/merge
- [deleted] (none) -> refs/pull/14931/merge
- [deleted] (none) -> refs/pull/14933/merge
- [deleted] (none) -> refs/pull/14936/merge
- [deleted] (none) -> refs/pull/14939/merge
- [deleted] (none) -> refs/pull/14950/merge
- [deleted] (none) -> refs/pull/14953/merge
- [deleted] (none) -> refs/pull/14955/merge
- [deleted] (none) -> refs/pull/14956/merge
- [deleted] (none) -> refs/pull/14967/merge
- [deleted] (none) -> refs/pull/14974/merge
- [deleted] (none) -> refs/pull/14982/merge
- [deleted] (none) -> refs/pull/14994/merge
- [deleted] (none) -> refs/pull/14997/merge
- [deleted] (none) -> refs/pull/15020/merge
- [deleted] (none) -> refs/pull/15027/merge
- [deleted] (none) -> refs/pull/15034/merge
- [deleted] (none) -> refs/pull/15035/merge
- [deleted] (none) -> refs/pull/15047/merge
- [deleted] (none) -> refs/pull/15049/merge
- [deleted] (none) -> refs/pull/15056/merge
- [deleted] (none) -> refs/pull/15057/merge
- [deleted] (none) -> refs/pull/15060/merge
- [deleted] (none) -> refs/pull/15062/merge
- [deleted] (none) -> refs/pull/15067/merge
- [deleted] (none) -> refs/pull/15088/merge
- [deleted] (none) -> refs/pull/15111/merge
- [deleted] (none) -> refs/pull/15113/merge
- [deleted] (none) -> refs/pull/15142/merge
- [deleted] (none) -> refs/pull/15143/merge
- [deleted] (none) -> refs/pull/15149/merge
- [deleted] (none) -> refs/pull/15151/merge
- [deleted] (none) -> refs/pull/15152/merge
- [deleted] (none) -> refs/pull/15175/merge
- [deleted] (none) -> refs/pull/15178/merge
- [deleted] (none) -> refs/pull/15191/merge
- [deleted] (none) -> refs/pull/15219/merge
- [deleted] (none) -> refs/pull/15228/merge
- [deleted] (none) -> refs/pull/15229/merge
- [deleted] (none) -> refs/pull/15234/merge
- [deleted] (none) -> refs/pull/15252/merge
- [deleted] (none) -> refs/pull/15253/merge
- [deleted] (none) -> refs/pull/15254/merge
- [deleted] (none) -> refs/pull/15255/merge
- [deleted] (none) -> refs/pull/15256/merge
- [deleted] (none) -> refs/pull/15274/merge
- [deleted] (none) -> refs/pull/15285/merge
- [deleted] (none) -> refs/pull/15307/merge
- [deleted] (none) -> refs/pull/15309/merge
- [deleted] (none) -> refs/pull/15312/merge
- [deleted] (none) -> refs/pull/15325/merge
- [deleted] (none) -> refs/pull/15335/merge
- [deleted] (none) -> refs/pull/15336/merge
- [deleted] (none) -> refs/pull/15348/merge
- [deleted] (none) -> refs/pull/15354/merge
- [deleted] (none) -> refs/pull/15357/merge
- [deleted] (none) -> refs/pull/15360/merge
- [deleted] (none) -> refs/pull/15364/merge
- [deleted] (none) -> refs/pull/15365/merge
- [deleted] (none) -> refs/pull/15371/merge
- [deleted] (none) -> refs/pull/15373/merge
- [deleted] (none) -> refs/pull/15380/merge
- [deleted] (none) -> refs/pull/15386/merge
- [deleted] (none) -> refs/pull/15393/merge
- [deleted] (none) -> refs/pull/15394/merge
- [deleted] (none) -> refs/pull/15395/merge
- [deleted] (none) -> refs/pull/15403/merge
- [deleted] (none) -> refs/pull/15405/merge
- [deleted] (none) -> refs/pull/4426/merge
- [deleted] (none) -> refs/pull/4432/merge
- [deleted] (none) -> refs/pull/4924/merge
- [deleted] (none) -> refs/pull/5115/merge
- [deleted] (none) -> refs/pull/5122/merge
- [deleted] (none) -> refs/pull/5416/merge
- [deleted] (none) -> refs/pull/5538/merge
- [deleted] (none) -> refs/pull/5558/merge
- [deleted] (none) -> refs/pull/5606/merge
- [deleted] (none) -> refs/pull/6508/merge
- [deleted] (none) -> refs/pull/6542/merge
- [deleted] (none) -> refs/pull/6570/merge
- [deleted] (none) -> refs/pull/6593/merge
- [deleted] (none) -> refs/pull/6994/merge
- [deleted] (none) -> refs/pull/7077/merge
- [deleted] (none) -> refs/pull/7259/merge
- [deleted] (none) -> refs/pull/7349/merge
- [deleted] (none) -> refs/pull/7353/merge
- [deleted] (none) -> refs/pull/7357/merge
- [deleted] (none) -> refs/pull/7407/merge
- [deleted] (none) -> refs/pull/7454/merge
- [deleted] (none) -> refs/pull/7468/merge
- [deleted] (none) -> refs/pull/7474/merge
- [deleted] (none) -> refs/pull/7552/merge
- [deleted] (none) -> refs/pull/7556/merge
- [deleted] (none) -> refs/pull/7611/merge
- [deleted] (none) -> refs/pull/7612/merge
- [deleted] (none) -> refs/pull/7626/merge
- [deleted] (none) -> refs/pull/7657/merge
- [deleted] (none) -> refs/pull/7694/merge
- [deleted] (none) -> refs/pull/7708/merge
- [deleted] (none) -> refs/pull/7715/merge
- [deleted] (none) -> refs/pull/7780/merge
- [deleted] (none) -> refs/pull/7790/merge
- [deleted] (none) -> refs/pull/7821/merge
- [deleted] (none) -> refs/pull/7883/merge
- [deleted] (none) -> refs/pull/7911/merge
- [deleted] (none) -> refs/pull/7918/merge
- [deleted] (none) -> refs/pull/8001/merge
- [deleted] (none) -> refs/pull/8027/merge
- [deleted] (none) -> refs/pull/8045/merge
- [deleted] (none) -> refs/pull/8047/merge
- [deleted] (none) -> refs/pull/8049/merge
- [deleted] (none) -> refs/pull/8052/merge
- [deleted] (none) -> refs/pull/8060/merge
- [deleted] (none) -> refs/pull/8063/merge
- [deleted] (none) -> refs/pull/8125/merge
- [deleted] (none) -> refs/pull/8147/merge
- [deleted] (none) -> refs/pull/8179/merge
- [deleted] (none) -> refs/pull/8242/merge
- [deleted] (none) -> refs/pull/8247/merge
- [deleted] (none) -> refs/pull/8252/merge
- [deleted] (none) -> refs/pull/8257/merge
- [deleted] (none) -> refs/pull/8331/merge
- [deleted] (none) -> refs/pull/8333/merge
- [deleted] (none) -> refs/pull/8335/merge
- [deleted] (none) -> refs/pull/8360/merge
- [deleted] (none) -> refs/pull/8361/merge
- [deleted] (none) -> refs/pull/8399/merge
- [deleted] (none) -> refs/pull/8428/merge
- [deleted] (none) -> refs/pull/8470/merge
- [deleted] (none) -> refs/pull/8495/merge
- [deleted] (none) -> refs/pull/8531/merge
- [deleted] (none) -> refs/pull/8606/merge
- [deleted] (none) -> refs/pull/8619/merge
- [deleted] (none) -> refs/pull/8629/merge
- [deleted] (none) -> refs/pull/8695/merge
- [deleted] (none) -> refs/pull/8743/merge
- [deleted] (none) -> refs/pull/8762/merge
- [deleted] (none) -> refs/pull/8850/merge
- [deleted] (none) -> refs/pull/9000/merge
- [deleted] (none) -> refs/pull/9003/merge
- [deleted] (none) -> refs/pull/9005/merge
- [deleted] (none) -> refs/pull/9006/merge
- [deleted] (none) -> refs/pull/9027/merge
- [deleted] (none) -> refs/pull/9028/merge
- [deleted] (none) -> refs/pull/9069/merge
- [deleted] (none) -> refs/pull/9100/merge
- [deleted] (none) -> refs/pull/9104/merge
- [deleted] (none) -> refs/pull/9131/merge
- [deleted] (none) -> refs/pull/9172/merge
- [deleted] (none) -> refs/pull/9181/merge
- [deleted] (none) -> refs/pull/9191/merge
- [deleted] (none) -> refs/pull/9224/merge
- [deleted] (none) -> refs/pull/9225/merge
- [deleted] (none) -> refs/pull/9226/merge
- [deleted] (none) -> refs/pull/9227/merge
- [deleted] (none) -> refs/pull/9229/merge
- [deleted] (none) -> refs/pull/9252/merge
- [deleted] (none) -> refs/pull/9379/merge
- [deleted] (none) -> refs/pull/9380/merge
- [deleted] (none) -> refs/pull/9381/merge
- [deleted] (none) -> refs/pull/9382/merge
- [deleted] (none) -> refs/pull/9383/merge
- [deleted] (none) -> refs/pull/9384/merge
- [deleted] (none) -> refs/pull/9385/merge
- [deleted] (none) -> refs/pull/9386/merge
- [deleted] (none) -> refs/pull/9387/merge
- [deleted] (none) -> refs/pull/9388/merge
- [deleted] (none) -> refs/pull/9391/merge
- [deleted] (none) -> refs/pull/9392/merge
- [deleted] (none) -> refs/pull/9404/merge
- [deleted] (none) -> refs/pull/9530/merge
- [deleted] (none) -> refs/pull/9596/merge
- [deleted] (none) -> refs/pull/9723/merge
- [deleted] (none) -> refs/pull/9767/merge
- [deleted] (none) -> refs/pull/9779/merge
- [deleted] (none) -> refs/pull/9941/merge
- [deleted] (none) -> refs/pull/9973/merge
- [deleted] (none) -> refs/pull/9977/merge
remote: Enumerating objects: 192247[K
remote: Enumerating objects: 227085, done.[K
remote: Counting objects: 0% (1/34838)[K
remote: Counting objects: 1% (349/34838)[K
remote: Counting objects: 2% (697/34838)[K
remote: Counting objects: 3% (1046/34838)[K
remote: Counting objects: 4% (1394/34838)[K
remote: Counting objects: 5% (1742/34838)[K
remote: Counting objects: 6% (2091/34838)[K
remote: Counting objects: 7% (2439/34838)[K
remote: Counting objects: 8% (2788/34838)[K
remote: Counting objects: 9% (3136/34838)[K
remote: Counting objects: 10% (3484/34838)[K
remote: Counting objects: 11% (3833/34838)[K
remote: Counting objects: 12% (4181/34838)[K
remote: Counting objects: 13% (4529/34838)[K
remote: Counting objects: 14% (4878/34838)[K
remote: Counting objects: 15% (5226/34838)[K
remote: Counting objects: 16% (5575/34838)[K
remote: Counting objects: 17% (5923/34838)[K
remote: Counting objects: 18% (6271/34838)[K
remote: Counting objects: 19% (6620/34838)[K
remote: Counting objects: 20% (6968/34838)[K
remote: Counting objects: 21% (7316/34838)[K
remote: Counting objects: 22% (7665/34838)[K
remote: Counting objects: 23% (8013/34838)[K
remote: Counting objects: 24% (8362/34838)[K
remote: Counting objects: 25% (8710/34838)[K
remote: Counting objects: 26% (9058/34838)[K
remote: Counting objects: 27% (9407/34838)[K
remote: Counting objects: 28% (9755/34838)[K
remote: Counting objects: 29% (10104/34838)[K
remote: Counting objects: 30% (10452/34838)[K
remote: Counting objects: 31% (10800/34838)[K
remote: Counting objects: 32% (11149/34838)[K
remote: Counting objects: 33% (11497/34838)[K
remote: Counting objects: 34% (11845/34838)[K
remote: Counting objects: 35% (12194/34838)[K
remote: Counting objects: 36% (12542/34838)[K
remote: Counting objects: 37% (12891/34838)[K
remote: Counting objects: 38% (13239/34838)[K
remote: Counting objects: 39% (13587/34838)[K
remote: Counting objects: 40% (13936/34838)[K
remote: Counting objects: 41% (14284/34838)[K
remote: Counting objects: 42% (14632/34838)[K
remote: Counting objects: 43% (14981/34838)[K
remote: Counting objects: 44% (15329/34838)[K
remote: Counting objects: 45% (15678/34838)[K
remote: Counting objects: 46% (16026/34838)[K
remote: Counting objects: 47% (16374/34838)[K
remote: Counting objects: 48% (16723/34838)[K
remote: Counting objects: 49% (17071/34838)[K
remote: Counting objects: 50% (17419/34838)[K
remote: Counting objects: 51% (17768/34838)[K
remote: Counting objects: 52% (18116/34838)[K
remote: Counting objects: 53% (18465/34838)[K
remote: Counting objects: 54% (18813/34838)[K
remote: Counting objects: 55% (19161/34838)[K
remote: Counting objects: 56% (19510/34838)[K
remote: Counting objects: 57% (19858/34838)[K
remote: Counting objects: 58% (20207/34838)[K
remote: Counting objects: 59% (20555/34838)[K
remote: Counting objects: 60% (20903/34838)[K
remote: Counting objects: 61% (21252/34838)[K
remote: Counting objects: 62% (21600/34838)[K
remote: Counting objects: 63% (21948/34838)[K
remote: Counting objects: 64% (22297/34838)[K
remote: Counting objects: 65% (22645/34838)[K
remote: Counting objects: 66% (22994/34838)[K
remote: Counting objects: 67% (23342/34838)[K
remote: Counting objects: 68% (23690/34838)[K
remote: Counting objects: 69% (24039/34838)[K
remote: Counting objects: 70% (24387/34838)[K
remote: Counting objects: 71% (24735/34838)[K
remote: Counting objects: 72% (25084/34838)[K
remote: Counting objects: 73% (25432/34838)[K
remote: Counting objects: 74% (25781/34838)[K
remote: Counting objects: 75% (26129/34838)[K
remote: Counting objects: 76% (26477/34838)[K
remote: Counting objects: 77% (26826/34838)[K
remote: Counting objects: 78% (27174/34838)[K
remote: Counting objects: 79% (27523/34838)[K
remote: Counting objects: 80% (27871/34838)[K
remote: Counting objects: 81% (28219/34838)[K
remote: Counting objects: 82% (28568/34838)[K
remote: Counting objects: 83% (28916/34838)[K
remote: Counting objects: 84% (29264/34838)[K
remote: Counting objects: 85% (29613/34838)[K
remote: Counting objects: 86% (29961/34838)[K
remote: Counting objects: 87% (30310/34838)[K
remote: Counting objects: 88% (30658/34838)[K
remote: Counting objects: 89% (31006/34838)[K
remote: Counting objects: 90% (31355/34838)[K
remote: Counting objects: 91% (31703/34838)[K
remote: Counting objects: 92% (32051/34838)[K
remote: Counting objects: 93% (32400/34838)[K
remote: Counting objects: 94% (32748/34838)[K
remote: Counting objects: 95% (33097/34838)[K
remote: Counting objects: 96% (33445/34838)[K
remote: Counting objects: 97% (33793/34838)[K
remote: Counting objects: 98% (34142/34838)[K
remote: Counting objects: 99% (34490/34838)[K
remote: Counting objects: 100% (34838/34838)[K
remote: Counting objects: 100% (34838/34838), done.[K
remote: Compressing objects: 0% (1/439)[K
remote: Compressing objects: 1% (5/439)[K
remote: Compressing objects: 2% (9/439)[K
remote: Compressing objects: 3% (14/439)[K
remote: Compressing objects: 4% (18/439)[K
remote: Compressing objects: 5% (22/439)[K
remote: Compressing objects: 6% (27/439)[K
remote: Compressing objects: 7% (31/439)[K
remote: Compressing objects: 8% (36/439)[K
remote: Compressing objects: 9% (40/439)[K
remote: Compressing objects: 10% (44/439)[K
remote: Compressing objects: 11% (49/439)[K
remote: Compressing objects: 12% (53/439)[K
remote: Compressing objects: 13% (58/439)[K
remote: Compressing objects: 14% (62/439)[K
remote: Compressing objects: 15% (66/439)[K
remote: Compressing objects: 16% (71/439)[K
remote: Compressing objects: 17% (75/439)[K
remote: Compressing objects: 18% (80/439)[K
remote: Compressing objects: 19% (84/439)[K
remote: Compressing objects: 20% (88/439)[K
remote: Compressing objects: 21% (93/439)[K
remote: Compressing objects: 22% (97/439)[K
remote: Compressing objects: 23% (101/439)[K
remote: Compressing objects: 24% (106/439)[K
remote: Compressing objects: 25% (110/439)[K
remote: Compressing objects: 26% (115/439)[K
remote: Compressing objects: 27% (119/439)[K
remote: Compressing objects: 28% (123/439)[K
remote: Compressing objects: 29% (128/439)[K
remote: Compressing objects: 30% (132/439)[K
remote: Compressing objects: 31% (137/439)[K
remote: Compressing objects: 32% (141/439)[K
remote: Compressing objects: 33% (145/439)[K
remote: Compressing objects: 34% (150/439)[K
remote: Compressing objects: 35% (154/439)[K
remote: Compressing objects: 36% (159/439)[K
remote: Compressing objects: 37% (163/439)[K
remote: Compressing objects: 38% (167/439)[K
remote: Compressing objects: 39% (172/439)[K
remote: Compressing objects: 40% (176/439)[K
remote: Compressing objects: 41% (180/439)[K
remote: Compressing objects: 42% (185/439)[K
remote: Compressing objects: 43% (189/439)[K
remote: Compressing objects: 44% (194/439)[K
remote: Compressing objects: 45% (198/439)[K
remote: Compressing objects: 46% (202/439)[K
remote: Compressing objects: 47% (207/439)[K
remote: Compressing objects: 48% (211/439)[K
remote: Compressing objects: 49% (216/439)[K
remote: Compressing objects: 50% (220/439)[K
remote: Compressing objects: 51% (224/439)[K
remote: Compressing objects: 52% (229/439)[K
remote: Compressing objects: 53% (233/439)[K
remote: Compressing objects: 54% (238/439)[K
remote: Compressing objects: 55% (242/439)[K
remote: Compressing objects: 56% (246/439)[K
remote: Compressing objects: 57% (251/439)[K
remote: Compressing objects: 58% (255/439)[K
remote: Compressing objects: 59% (260/439)[K
remote: Compressing objects: 60% (264/439)[K
remote: Compressing objects: 61% (268/439)[K
remote: Compressing objects: 62% (273/439)[K
remote: Compressing objects: 63% (277/439)[K
remote: Compressing objects: 64% (281/439)[K
remote: Compressing objects: 65% (286/439)[K
remote: Compressing objects: 66% (290/439)[K
remote: Compressing objects: 67% (295/439)[K
remote: Compressing objects: 68% (299/439)[K
remote: Compressing objects: 69% (303/439)[K
remote: Compressing objects: 70% (308/439)[K
remote: Compressing objects: 71% (312/439)[K
remote: Compressing objects: 72% (317/439)[K
remote: Compressing objects: 73% (321/439)[K
remote: Compressing objects: 74% (325/439)[K
remote: Compressing objects: 75% (330/439)[K
remote: Compressing objects: 76% (334/439)[K
remote: Compressing objects: 77% (339/439)[K
remote: Compressing objects: 78% (343/439)[K
remote: Compressing objects: 79% (347/439)[K
remote: Compressing objects: 80% (352/439)[K
remote: Compressing objects: 81% (356/439)[K
remote: Compressing objects: 82% (360/439)[K
remote: Compressing objects: 83% (365/439)[K
remote: Compressing objects: 84% (369/439)[K
remote: Compressing objects: 85% (374/439)[K
remote: Compressing objects: 86% (378/439)[K
remote: Compressing objects: 87% (382/439)[K
remote: Compressing objects: 88% (387/439)[K
remote: Compressing objects: 89% (391/439)[K
remote: Compressing objects: 90% (396/439)[K
remote: Compressing objects: 91% (400/439)[K
remote: Compressing objects: 92% (404/439)[K
remote: Compressing objects: 93% (409/439)[K
remote: Compressing objects: 94% (413/439)[K
remote: Compressing objects: 95% (418/439)[K
remote: Compressing objects: 96% (422/439)[K
remote: Compressing objects: 97% (426/439)[K
remote: Compressing objects: 98% (431/439)[K
remote: Compressing objects: 99% (435/439)[K
remote: Compressing objects: 100% (439/439)[K
remote: Compressing objects: 100% (439/439), done.[K
Receiving objects: 0% (1/227085)
Receiving objects: 0% (1718/227085), 436.01 KiB | 820.00 KiB/s
Receiving objects: 1% (2271/227085), 812.01 KiB | 771.00 KiB/s
Receiving objects: 1% (4046/227085), 1.81 MiB | 826.00 KiB/s
Receiving objects: 2% (4542/227085), 1.81 MiB | 826.00 KiB/s
Receiving objects: 2% (5192/227085), 2.39 MiB | 886.00 KiB/s
Receiving objects: 2% (5962/227085), 3.05 MiB | 821.00 KiB/s
Receiving objects: 2% (5967/227085), 3.81 MiB | 771.00 KiB/s
Receiving objects: 2% (5972/227085), 4.18 MiB | 743.00 KiB/s
Receiving objects: 2% (5976/227085), 4.93 MiB | 689.00 KiB/s
Receiving objects: 2% (5979/227085), 5.49 MiB | 599.00 KiB/s
Receiving objects: 2% (6114/227085), 5.71 MiB | 588.00 KiB/s
Receiving objects: 2% (6312/227085), 6.37 MiB | 504.00 KiB/s
Receiving objects: 2% (6312/227085), 6.65 MiB | 464.00 KiB/s
Receiving objects: 2% (6312/227085), 7.10 MiB | 410.00 KiB/s
Receiving objects: 2% (6312/227085), 7.38 MiB | 400.00 KiB/s
Receiving objects: 2% (6312/227085), 7.88 MiB | 381.00 KiB/s
Receiving objects: 2% (6312/227085), 8.14 MiB | 381.00 KiB/s
Receiving objects: 2% (6312/227085), 8.69 MiB | 389.00 KiB/s
Receiving objects: 2% (6312/227085), 9.17 MiB | 407.00 KiB/s
Receiving objects: 2% (6312/227085), 9.43 MiB | 422.00 KiB/s
Receiving objects: 2% (6312/227085), 9.92 MiB | 439.00 KiB/s
Receiving objects: 2% (6312/227085), 10.46 MiB | 465.00 KiB/s
Receiving objects: 2% (6312/227085), 11.12 MiB | 498.00 KiB/s
Receiving objects: 2% (6313/227085), 11.49 MiB | 524.00 KiB/s
Receiving objects: 2% (6590/227085), 12.00 MiB | 523.00 KiB/s
Receiving objects: 3% (6813/227085), 12.24 MiB | 505.00 KiB/s
Receiving objects: 3% (6889/227085), 12.24 MiB | 505.00 KiB/s
Receiving objects: 3% (7183/227085), 12.71 MiB | 483.00 KiB/s
Receiving objects: 3% (7476/227085), 13.13 MiB | 453.00 KiB/s
Receiving objects: 3% (7683/227085), 13.36 MiB | 424.00 KiB/s
Receiving objects: 3% (7981/227085), 13.71 MiB | 365.00 KiB/s
Receiving objects: 3% (8195/227085), 13.96 MiB | 371.00 KiB/s
Receiving objects: 3% (8499/227085), 14.69 MiB | 402.00 KiB/s
Receiving objects: 3% (8835/227085), 15.04 MiB | 424.00 KiB/s
Receiving objects: 3% (8984/227085), 15.99 MiB | 524.00 KiB/s
Receiving objects: 3% (8984/227085), 16.48 MiB | 532.00 KiB/s
Receiving objects: 3% (8985/227085), 16.79 MiB | 544.00 KiB/s
Receiving objects: 3% (8985/227085), 17.33 MiB | 549.00 KiB/s
Receiving objects: 3% (8985/227085), 17.88 MiB | 510.00 KiB/s
Receiving objects: 3% (8985/227085), 18.42 MiB | 487.00 KiB/s
Receiving objects: 3% (8986/227085), 18.86 MiB | 473.00 KiB/s
Receiving objects: 3% (8986/227085), 19.17 MiB | 475.00 KiB/s
Receiving objects: 3% (8986/227085), 19.53 MiB | 423.00 KiB/s
Receiving objects: 3% (8986/227085), 20.04 MiB | 412.00 KiB/s
Receiving objects: 3% (8987/227085), 20.32 MiB | 396.00 KiB/s
Receiving objects: 3% (8987/227085), 20.77 MiB | 407.00 KiB/s
Receiving objects: 3% (8987/227085), 21.23 MiB | 395.00 KiB/s
Receiving objects: 3% (8987/227085), 21.72 MiB | 431.00 KiB/s
Receiving objects: 3% (8987/227085), 22.00 MiB | 451.00 KiB/s
Receiving objects: 3% (8988/227085), 22.50 MiB | 464.00 KiB/s
Receiving objects: 3% (8988/227085), 23.10 MiB | 495.00 KiB/s
Receiving objects: 3% (9073/227085), 23.43 MiB | 525.00 KiB/s
Receiving objects: 4% (9084/227085), 23.43 MiB | 525.00 KiB/s
Receiving objects: 4% (9839/227085), 24.26 MiB | 578.00 KiB/s
Receiving objects: 4% (10451/227085), 24.96 MiB | 595.00 KiB/s
Receiving objects: 4% (11129/227085), 25.34 MiB | 629.00 KiB/s
Receiving objects: 5% (11355/227085), 25.65 MiB | 638.00 KiB/s
Receiving objects: 5% (11712/227085), 26.34 MiB | 662.00 KiB/s
Receiving objects: 5% (12495/227085), 26.68 MiB | 655.00 KiB/s
Receiving objects: 5% (13177/227085), 27.37 MiB | 614.00 KiB/s
Receiving objects: 6% (13626/227085), 27.37 MiB | 614.00 KiB/s
Receiving objects: 6% (14135/227085), 27.93 MiB | 628.00 KiB/s
Receiving objects: 6% (14908/227085), 28.65 MiB | 659.00 KiB/s
Receiving objects: 6% (15877/227085), 29.34 MiB | 641.00 KiB/s
Receiving objects: 7% (15896/227085), 29.34 MiB | 641.00 KiB/s
Receiving objects: 7% (16863/227085), 30.10 MiB | 675.00 KiB/s
Receiving objects: 7% (17948/227085), 30.48 MiB | 675.00 KiB/s
Receiving objects: 8% (18167/227085), 30.91 MiB | 732.00 KiB/s
Receiving objects: 8% (19924/227085), 31.35 MiB | 714.00 KiB/s
Receiving objects: 9% (20438/227085), 31.75 MiB | 729.00 KiB/s
Receiving objects: 9% (22524/227085), 32.21 MiB | 737.00 KiB/s
Receiving objects: 10% (22709/227085), 32.21 MiB | 737.00 KiB/s
Receiving objects: 11% (24980/227085), 33.00 MiB | 762.00 KiB/s
Receiving objects: 11% (25028/227085), 33.00 MiB | 762.00 KiB/s
Receiving objects: 11% (26252/227085), 33.72 MiB | 757.00 KiB/s
Receiving objects: 12% (27251/227085), 34.13 MiB | 770.00 KiB/s
Receiving objects: 12% (28657/227085), 34.59 MiB | 778.00 KiB/s
Receiving objects: 13% (29522/227085), 34.59 MiB | 778.00 KiB/s
Receiving objects: 14% (31792/227085), 35.05 MiB | 800.00 KiB/s
Receiving objects: 14% (33438/227085), 35.57 MiB | 827.00 KiB/s
Receiving objects: 15% (34063/227085), 35.57 MiB | 827.00 KiB/s
Receiving objects: 16% (36334/227085), 35.57 MiB | 827.00 KiB/s
Receiving objects: 16% (38272/227085), 36.74 MiB | 896.00 KiB/s
Receiving objects: 17% (38605/227085), 36.74 MiB | 896.00 KiB/s
Receiving objects: 18% (40876/227085), 36.74 MiB | 896.00 KiB/s
Receiving objects: 18% (42883/227085), 37.29 MiB | 893.00 KiB/s
Receiving objects: 19% (43147/227085), 37.29 MiB | 893.00 KiB/s
Receiving objects: 19% (44478/227085), 38.07 MiB | 840.00 KiB/s
Receiving objects: 20% (45417/227085), 38.07 MiB | 840.00 KiB/s
Receiving objects: 20% (46125/227085), 38.37 MiB | 789.00 KiB/s
Receiving objects: 20% (47555/227085), 38.68 MiB | 735.00 KiB/s
Receiving objects: 21% (47688/227085), 39.00 MiB | 689.00 KiB/s
Receiving objects: 21% (47733/227085), 39.29 MiB | 654.00 KiB/s
Receiving objects: 21% (48514/227085), 39.74 MiB | 513.00 KiB/s
Receiving objects: 21% (48896/227085), 39.91 MiB | 462.00 KiB/s
Receiving objects: 22% (49959/227085), 40.10 MiB | 417.00 KiB/s
Receiving objects: 22% (50434/227085), 40.33 MiB | 403.00 KiB/s
Receiving objects: 22% (51662/227085), 40.58 MiB | 398.00 KiB/s
Receiving objects: 23% (52230/227085), 40.84 MiB | 390.00 KiB/s
Receiving objects: 23% (52374/227085), 41.10 MiB | 392.00 KiB/s
Receiving objects: 23% (53566/227085), 41.46 MiB | 374.00 KiB/s
Receiving objects: 23% (54058/227085), 41.63 MiB | 354.00 KiB/s
Receiving objects: 24% (54501/227085), 41.89 MiB | 359.00 KiB/s
Receiving objects: 24% (55604/227085), 42.17 MiB | 386.00 KiB/s
Receiving objects: 25% (56772/227085), 42.57 MiB | 387.00 KiB/s
Receiving objects: 25% (56797/227085), 42.57 MiB | 387.00 KiB/s
Receiving objects: 25% (58557/227085), 43.18 MiB | 404.00 KiB/s
Receiving objects: 26% (59043/227085), 43.18 MiB | 404.00 KiB/s
Receiving objects: 27% (61313/227085), 43.53 MiB | 441.00 KiB/s
Receiving objects: 27% (61447/227085), 43.53 MiB | 441.00 KiB/s
Receiving objects: 27% (63278/227085), 44.61 MiB | 578.00 KiB/s
Receiving objects: 28% (63584/227085), 44.61 MiB | 578.00 KiB/s
Receiving objects: 29% (65855/227085), 45.12 MiB | 624.00 KiB/s
Receiving objects: 29% (66031/227085), 45.71 MiB | 702.00 KiB/s
Receiving objects: 30% (68126/227085), 46.36 MiB | 795.00 KiB/s
Receiving objects: 30% (68923/227085), 46.73 MiB | 798.00 KiB/s
Receiving objects: 31% (70397/227085), 46.73 MiB | 798.00 KiB/s
Receiving objects: 31% (71370/227085), 47.70 MiB | 979.00 KiB/s
Receiving objects: 32% (72668/227085), 47.96 MiB | 929.00 KiB/s
Receiving objects: 32% (73280/227085), 48.50 MiB | 973.00 KiB/s
Receiving objects: 32% (74088/227085), 48.89 MiB | 879.00 KiB/s
Receiving objects: 33% (74939/227085), 49.15 MiB | 832.00 KiB/s
Receiving objects: 33% (75394/227085), 49.15 MiB | 832.00 KiB/s
Receiving objects: 33% (76275/227085), 49.54 MiB | 639.00 KiB/s
Receiving objects: 34% (77209/227085), 49.74 MiB | 599.00 KiB/s
Receiving objects: 34% (77369/227085), 50.02 MiB | 454.00 KiB/s
Receiving objects: 34% (78262/227085), 50.21 MiB | 450.00 KiB/s
Receiving objects: 34% (79412/227085), 50.80 MiB | 393.00 KiB/s
Receiving objects: 35% (79480/227085), 50.80 MiB | 393.00 KiB/s
Receiving objects: 35% (80524/227085), 51.11 MiB | 407.00 KiB/s
Receiving objects: 36% (81751/227085), 51.40 MiB | 415.00 KiB/s
Receiving objects: 36% (82708/227085), 51.68 MiB | 431.00 KiB/s
Receiving objects: 37% (84022/227085), 51.68 MiB | 431.00 KiB/s
Receiving objects: 37% (85204/227085), 52.10 MiB | 461.00 KiB/s
Receiving objects: 38% (86293/227085), 52.45 MiB | 497.00 KiB/s
Receiving objects: 38% (88432/227085), 52.90 MiB | 516.00 KiB/s
Receiving objects: 39% (88564/227085), 52.90 MiB | 516.00 KiB/s
Receiving objects: 39% (90317/227085), 53.61 MiB | 547.00 KiB/s
Receiving objects: 39% (90317/227085), 54.29 MiB | 571.00 KiB/s
Receiving objects: 39% (90317/227085), 54.92 MiB | 578.00 KiB/s
Receiving objects: 39% (90317/227085), 55.28 MiB | 572.00 KiB/s
Receiving objects: 39% (90317/227085), 56.02 MiB | 548.00 KiB/s
Receiving objects: 39% (90317/227085), 56.27 MiB | 541.00 KiB/s
Receiving objects: 39% (90317/227085), 56.65 MiB | 483.00 KiB/s
Receiving objects: 39% (90317/227085), 57.11 MiB | 468.00 KiB/s
Receiving objects: 39% (90317/227085), 57.59 MiB | 450.00 KiB/s
Receiving objects: 39% (90317/227085), 58.21 MiB | 458.00 KiB/s
Receiving objects: 39% (90317/227085), 58.48 MiB | 454.00 KiB/s
Receiving objects: 39% (90317/227085), 59.11 MiB | 533.00 KiB/s
Receiving objects: 39% (90317/227085), 59.70 MiB | 546.00 KiB/s
Receiving objects: 39% (90317/227085), 60.20 MiB | 541.00 KiB/s
Receiving objects: 40% (90834/227085), 60.49 MiB | 534.00 KiB/s
Receiving objects: 40% (90989/227085), 60.49 MiB | 534.00 KiB/s
Receiving objects: 40% (90990/227085), 61.51 MiB | 573.00 KiB/s
Receiving objects: 40% (90990/227085), 62.39 MiB | 658.00 KiB/s
Receiving objects: 40% (90990/227085), 62.91 MiB | 698.00 KiB/s
Receiving objects: 40% (90990/227085), 63.79 MiB | 753.00 KiB/s
Receiving objects: 40% (90990/227085), 65.03 MiB | 848.00 KiB/s
Receiving objects: 40% (90990/227085), 65.33 MiB | 814.00 KiB/s
Receiving objects: 40% (90990/227085), 65.82 MiB | 709.00 KiB/s
Receiving objects: 40% (90990/227085), 66.04 MiB | 651.00 KiB/s
Receiving objects: 40% (90990/227085), 66.40 MiB | 536.00 KiB/s
Receiving objects: 40% (90990/227085), 66.82 MiB | 444.00 KiB/s
Receiving objects: 40% (90991/227085), 67.07 MiB | 384.00 KiB/s
Receiving objects: 40% (92209/227085), 67.25 MiB | 368.00 KiB/s
Receiving objects: 40% (92694/227085), 67.82 MiB | 381.00 KiB/s
Receiving objects: 41% (93105/227085), 67.82 MiB | 381.00 KiB/s
Receiving objects: 41% (94692/227085), 68.15 MiB | 399.00 KiB/s
Receiving objects: 42% (95376/227085), 68.54 MiB | 425.00 KiB/s
Receiving objects: 42% (96986/227085), 68.93 MiB | 469.00 KiB/s
Receiving objects: 43% (97647/227085), 68.93 MiB | 469.00 KiB/s
Receiving objects: 43% (99036/227085), 69.75 MiB | 537.00 KiB/s
Receiving objects: 43% (99036/227085), 70.76 MiB | 657.00 KiB/s
Receiving objects: 43% (99036/227085), 72.11 MiB | 851.00 KiB/s
Receiving objects: 43% (99036/227085), 73.88 MiB | 1.06 MiB/s
Receiving objects: 43% (99036/227085), 74.82 MiB | 1.13 MiB/s
Receiving objects: 43% (99036/227085), 75.39 MiB | 1.13 MiB/s
Receiving objects: 43% (99036/227085), 76.65 MiB | 1.16 MiB/s
Receiving objects: 44% (99918/227085), 77.25 MiB | 1.14 MiB/s
Receiving objects: 44% (101118/227085), 77.25 MiB | 1.14 MiB/s
Receiving objects: 44% (101357/227085), 78.50 MiB | 928.00 KiB/s
Receiving objects: 44% (101357/227085), 79.09 MiB | 861.00 KiB/s
Receiving objects: 44% (101357/227085), 79.39 MiB | 818.00 KiB/s
Receiving objects: 44% (101357/227085), 80.07 MiB | 710.00 KiB/s
Receiving objects: 44% (101358/227085), 80.79 MiB | 649.00 KiB/s
Receiving objects: 44% (101358/227085), 81.48 MiB | 637.00 KiB/s
Receiving objects: 44% (101358/227085), 82.16 MiB | 612.00 KiB/s
Receiving objects: 44% (101358/227085), 82.60 MiB | 622.00 KiB/s
Receiving objects: 44% (101359/227085), 83.51 MiB | 625.00 KiB/s
Receiving objects: 44% (101359/227085), 83.82 MiB | 588.00 KiB/s
Receiving objects: 44% (101359/227085), 84.11 MiB | 586.00 KiB/s
Receiving objects: 44% (101359/227085), 84.66 MiB | 529.00 KiB/s
Receiving objects: 44% (101359/227085), 84.95 MiB | 527.00 KiB/s
Receiving objects: 44% (101359/227085), 85.46 MiB | 492.00 KiB/s
Receiving objects: 44% (101359/227085), 86.02 MiB | 431.00 KiB/s
Receiving objects: 44% (101360/227085), 86.28 MiB | 435.00 KiB/s
Receiving objects: 44% (101360/227085), 86.88 MiB | 441.00 KiB/s
Receiving objects: 44% (101361/227085), 87.00 MiB | 414.00 KiB/s
Receiving objects: 44% (101361/227085), 87.57 MiB | 433.00 KiB/s
Receiving objects: 44% (101361/227085), 88.18 MiB | 465.00 KiB/s
Receiving objects: 44% (101361/227085), 88.41 MiB | 456.00 KiB/s
Receiving objects: 44% (101361/227085), 89.14 MiB | 498.00 KiB/s
Receiving objects: 44% (101361/227085), 89.82 MiB | 540.00 KiB/s
Receiving objects: 44% (101361/227085), 90.11 MiB | 534.00 KiB/s
Receiving objects: 44% (101361/227085), 90.66 MiB | 543.00 KiB/s
Receiving objects: 44% (101361/227085), 91.20 MiB | 514.00 KiB/s
Receiving objects: 44% (101367/227085), 91.20 MiB | 514.00 KiB/s
Receiving objects: 45% (102189/227085), 91.80 MiB | 486.00 KiB/s
Receiving objects: 45% (102729/227085), 91.80 MiB | 486.00 KiB/s
Receiving objects: 45% (103625/227085), 92.34 MiB | 467.00 KiB/s
Receiving objects: 45% (103625/227085), 92.88 MiB | 465.00 KiB/s
Receiving objects: 45% (103625/227085), 93.51 MiB | 488.00 KiB/s
Receiving objects: 45% (103625/227085), 93.75 MiB | 478.00 KiB/s
Receiving objects: 45% (103625/227085), 94.37 MiB | 484.00 KiB/s
Receiving objects: 45% (103625/227085), 95.11 MiB | 548.00 KiB/s
Receiving objects: 45% (103625/227085), 95.79 MiB | 596.00 KiB/s
Receiving objects: 45% (103625/227085), 96.59 MiB | 667.00 KiB/s
Receiving objects: 45% (103641/227085), 97.57 MiB | 773.00 KiB/s
Receiving objects: 45% (103641/227085), 98.09 MiB | 762.00 KiB/s
Receiving objects: 45% (103641/227085), 98.88 MiB | 749.00 KiB/s
Receiving objects: 45% (103642/227085), 99.32 MiB | 767.00 KiB/s
Receiving objects: 45% (103642/227085), 100.17 MiB | 743.00 KiB/s
Receiving objects: 45% (103642/227085), 101.01 MiB | 719.00 KiB/s
Receiving objects: 45% (103643/227085), 101.83 MiB | 735.00 KiB/s
Receiving objects: 45% (103643/227085), 102.11 MiB | 700.00 KiB/s
Receiving objects: 45% (103920/227085), 102.55 MiB | 698.00 KiB/s
Receiving objects: 46% (104460/227085), 102.55 MiB | 698.00 KiB/s
Receiving objects: 47% (106730/227085), 102.94 MiB | 688.00 KiB/s
Receiving objects: 47% (106968/227085), 103.36 MiB | 673.00 KiB/s
Receiving objects: 48% (109001/227085), 103.79 MiB | 687.00 KiB/s
Receiving objects: 48% (110332/227085), 103.79 MiB | 687.00 KiB/s
Receiving objects: 49% (111272/227085), 104.51 MiB | 666.00 KiB/s
Receiving objects: 49% (112666/227085), 104.85 MiB | 665.00 KiB/s
Receiving objects: 50% (113543/227085), 104.85 MiB | 665.00 KiB/s
Receiving objects: 50% (114481/227085), 105.22 MiB | 675.00 KiB/s
Receiving objects: 51% (115814/227085), 105.66 MiB | 733.00 KiB/s
Receiving objects: 51% (116888/227085), 106.11 MiB | 762.00 KiB/s
Receiving objects: 52% (118085/227085), 106.50 MiB | 735.00 KiB/s
Receiving objects: 52% (118401/227085), 106.96 MiB | 759.00 KiB/s
Receiving objects: 53% (120356/227085), 107.27 MiB | 730.00 KiB/s
Receiving objects: 53% (121579/227085), 107.74 MiB | 734.00 KiB/s
Receiving objects: 54% (122626/227085), 107.74 MiB | 734.00 KiB/s
Receiving objects: 54% (123661/227085), 107.99 MiB | 708.00 KiB/s
Receiving objects: 55% (124897/227085), 108.38 MiB | 698.00 KiB/s
Receiving objects: 55% (126646/227085), 108.77 MiB | 701.00 KiB/s
Receiving objects: 56% (127168/227085), 108.77 MiB | 701.00 KiB/s
Receiving objects: 56% (128075/227085), 109.50 MiB | 629.00 KiB/s
Receiving objects: 56% (128839/227085), 109.88 MiB | 647.00 KiB/s
Receiving objects: 57% (129439/227085), 110.21 MiB | 580.00 KiB/s
Receiving objects: 57% (130435/227085), 110.21 MiB | 580.00 KiB/s
Receiving objects: 58% (131710/227085), 110.83 MiB | 558.00 KiB/s
Receiving objects: 58% (132021/227085), 111.17 MiB | 565.00 KiB/s
Receiving objects: 58% (132022/227085), 111.39 MiB | 551.00 KiB/s
Receiving objects: 58% (132022/227085), 112.05 MiB | 543.00 KiB/s
Receiving objects: 58% (132022/227085), 112.76 MiB | 538.00 KiB/s
Receiving objects: 58% (132022/227085), 113.46 MiB | 573.00 KiB/s
Receiving objects: 58% (132023/227085), 113.81 MiB | 574.00 KiB/s
Receiving objects: 58% (132024/227085), 114.69 MiB | 588.00 KiB/s
Receiving objects: 58% (132025/227085), 114.69 MiB | 588.00 KiB/s
Receiving objects: 58% (132025/227085), 115.68 MiB | 585.00 KiB/s
Receiving objects: 58% (132025/227085), 116.36 MiB | 586.00 KiB/s
Receiving objects: 58% (132026/227085), 116.91 MiB | 571.00 KiB/s
Receiving objects: 58% (132027/227085), 117.19 MiB | 551.00 KiB/s
Receiving objects: 58% (132141/227085), 118.11 MiB | 589.00 KiB/s
Receiving objects: 59% (133981/227085), 118.11 MiB | 589.00 KiB/s
Receiving objects: 59% (134070/227085), 118.41 MiB | 585.00 KiB/s
Receiving objects: 60% (136251/227085), 118.69 MiB | 575.00 KiB/s
Receiving objects: 60% (136422/227085), 119.03 MiB | 574.00 KiB/s
Receiving objects: 61% (138522/227085), 119.27 MiB | 581.00 KiB/s
Receiving objects: 61% (138643/227085), 119.27 MiB | 581.00 KiB/s
Receiving objects: 62% (140793/227085), 119.95 MiB | 594.00 KiB/s
Receiving objects: 62% (141161/227085), 119.95 MiB | 594.00 KiB/s
Receiving objects: 63% (143064/227085), 120.26 MiB | 591.00 KiB/s
Receiving objects: 63% (144656/227085), 120.68 MiB | 620.00 KiB/s
Receiving objects: 64% (145335/227085), 120.68 MiB | 620.00 KiB/s
Receiving objects: 64% (147441/227085), 121.41 MiB | 640.00 KiB/s
Receiving objects: 65% (147606/227085), 121.41 MiB | 640.00 KiB/s
Receiving objects: 65% (149598/227085), 122.11 MiB | 617.00 KiB/s
Receiving objects: 66% (149877/227085), 122.11 MiB | 617.00 KiB/s
Receiving objects: 66% (152064/227085), 122.43 MiB | 614.00 KiB/s
Receiving objects: 67% (152147/227085), 122.43 MiB | 614.00 KiB/s
Receiving objects: 68% (154418/227085), 123.05 MiB | 599.00 KiB/s
Receiving objects: 68% (155357/227085), 123.05 MiB | 599.00 KiB/s
Receiving objects: 69% (156689/227085), 123.32 MiB | 591.00 KiB/s
Receiving objects: 69% (157431/227085), 123.70 MiB | 576.00 KiB/s
Receiving objects: 70% (158960/227085), 124.01 MiB | 581.00 KiB/s
Receiving objects: 70% (159201/227085), 124.01 MiB | 581.00 KiB/s
Receiving objects: 70% (159509/227085), 125.03 MiB | 599.00 KiB/s
Receiving objects: 70% (159509/227085), 125.74 MiB | 620.00 KiB/s
Receiving objects: 70% (159509/227085), 126.47 MiB | 656.00 KiB/s
Receiving objects: 70% (159509/227085), 127.27 MiB | 685.00 KiB/s
Receiving objects: 70% (159509/227085), 128.10 MiB | 720.00 KiB/s
Receiving objects: 70% (159509/227085), 128.65 MiB | 752.00 KiB/s
Receiving objects: 70% (159509/227085), 129.79 MiB | 854.00 KiB/s
Receiving objects: 70% (159934/227085), 130.50 MiB | 930.00 KiB/s
Receiving objects: 71% (161231/227085), 131.08 MiB | 993.00 KiB/s
Receiving objects: 72% (163502/227085), 131.83 MiB | 1.03 MiB/s
Receiving objects: 72% (163561/227085), 131.83 MiB | 1.03 MiB/s
Receiving objects: 73% (165773/227085), 132.31 MiB | 1.06 MiB/s
Receiving objects: 74% (168043/227085), 132.31 MiB | 1.06 MiB/s
Receiving objects: 75% (170314/227085), 133.12 MiB | 1.17 MiB/s
Receiving objects: 75% (170870/227085), 133.12 MiB | 1.17 MiB/s
Receiving objects: 76% (172585/227085), 133.59 MiB | 1.17 MiB/s
Receiving objects: 77% (174856/227085), 134.14 MiB | 1.20 MiB/s
Receiving objects: 78% (177127/227085), 134.14 MiB | 1.20 MiB/s
Receiving objects: 78% (177743/227085), 134.14 MiB | 1.20 MiB/s
Receiving objects: 79% (179398/227085), 134.55 MiB | 1.17 MiB/s
Receiving objects: 80% (181668/227085), 135.02 MiB | 1.15 MiB/s
Receiving objects: 80% (183897/227085), 135.02 MiB | 1.15 MiB/s
Receiving objects: 81% (183939/227085), 135.02 MiB | 1.15 MiB/s
Receiving objects: 82% (186210/227085), 135.54 MiB | 1.10 MiB/s
Receiving objects: 83% (188481/227085), 136.07 MiB | 1.09 MiB/s
Receiving objects: 83% (189303/227085), 136.07 MiB | 1.09 MiB/s
Receiving objects: 84% (190752/227085), 136.07 MiB | 1.09 MiB/s
Receiving objects: 84% (192940/227085), 137.13 MiB | 1.05 MiB/s
Receiving objects: 85% (193023/227085), 137.13 MiB | 1.05 MiB/s
Receiving objects: 86% (195294/227085), 137.67 MiB | 1010.00 KiB/s
Receiving objects: 87% (197564/227085), 137.93 MiB | 963.00 KiB/s
Receiving objects: 88% (199835/227085), 137.93 MiB | 963.00 KiB/s
Receiving objects: 88% (201186/227085), 137.93 MiB | 963.00 KiB/s
Receiving objects: 89% (202106/227085), 137.93 MiB | 963.00 KiB/s
Receiving objects: 90% (204377/227085), 138.57 MiB | 948.00 KiB/s
Receiving objects: 90% (204896/227085), 138.94 MiB | 938.00 KiB/s
Receiving objects: 90% (205747/227085), 139.61 MiB | 841.00 KiB/s
Receiving objects: 90% (206044/227085), 140.08 MiB | 720.00 KiB/s
Receiving objects: 90% (206253/227085), 140.37 MiB | 649.00 KiB/s
Receiving objects: 90% (206559/227085), 141.00 MiB | 599.00 KiB/s
Receiving objects: 91% (206648/227085), 141.00 MiB | 599.00 KiB/s
Receiving objects: 91% (206908/227085), 141.46 MiB | 560.00 KiB/s
Receiving objects: 91% (207323/227085), 142.21 MiB | 554.00 KiB/s
Receiving objects: 91% (207689/227085), 142.61 MiB | 566.00 KiB/s
Receiving objects: 91% (208043/227085), 143.13 MiB | 575.00 KiB/s
Receiving objects: 91% (208740/227085), 143.64 MiB | 555.00 KiB/s
Receiving objects: 92% (208919/227085), 143.95 MiB | 547.00 KiB/s
Receiving objects: 92% (208954/227085), 143.95 MiB | 547.00 KiB/s
Receiving objects: 92% (209260/227085), 144.54 MiB | 472.00 KiB/s
Receiving objects: 92% (209705/227085), 144.88 MiB | 479.00 KiB/s
Receiving objects: 92% (209897/227085), 145.44 MiB | 451.00 KiB/s
Receiving objects: 92% (210310/227085), 146.15 MiB | 484.00 KiB/s
Receiving objects: 92% (210723/227085), 146.57 MiB | 506.00 KiB/s
Receiving objects: 92% (211098/227085), 147.31 MiB | 563.00 KiB/s
Receiving objects: 93% (211190/227085), 147.31 MiB | 563.00 KiB/s
Receiving objects: 93% (211745/227085), 148.10 MiB | 632.00 KiB/s
Receiving objects: 93% (212775/227085), 149.13 MiB | 735.00 KiB/s
Receiving objects: 94% (213460/227085), 149.74 MiB | 808.00 KiB/s
Receiving objects: 94% (213990/227085), 149.74 MiB | 808.00 KiB/s
Receiving objects: 94% (214704/227085), 151.55 MiB | 1019.00 KiB/s
Receiving objects: 94% (215173/227085), 152.42 MiB | 995.00 KiB/s
Receiving objects: 94% (215470/227085), 152.90 MiB | 1006.00 KiB/s
Receiving objects: 95% (215731/227085), 153.36 MiB | 1011.00 KiB/s
Receiving objects: 95% (216165/227085), 153.94 MiB | 1019.00 KiB/s
Receiving objects: 95% (216931/227085), 155.03 MiB | 945.00 KiB/s
Receiving objects: 95% (217205/227085), 155.89 MiB | 881.00 KiB/s
Receiving objects: 95% (217801/227085), 156.71 MiB | 895.00 KiB/s
Receiving objects: 96% (218002/227085), 156.71 MiB | 895.00 KiB/s
Receiving objects: 96% (218624/227085), 157.64 MiB | 896.00 KiB/s
Receiving objects: 96% (219333/227085), 158.65 MiB | 873.00 KiB/s
Receiving objects: 97% (220273/227085), 159.17 MiB | 886.00 KiB/s
Receiving objects: 97% (220712/227085), 159.17 MiB | 886.00 KiB/s
Receiving objects: 97% (221361/227085), 160.07 MiB | 904.00 KiB/s
Receiving objects: 97% (222088/227085), 160.85 MiB | 882.00 KiB/s
Receiving objects: 98% (222544/227085), 160.85 MiB | 882.00 KiB/s
Receiving objects: 98% (223369/227085), 161.68 MiB | 848.00 KiB/s
Receiving objects: 99% (224815/227085), 162.11 MiB | 821.00 KiB/s
Receiving objects: 99% (225056/227085), 162.11 MiB | 821.00 KiB/s
Receiving objects: 99% (226349/227085), 162.98 MiB | 769.00 KiB/s
Receiving objects: 100% (227085/227085), 163.85 MiB | 763.00 KiB/s
Receiving objects: 100% (227085/227085), 163.86 MiB | 626.00 KiB/s, done.
remote: Total 227085 (delta 34699), reused 34402 (delta 34399), pack-reused 192247 (from 2)[K
Resolving deltas: 0% (0/181100)
Resolving deltas: 1% (1811/181100)
Resolving deltas: 2% (3623/181100)
Resolving deltas: 3% (5434/181100)
Resolving deltas: 4% (7246/181100)
Resolving deltas: 4% (8804/181100)
Resolving deltas: 5% (9056/181100)
Resolving deltas: 6% (10866/181100)
Resolving deltas: 7% (12682/181100)
Resolving deltas: 8% (14488/181100)
Resolving deltas: 9% (16299/181100)
Resolving deltas: 10% (18113/181100)
Resolving deltas: 11% (19921/181100)
Resolving deltas: 12% (21733/181100)
Resolving deltas: 13% (23543/181100)
Resolving deltas: 13% (24327/181100)
Resolving deltas: 14% (25354/181100)
Resolving deltas: 15% (27165/181100)
Resolving deltas: 16% (28976/181100)
Resolving deltas: 17% (30788/181100)
Resolving deltas: 18% (32600/181100)
Resolving deltas: 19% (34410/181100)
Resolving deltas: 20% (36220/181100)
Resolving deltas: 21% (38031/181100)
Resolving deltas: 22% (39842/181100)
Resolving deltas: 22% (41331/181100)
Resolving deltas: 23% (41653/181100)
Resolving deltas: 24% (43465/181100)
Resolving deltas: 25% (45276/181100)
Resolving deltas: 26% (47087/181100)
Resolving deltas: 27% (48897/181100)
Resolving deltas: 28% (50709/181100)
Resolving deltas: 29% (52519/181100)
Resolving deltas: 30% (54330/181100)
Resolving deltas: 31% (56141/181100)
Resolving deltas: 32% (57952/181100)
Resolving deltas: 33% (59764/181100)
Resolving deltas: 33% (60571/181100)
Resolving deltas: 34% (61575/181100)
Resolving deltas: 35% (63385/181100)
Resolving deltas: 36% (65201/181100)
Resolving deltas: 37% (67007/181100)
Resolving deltas: 38% (68818/181100)
Resolving deltas: 39% (70630/181100)
Resolving deltas: 40% (72441/181100)
Resolving deltas: 41% (74251/181100)
Resolving deltas: 42% (76063/181100)
Resolving deltas: 43% (77873/181100)
Resolving deltas: 44% (79686/181100)
Resolving deltas: 45% (81495/181100)
Resolving deltas: 46% (83306/181100)
Resolving deltas: 47% (85118/181100)
Resolving deltas: 47% (85669/181100)
Resolving deltas: 48% (86928/181100)
Resolving deltas: 49% (88739/181100)
Resolving deltas: 50% (90550/181100)
Resolving deltas: 51% (92362/181100)
Resolving deltas: 52% (94172/181100)
Resolving deltas: 53% (95983/181100)
Resolving deltas: 54% (97794/181100)
Resolving deltas: 55% (99605/181100)
Resolving deltas: 56% (101416/181100)
Resolving deltas: 57% (103228/181100)
Resolving deltas: 58% (105038/181100)
Resolving deltas: 59% (106849/181100)
Resolving deltas: 60% (108661/181100)
Resolving deltas: 61% (110471/181100)
Resolving deltas: 62% (112283/181100)
Resolving deltas: 63% (114093/181100)
Resolving deltas: 64% (115909/181100)
Resolving deltas: 65% (117715/181100)
Resolving deltas: 65% (118929/181100)
Resolving deltas: 66% (119528/181100)
Resolving deltas: 67% (121337/181100)
Resolving deltas: 68% (123148/181100)
Resolving deltas: 69% (124960/181100)
Resolving deltas: 70% (126771/181100)
Resolving deltas: 71% (128582/181100)
Resolving deltas: 72% (130392/181100)
Resolving deltas: 73% (132204/181100)
Resolving deltas: 74% (134014/181100)
Resolving deltas: 75% (135825/181100)
Resolving deltas: 76% (137636/181100)
Resolving deltas: 76% (137726/181100)
Resolving deltas: 77% (139447/181100)
Resolving deltas: 78% (141258/181100)
Resolving deltas: 79% (143069/181100)
Resolving deltas: 80% (144880/181100)
Resolving deltas: 81% (146691/181100)
Resolving deltas: 81% (146843/181100)
Resolving deltas: 82% (148502/181100)
Resolving deltas: 83% (150313/181100)
Resolving deltas: 84% (152124/181100)
Resolving deltas: 85% (153935/181100)
Resolving deltas: 86% (155746/181100)
Resolving deltas: 86% (157082/181100)
Resolving deltas: 87% (157557/181100)
Resolving deltas: 87% (159094/181100)
Resolving deltas: 87% (159225/181100)
Resolving deltas: 87% (159350/181100)
Resolving deltas: 88% (159368/181100)
Resolving deltas: 88% (160224/181100)
Resolving deltas: 89% (161179/181100)
Resolving deltas: 89% (162013/181100)
Resolving deltas: 89% (162382/181100)
Resolving deltas: 89% (162508/181100)
Resolving deltas: 90% (162990/181100)
Resolving deltas: 90% (163494/181100)
Resolving deltas: 91% (164801/181100)
Resolving deltas: 91% (165760/181100)
Resolving deltas: 92% (166612/181100)
Resolving deltas: 92% (168387/181100)
Resolving deltas: 93% (168423/181100)
Resolving deltas: 94% (170234/181100)
Resolving deltas: 94% (170376/181100)
Resolving deltas: 95% (172045/181100)
Resolving deltas: 95% (172524/181100)
Resolving deltas: 96% (173856/181100)
Resolving deltas: 96% (173909/181100)
Resolving deltas: 96% (175129/181100)
Resolving deltas: 97% (175667/181100)
Resolving deltas: 97% (176862/181100)
Resolving deltas: 98% (177478/181100)
Resolving deltas: 98% (178772/181100)
Resolving deltas: 99% (179289/181100)
Resolving deltas: 99% (180112/181100)
Resolving deltas: 99% (180978/181100)
Resolving deltas: 100% (181100/181100)
Resolving deltas: 100% (181100/181100), completed with 3524 local objects.
* [new ref] refs/for/main -> refs/for/main
* [new branch] 11303-yolo-policy -> 11303-yolo-policy
* [new branch] 14414-alt-buffer-toggle -> 14414-alt-buffer-toggle
* [new branch] 1578-auto-approve-allowlist -> 1578-auto-approve-allowlist
* [new branch] 17148_add_policy -> 17148_add_policy
* [new branch] 18532-epic-improvements-to-user-help-and-feature-discovery-within-gemini-cli -> 18532-epic-improvements-to-user-help-and-feature-discovery-within-gemini-cli
* [new branch] 22789-fix-memory -> 22789-fix-memory
* [new branch] 23290-memory-bloat -> 23290-memory-bloat
* [new branch] 23741-ink-style-spans-bypass -> 23741-ink-style-spans-bypass
* [new branch] 400-errors -> 400-errors
* [new branch] Nagajyothi-tammisetti-patch-1 -> Nagajyothi-tammisetti-patch-1
* [new branch] abhi/agent-factory.draft -> abhi/agent-factory.draft
* [new branch] abhi/agent.2 -> abhi/agent.2
* [new branch] abhi/bash-eval -> abhi/bash-eval
* [new branch] abhi/event-driven-tools.a2a -> abhi/event-driven-tools.a2a
* [new branch] abhi/fix-stale-mcp-client -> abhi/fix-stale-mcp-client
* [new branch] abhi/make-goog-search-ask -> abhi/make-goog-search-ask
* [new branch] abhi/mcp-tool-allowlist -> abhi/mcp-tool-allowlist
* [new branch] abhi/session-browser-refactor.4 -> abhi/session-browser-refactor.4
* [new branch] abhi/session-browser-refactor.5 -> abhi/session-browser-refactor.5
* [new branch] abhi/transient-mode-hint -> abhi/transient-mode-hint
* [new branch] abhi/use-flash-e2e -> abhi/use-flash-e2e
* [new branch] abhi/windows-integration-fix -> abhi/windows-integration-fix
* [new branch] abhijit-2592/deprecate-tool-args -> abhijit-2592/deprecate-tool-args
* [new branch] abhijit-2592/fix-compress-persistence -> abhijit-2592/fix-compress-persistence
* [new branch] abhijit-2592/fix/policies-allow -> abhijit-2592/fix/policies-allow
* [new branch] abhijit-2592/gemma-api -> abhijit-2592/gemma-api
* [new branch] abhijit-2592/gepa-si-exp-simple-merge/merge-1 -> abhijit-2592/gepa-si-exp-simple-merge/merge-1
* [new branch] abhijit-2592/hide-changed-policies-dialog -> abhijit-2592/hide-changed-policies-dialog
* [new branch] abhijit-2592/model-verbosity-prompt-update -> abhijit-2592/model-verbosity-prompt-update
* [new branch] abhijit-2592/mv/sticky-headers -> abhijit-2592/mv/sticky-headers
* [new branch] abhijit-2592/optimizing-prompts -> abhijit-2592/optimizing-prompts
* [new branch] abhijit-2592/security-fix-policy-bypass -> abhijit-2592/security-fix-policy-bypass
* [new branch] abhijit-2592/si-change/gepa-c12 -> abhijit-2592/si-change/gepa-c12
* [new branch] abhijit-2592/topic-tool -> abhijit-2592/topic-tool
* [new branch] abhijit-2592/topics/show-summary -> abhijit-2592/topics/show-summary
* [new branch] abhijit-2592/verbosity/remove-intent -> abhijit-2592/verbosity/remove-intent
* [new branch] abhijit-2592/voice-mode-2 -> abhijit-2592/voice-mode-2
* [new branch] abhijit-2592/voice-mode/creation -> abhijit-2592/voice-mode/creation
* [new branch] abstract-sandbox -> abstract-sandbox
* [new branch] acp-base-url -> acp-base-url
* [new branch] acp-non-exp -> acp-non-exp
* [new branch] acp/tool_call_meta -> acp/tool_call_meta
* [new branch] adaptiveThinkingBudget -> adaptiveThinkingBudget
* [new branch] add-multiple-patch-workflow -> add-multiple-patch-workflow
49abf1fe16..e98f41fe86 add-native-binaries -> add-native-binaries
* [new branch] adh/fix/policy-service -> adh/fix/policy-service
* [new branch] adibakm/ask-user-eval-fix -> adibakm/ask-user-eval-fix
* [new branch] adibakm/auto-execute-read-only-mcp -> adibakm/auto-execute-read-only-mcp
* [new branch] adibakm/blah -> adibakm/blah
* [new branch] adibakm/clear-context-conversation-approval -> adibakm/clear-context-conversation-approval
* [new branch] adibakm/disable-esc-esc-rewind -> adibakm/disable-esc-esc-rewind
* [new branch] adibakm/disable-esc-twice -> adibakm/disable-esc-twice
* [new branch] adibakm/execute-visualize-plan -> adibakm/execute-visualize-plan
* [new branch] adibakm/fix-plan-mode-flakey-tests -> adibakm/fix-plan-mode-flakey-tests
* [new branch] adibakm/fix-tool-sandboxing-plan-mode -> adibakm/fix-tool-sandboxing-plan-mode
* [new branch] adibakm/fix-windows-tests -> adibakm/fix-windows-tests
* [new branch] adibakm/handle-inconsistency-schedulers -> adibakm/handle-inconsistency-schedulers
* [new branch] adibakm/hotfix-exit-plan-mode -> adibakm/hotfix-exit-plan-mode
* [new branch] adibakm/persist-approval-mode-thinking -> adibakm/persist-approval-mode-thinking
* [new branch] adibakm/refactor-plan-mode-integration-tests -> adibakm/refactor-plan-mode-integration-tests
* [new branch] adibakm/restore-esc-esc -> adibakm/restore-esc-esc
* [new branch] adibakm/rewind-accessibility -> adibakm/rewind-accessibility
* [new branch] adibakm/support-editing-files-editor -> adibakm/support-editing-files-editor
* [new branch] adibakm/support-plan-versioning -> adibakm/support-plan-versioning
* [new branch] adk-non-interactive-setting -> adk-non-interactive-setting
* [new branch] afw-adk-doc -> afw-adk-doc
* [new branch] afw/adk-replat-docs -> afw/adk-replat-docs
* [new branch] afw/bg-remote-agent -> afw/bg-remote-agent
* [new branch] afw/bg-remote-agent-stacked -> afw/bg-remote-agent-stacked
* [new branch] afw/fix-a2a-context-id-handling -> afw/fix-a2a-context-id-handling
* [new branch] afw/forever-gchat -> afw/forever-gchat
* [new branch] afw/glob-search-exp -> afw/glob-search-exp
* [new branch] afw/idle-wake-on-completion -> afw/idle-wake-on-completion
* [new branch] afw/legacy-agent-session -> afw/legacy-agent-session
* [new branch] afw/patch-preview-3 -> afw/patch-preview-3
* [new branch] afw/read-exp-v3 -> afw/read-exp-v3
* [new branch] afw/read-file-exp -> afw/read-file-exp
* [new branch] afw/read-file-v2 -> afw/read-file-v2
* [new branch] afw/remote-agent-backgrounding -> afw/remote-agent-backgrounding
* [new branch] afw/remote-agent-gchat -> afw/remote-agent-gchat
* [new branch] afw/remote-agent-lifecycle -> afw/remote-agent-lifecycle
* [new branch] afweidman/a2a-auth-pr2-apikey-http -> afweidman/a2a-auth-pr2-apikey-http
* [new branch] agent-session/agent-tool -> agent-session/agent-tool
* [new branch] agent-session/local-invocation -> agent-session/local-invocation
* [new branch] agent-session/local-protocol -> agent-session/local-protocol
* [new branch] agent-session/non-interactive -> agent-session/non-interactive
* [new branch] agent-session/remote-invocation -> agent-session/remote-invocation
* [new branch] agent-session/remote-protocol -> agent-session/remote-protocol
* [new branch] agent-session/session-key -> agent-session/session-key
* [new branch] agent-session/subagents-v2 -> agent-session/subagents-v2
* [new branch] akkr/subagents -> akkr/subagents
* [new branch] akkr/subagents-policy -> akkr/subagents-policy
* [new branch] akkr_evals_router_off -> akkr_evals_router_off
* [new branch] akkr_evals_router_off_temp_0 -> akkr_evals_router_off_temp_0
* [new branch] akkr_variance_study -> akkr_variance_study
* [new branch] aliases -> aliases
* [new branch] alisa/demo-test -> alisa/demo-test
* [new branch] alisa/disable_evals -> alisa/disable_evals
* [new branch] alisa/eval_suites -> alisa/eval_suites
* [new branch] alisa/five_hundred_error_api -> alisa/five_hundred_error_api
* [new branch] alisa/increase_nightly -> alisa/increase_nightly
* [new branch] alisa/test_evals_prompt -> alisa/test_evals_prompt
* [new branch] analysis/issue-5724-16567 -> analysis/issue-5724-16567
* [new branch] architecture-links -> architecture-links
* [new branch] arrows-base-list -> arrows-base-list
* [new branch] autocomplete-bug -> autocomplete-bug
* [new branch] bash-all-the-things -> bash-all-the-things
* [new branch] branch_render_cache_all2 -> branch_render_cache_all2
* [new branch] branch_step_1 -> branch_step_1
* [new branch] branch_terminal_buffer_LAND -> branch_terminal_buffer_LAND
* [new branch] browser_use -> browser_use
* [new branch] buddy -> buddy
* [new branch] buffer-toggle -> buffer-toggle
* [new branch] cb/brokenlink -> cb/brokenlink
* [new branch] cb/docschange -> cb/docschange
* [new branch] cb/explore -> cb/explore
* [new branch] cb/fixextenv -> cb/fixextenv
* [new branch] cb/fixsandboxenv -> cb/fixsandboxenv
* [new branch] cb/fixsecuritybug -> cb/fixsecuritybug
* [new branch] cb/keychainfallback -> cb/keychainfallback
* [new branch] cb/linkbug -> cb/linkbug
* [new branch] cb/removesettings -> cb/removesettings
* [new branch] cb/testdocs -> cb/testdocs
* [new branch] cb/testdocs2 -> cb/testdocs2
* [new branch] cb/userscope -> cb/userscope
* [new branch] changelog-v0.28.0-preview.1 -> changelog-v0.28.0-preview.1
* [new branch] changelog-v0.30.0-nightly.20260223.c537fd5ae -> changelog-v0.30.0-nightly.20260223.c537fd5ae
* [new branch] changelog-v0.30.0-preview.6 -> changelog-v0.30.0-preview.6
* [new branch] changelog-v0.31.0-preview.2 -> changelog-v0.31.0-preview.2
* [new branch] changelog-v0.31.0-preview.3 -> changelog-v0.31.0-preview.3
* [new branch] changelog-v0.33.0-preview.10 -> changelog-v0.33.0-preview.10
* [new branch] changelog-v0.33.0-preview.12 -> changelog-v0.33.0-preview.12
* [new branch] changelog-v0.33.0-preview.15 -> changelog-v0.33.0-preview.15
* [new branch] changelog-v0.33.0-preview.5 -> changelog-v0.33.0-preview.5
* [new branch] changelog-v0.33.0-preview.6 -> changelog-v0.33.0-preview.6
* [new branch] changelog-v0.33.0-preview.7 -> changelog-v0.33.0-preview.7
* [new branch] changelog-v0.33.0-preview.8 -> changelog-v0.33.0-preview.8
* [new branch] changelog-v0.33.0-preview.9 -> changelog-v0.33.0-preview.9
* [new branch] changelog-v0.35.0-preview.1 -> changelog-v0.35.0-preview.1
* [new branch] changelog-v0.38.2 -> changelog-v0.38.2
* [new branch] channels -> channels
* [new branch] chore/migrate-to-tsgo -> chore/migrate-to-tsgo
* [new branch] chore/nightly-version-bump-0.31.0-nightly.20260217.4fe86dbd4 -> chore/nightly-version-bump-0.31.0-nightly.20260217.4fe86dbd4
* [new branch] chore/nightly-version-bump-0.32.0-nightly.20260225.bf278ef2b -> chore/nightly-version-bump-0.32.0-nightly.20260225.bf278ef2b
* [new branch] chore/nightly-version-bump-0.33.0-nightly.20260227.ba149afa0 -> chore/nightly-version-bump-0.33.0-nightly.20260227.ba149afa0
* [new branch] chore/nightly-version-bump-0.37.0-nightly.20260324.bf80e27db -> chore/nightly-version-bump-0.37.0-nightly.20260324.bf80e27db
* [new branch] chore/nightly-version-bump-0.38.0-nightly.20260401.d9d51ba15 -> chore/nightly-version-bump-0.38.0-nightly.20260401.d9d51ba15
* [new branch] cleanup_question -> cleanup_question
* [new branch] composer-fix-est-str-len -> composer-fix-est-str-len
* [new branch] core-ui-triage -> core-ui-triage
* [new branch] dependabot/npm_and_yarn/minimatch-10.2.4 -> dependabot/npm_and_yarn/minimatch-10.2.4
* [new branch] dependabot/npm_and_yarn/rollup-4.59.0 -> dependabot/npm_and_yarn/rollup-4.59.0
* [new branch] disable-ask-user-patch -> disable-ask-user-patch
* [new branch] disable-mouse-mode-in-standard-buffer -> disable-mouse-mode-in-standard-buffer
* [new branch] disable-tips-by-default -> disable-tips-by-default
* [new branch] dmitry/gemini-cli-gemma4 -> dmitry/gemini-cli-gemma4
* [new branch] doc-tooling-updates -> doc-tooling-updates
* [new branch] docs-audit-24261164273 -> docs-audit-24261164273
* [new branch] docs-audit-24319780415 -> docs-audit-24319780415
* [new branch] docs-audit-skill -> docs-audit-skill
* [new branch] docs-audit-updated -> docs-audit-updated
* [new branch] docs-fetch-test -> docs-fetch-test
* [new branch] docs-merge-faqs-troubleshooting -> docs-merge-faqs-troubleshooting
* [new branch] docs-refactor-install-auth -> docs-refactor-install-auth
* [new branch] docs-troubleshooting-link -> docs-troubleshooting-link
* [new branch] docs-update-agent-skills -> docs-update-agent-skills
* [new branch] docs-updates-mar30 -> docs-updates-mar30
* [new branch] docs/add-plan-mode-faq -> docs/add-plan-mode-faq
* [new branch] document-commands -> document-commands
* [new branch] dummy-pr-punycode-fix -> dummy-pr-punycode-fix
* [new branch] dyim/add-api-version-env-var -> dyim/add-api-version-env-var
* [new branch] ept-debugging -> ept-debugging
* [new branch] feat-agent-fre -> feat-agent-fre
* [new branch] feat-telemetry-traces -> feat-telemetry-traces
* [new branch] feat/11303-yolo-wildcard -> feat/11303-yolo-wildcard
* [new branch] feat/a2a-auth-required -> feat/a2a-auth-required
* [new branch] feat/a2ui-compliance -> feat/a2ui-compliance
* [new branch] feat/acp-exclude-ask-user -> feat/acp-exclude-ask-user
* [new branch] feat/add-gemma-4-31b-it-support -> feat/add-gemma-4-31b-it-support
* [new branch] feat/agent-retry-decision -> feat/agent-retry-decision
* [new branch] feat/agent-retry-decision-clean -> feat/agent-retry-decision-clean
* [new branch] feat/agent-retry-decision-final -> feat/agent-retry-decision-final
* [new branch] feat/agent-retry-decision-v2 -> feat/agent-retry-decision-v2
* [new branch] feat/ai-interactive-shell -> feat/ai-interactive-shell
* [new branch] feat/benchmark-improvements -> feat/benchmark-improvements
* [new branch] feat/benchmark-improvements-1-through-12 -> feat/benchmark-improvements-1-through-12
* [new branch] feat/benchmark-improvements-1-through-9 -> feat/benchmark-improvements-1-through-9
* [new branch] feat/benchmark-improvements-1-through-9-plus-rebase -> feat/benchmark-improvements-1-through-9-plus-rebase
* [new branch] feat/card-component -> feat/card-component
* [new branch] feat/chat-resume-footer -> feat/chat-resume-footer
* [new branch] feat/ci-bundling-revamp -> feat/ci-bundling-revamp
* [new branch] feat/circular-spinner-v2 -> feat/circular-spinner-v2
* [new branch] feat/core-teleporter -> feat/core-teleporter
* [new branch] feat/dynamic-plan-resolution -> feat/dynamic-plan-resolution
* [new branch] feat/early-startup-input -> feat/early-startup-input
* [new branch] feat/enhance-command -> feat/enhance-command
* [new branch] feat/feature-lifecycle -> feat/feature-lifecycle
* [new branch] feat/insights-command -> feat/insights-command
* [new branch] feat/mermaid-skill -> feat/mermaid-skill
* [new branch] feat/non-blocking-startup -> feat/non-blocking-startup
* [new branch] feat/npx-smoke-test -> feat/npx-smoke-test
* [new branch] feat/oauth2-dynamic-client-registration -> feat/oauth2-dynamic-client-registration
* [new branch] feat/onboarding-telemetry -> feat/onboarding-telemetry
* [new branch] feat/quota-inversion -> feat/quota-inversion
* [new branch] feat/sdd-tracker-bridge -> feat/sdd-tracker-bridge
* [new branch] feat/sdd-tracker-integration -> feat/sdd-tracker-integration
* [new branch] feat/session-browser-tabs -> feat/session-browser-tabs
* [new branch] feat/session-learnings-hook -> feat/session-learnings-hook
* [new branch] feat/skill-package-cmd -> feat/skill-package-cmd
* [new branch] feat/standardize-selection-color-v2 -> feat/standardize-selection-color-v2
* [new branch] feat/startup-profiling -> feat/startup-profiling
* [new branch] feat/stats-quota-display-improvements -> feat/stats-quota-display-improvements
* [new branch] feat/teleportation-docs -> feat/teleportation-docs
* [new branch] feat/teleportation-extensions -> feat/teleportation-extensions
* [new branch] feature-hint-agent -> feature-hint-agent
* [new branch] feature-tristate-toggle-18547 -> feature-tristate-toggle-18547
* [new branch] feature/differentiated-user-agent -> feature/differentiated-user-agent
* [new branch] feature/eval-pr-impact -> feature/eval-pr-impact
* [new branch] feature/flicker-reduction-rework -> feature/flicker-reduction-rework
* [new branch] feature/issue-17113-tool-preselection -> feature/issue-17113-tool-preselection
* [new branch] feature/plan-mode-custom-dirs-phase-1 -> feature/plan-mode-custom-dirs-phase-1
* [new branch] feature/plan-mode-custom-dirs-phase-2 -> feature/plan-mode-custom-dirs-phase-2
* [new branch] feature/plan-mode-custom-dirs-phase-3 -> feature/plan-mode-custom-dirs-phase-3
* [new branch] feature/plan-mode-custom-dirs-phase-4 -> feature/plan-mode-custom-dirs-phase-4
* [new branch] feature/plan-mode-custom-dirs-phase-5 -> feature/plan-mode-custom-dirs-phase-5
* [new branch] feature/profiles -> feature/profiles
* [new branch] feature/require-docs-pr-check -> feature/require-docs-pr-check
* [new branch] feature/rich-data-visualization -> feature/rich-data-visualization
* [new branch] feature/simulator-knowledge-update -> feature/simulator-knowledge-update
* [new branch] feature/stable-footer-ux -> feature/stable-footer-ux
* [new branch] feature/stable-footer-ux-jacobr -> feature/stable-footer-ux-jacobr
* [new branch] feature/tool-output/border-boxes -> feature/tool-output/border-boxes
* [new branch] feature/ux-extension -> feature/ux-extension
* [new branch] feature/ux-toolkit-and-base-folder-strategy -> feature/ux-toolkit-and-base-folder-strategy
* [new branch] fix-492221980 -> fix-492221980
* [new branch] fix-auth-fallback-v2 -> fix-auth-fallback-v2
* [new branch] fix-code-assist-retries -> fix-code-assist-retries
* [new branch] fix-extension-plan-resolution -> fix-extension-plan-resolution
* [new branch] fix-issue-23582-subagent-approval-modes -> fix-issue-23582-subagent-approval-modes
* [new branch] fix-mcp-list-subagent-tools -> fix-mcp-list-subagent-tools
* [new branch] fix-non-int -> fix-non-int
* [new branch] fix-package -> fix-package
* [new branch] fix-policy-engine-ux -> fix-policy-engine-ux
* [new branch] fix-resource-exhausted-429 -> fix-resource-exhausted-429
* [new branch] fix-shell-focus-toast-color -> fix-shell-focus-toast-color
* [new branch] fix-slash-completion-behavior -> fix-slash-completion-behavior
* [new branch] fix-stale-pr-closer -> fix-stale-pr-closer
* [new branch] fix-standalone-bundle-splitting-23770 -> fix-standalone-bundle-splitting-23770
* [new branch] fix-subagent-tool-isolation -> fix-subagent-tool-isolation
* [new branch] fix-telemetry-truncation -> fix-telemetry-truncation
* [new branch] fix-unsafe-assertions-phase-5 -> fix-unsafe-assertions-phase-5
* [new branch] fix-use-customtools-model-for-3.1 -> fix-use-customtools-model-for-3.1
* [new branch] fix-windows-sandbox-batching -> fix-windows-sandbox-batching
* [new branch] fix/14426-terminal-fallbacks -> fix/14426-terminal-fallbacks
* [new branch] fix/21259-startup-profiler-timers -> fix/21259-startup-profiler-timers
* [new branch] fix/allow-all-commands-trusted-folder-issue -> fix/allow-all-commands-trusted-folder-issue
* [new branch] fix/allowed-domain-replace -> fix/allowed-domain-replace
* [new branch] fix/apple-terminal-input -> fix/apple-terminal-input
* [new branch] fix/auto-update -> fix/auto-update
* [new branch] fix/browser-bundle-script -> fix/browser-bundle-script
* [new branch] fix/browser-name-change -> fix/browser-name-change
* [new branch] fix/chat-history-cap -> fix/chat-history-cap
* [new branch] fix/chat-history-dialog -> fix/chat-history-dialog
* [new branch] fix/chat-resume-tab-completion -> fix/chat-resume-tab-completion
* [new branch] fix/dedupe-shell-commands -> fix/dedupe-shell-commands
* [new branch] fix/default-theme-256 -> fix/default-theme-256
* [new branch] fix/default-theme-contrast -> fix/default-theme-contrast
* [new branch] fix/disappearing-history-items -> fix/disappearing-history-items
* [new branch] fix/duplicate-extension-warnings -> fix/duplicate-extension-warnings
* [new branch] fix/env-term-colorterm -> fix/env-term-colorterm
* [new branch] fix/extension-install-ref -> fix/extension-install-ref
* [new branch] fix/flake-main-context -> fix/flake-main-context
* [new branch] fix/gemini-3-flash-preview-500-errors -> fix/gemini-3-flash-preview-500-errors
* [new branch] fix/issue-17385 -> fix/issue-17385
* [new branch] fix/issue-21135 -> fix/issue-21135
* [new branch] fix/keychain-race-condition -> fix/keychain-race-condition
* [new branch] fix/label-workstream-rollup-v3 -> fix/label-workstream-rollup-v3
* [new branch] fix/latex-arrows -> fix/latex-arrows
* [new branch] fix/lint-cleanup -> fix/lint-cleanup
* [new branch] fix/memory-leaks -> fix/memory-leaks
* [new branch] fix/memory-optimizations -> fix/memory-optimizations
* [new branch] fix/nested-plan-files-v3 -> fix/nested-plan-files-v3
* [new branch] fix/non-interactive-error-recovery -> fix/non-interactive-error-recovery
* [new branch] fix/package-lock-inconsistency -> fix/package-lock-inconsistency
* [new branch] fix/plan-mode-policy-evaluation -> fix/plan-mode-policy-evaluation
* [new branch] fix/pr-automation-permissions -> fix/pr-automation-permissions
* [new branch] fix/retry-logic-for-all-users -> fix/retry-logic-for-all-users
* [new branch] fix/rm-safety -> fix/rm-safety
* [new branch] fix/scoped-resiliency -> fix/scoped-resiliency
* [new branch] fix/sea-binary-memory-args -> fix/sea-binary-memory-args
* [new branch] fix/select-state-refinement -> fix/select-state-refinement
* [new branch] fix/settings-dialog-spacing -> fix/settings-dialog-spacing
* [new branch] fix/setup-github-command -> fix/setup-github-command
* [new branch] fix/shell-parser-timeout -> fix/shell-parser-timeout
* [new branch] fix/shell-scroll-jacking -> fix/shell-scroll-jacking
* [new branch] fix/stray-m-character -> fix/stray-m-character
* [new branch] fix/strip-redundant-plan-prefix -> fix/strip-redundant-plan-prefix
* [new branch] fix/subagent-eval-prompt -> fix/subagent-eval-prompt
* [new branch] fix/symlink-path-validation -> fix/symlink-path-validation
* [new branch] fix/test-rig-model -> fix/test-rig-model
* [new branch] fix/tos-privacy-link -> fix/tos-privacy-link
* [new branch] fix/triage-prompt-tuning -> fix/triage-prompt-tuning
* [new branch] fix/useatcompletion-closure -> fix/useatcompletion-closure
* [new branch] fix/web-fetch-process-all-urls -> fix/web-fetch-process-all-urls
* [new branch] fix/windows-clean-eperm -> fix/windows-clean-eperm
* [new branch] fix/windows-preflight-resilience -> fix/windows-preflight-resilience
* [new branch] fix_ask_promp -> fix_ask_promp
* [new branch] fix_ask_prompt_23693 -> fix_ask_prompt_23693
* [new branch] fix_ask_question_max_height -> fix_ask_question_max_height
* [new branch] fix_benchmarking -> fix_benchmarking
* [new branch] fix_commands -> fix_commands
* [new branch] fix_copy_mode -> fix_copy_mode
* [new branch] fix_input_prompt_clipping_bug -> fix_input_prompt_clipping_bug
* [new branch] fix_punycode -> fix_punycode
* [new branch] fix_react_infinite_loop -> fix_react_infinite_loop
* [new branch] fix_shell -> fix_shell
* [new branch] fixes/17148_add_policy -> fixes/17148_add_policy
* [new branch] forever -> forever
* [new branch] forever1 -> forever1
* [new branch] frozen-main -> frozen-main
* [new branch] g1-credits -> g1-credits
* [new branch] galzahavi/add/deep-work -> galzahavi/add/deep-work
* [new branch] galzahavi/chore/update-changelogs -> galzahavi/chore/update-changelogs
* [new branch] galzahavi/feat/sandbox-gemini-tmp-write -> galzahavi/feat/sandbox-gemini-tmp-write
* [new branch] galzahavi/fix/core-tools -> galzahavi/fix/core-tools
* [new branch] galzahavi/fix/disable-flaky-e2e-test -> galzahavi/fix/disable-flaky-e2e-test
* [new branch] galzahavi/fix/envvar-issue -> galzahavi/fix/envvar-issue
* [new branch] galzahavi/fix/extension-mcp-docs -> galzahavi/fix/extension-mcp-docs
* [new branch] galzahavi/fix/headless-foldertrust -> galzahavi/fix/headless-foldertrust
* [new branch] galzahavi/fix/windows-tool-sandbox -> galzahavi/fix/windows-tool-sandbox
* [new branch] galzahavi/improve/refactor-xterm-to-ghosty -> galzahavi/improve/refactor-xterm-to-ghosty
* [new branch] galzahavi/patch/0.35.2 -> galzahavi/patch/0.35.2
* [new branch] galzahavi/patches/0.35.2 -> galzahavi/patches/0.35.2
* [new branch] galzahavi/research/memory -> galzahavi/research/memory
* [new branch] galzahavi/research/toolsandbox -> galzahavi/research/toolsandbox
* [new branch] gcli_loop -> gcli_loop
* [new branch] gemini-cli-chathistory-onexit -> gemini-cli-chathistory-onexit
* [new branch] gemini-cli-cifix -> gemini-cli-cifix
* [new branch] gemini-cli-deepwork -> gemini-cli-deepwork
* [new branch] gemini-cli-headless-monitor -> gemini-cli-headless-monitor
* [new branch] gemini-cli-policies-ui -> gemini-cli-policies-ui
* [new branch] gemini-cli-resume-minimal -> gemini-cli-resume-minimal
* [new branch] gemini-cli-startup -> gemini-cli-startup
* [new branch] gemini-cli-visualizers -> gemini-cli-visualizers
* [new branch] gemma4_apr16 -> gemma4_apr16
* [new branch] gh-readonly-queue/main/pr-25266-55620235c0c72c3e72c83b39efb02853a1bff494 -> gh-readonly-queue/main/pr-25266-55620235c0c72c3e72c83b39efb02853a1bff494
* [new branch] grpc-v0-branch4 -> grpc-v0-branch4
* [new branch] grpc-v0-branch5 -> grpc-v0-branch5
* [new branch] grpc_transport_support -> grpc_transport_support
* [new branch] grpc_v0_only -> grpc_v0_only
* [new branch] gundermanc/baseline -> gundermanc/baseline
* [new branch] gundermanc/bench-hub -> gundermanc/bench-hub
* [new branch] gundermanc/botched-replace -> gundermanc/botched-replace
* [new branch] gundermanc/code-map2 -> gundermanc/code-map2
* [new branch] gundermanc/codemap3 -> gundermanc/codemap3
* [new branch] gundermanc/combined -> gundermanc/combined
* [new branch] gundermanc/compression-eval -> gundermanc/compression-eval
* [new branch] gundermanc/compression-evals2 -> gundermanc/compression-evals2
* [new branch] gundermanc/deep-validation -> gundermanc/deep-validation
* [new branch] gundermanc/do-not-run-on-merge-with-prompt -> gundermanc/do-not-run-on-merge-with-prompt
* [new branch] gundermanc/encoding -> gundermanc/encoding
* [new branch] gundermanc/fix-generalist-tests -> gundermanc/fix-generalist-tests
* [new branch] gundermanc/fix-link-check -> gundermanc/fix-link-check
* [new branch] gundermanc/fix-rule -> gundermanc/fix-rule
* [new branch] gundermanc/frugal-reads-baseline -> gundermanc/frugal-reads-baseline
* [new branch] gundermanc/frugal-search -> gundermanc/frugal-search
* [new branch] gundermanc/frugal-search-baseline -> gundermanc/frugal-search-baseline
* [new branch] gundermanc/frugal-search-plus-plus -> gundermanc/frugal-search-plus-plus
* [new branch] gundermanc/generalist-behaviors -> gundermanc/generalist-behaviors
* [new branch] gundermanc/implicit-return-baseline -> gundermanc/implicit-return-baseline
* [new branch] gundermanc/interactive-commit -> gundermanc/interactive-commit
* [new branch] gundermanc/line-nums -> gundermanc/line-nums
* [new branch] gundermanc/line-nums-buildable -> gundermanc/line-nums-buildable
* [new branch] gundermanc/line-nums2 -> gundermanc/line-nums2
* [new branch] gundermanc/logs -> gundermanc/logs
* [new branch] gundermanc/main -> gundermanc/main
* [new branch] gundermanc/narration-ux -> gundermanc/narration-ux
* [new branch] gundermanc/optimize-efficiency-v1 -> gundermanc/optimize-efficiency-v1
* [new branch] gundermanc/optimize-evals-trigger-test-prompts -> gundermanc/optimize-evals-trigger-test-prompts
* [new branch] gundermanc/promote2 -> gundermanc/promote2
* [new branch] gundermanc/ranged-reads-baselin -> gundermanc/ranged-reads-baselin
* [new branch] gundermanc/ranged-reads2 -> gundermanc/ranged-reads2
* [new branch] gundermanc/reduce-timeout -> gundermanc/reduce-timeout
* [new branch] gundermanc/regression-test -> gundermanc/regression-test
* [new branch] gundermanc/revert -> gundermanc/revert
* [new branch] gundermanc/revert-revert -> gundermanc/revert-revert
* [new branch] gundermanc/review-step -> gundermanc/review-step
* [new branch] gundermanc/review-step-bm-improv -> gundermanc/review-step-bm-improv
* [new branch] gundermanc/script -> gundermanc/script
* [new branch] gundermanc/search-limits -> gundermanc/search-limits
* [new branch] gundermanc/simplify-context-manager -> gundermanc/simplify-context-manager
* [new branch] gundermanc/single-test -> gundermanc/single-test
* [new branch] gundermanc/skills-genesis -> gundermanc/skills-genesis
* [new branch] gundermanc/slim-prompt-baseline -> gundermanc/slim-prompt-baseline
* [new branch] gundermanc/slim-prompt2 -> gundermanc/slim-prompt2
* [new branch] gundermanc/sub-agents-context -> gundermanc/sub-agents-context
* [new branch] gundermanc/subagent-eval -> gundermanc/subagent-eval
* [new branch] gundermanc/test-merge-commit-logic -> gundermanc/test-merge-commit-logic
* [new branch] gundermanc/tolerate-unknown-sse -> gundermanc/tolerate-unknown-sse
* [new branch] gundermanc/trim -> gundermanc/trim
* [new branch] gundermanc/trim-baseline -> gundermanc/trim-baseline
* [new branch] gundermanc/update-slash-cmd -> gundermanc/update-slash-cmd
* [new branch] gundermanc/verification-mandate -> gundermanc/verification-mandate
* [new branch] handle-symlinks -> handle-symlinks
* [new branch] hide-compression -> hide-compression
* [new branch] hotfix/v0.22.0-preview.4/v0.22.0-preview.3 -> hotfix/v0.22.0-preview.4/v0.22.0-preview.3
* [new branch] hotfix/v0.26.0/0.26.1/stable/cherry-pick-a362b7b/pr-17975 -> hotfix/v0.26.0/0.26.1/stable/cherry-pick-a362b7b/pr-17975
* [new branch] hotfix/v0.27.0-preview.6/0.27.0-preview.7/preview/cherry-pick-8cae90f/pr-18108 -> hotfix/v0.27.0-preview.6/0.27.0-preview.7/preview/cherry-pick-8cae90f/pr-18108
* [new branch] hotfix/v0.27.0-preview.8/0.27.0-preview.9/preview/cherry-pick-d63c34b/pr-18216 -> hotfix/v0.27.0-preview.8/0.27.0-preview.9/preview/cherry-pick-d63c34b/pr-18216
* [new branch] hotfix/v0.27.3/0.27.4/stable/cherry-pick-07056c8/pr-18656 -> hotfix/v0.27.3/0.27.4/stable/cherry-pick-07056c8/pr-18656
* [new branch] hotfix/v0.28.2/0.28.3/stable/cherry-pick-08e8eea/pr-18855 -> hotfix/v0.28.2/0.28.3/stable/cherry-pick-08e8eea/pr-18855
* [new branch] hotfix/v0.28.2/0.28.3/stable/cherry-pick-d0c6a56/pr-18976 -> hotfix/v0.28.2/0.28.3/stable/cherry-pick-d0c6a56/pr-18976
* [new branch] hotfix/v0.29.3/fix-bug -> hotfix/v0.29.3/fix-bug
* [new branch] hotfix/v0.30.0-preview.2/fix-bug -> hotfix/v0.30.0-preview.2/fix-bug
* [new branch] hotfix/v0.30.0-preview.4/0.30.0-preview.5/preview/cherry-pick-d96bd05/pr-19867 -> hotfix/v0.30.0-preview.4/0.30.0-preview.5/preview/cherry-pick-d96bd05/pr-19867
* [new branch] hotfix/v0.30.0-preview.6/0.30.0-preview.7/preview/cherry-pick-6676546/pr-20154 -> hotfix/v0.30.0-preview.6/0.30.0-preview.7/preview/cherry-pick-6676546/pr-20154
* [new branch] hotfix/v0.30.0-preview.6/0.30.0-preview.7/preview/cherry-pick-812794a/pr-20152 -> hotfix/v0.30.0-preview.6/0.30.0-preview.7/preview/cherry-pick-812794a/pr-20152
* [new branch] hotfix/v0.30.1/0.30.2/stable/cherry-pick-ea48bd9/pr-20577 -> hotfix/v0.30.1/0.30.2/stable/cherry-pick-ea48bd9/pr-20577
* [new branch] hotfix/v0.36.0-preview.6/0.36.0-preview.7/preview/cherry-pick-44cdb3e/pr-24235 -> hotfix/v0.36.0-preview.6/0.36.0-preview.7/preview/cherry-pick-44cdb3e/pr-24235
* [new branch] hotfix/v0.37.0/0.37.1/stable/cherry-pick-06fcdc2/pr-24839 -> hotfix/v0.37.0/0.37.1/stable/cherry-pick-06fcdc2/pr-24839
a90a4dfe5a..6d85b071a4 ide-fix-path -> ide-fix-path
* [new branch] ide-process-rm -> ide-process-rm
* [new branch] improvement_branch -> improvement_branch
* [new branch] improver-experiments-20260303_023958 -> improver-experiments-20260303_023958
* [new branch] improver-experiments-20260303_024257 -> improver-experiments-20260303_024257
* [new branch] improver-experiments-20260303_024433 -> improver-experiments-20260303_024433
* [new branch] improver-experiments-20260303_172436 -> improver-experiments-20260303_172436
* [new branch] improver-experiments-20260303_174225 -> improver-experiments-20260303_174225
* [new branch] improver-experiments-20260310_161627 -> improver-experiments-20260310_161627
* [new branch] improver-experiments-20260310_182002 -> improver-experiments-20260310_182002
* [new branch] improver-experiments-20260310_190921 -> improver-experiments-20260310_190921
* [new branch] improver-experiments-20260310_203433 -> improver-experiments-20260310_203433
* [new branch] improver-experiments-20260311_062150 -> improver-experiments-20260311_062150
* [new branch] improver-experiments-20260319_005732 -> improver-experiments-20260319_005732
* [new branch] improver-experiments-20260319_012229 -> improver-experiments-20260319_012229
* [new branch] improver-experiments-20260319_033836 -> improver-experiments-20260319_033836
* [new branch] improver-experiments-20260319_041547 -> improver-experiments-20260319_041547
* [new branch] improver-experiments-20260319_044748 -> improver-experiments-20260319_044748
* [new branch] improver-experiments-20260319_174102 -> improver-experiments-20260319_174102
* [new branch] improver-experiments-20260319_204653 -> improver-experiments-20260319_204653
* [new branch] improver-experiments-20260401_134849 -> improver-experiments-20260401_134849
* [new branch] improver-experiments-20260401_135406 -> improver-experiments-20260401_135406
* [new branch] improver-experiments-20260401_135925 -> improver-experiments-20260401_135925
* [new branch] improver-experiments-20260401_201052 -> improver-experiments-20260401_201052
* [new branch] input-color -> input-color
* [new branch] isolation/cap_20260403_163732 -> isolation/cap_20260403_163732
* [new branch] isolation/cap_20260403_170124 -> isolation/cap_20260403_170124
* [new branch] isolation/cap_20260403_171159 -> isolation/cap_20260403_171159
* [new branch] isolation/cap_20260403_174057 -> isolation/cap_20260403_174057
* [new branch] isolation/cap_20260403_175102 -> isolation/cap_20260403_175102
* [new branch] isolation/cap_20260403_184043 -> isolation/cap_20260403_184043
* [new branch] isolation/cap_20260405_060650 -> isolation/cap_20260405_060650
* [new branch] isolation/cap_20260406_045434 -> isolation/cap_20260406_045434
* [new branch] isolation/cap_20260413_215038 -> isolation/cap_20260413_215038
* [new branch] isolation/cap_20260413_215105 -> isolation/cap_20260413_215105
* [new branch] isolation/cap_20260417_235945 -> isolation/cap_20260417_235945
* [new branch] issue-17132-env-compat-warning -> issue-17132-env-compat-warning
* [new branch] jl/alc-cli-true -> jl/alc-cli-true
* [new branch] jl/auto-accept-redir -> jl/auto-accept-redir
* [new branch] jl/auto-distillation -> jl/auto-distillation
* [new branch] jl/baseline -> jl/baseline
* [new branch] jl/cm-part-2 -> jl/cm-part-2
* [new branch] jl/compression-v0 -> jl/compression-v0
* [new branch] jl/context-manager-v0 -> jl/context-manager-v0
* [new branch] jl/continuous-session -> jl/continuous-session
* [new branch] jl/cs-2 -> jl/cs-2
* [new branch] jl/dns-1 -> jl/dns-1
* [new branch] jl/early-validate -> jl/early-validate
* [new branch] jl/eval-ad-t -> jl/eval-ad-t
* [new branch] jl/eval-truncate -> jl/eval-truncate
* [new branch] jl/flip-steering-default -> jl/flip-steering-default
* [new branch] jl/hybrid-eval -> jl/hybrid-eval
* [new branch] jl/land-cm -> jl/land-cm
* [new branch] jl/model-steering -> jl/model-steering
* [new branch] jl/planning-subagent -> jl/planning-subagent
* [new branch] jl/stable-head -> jl/stable-head
* [new branch] jl/subagent-route -> jl/subagent-route
* [new branch] jl/workaround-missing-responses -> jl/workaround-missing-responses
* [new branch] keithsc/fix/auto-allow-rule -> keithsc/fix/auto-allow-rule
* [new branch] keithsc/fix/require-mode-for-policy -> keithsc/fix/require-mode-for-policy
* [new branch] keithsc/fix/toolname-default-suggestion -> keithsc/fix/toolname-default-suggestion
* [new branch] krishab/conseca -> krishab/conseca
* [new branch] light-and-dark-theme-settings -> light-and-dark-theme-settings
* [new branch] loader-animation-adjustment -> loader-animation-adjustment
77ed1428b7..130ad00cc6 logs_audit -> logs_audit
* [new branch] long-line -> long-line
8643d60b88..8573650253 main -> main
* [new branch] make_memory_usual -> make_memory_usual
* [new branch] manual-preview-release -> manual-preview-release
* [new branch] markdoc -> markdoc
* [new branch] mb/agent-interactive -> mb/agent-interactive
* [new branch] mb/agents/03-cli-settings -> mb/agents/03-cli-settings
* [new branch] mb/atui/01-ui-rendering -> mb/atui/01-ui-rendering
* [new branch] mb/beforemodel-context -> mb/beforemodel-context
* [new branch] mb/dynamic-tools -> mb/dynamic-tools
* [new branch] mb/eval-token-report -> mb/eval-token-report
* [new branch] mb/prompts -> mb/prompts
* [new branch] mb/tilth-read -> mb/tilth-read
* [new branch] mem-vleak -> mem-vleak
* [new branch] memory_usage3 -> memory_usage3
* [new branch] memory_usage_flag -> memory_usage_flag
* [new branch] mjk-workspaces -> mjk-workspaces
* [new branch] mk-agentfactory -> mk-agentfactory
* [new branch] mk-experimentation -> mk-experimentation
* [new branch] mk-extenstions-programatic -> mk-extenstions-programatic
* [new branch] mk-fullscreen -> mk-fullscreen
* [new branch] mk-learnings-md -> mk-learnings-md
* [new branch] mk-lockup-bug -> mk-lockup-bug
* [new branch] mk-memory-usage -> mk-memory-usage
* [new branch] mk-shared-storage -> mk-shared-storage
* [new branch] mk-teleport -> mk-teleport
* [new branch] mk-ux-validation -> mk-ux-validation
* [new branch] mk-workstation-2 -> mk-workstation-2
* [new branch] mode-in-footer -> mode-in-footer
* [new branch] move-mode-to-footer -> move-mode-to-footer
* [new branch] mshanware/17690-extensible-plan-mode -> mshanware/17690-extensible-plan-mode
* [new branch] mshanware/extensionplanpolicy -> mshanware/extensionplanpolicy
* [new branch] mshanware/feat/btw -> mshanware/feat/btw
* [new branch] nanobanana -> nanobanana
* [new branch] ntaylormullen/feat/shell-command-visibility -> ntaylormullen/feat/shell-command-visibility
* [new branch] ntaylormullen/fix-unauthorized-tool-calls -> ntaylormullen/fix-unauthorized-tool-calls
* [new branch] ntm/200-compression -> ntm/200-compression
* [new branch] ntm/agentteamscli -> ntm/agentteamscli
* [new branch] ntm/b.a2a_primary_agent -> ntm/b.a2a_primary_agent
* [new branch] ntm/colorizedwords -> ntm/colorizedwords
* [new branch] ntm/fix-shell-unfocus-tab -> ntm/fix-shell-unfocus-tab
* [new branch] ntm/fix-tool-approval-narrowing -> ntm/fix-tool-approval-narrowing
* [new branch] ntm/gh.1592 -> ntm/gh.1592
* [new branch] ntm/gh.1593 -> ntm/gh.1593
* [new branch] ntm/gh.1594 -> ntm/gh.1594
* [new branch] ntm/gh.1595 -> ntm/gh.1595
* [new branch] ntm/gh.enforce-non-interactive-scaffolding -> ntm/gh.enforce-non-interactive-scaffolding
* [new branch] ntm/gh.sysprompt.1 -> ntm/gh.sysprompt.1
* [new branch] ntm/open-plugin-support -> ntm/open-plugin-support
* [new branch] ntm/reload-command -> ntm/reload-command
* [new branch] ntm/repro-hook-flakiness -> ntm/repro-hook-flakiness
* [new branch] ntm/skill-slash-commands -> ntm/skill-slash-commands
* [new branch] ntm/sys.prompt.2 -> ntm/sys.prompt.2
* [new branch] ntm/visual-journey-sentinels -> ntm/visual-journey-sentinels
* [new branch] optimize-build-speed -> optimize-build-speed
* [new branch] optimize_input_prompt -> optimize_input_prompt
* [new branch] orphaned-test-ignores -> orphaned-test-ignores
* [new branch] overview-redo -> overview-redo
* [new branch] package-lock-update -> package-lock-update
* [new branch] perf/21528-core-startup-optimization -> perf/21528-core-startup-optimization
* [new branch] perf/intercept -> perf/intercept
* [new branch] perf/optimize-startup-auth -> perf/optimize-startup-auth
* [new branch] perf/optimize-startup-dynamic-imports -> perf/optimize-startup-dynamic-imports
* [new branch] perf/ui-optimization -> perf/ui-optimization
* [new branch] planner -> planner
* [new branch] port-teleportation-from-ob -> port-teleportation-from-ob
* [new branch] pr-19267 -> pr-19267
* [new branch] pr-22211 -> pr-22211
* [new branch] pr-22986 -> pr-22986
* [new branch] pr-checks-failures-investigation -> pr-checks-failures-investigation
* [new branch] pr_20100 -> pr_20100
* [new branch] promote-skills-v0.26.0-preview.4 -> promote-skills-v0.26.0-preview.4
* [new branch] prompt-stashing -> prompt-stashing
* [new branch] prompt-template -> prompt-template
* [new branch] proposal/experimentation-framework -> proposal/experimentation-framework
* [new branch] rahulkamat/profiles -> rahulkamat/profiles
* [new branch] redirect-to-gemma4 -> redirect-to-gemma4
* [new branch] refactor-bug -> refactor-bug
* [new branch] refactor-bulky-tools-v2 -> refactor-bulky-tools-v2
* [new branch] refactor-sandbox-managers -> refactor-sandbox-managers
* [new branch] refactor/border-styling -> refactor/border-styling
* [new branch] relative-path -> relative-path
* [new branch] release/v0.21.0-nightly.20251226.546baf993 -> release/v0.21.0-nightly.20251226.546baf993
* [new branch] release/v0.22.0 -> release/v0.22.0
* [new branch] release/v0.22.2-pr-15494 -> release/v0.22.2-pr-15494
* [new branch] release/v0.22.3-pr-15601 -> release/v0.22.3-pr-15601
* [new branch] release/v0.22.4-pr-15684 -> release/v0.22.4-pr-15684
* [new branch] release/v0.23.0-pr-16252 -> release/v0.23.0-pr-16252
* [new branch] release/v0.23.0-preview.0-pr-15443 -> release/v0.23.0-preview.0-pr-15443
* [new branch] release/v0.23.0-preview.1-pr-15494 -> release/v0.23.0-preview.1-pr-15494
* [new branch] release/v0.23.0-preview.2-pr-15601 -> release/v0.23.0-preview.2-pr-15601
* [new branch] release/v0.23.0-preview.3-pr-15465 -> release/v0.23.0-preview.3-pr-15465
* [new branch] release/v0.23.0-preview.3-pr-15684 -> release/v0.23.0-preview.3-pr-15684
* [new branch] release/v0.23.0-preview.4-pr-16004 -> release/v0.23.0-preview.4-pr-16004
* [new branch] release/v0.23.0-preview.5-pr-15817 -> release/v0.23.0-preview.5-pr-15817
* [new branch] release/v0.23.0-preview.6 -> release/v0.23.0-preview.6
* [new branch] release/v0.23.1 -> release/v0.23.1
* [new branch] release/v0.24.0-nightly.20251231.05049b5ab -> release/v0.24.0-nightly.20251231.05049b5ab
* [new branch] release/v0.24.0-nightly.20260103.30f5c4af4 -> release/v0.24.0-nightly.20260103.30f5c4af4
* [new branch] release/v0.24.0-nightly.20260115.c9d6f9b22 -> release/v0.24.0-nightly.20260115.c9d6f9b22
* [new branch] release/v0.24.0-pr-16006 -> release/v0.24.0-pr-16006
* [new branch] release/v0.24.0-preview.1-pr-16252 -> release/v0.24.0-preview.1-pr-16252
* [new branch] release/v0.24.1 -> release/v0.24.1
* [new branch] release/v0.24.2 -> release/v0.24.2
* [new branch] release/v0.24.3 -> release/v0.24.3
* [new branch] release/v0.25.0-nightly.20260108.aca6bf6aa -> release/v0.25.0-nightly.20260108.aca6bf6aa
* [new branch] release/v0.25.0-nightly.20260109.041463d11 -> release/v0.25.0-nightly.20260109.041463d11
* [new branch] release/v0.25.0-nightly.20260109.c87d1aed4 -> release/v0.25.0-nightly.20260109.c87d1aed4
* [new branch] release/v0.25.0-nightly.20260109.ca4866142 -> release/v0.25.0-nightly.20260109.ca4866142
* [new branch] release/v0.25.0-nightly.20260109.ffb80c242 -> release/v0.25.0-nightly.20260109.ffb80c242
* [new branch] release/v0.25.0-nightly.20260110.6f7d79818 -> release/v0.25.0-nightly.20260110.6f7d79818
* [new branch] release/v0.25.0-nightly.20260110.b08b0d715 -> release/v0.25.0-nightly.20260110.b08b0d715
* [new branch] release/v0.25.0-nightly.20260110.b54e688c7 -> release/v0.25.0-nightly.20260110.b54e688c7
* [new branch] release/v0.25.0-nightly.20260112.15891721a -> release/v0.25.0-nightly.20260112.15891721a
* [new branch] release/v0.25.0-pr-17308 -> release/v0.25.0-pr-17308
* [new branch] release/v0.25.0-preview.4-pr-17131 -> release/v0.25.0-preview.4-pr-17131
* [new branch] release/v0.26.0-nightly.20260115.0663076af -> release/v0.26.0-nightly.20260115.0663076af
* [new branch] release/v0.26.0-nightly.20260115.549c732d7 -> release/v0.26.0-nightly.20260115.549c732d7
* [new branch] release/v0.26.0-nightly.20260115.e58fca68c -> release/v0.26.0-nightly.20260115.e58fca68c
* [new branch] release/v0.26.0-nightly.20260119.20580d754 -> release/v0.26.0-nightly.20260119.20580d754
* [new branch] release/v0.26.0-nightly.20260120.a90bcf749 -> release/v0.26.0-nightly.20260120.a90bcf749
* [new branch] release/v0.26.0-nightly.20260121.211d2c5fd -> release/v0.26.0-nightly.20260121.211d2c5fd
* [new branch] release/v0.26.0-pr-17975 -> release/v0.26.0-pr-17975
* [new branch] release/v0.26.0-preview.1-pr-17308 -> release/v0.26.0-preview.1-pr-17308
* [new branch] release/v0.26.0-preview.3-pr-17166 -> release/v0.26.0-preview.3-pr-17166
* [new branch] release/v0.26.0-preview.3-pr-17395 -> release/v0.26.0-preview.3-pr-17395
* [new branch] release/v0.27.0-nightly.20260122.61040d0eb -> release/v0.27.0-nightly.20260122.61040d0eb
* [new branch] release/v0.27.0-nightly.20260126.cb772a5b7 -> release/v0.27.0-nightly.20260126.cb772a5b7
* [new branch] release/v0.27.0-nightly.20260127.00f60ef53 -> release/v0.27.0-nightly.20260127.00f60ef53
* [new branch] release/v0.27.0-nightly.20260128.830e21275 -> release/v0.27.0-nightly.20260128.830e21275
* [new branch] release/v0.27.0-pr-16041 -> release/v0.27.0-pr-16041
* [new branch] release/v0.27.0-pr-18161 -> release/v0.27.0-pr-18161
* [new branch] release/v0.27.0-preview.3-pr-17975 -> release/v0.27.0-preview.3-pr-17975
* [new branch] release/v0.27.0-preview.4-pr-17852 -> release/v0.27.0-preview.4-pr-17852
* [new branch] release/v0.27.0-preview.5-pr-18215 -> release/v0.27.0-preview.5-pr-18215
* [new branch] release/v0.27.0-preview.6-pr-18108 -> release/v0.27.0-preview.6-pr-18108
* [new branch] release/v0.27.0-preview.6-pr-18209 -> release/v0.27.0-preview.6-pr-18209
* [new branch] release/v0.27.0-preview.7-pr-18108 -> release/v0.27.0-preview.7-pr-18108
* [new branch] release/v0.27.0-preview.8-pr-18216 -> release/v0.27.0-preview.8-pr-18216
* [new branch] release/v0.27.2-pr-18376 -> release/v0.27.2-pr-18376
* [new branch] release/v0.27.3-pr-18478 -> release/v0.27.3-pr-18478
* [new branch] release/v0.27.3-pr-18656 -> release/v0.27.3-pr-18656
* [new branch] release/v0.28.0-nightly.20260129.9bb175a50 -> release/v0.28.0-nightly.20260129.9bb175a50
* [new branch] release/v0.28.0-nightly.20260130.d43d772e6 -> release/v0.28.0-nightly.20260130.d43d772e6
* [new branch] release/v0.28.0-nightly.20260201.b0f38104d -> release/v0.28.0-nightly.20260201.b0f38104d
* [new branch] release/v0.28.0-nightly.20260202.707b3e85d -> release/v0.28.0-nightly.20260202.707b3e85d
* [new branch] release/v0.28.0-pr-18478 -> release/v0.28.0-pr-18478
* [new branch] release/v0.28.0-preview.0-pr-17806 -> release/v0.28.0-preview.0-pr-17806
* [new branch] release/v0.28.0-preview.2-pr-18447 -> release/v0.28.0-preview.2-pr-18447
* [new branch] release/v0.28.0-preview.3-pr-18376 -> release/v0.28.0-preview.3-pr-18376
* [new branch] release/v0.28.0-preview.4-pr-18343 -> release/v0.28.0-preview.4-pr-18343
* [new branch] release/v0.28.0-preview.5-pr-18406 -> release/v0.28.0-preview.5-pr-18406
* [new branch] release/v0.28.0-preview.6-pr-18407 -> release/v0.28.0-preview.6-pr-18407
* [new branch] release/v0.28.0-preview.6-pr-18478 -> release/v0.28.0-preview.6-pr-18478
* [new branch] release/v0.28.0-preview.6-pr-18656 -> release/v0.28.0-preview.6-pr-18656
* [new branch] release/v0.28.1-pr-18840 -> release/v0.28.1-pr-18840
* [new branch] release/v0.28.2-pr-18855 -> release/v0.28.2-pr-18855
* [new branch] release/v0.28.2-pr-18976 -> release/v0.28.2-pr-18976
* [new branch] release/v0.29.0-nightly.20260205.a3af4a8ca -> release/v0.29.0-nightly.20260205.a3af4a8ca
* [new branch] release/v0.29.0-nightly.20260206.4ffc349c1 -> release/v0.29.0-nightly.20260206.4ffc349c1
* [new branch] release/v0.29.0-nightly.20260209.da66c7c0d -> release/v0.29.0-nightly.20260209.da66c7c0d
* [new branch] release/v0.29.0-pr-19460 -> release/v0.29.0-pr-19460
* [new branch] release/v0.29.0-preview.0-pr-18840 -> release/v0.29.0-preview.0-pr-18840
* [new branch] release/v0.29.0-preview.1 -> release/v0.29.0-preview.1
* [new branch] release/v0.29.0-preview.1-pr-18855 -> release/v0.29.0-preview.1-pr-18855
* [new branch] release/v0.29.0-preview.2-pr-18976 -> release/v0.29.0-preview.2-pr-18976
* [new branch] release/v0.29.0-preview.3-pr-19254 -> release/v0.29.0-preview.3-pr-19254
* [new branch] release/v0.29.0-preview.4-pr-18771 -> release/v0.29.0-preview.4-pr-18771
* [new branch] release/v0.29.1-pr-19453 -> release/v0.29.1-pr-19453
* [new branch] release/v0.29.2-pr-19502 -> release/v0.29.2-pr-19502
* [new branch] release/v0.29.3 -> release/v0.29.3
* [new branch] release/v0.29.5-pr-19991 -> release/v0.29.5-pr-19991
* [new branch] release/v0.29.6-pr-19867 -> release/v0.29.6-pr-19867
* [new branch] release/v0.30.0-bundle-npm-release -> release/v0.30.0-bundle-npm-release
* [new branch] release/v0.30.0-main -> release/v0.30.0-main
* [new branch] release/v0.30.0-nightly.20260210.8257ec447 -> release/v0.30.0-nightly.20260210.8257ec447
* [new branch] release/v0.30.0-nightly.20260211.0d034b8c1 -> release/v0.30.0-nightly.20260211.0d034b8c1
* [new branch] release/v0.30.0-nightly.20260211.f5dd1068f -> release/v0.30.0-nightly.20260211.f5dd1068f
* [new branch] release/v0.30.0-nightly.20260212.099aa9621 -> release/v0.30.0-nightly.20260212.099aa9621
* [new branch] release/v0.30.0-nightly.20260212.207ac6f2d -> release/v0.30.0-nightly.20260212.207ac6f2d
* [new branch] release/v0.30.0-nightly.20260218.ce84b3cb5 -> release/v0.30.0-nightly.20260218.ce84b3cb5
* [new branch] release/v0.30.0-nightly.20260223.c537fd5ae -> release/v0.30.0-nightly.20260223.c537fd5ae
* [new branch] release/v0.30.0-nightly.20260224.544df749a -> release/v0.30.0-nightly.20260224.544df749a
* [new branch] release/v0.30.0-nightly.20260226.f9f916e1d -> release/v0.30.0-nightly.20260226.f9f916e1d
* [new branch] release/v0.30.0-nightly.20260227.9b7852f11 -> release/v0.30.0-nightly.20260227.9b7852f11
* [new branch] release/v0.30.0-pr-20374 -> release/v0.30.0-pr-20374
* [new branch] release/v0.30.0-preview.0-pr-19453 -> release/v0.30.0-preview.0-pr-19453
* [new branch] release/v0.30.0-preview.1-pr-19502 -> release/v0.30.0-preview.1-pr-19502
* [new branch] release/v0.30.0-preview.2 -> release/v0.30.0-preview.2
* [new branch] release/v0.30.0-preview.3-pr-19991 -> release/v0.30.0-preview.3-pr-19991
* [new branch] release/v0.30.0-preview.4-pr-19867 -> release/v0.30.0-preview.4-pr-19867
* [new branch] release/v0.30.0-preview.5-pr-19867 -> release/v0.30.0-preview.5-pr-19867
* [new branch] release/v0.30.0-preview.6-pr-20152 -> release/v0.30.0-preview.6-pr-20152
* [new branch] release/v0.30.0-preview.6-pr-20154 -> release/v0.30.0-preview.6-pr-20154
* [new branch] release/v0.30.0-test-github-release -> release/v0.30.0-test-github-release
* [new branch] release/v0.30.1-pr-20577 -> release/v0.30.1-pr-20577
* [new branch] release/v0.31.0-preview.0-pr-20322 -> release/v0.31.0-preview.0-pr-20322
* [new branch] release/v0.31.0-preview.0-pr-20351 -> release/v0.31.0-preview.0-pr-20351
* [new branch] release/v0.31.0-preview.0-pr-20374 -> release/v0.31.0-preview.0-pr-20374
* [new branch] release/v0.31.0-preview.1-pr-20577 -> release/v0.31.0-preview.1-pr-20577
* [new branch] release/v0.31.0-preview.2-pr-20531 -> release/v0.31.0-preview.2-pr-20531
* [new branch] release/v0.32.0-pr-21042 -> release/v0.32.0-pr-21042
* [new branch] release/v0.33.0-pr-22069 -> release/v0.33.0-pr-22069
* [new branch] release/v0.33.0-preview.0-pr-21042 -> release/v0.33.0-preview.0-pr-21042
* [new branch] release/v0.33.0-preview.1-pr-21157 -> release/v0.33.0-preview.1-pr-21157
* [new branch] release/v0.33.0-preview.12-pr-21037 -> release/v0.33.0-preview.12-pr-21037
* [new branch] release/v0.33.0-preview.13-pr-21467 -> release/v0.33.0-preview.13-pr-21467
* [new branch] release/v0.33.0-preview.14-pr-21884 -> release/v0.33.0-preview.14-pr-21884
* [new branch] release/v0.33.0-preview.2-pr-21171 -> release/v0.33.0-preview.2-pr-21171
* [new branch] release/v0.33.0-preview.3-pr-21305 -> release/v0.33.0-preview.3-pr-21305
* [new branch] release/v0.33.0-preview.4-pr-21425 -> release/v0.33.0-preview.4-pr-21425
* [new branch] release/v0.33.0-preview.5-pr-21487 -> release/v0.33.0-preview.5-pr-21487
* [new branch] release/v0.33.0-preview.6 -> release/v0.33.0-preview.6
* [new branch] release/v0.33.0-preview.7 -> release/v0.33.0-preview.7
* [new branch] release/v0.33.0-preview.7-pr-21750 -> release/v0.33.0-preview.7-pr-21750
* [new branch] release/v0.33.0-preview.8-pr-21236 -> release/v0.33.0-preview.8-pr-21236
* [new branch] release/v0.33.0-preview.9-pr-21702 -> release/v0.33.0-preview.9-pr-21702
* [new branch] release/v0.33.1-pr-22665 -> release/v0.33.1-pr-22665
* [new branch] release/v0.34.0-nightly.20260305.348103298 -> release/v0.34.0-nightly.20260305.348103298
* [new branch] release/v0.34.0-nightly.20260306.a8f507352 -> release/v0.34.0-nightly.20260306.a8f507352
* [new branch] release/v0.34.0-nightly.20260307.6c3a90645 -> release/v0.34.0-nightly.20260307.6c3a90645
* [new branch] release/v0.34.0-preview.0-pr-22148 -> release/v0.34.0-preview.0-pr-22148
* [new branch] release/v0.34.0-preview.1-pr-22069 -> release/v0.34.0-preview.1-pr-22069
* [new branch] release/v0.34.0-preview.2-pr-22332 -> release/v0.34.0-preview.2-pr-22332
* [new branch] release/v0.34.0-preview.3-pr-22665 -> release/v0.34.0-preview.3-pr-22665
* [new branch] release/v0.35.0-nightly.20260314.3038fdce2 -> release/v0.35.0-nightly.20260314.3038fdce2
* [new branch] release/v0.35.0-nightly.20260317.cddd9e714 -> release/v0.35.0-nightly.20260317.cddd9e714
* [new branch] release/v0.35.0-preview.4-pr-23546 -> release/v0.35.0-preview.4-pr-23546
* [new branch] release/v0.35.2-pr-24055 -> release/v0.35.2-pr-24055
* [new branch] release/v0.36.0-nightly.20260318.e2658ccda -> release/v0.36.0-nightly.20260318.e2658ccda
* [new branch] release/v0.36.0-nightly.20260321.fc03891a1 -> release/v0.36.0-nightly.20260321.fc03891a1
* [new branch] release/v0.36.0-nightly.20260323.6055c4707 -> release/v0.36.0-nightly.20260323.6055c4707
* [new branch] release/v0.36.0-nightly.20260325.0c919857f -> release/v0.36.0-nightly.20260325.0c919857f
* [new branch] release/v0.36.0-nightly.20260401.cdc602edd -> release/v0.36.0-nightly.20260401.cdc602edd
* [new branch] release/v0.36.0-nightly.20260402.13ccc1645 -> release/v0.36.0-nightly.20260402.13ccc1645
* [new branch] release/v0.36.0-nightly.20260404.4fb379005 -> release/v0.36.0-nightly.20260404.4fb379005
* [new branch] release/v0.36.0-nightly.20260406.15298b28c -> release/v0.36.0-nightly.20260406.15298b28c
* [new branch] release/v0.36.0-nightly.20260407.1c22c5b37 -> release/v0.36.0-nightly.20260407.1c22c5b37
* [new branch] release/v0.36.0-nightly.20260408.16768c08f -> release/v0.36.0-nightly.20260408.16768c08f
* [new branch] release/v0.36.0-preview.0-pr-23672 -> release/v0.36.0-preview.0-pr-23672
* [new branch] release/v0.36.0-preview.0-pr-23672-gal -> release/v0.36.0-preview.0-pr-23672-gal
* [new branch] release/v0.36.0-preview.2 -> release/v0.36.0-preview.2
* [new branch] release/v0.36.0-preview.5-pr-24055 -> release/v0.36.0-preview.5-pr-24055
* [new branch] release/v0.36.0-preview.6-pr-24235 -> release/v0.36.0-preview.6-pr-24235
* [new branch] release/v0.36.0-preview.7-pr-24282 -> release/v0.36.0-preview.7-pr-24282
* [new branch] release/v0.37.0-pr-24839 -> release/v0.37.0-pr-24839
* [new branch] release/v0.37.0-preview.0-pr-23257 -> release/v0.37.0-preview.0-pr-23257
* [new branch] release/v0.37.0-preview.1-pr-24342 -> release/v0.37.0-preview.1-pr-24342
* [new branch] release/v0.37.1-pr-24565 -> release/v0.37.1-pr-24565
* [new branch] release/v0.38.0-pr-25317 -> release/v0.38.0-pr-25317
* [new branch] release/v0.38.0-preview.0-pr-24565 -> release/v0.38.0-preview.0-pr-24565
* [new branch] release/v0.38.1-pr-24974 -> release/v0.38.1-pr-24974
* [new branch] release/v0.39.0-nightly.20260408.a39461718 -> release/v0.39.0-nightly.20260408.a39461718
* [new branch] release/v0.39.0-nightly.20260409.615e07834 -> release/v0.39.0-nightly.20260409.615e07834
* [new branch] release/v0.39.0-nightly.20260410.96cc8a0da -> release/v0.39.0-nightly.20260410.96cc8a0da
* [new branch] release/v0.39.0-nightly.20260411.0957f7d3e -> release/v0.39.0-nightly.20260411.0957f7d3e
* [new branch] release/v0.39.0-nightly.20260412.017972622 -> release/v0.39.0-nightly.20260412.017972622
* [new branch] release/v0.39.0-nightly.20260413.017972622 -> release/v0.39.0-nightly.20260413.017972622
* [new branch] release/v0.39.0-nightly.20260414.gdaf500623 -> release/v0.39.0-nightly.20260414.gdaf500623
* [new branch] release/v0.39.0-preview.0-pr-24974 -> release/v0.39.0-preview.0-pr-24974
* [new branch] release/v0.40.0-nightly.20260415.g06e7621b2 -> release/v0.40.0-nightly.20260415.g06e7621b2
* [new branch] release/v0.40.0-nightly.20260416.g34a9d6e42 -> release/v0.40.0-nightly.20260416.g34a9d6e42
* [new branch] release/v1.0 -> release/v1.0
* [new branch] remote-agent -> remote-agent
* [new branch] remove-github-pages -> remove-github-pages
* [new branch] rename-directory-to-workspace -> rename-directory-to-workspace
* [new branch] restart-resume -> restart-resume
* [new branch] resume-bug -> resume-bug
* [new branch] resume-session-message -> resume-session-message
* [new branch] revert-17353 -> revert-17353
* [new branch] sameez-recurring -> sameez-recurring
* [new branch] sameez/gemma-auto-setup -> sameez/gemma-auto-setup
* [new branch] sameez/gemma-hybrid-mode -> sameez/gemma-hybrid-mode
* [new branch] sandytao/eval-remove-tool-restrictions -> sandytao/eval-remove-tool-restrictions
* [new branch] scratch_si -> scratch_si
* [new branch] scratch_si_behaviors -> scratch_si_behaviors
* [new branch] sdk-07-hooks-agent -> sdk-07-hooks-agent
* [new branch] search_update_2 -> search_update_2
* [new branch] sehoon/disable_todo -> sehoon/disable_todo
* [new branch] sehoon/fix_stats -> sehoon/fix_stats
* [new branch] sehoon/gcli_chrome_extension -> sehoon/gcli_chrome_extension
* [new branch] sehoon/retries -> sehoon/retries
* [new branch] sehoon/setting_save_fail -> sehoon/setting_save_fail
* [new branch] sehoon/settings -> sehoon/settings
* [new branch] session-ttl-warning -> session-ttl-warning
* [new branch] shell_format -> shell_format
* [new branch] show_thinking -> show_thinking
* [new branch] si-overhaul -> si-overhaul
* [new branch] skeshive/acp-exp -> skeshive/acp-exp
* [new branch] small_logo -> small_logo
* [new branch] split/auto-add -> split/auto-add
* [new branch] split/policy-refactor -> split/policy-refactor
* [new branch] split/sandbox-flags -> split/sandbox-flags
* [new branch] splitModelConfigurability -> splitModelConfigurability
* [new branch] sripas_1330 -> sripas_1330
* [new branch] sripas_1331mgc_10955_gc -> sripas_1331mgc_10955_gc
* [new branch] sripas_1338 -> sripas_1338
* [new branch] sripas_acp_refactor_phase1 -> sripas_acp_refactor_phase1
* [new branch] sripas_add_baseline_perf -> sripas_add_baseline_perf
* [new branch] sripas_build_fix -> sripas_build_fix
* [new branch] sripas_dupe_confirm_fix -> sripas_dupe_confirm_fix
* [new branch] sripas_fix_1339 -> sripas_fix_1339
* [new branch] sripas_fix_1566 -> sripas_fix_1566
* [new branch] sripas_fix_24867 -> sripas_fix_24867
* [new branch] sripas_fix_build -> sripas_fix_build
* [new branch] sripas_fix_term_color -> sripas_fix_term_color
* [new branch] st/a2a-listen -> st/a2a-listen
* [new branch] st/devtools-memory -> st/devtools-memory
* [new branch] st/feat/forum -> st/feat/forum
* [new branch] st/feat/memory-provider -> st/feat/memory-provider
* [new branch] st/forever -> st/forever
* [new branch] tabbed-widgets -> tabbed-widgets
* [new branch] task/subprocess_xml_tagging -> task/subprocess_xml_tagging
* [new branch] tb_si_change -> tb_si_change
* [new branch] telemtry-truncation -> telemtry-truncation
a044c25981..cb8edb2408 test -> test
* [new branch] test-e2e-chained-workflow -> test-e2e-chained-workflow
* [new branch] test-e2e-no-prompt-change -> test-e2e-no-prompt-change
* [new branch] test-e2e-no-prompt-change-v2 -> test-e2e-no-prompt-change-v2
* [new branch] test-gemini-3-1-model -> test-gemini-3-1-model
* [new branch] test-utils-model-fallback -> test-utils-model-fallback
* [new branch] test-workflow-validation -> test-workflow-validation
* [new branch] thin_harness -> thin_harness
* [new branch] tmux_warning -> tmux_warning
* [new branch] tracker-docs -> tracker-docs
* [new branch] tracker-prompt-changes -> tracker-prompt-changes
* [new branch] triage-skill -> triage-skill
* [new branch] u/anj/add-test -> u/anj/add-test
* [new branch] u/anj/task-tracker -> u/anj/task-tracker
* [new branch] u/anj/task-tracker-phase-3-on -> u/anj/task-tracker-phase-3-on
* [new branch] ui-subdue-colors -> ui-subdue-colors
* [new branch] user-simulation -> user-simulation
* [new branch] user-simulation-knowledge -> user-simulation-knowledge
* [new branch] user-simulation-scrolling -> user-simulation-scrolling
* [new branch] users/gsquared94/improve-context-summarization -> users/gsquared94/improve-context-summarization
* [new branch] ux-extension -> ux-extension
* [new branch] ux-string-iteration -> ux-string-iteration
* [new branch] v0.22.0-preview.3 -> v0.22.0-preview.3
* [new branch] v0.37.0-patches -> v0.37.0-patches
* [new branch] vertex-project -> vertex-project
* [new branch] web-template-fix -> web-template-fix
* [new branch] webfetch-stage-1 -> webfetch-stage-1
* [new branch] website-fix-telemetry-images -> website-fix-telemetry-images
* [new branch] website-quick-image-url-fix-1 -> website-quick-image-url-fix-1
* [new branch] workspace-command-scope-20737 -> workspace-command-scope-20737
* [new branch] worktree-con-plan-bug -> worktree-con-plan-bug
* [new branch] write_file -> write_file
* [new branch] writer-extension -> writer-extension
* [new branch] yunaseol/retry-2 -> yunaseol/retry-2
* [new branch] yunaseol/security -> yunaseol/security
82870a372a..6c716ac945 refs/pull/10001/head -> refs/pull/10001/head
d5c3923875..4b50b52658 refs/pull/10220/head -> refs/pull/10220/head
+ da3e676975...c8c0b5b541 refs/pull/11247/head -> refs/pull/11247/head (forced update)
+ 3256779224...a84d43ce70 refs/pull/11314/head -> refs/pull/11314/head (forced update)
+ e4666060e3...e325d42411 refs/pull/11379/head -> refs/pull/11379/head (forced update)
+ dcfeb5aaee...521f4537ba refs/pull/11410/merge -> refs/pull/11410/merge (forced update)
+ 696918d557...c6e47cdf60 refs/pull/11420/head -> refs/pull/11420/head (forced update)
+ cd14d7e73d...e7a633de07 refs/pull/11421/head -> refs/pull/11421/head (forced update)
+ 48b8c7258d...a86cfe4384 refs/pull/11422/head -> refs/pull/11422/head (forced update)
+ c4f1e98595...af9c436b57 refs/pull/11423/head -> refs/pull/11423/head (forced update)
+ 0e0ee9198a...34a498ae7a refs/pull/11424/head -> refs/pull/11424/head (forced update)
6a9c9b93b8..34d09adc09 refs/pull/11444/head -> refs/pull/11444/head
+ 5b0adb94e6...6256a64259 refs/pull/11844/merge -> refs/pull/11844/merge (forced update)
+ c0795a6125...1230dbdcf8 refs/pull/12038/head -> refs/pull/12038/head (forced update)
377d0cf4ac..f6cb10ab25 refs/pull/12062/head -> refs/pull/12062/head
+ 5421489a61...5f655afe25 refs/pull/12078/head -> refs/pull/12078/head (forced update)
d439fd9ed1..8af1232de1 refs/pull/12280/head -> refs/pull/12280/head
fa5ab7f6b9..4e5d8a5a38 refs/pull/12749/head -> refs/pull/12749/head
+ db22907598...2668f29462 refs/pull/12766/head -> refs/pull/12766/head (forced update)
bc0dbe2765..13da5f46bc refs/pull/12801/head -> refs/pull/12801/head
4ba80a273a..289509ddd8 refs/pull/12873/head -> refs/pull/12873/head
+ 2bba3d3c3c...2fd2961afe refs/pull/12873/merge -> refs/pull/12873/merge (forced update)
faa8aa8c18..a332201f08 refs/pull/12899/head -> refs/pull/12899/head
+ ab01e6538a...878655d24e refs/pull/12941/head -> refs/pull/12941/head (forced update)
+ 5929d0b985...20877c2ea6 refs/pull/13193/head -> refs/pull/13193/head (forced update)
00f1170b53..7d355771d2 refs/pull/13199/head -> refs/pull/13199/head
+ 492997cfb6...030847a80a refs/pull/13381/head -> refs/pull/13381/head (forced update)
+ 034668e252...b48674e64d refs/pull/13403/head -> refs/pull/13403/head (forced update)
+ 92fbd09bf7...b8f6608d73 refs/pull/13407/head -> refs/pull/13407/head (forced update)
b688b95ee7..5396d3dbc2 refs/pull/13507/head -> refs/pull/13507/head
+ bf1b0e39c1...fae39f9b61 refs/pull/13514/head -> refs/pull/13514/head (forced update)
+ 0df5c31fb0...e4c417fbf0 refs/pull/13539/head -> refs/pull/13539/head (forced update)
5ba4bc3dc2..9c00b7e3a9 refs/pull/13686/head -> refs/pull/13686/head
b25bf29adb..4626d105d0 refs/pull/13692/head -> refs/pull/13692/head
+ 187e27f21d...721b505c48 refs/pull/13797/head -> refs/pull/13797/head (forced update)
3fdbf05e9a..68e391919f refs/pull/13963/head -> refs/pull/13963/head
+ af374cecf6...a90191b0ef refs/pull/13981/head -> refs/pull/13981/head (forced update)
+ 8fa176b17e...326463211d refs/pull/14142/head -> refs/pull/14142/head (forced update)
+ 5ff1f86d0d...643f5e97b5 refs/pull/14145/merge -> refs/pull/14145/merge (forced update)
+ 41dc850ce7...b2a7f5958c refs/pull/14175/head -> refs/pull/14175/head (forced update)
+ ff8eb30b9f...a2b57468c0 refs/pull/14190/head -> refs/pull/14190/head (forced update)
5769ff49c0..b0fabefb58 refs/pull/14267/head -> refs/pull/14267/head
+ 58d8c78ac2...65711c8759 refs/pull/14332/head -> refs/pull/14332/head (forced update)
+ a000ef6d53...7245a422b8 refs/pull/14406/merge -> refs/pull/14406/merge (forced update)
+ b1a0d6f203...296279593b refs/pull/14408/head -> refs/pull/14408/head (forced update)
b91ffede98..60d7a0638c refs/pull/14450/head -> refs/pull/14450/head
0e0cffb231..eb4c1e5ce8 refs/pull/14456/head -> refs/pull/14456/head
+ d3363883f5...4c0581ad9a refs/pull/14466/head -> refs/pull/14466/head (forced update)
c6871e9786..372b6657d3 refs/pull/14479/head -> refs/pull/14479/head
ef7fb642d7..1fa48bd90a refs/pull/14480/head -> refs/pull/14480/head
+ 3cc2c1b12e...fe17cf2a7c refs/pull/14494/head -> refs/pull/14494/head (forced update)
+ 7b33e01394...4b7ecaaa02 refs/pull/14496/head -> refs/pull/14496/head (forced update)
+ eab3ae4328...17c8d4f1cf refs/pull/14511/head -> refs/pull/14511/head (forced update)
+ 6e3b03e1bf...27d21f9921 refs/pull/14610/head -> refs/pull/14610/head (forced update)
3a2e784d6d..9c9a6d7406 refs/pull/14611/head -> refs/pull/14611/head
1ca7d387d3..571db2b41f refs/pull/14616/head -> refs/pull/14616/head
+ 31d331e1d8...461c277bf2 refs/pull/14640/head -> refs/pull/14640/head (forced update)
+ 6c3e5d91af...5b929fdb01 refs/pull/14650/head -> refs/pull/14650/head (forced update)
cc104f0369..ee7a4b4c23 refs/pull/14661/head -> refs/pull/14661/head
2ef811f2c2..0630697cea refs/pull/14681/head -> refs/pull/14681/head
b1e6de52b7..32a0c5f281 refs/pull/14685/head -> refs/pull/14685/head
+ 1743a103be...17e00ac91e refs/pull/14699/head -> refs/pull/14699/head (forced update)
d5b0bcfcd6..bb55c44d17 refs/pull/14701/head -> refs/pull/14701/head
24430fbc10..78af7b3e12 refs/pull/14727/head -> refs/pull/14727/head
+ 7bffd29bdc...e76b137650 refs/pull/14738/head -> refs/pull/14738/head (forced update)
d6bab8fb8f..63b957225b refs/pull/14776/head -> refs/pull/14776/head
+ db19fe9cc8...a28a2f5dea refs/pull/14809/head -> refs/pull/14809/head (forced update)
+ b8608e8ddb...63f70d5678 refs/pull/14849/head -> refs/pull/14849/head (forced update)
+ c6cf0c8a85...9d1a887236 refs/pull/14852/head -> refs/pull/14852/head (forced update)
+ 80a84c09b6...83a634444a refs/pull/14854/head -> refs/pull/14854/head (forced update)
0108b10441..1da2519a7f refs/pull/14855/head -> refs/pull/14855/head
d85213d808..e534e12c2b refs/pull/14863/head -> refs/pull/14863/head
c7c7f198af..4280595cb4 refs/pull/14900/head -> refs/pull/14900/head
b6cb524e95..5e9d82f5f4 refs/pull/14905/head -> refs/pull/14905/head
+ c275a226b2...b59ea18252 refs/pull/14915/head -> refs/pull/14915/head (forced update)
f1fe2e9895..301b7d6ae5 refs/pull/14923/head -> refs/pull/14923/head
7b8d75b717..2903040c15 refs/pull/14927/head -> refs/pull/14927/head
0ee031ae35..97f60b8e71 refs/pull/14936/head -> refs/pull/14936/head
+ 417498bb5f...a8acfe903f refs/pull/14953/head -> refs/pull/14953/head (forced update)
7a5d9dd8d9..3ba375ee69 refs/pull/14955/head -> refs/pull/14955/head
8610a9d044..3e1c1d5d09 refs/pull/14974/head -> refs/pull/14974/head
+ d5f10d75c2...1c3293c4a7 refs/pull/14994/head -> refs/pull/14994/head (forced update)
7d991a2b5a..235cc74721 refs/pull/14997/head -> refs/pull/14997/head
705a209b8b..6e03451d4f refs/pull/15020/head -> refs/pull/15020/head
fa42025eed..36fba41af4 refs/pull/15034/head -> refs/pull/15034/head
8931a494e5..462865df47 refs/pull/15047/head -> refs/pull/15047/head
f5c497b252..70b66191b0 refs/pull/15049/head -> refs/pull/15049/head
42858715a1..86bad9ac08 refs/pull/15056/head -> refs/pull/15056/head
+ aaed29b5e0...981af277ca refs/pull/15060/head -> refs/pull/15060/head (forced update)
fb8534e27b..5b045f9662 refs/pull/15111/head -> refs/pull/15111/head
ece0887772..8eca42c0b4 refs/pull/15142/head -> refs/pull/15142/head
0934e53d39..3aec0c6cc3 refs/pull/15143/head -> refs/pull/15143/head
+ 1ee82a3191...a899a5d9d0 refs/pull/15175/head -> refs/pull/15175/head (forced update)
45bdc3e8a8..e79382a214 refs/pull/15178/head -> refs/pull/15178/head
+ 2dbef91df3...05049b5abf refs/pull/15191/head -> refs/pull/15191/head (forced update)
36cd1e28bc..3b5a0f7631 refs/pull/15219/head -> refs/pull/15219/head
+ 72914b54b6...9da801d3e9 refs/pull/15229/head -> refs/pull/15229/head (forced update)
+ 3534913fa7...a3d214f8d7 refs/pull/15252/head -> refs/pull/15252/head (forced update)
6a69f6f038..47f77ad5ae refs/pull/15253/head -> refs/pull/15253/head
8d8b03160f..d4c707225b refs/pull/15254/head -> refs/pull/15254/head
+ 432b34ae41...01e44b8c11 refs/pull/15255/head -> refs/pull/15255/head (forced update)
+ 37311e9bc2...a9564c4d0b refs/pull/15307/head -> refs/pull/15307/head (forced update)
+ 11a16319ff...c8df2a72ac refs/pull/15309/head -> refs/pull/15309/head (forced update)
a71f709fce..305e4b9b92 refs/pull/15312/head -> refs/pull/15312/head
+ f5bdea12d6...229ea4ade7 refs/pull/15336/head -> refs/pull/15336/head (forced update)
8f855e1a8c..de60e5a061 refs/pull/15348/head -> refs/pull/15348/head
88a1719146..74f79259b0 refs/pull/15354/head -> refs/pull/15354/head
14795d3573..dd24c7c038 refs/pull/15360/head -> refs/pull/15360/head
287e63ba12..4044e2b044 refs/pull/15371/head -> refs/pull/15371/head
+ d22039ba23...80ff79cd3b refs/pull/15373/head -> refs/pull/15373/head (forced update)
189f8f2ab1..e5f8a1e690 refs/pull/15386/head -> refs/pull/15386/head
61e15e902a..593450bfc1 refs/pull/15395/head -> refs/pull/15395/head
* [new ref] refs/pull/15408/head -> refs/pull/15408/head
* [new ref] refs/pull/15410/head -> refs/pull/15410/head
* [new ref] refs/pull/15414/head -> refs/pull/15414/head
* [new ref] refs/pull/15415/head -> refs/pull/15415/head
* [new ref] refs/pull/15421/head -> refs/pull/15421/head
* [new ref] refs/pull/15432/head -> refs/pull/15432/head
* [new ref] refs/pull/15434/head -> refs/pull/15434/head
* [new ref] refs/pull/15437/head -> refs/pull/15437/head
* [new ref] refs/pull/15438/head -> refs/pull/15438/head
* [new ref] refs/pull/15439/head -> refs/pull/15439/head
* [new ref] refs/pull/15440/head -> refs/pull/15440/head
* [new ref] refs/pull/15443/head -> refs/pull/15443/head
* [new ref] refs/pull/15445/head -> refs/pull/15445/head
* [new ref] refs/pull/15446/head -> refs/pull/15446/head
* [new ref] refs/pull/15447/head -> refs/pull/15447/head
* [new ref] refs/pull/15448/head -> refs/pull/15448/head
* [new ref] refs/pull/15451/head -> refs/pull/15451/head
* [new ref] refs/pull/15460/head -> refs/pull/15460/head
* [new ref] refs/pull/15461/head -> refs/pull/15461/head
* [new ref] refs/pull/15463/head -> refs/pull/15463/head
* [new ref] refs/pull/15465/head -> refs/pull/15465/head
* [new ref] refs/pull/15469/head -> refs/pull/15469/head
* [new ref] refs/pull/15470/head -> refs/pull/15470/head
* [new ref] refs/pull/15482/head -> refs/pull/15482/head
* [new ref] refs/pull/15483/head -> refs/pull/15483/head
* [new ref] refs/pull/15485/head -> refs/pull/15485/head
* [new ref] refs/pull/15487/head -> refs/pull/15487/head
* [new ref] refs/pull/15489/head -> refs/pull/15489/head
* [new ref] refs/pull/15491/head -> refs/pull/15491/head
* [new ref] refs/pull/15492/head -> refs/pull/15492/head
* [new ref] refs/pull/15494/head -> refs/pull/15494/head
* [new ref] refs/pull/15499/head -> refs/pull/15499/head
* [new ref] refs/pull/15504/head -> refs/pull/15504/head
* [new ref] refs/pull/15507/head -> refs/pull/15507/head
* [new ref] refs/pull/15509/head -> refs/pull/15509/head
* [new ref] refs/pull/15522/head -> refs/pull/15522/head
* [new ref] refs/pull/15524/head -> refs/pull/15524/head
* [new ref] refs/pull/15527/head -> refs/pull/15527/head
* [new ref] refs/pull/15548/head -> refs/pull/15548/head
* [new ref] refs/pull/15550/head -> refs/pull/15550/head
* [new ref] refs/pull/15552/head -> refs/pull/15552/head
* [new ref] refs/pull/15558/head -> refs/pull/15558/head
* [new ref] refs/pull/15560/head -> refs/pull/15560/head
* [new ref] refs/pull/15561/head -> refs/pull/15561/head
* [new ref] refs/pull/15562/head -> refs/pull/15562/head
* [new ref] refs/pull/15565/head -> refs/pull/15565/head
* [new ref] refs/pull/15570/head -> refs/pull/15570/head
* [new ref] refs/pull/15573/head -> refs/pull/15573/head
* [new ref] refs/pull/15574/head -> refs/pull/15574/head
* [new ref] refs/pull/15574/merge -> refs/pull/15574/merge
* [new ref] refs/pull/15575/head -> refs/pull/15575/head
* [new ref] refs/pull/15582/head -> refs/pull/15582/head
* [new ref] refs/pull/15583/head -> refs/pull/15583/head
* [new ref] refs/pull/15587/head -> refs/pull/15587/head
* [new ref] refs/pull/15589/head -> refs/pull/15589/head
* [new ref] refs/pull/15591/head -> refs/pull/15591/head
* [new ref] refs/pull/15592/head -> refs/pull/15592/head
* [new ref] refs/pull/15594/head -> refs/pull/15594/head
* [new ref] refs/pull/15596/head -> refs/pull/15596/head
* [new ref] refs/pull/15597/head -> refs/pull/15597/head
* [new ref] refs/pull/15601/head -> refs/pull/15601/head
* [new ref] refs/pull/15602/head -> refs/pull/15602/head
* [new ref] refs/pull/15603/head -> refs/pull/15603/head
* [new ref] refs/pull/15604/head -> refs/pull/15604/head
* [new ref] refs/pull/15608/head -> refs/pull/15608/head
* [new ref] refs/pull/15611/head -> refs/pull/15611/head
* [new ref] refs/pull/15612/head -> refs/pull/15612/head
* [new ref] refs/pull/15620/head -> refs/pull/15620/head
* [new ref] refs/pull/15621/head -> refs/pull/15621/head
* [new ref] refs/pull/15626/head -> refs/pull/15626/head
* [new ref] refs/pull/15635/head -> refs/pull/15635/head
* [new ref] refs/pull/15636/head -> refs/pull/15636/head
* [new ref] refs/pull/15637/head -> refs/pull/15637/head
* [new ref] refs/pull/15647/head -> refs/pull/15647/head
* [new ref] refs/pull/15651/head -> refs/pull/15651/head
* [new ref] refs/pull/15652/head -> refs/pull/15652/head
* [new ref] refs/pull/15654/head -> refs/pull/15654/head
* [new ref] refs/pull/15656/head -> refs/pull/15656/head
* [new ref] refs/pull/15657/head -> refs/pull/15657/head
* [new ref] refs/pull/15658/head -> refs/pull/15658/head
* [new ref] refs/pull/15659/head -> refs/pull/15659/head
* [new ref] refs/pull/15661/head -> refs/pull/15661/head
* [new ref] refs/pull/15662/head -> refs/pull/15662/head
* [new ref] refs/pull/15663/head -> refs/pull/15663/head
* [new ref] refs/pull/15664/head -> refs/pull/15664/head
* [new ref] refs/pull/15669/head -> refs/pull/15669/head
* [new ref] refs/pull/15672/head -> refs/pull/15672/head
* [new ref] refs/pull/15674/head -> refs/pull/15674/head
* [new ref] refs/pull/15679/head -> refs/pull/15679/head
* [new ref] refs/pull/15680/head -> refs/pull/15680/head
* [new ref] refs/pull/15682/head -> refs/pull/15682/head
* [new ref] refs/pull/15683/head -> refs/pull/15683/head
* [new ref] refs/pull/15684/head -> refs/pull/15684/head
* [new ref] refs/pull/15685/head -> refs/pull/15685/head
* [new ref] refs/pull/15696/head -> refs/pull/15696/head
* [new ref] refs/pull/15697/head -> refs/pull/15697/head
* [new ref] refs/pull/15698/head -> refs/pull/15698/head
* [new ref] refs/pull/15699/head -> refs/pull/15699/head
* [new ref] refs/pull/15701/head -> refs/pull/15701/head
* [new ref] refs/pull/15706/head -> refs/pull/15706/head
* [new ref] refs/pull/15710/head -> refs/pull/15710/head
* [new ref] refs/pull/15711/head -> refs/pull/15711/head
* [new ref] refs/pull/15714/head -> refs/pull/15714/head
* [new ref] refs/pull/15715/head -> refs/pull/15715/head
* [new ref] refs/pull/15716/head -> refs/pull/15716/head
* [new ref] refs/pull/15717/head -> refs/pull/15717/head
* [new ref] refs/pull/15718/head -> refs/pull/15718/head
* [new ref] refs/pull/15719/head -> refs/pull/15719/head
* [new ref] refs/pull/15720/head -> refs/pull/15720/head
* [new ref] refs/pull/15724/head -> refs/pull/15724/head
* [new ref] refs/pull/15725/head -> refs/pull/15725/head
* [new ref] refs/pull/15727/head -> refs/pull/15727/head
* [new ref] refs/pull/15728/head -> refs/pull/15728/head
* [new ref] refs/pull/15733/head -> refs/pull/15733/head
* [new ref] refs/pull/15734/head -> refs/pull/15734/head
* [new ref] refs/pull/15735/head -> refs/pull/15735/head
* [new ref] refs/pull/15736/head -> refs/pull/15736/head
* [new ref] refs/pull/15737/head -> refs/pull/15737/head
* [new ref] refs/pull/15739/head -> refs/pull/15739/head
* [new ref] refs/pull/15740/head -> refs/pull/15740/head
* [new ref] refs/pull/15741/head -> refs/pull/15741/head
* [new ref] refs/pull/15746/head -> refs/pull/15746/head
* [new ref] refs/pull/15747/head -> refs/pull/15747/head
* [new ref] refs/pull/15748/head -> refs/pull/15748/head
* [new ref] refs/pull/15752/head -> refs/pull/15752/head
* [new ref] refs/pull/15756/head -> refs/pull/15756/head
* [new ref] refs/pull/15757/head -> refs/pull/15757/head
* [new ref] refs/pull/15766/head -> refs/pull/15766/head
* [new ref] refs/pull/15767/head -> refs/pull/15767/head
* [new ref] refs/pull/15770/head -> refs/pull/15770/head
* [new ref] refs/pull/15771/head -> refs/pull/15771/head
* [new ref] refs/pull/15774/head -> refs/pull/15774/head
* [new ref] refs/pull/15775/head -> refs/pull/15775/head
* [new ref] refs/pull/15776/head -> refs/pull/15776/head
* [new ref] refs/pull/15777/head -> refs/pull/15777/head
* [new ref] refs/pull/15780/head -> refs/pull/15780/head
* [new ref] refs/pull/15781/head -> refs/pull/15781/head
* [new ref] refs/pull/15783/head -> refs/pull/15783/head
* [new ref] refs/pull/15784/head -> refs/pull/15784/head
* [new ref] refs/pull/15785/head -> refs/pull/15785/head
* [new ref] refs/pull/15790/head -> refs/pull/15790/head
* [new ref] refs/pull/15791/head -> refs/pull/15791/head
* [new ref] refs/pull/15793/head -> refs/pull/15793/head
* [new ref] refs/pull/15794/head -> refs/pull/15794/head
* [new ref] refs/pull/15800/head -> refs/pull/15800/head
* [new ref] refs/pull/15802/head -> refs/pull/15802/head
* [new ref] refs/pull/15803/head -> refs/pull/15803/head
* [new ref] refs/pull/15805/head -> refs/pull/15805/head
* [new ref] refs/pull/15806/head -> refs/pull/15806/head
* [new ref] refs/pull/15815/head -> refs/pull/15815/head
* [new ref] refs/pull/15816/head -> refs/pull/15816/head
* [new ref] refs/pull/15817/head -> refs/pull/15817/head
* [new ref] refs/pull/15818/head -> refs/pull/15818/head
* [new ref] refs/pull/15819/head -> refs/pull/15819/head
* [new ref] refs/pull/15820/head -> refs/pull/15820/head
* [new ref] refs/pull/15824/head -> refs/pull/15824/head
* [new ref] refs/pull/15825/head -> refs/pull/15825/head
* [new ref] refs/pull/15826/head -> refs/pull/15826/head
* [new ref] refs/pull/15827/head -> refs/pull/15827/head
* [new ref] refs/pull/15828/head -> refs/pull/15828/head
* [new ref] refs/pull/15829/head -> refs/pull/15829/head
* [new ref] refs/pull/15831/head -> refs/pull/15831/head
* [new ref] refs/pull/15832/head -> refs/pull/15832/head
* [new ref] refs/pull/15833/head -> refs/pull/15833/head
* [new ref] refs/pull/15834/head -> refs/pull/15834/head
* [new ref] refs/pull/15836/head -> refs/pull/15836/head
* [new ref] refs/pull/15837/head -> refs/pull/15837/head
* [new ref] refs/pull/15839/head -> refs/pull/15839/head
* [new ref] refs/pull/15842/head -> refs/pull/15842/head
* [new ref] refs/pull/15853/head -> refs/pull/15853/head
* [new ref] refs/pull/15855/head -> refs/pull/15855/head
* [new ref] refs/pull/15857/head -> refs/pull/15857/head
* [new ref] refs/pull/15860/head -> refs/pull/15860/head
* [new ref] refs/pull/15861/head -> refs/pull/15861/head
* [new ref] refs/pull/15863/head -> refs/pull/15863/head
* [new ref] refs/pull/15863/merge -> refs/pull/15863/merge
* [new ref] refs/pull/15864/head -> refs/pull/15864/head
* [new ref] refs/pull/15864/merge -> refs/pull/15864/merge
* [new ref] refs/pull/15865/head -> refs/pull/15865/head
* [new ref] refs/pull/15866/head -> refs/pull/15866/head
* [new ref] refs/pull/15866/merge -> refs/pull/15866/merge
* [new ref] refs/pull/15867/head -> refs/pull/15867/head
* [new ref] refs/pull/15869/head -> refs/pull/15869/head
* [new ref] refs/pull/15870/head -> refs/pull/15870/head
* [new ref] refs/pull/15871/head -> refs/pull/15871/head
* [new ref] refs/pull/15872/head -> refs/pull/15872/head
* [new ref] refs/pull/15878/head -> refs/pull/15878/head
* [new ref] refs/pull/15886/head -> refs/pull/15886/head
* [new ref] refs/pull/15889/head -> refs/pull/15889/head
* [new ref] refs/pull/15890/head -> refs/pull/15890/head
* [new ref] refs/pull/15893/head -> refs/pull/15893/head
* [new ref] refs/pull/15900/head -> refs/pull/15900/head
* [new ref] refs/pull/15901/head -> refs/pull/15901/head
* [new ref] refs/pull/15902/head -> refs/pull/15902/head
* [new ref] refs/pull/15904/head -> refs/pull/15904/head
* [new ref] refs/pull/15906/head -> refs/pull/15906/head
* [new ref] refs/pull/15907/head -> refs/pull/15907/head
* [new ref] refs/pull/15908/head -> refs/pull/15908/head
* [new ref] refs/pull/15919/head -> refs/pull/15919/head
* [new ref] refs/pull/15922/head -> refs/pull/15922/head
* [new ref] refs/pull/15922/merge -> refs/pull/15922/merge
* [new ref] refs/pull/15923/head -> refs/pull/15923/head
* [new ref] refs/pull/15926/head -> refs/pull/15926/head
* [new ref] refs/pull/15928/head -> refs/pull/15928/head
* [new ref] refs/pull/15929/head -> refs/pull/15929/head
* [new ref] refs/pull/15931/head -> refs/pull/15931/head
* [new ref] refs/pull/15932/head -> refs/pull/15932/head
* [new ref] refs/pull/15933/head -> refs/pull/15933/head
* [new ref] refs/pull/15935/head -> refs/pull/15935/head
* [new ref] refs/pull/15936/head -> refs/pull/15936/head
* [new ref] refs/pull/15937/head -> refs/pull/15937/head
* [new ref] refs/pull/15940/head -> refs/pull/15940/head
* [new ref] refs/pull/15941/head -> refs/pull/15941/head
* [new ref] refs/pull/15943/head -> refs/pull/15943/head
* [new ref] refs/pull/15944/head -> refs/pull/15944/head
* [new ref] refs/pull/15946/head -> refs/pull/15946/head
* [new ref] refs/pull/15947/head -> refs/pull/15947/head
* [new ref] refs/pull/15948/head -> refs/pull/15948/head
* [new ref] refs/pull/15950/head -> refs/pull/15950/head
* [new ref] refs/pull/15952/head -> refs/pull/15952/head
* [new ref] refs/pull/15953/head -> refs/pull/15953/head
* [new ref] refs/pull/15954/head -> refs/pull/15954/head
* [new ref] refs/pull/15967/head -> refs/pull/15967/head
* [new ref] refs/pull/15977/head -> refs/pull/15977/head
* [new ref] refs/pull/15978/head -> refs/pull/15978/head
* [new ref] refs/pull/15979/head -> refs/pull/15979/head
* [new ref] refs/pull/15982/head -> refs/pull/15982/head
* [new ref] refs/pull/15983/head -> refs/pull/15983/head
* [new ref] refs/pull/15989/head -> refs/pull/15989/head
* [new ref] refs/pull/16000/head -> refs/pull/16000/head
* [new ref] refs/pull/16001/head -> refs/pull/16001/head
* [new ref] refs/pull/16002/head -> refs/pull/16002/head
* [new ref] refs/pull/16004/head -> refs/pull/16004/head
* [new ref] refs/pull/16006/head -> refs/pull/16006/head
* [new ref] refs/pull/16009/head -> refs/pull/16009/head
* [new ref] refs/pull/16010/head -> refs/pull/16010/head
* [new ref] refs/pull/16011/head -> refs/pull/16011/head
* [new ref] refs/pull/16013/head -> refs/pull/16013/head
* [new ref] refs/pull/16014/head -> refs/pull/16014/head
* [new ref] refs/pull/16015/head -> refs/pull/16015/head
* [new ref] refs/pull/16018/head -> refs/pull/16018/head
* [new ref] refs/pull/16021/head -> refs/pull/16021/head
* [new ref] refs/pull/16023/head -> refs/pull/16023/head
* [new ref] refs/pull/16024/head -> refs/pull/16024/head
* [new ref] refs/pull/16027/head -> refs/pull/16027/head
* [new ref] refs/pull/16029/head -> refs/pull/16029/head
* [new ref] refs/pull/16032/head -> refs/pull/16032/head
* [new ref] refs/pull/16034/head -> refs/pull/16034/head
* [new ref] refs/pull/16035/head -> refs/pull/16035/head
* [new ref] refs/pull/16036/head -> refs/pull/16036/head
* [new ref] refs/pull/16038/head -> refs/pull/16038/head
* [new ref] refs/pull/16039/head -> refs/pull/16039/head
* [new ref] refs/pull/16040/head -> refs/pull/16040/head
* [new ref] refs/pull/16041/head -> refs/pull/16041/head
* [new ref] refs/pull/16043/head -> refs/pull/16043/head
* [new ref] refs/pull/16044/head -> refs/pull/16044/head
* [new ref] refs/pull/16045/head -> refs/pull/16045/head
* [new ref] refs/pull/16047/head -> refs/pull/16047/head
* [new ref] refs/pull/16048/head -> refs/pull/16048/head
* [new ref] refs/pull/16050/head -> refs/pull/16050/head
* [new ref] refs/pull/16051/head -> refs/pull/16051/head
* [new ref] refs/pull/16054/head -> refs/pull/16054/head
* [new ref] refs/pull/16055/head -> refs/pull/16055/head
* [new ref] refs/pull/16055/merge -> refs/pull/16055/merge
* [new ref] refs/pull/16056/head -> refs/pull/16056/head
* [new ref] refs/pull/16062/head -> refs/pull/16062/head
* [new ref] refs/pull/16069/head -> refs/pull/16069/head
* [new ref] refs/pull/16072/head -> refs/pull/16072/head
* [new ref] refs/pull/16073/head -> refs/pull/16073/head
* [new ref] refs/pull/16074/head -> refs/pull/16074/head
* [new ref] refs/pull/16079/head -> refs/pull/16079/head
* [new ref] refs/pull/16080/head -> refs/pull/16080/head
* [new ref] refs/pull/16082/head -> refs/pull/16082/head
* [new ref] refs/pull/16083/head -> refs/pull/16083/head
* [new ref] refs/pull/16087/head -> refs/pull/16087/head
* [new ref] refs/pull/16089/head -> refs/pull/16089/head
* [new ref] refs/pull/16093/head -> refs/pull/16093/head
* [new ref] refs/pull/16094/head -> refs/pull/16094/head
* [new ref] refs/pull/16096/head -> refs/pull/16096/head
* [new ref] refs/pull/16097/head -> refs/pull/16097/head
* [new ref] refs/pull/16098/head -> refs/pull/16098/head
* [new ref] refs/pull/16100/head -> refs/pull/16100/head
* [new ref] refs/pull/16102/head -> refs/pull/16102/head
* [new ref] refs/pull/16106/head -> refs/pull/16106/head
* [new ref] refs/pull/16107/head -> refs/pull/16107/head
* [new ref] refs/pull/16108/head -> refs/pull/16108/head
* [new ref] refs/pull/16109/head -> refs/pull/16109/head
* [new ref] refs/pull/16112/head -> refs/pull/16112/head
* [new ref] refs/pull/16113/head -> refs/pull/16113/head
* [new ref] refs/pull/16115/head -> refs/pull/16115/head
* [new ref] refs/pull/16117/head -> refs/pull/16117/head
* [new ref] refs/pull/16118/head -> refs/pull/16118/head
* [new ref] refs/pull/16119/head -> refs/pull/16119/head
* [new ref] refs/pull/16131/head -> refs/pull/16131/head
* [new ref] refs/pull/16133/head -> refs/pull/16133/head
* [new ref] refs/pull/16137/head -> refs/pull/16137/head
* [new ref] refs/pull/16138/head -> refs/pull/16138/head
* [new ref] refs/pull/16139/head -> refs/pull/16139/head
* [new ref] refs/pull/16142/head -> refs/pull/16142/head
* [new ref] refs/pull/16143/head -> refs/pull/16143/head
* [new ref] refs/pull/16145/head -> refs/pull/16145/head
* [new ref] refs/pull/16146/head -> refs/pull/16146/head
* [new ref] refs/pull/16152/head -> refs/pull/16152/head
* [new ref] refs/pull/16155/head -> refs/pull/16155/head
* [new ref] refs/pull/16156/head -> refs/pull/16156/head
* [new ref] refs/pull/16157/head -> refs/pull/16157/head
* [new ref] refs/pull/16161/head -> refs/pull/16161/head
* [new ref] refs/pull/16163/head -> refs/pull/16163/head
* [new ref] refs/pull/16172/head -> refs/pull/16172/head
* [new ref] refs/pull/16174/head -> refs/pull/16174/head
* [new ref] refs/pull/16177/head -> refs/pull/16177/head
* [new ref] refs/pull/16179/head -> refs/pull/16179/head
* [new ref] refs/pull/16180/head -> refs/pull/16180/head
* [new ref] refs/pull/16181/head -> refs/pull/16181/head
* [new ref] refs/pull/16182/head -> refs/pull/16182/head
* [new ref] refs/pull/16183/head -> refs/pull/16183/head
* [new ref] refs/pull/16184/head -> refs/pull/16184/head
* [new ref] refs/pull/16185/head -> refs/pull/16185/head
* [new ref] refs/pull/16193/head -> refs/pull/16193/head
* [new ref] refs/pull/16199/head -> refs/pull/16199/head
* [new ref] refs/pull/16200/head -> refs/pull/16200/head
* [new ref] refs/pull/16201/head -> refs/pull/16201/head
* [new ref] refs/pull/16204/head -> refs/pull/16204/head
* [new ref] refs/pull/16207/head -> refs/pull/16207/head
* [new ref] refs/pull/16209/head -> refs/pull/16209/head
* [new ref] refs/pull/16221/head -> refs/pull/16221/head
* [new ref] refs/pull/16222/head -> refs/pull/16222/head
* [new ref] refs/pull/16223/head -> refs/pull/16223/head
* [new ref] refs/pull/16225/head -> refs/pull/16225/head
* [new ref] refs/pull/16229/head -> refs/pull/16229/head
* [new ref] refs/pull/16230/head -> refs/pull/16230/head
* [new ref] refs/pull/16231/head -> refs/pull/16231/head
* [new ref] refs/pull/16232/head -> refs/pull/16232/head
* [new ref] refs/pull/16235/head -> refs/pull/16235/head
* [new ref] refs/pull/16238/head -> refs/pull/16238/head
* [new ref] refs/pull/16243/head -> refs/pull/16243/head
* [new ref] refs/pull/16246/head -> refs/pull/16246/head
* [new ref] refs/pull/16250/head -> refs/pull/16250/head
* [new ref] refs/pull/16251/head -> refs/pull/16251/head
* [new ref] refs/pull/16252/head -> refs/pull/16252/head
* [new ref] refs/pull/16256/head -> refs/pull/16256/head
* [new ref] refs/pull/16257/head -> refs/pull/16257/head
* [new ref] refs/pull/16259/head -> refs/pull/16259/head
* [new ref] refs/pull/16260/head -> refs/pull/16260/head
* [new ref] refs/pull/16267/head -> refs/pull/16267/head
* [new ref] refs/pull/16269/head -> refs/pull/16269/head
* [new ref] refs/pull/16270/head -> refs/pull/16270/head
* [new ref] refs/pull/16274/head -> refs/pull/16274/head
* [new ref] refs/pull/16279/head -> refs/pull/16279/head
* [new ref] refs/pull/16284/head -> refs/pull/16284/head
* [new ref] refs/pull/16285/head -> refs/pull/16285/head
* [new ref] refs/pull/16291/head -> refs/pull/16291/head
* [new ref] refs/pull/16294/head -> refs/pull/16294/head
* [new ref] refs/pull/16299/head -> refs/pull/16299/head
* [new ref] refs/pull/16300/head -> refs/pull/16300/head
* [new ref] refs/pull/16301/head -> refs/pull/16301/head
* [new ref] refs/pull/16302/head -> refs/pull/16302/head
* [new ref] refs/pull/16304/head -> refs/pull/16304/head
* [new ref] refs/pull/16305/head -> refs/pull/16305/head
* [new ref] refs/pull/16307/head -> refs/pull/16307/head
* [new ref] refs/pull/16311/head -> refs/pull/16311/head
* [new ref] refs/pull/16314/head -> refs/pull/16314/head
* [new ref] refs/pull/16319/head -> refs/pull/16319/head
* [new ref] refs/pull/16322/head -> refs/pull/16322/head
* [new ref] refs/pull/16324/head -> refs/pull/16324/head
* [new ref] refs/pull/16329/head -> refs/pull/16329/head
* [new ref] refs/pull/16334/head -> refs/pull/16334/head
* [new ref] refs/pull/16337/head -> refs/pull/16337/head
* [new ref] refs/pull/16338/head -> refs/pull/16338/head
* [new ref] refs/pull/16339/head -> refs/pull/16339/head
* [new ref] refs/pull/16345/head -> refs/pull/16345/head
* [new ref] refs/pull/16349/head -> refs/pull/16349/head
* [new ref] refs/pull/16354/head -> refs/pull/16354/head
* [new ref] refs/pull/16355/head -> refs/pull/16355/head
* [new ref] refs/pull/16360/head -> refs/pull/16360/head
* [new ref] refs/pull/16361/head -> refs/pull/16361/head
* [new ref] refs/pull/16362/head -> refs/pull/16362/head
* [new ref] refs/pull/16370/head -> refs/pull/16370/head
* [new ref] refs/pull/16377/head -> refs/pull/16377/head
* [new ref] refs/pull/16378/head -> refs/pull/16378/head
* [new ref] refs/pull/16380/head -> refs/pull/16380/head
* [new ref] refs/pull/16381/head -> refs/pull/16381/head
* [new ref] refs/pull/16385/head -> refs/pull/16385/head
* [new ref] refs/pull/16387/head -> refs/pull/16387/head
* [new ref] refs/pull/16389/head -> refs/pull/16389/head
* [new ref] refs/pull/16390/head -> refs/pull/16390/head
* [new ref] refs/pull/16392/head -> refs/pull/16392/head
* [new ref] refs/pull/16394/head -> refs/pull/16394/head
* [new ref] refs/pull/16395/head -> refs/pull/16395/head
* [new ref] refs/pull/16398/head -> refs/pull/16398/head
* [new ref] refs/pull/16399/head -> refs/pull/16399/head
* [new ref] refs/pull/16401/head -> refs/pull/16401/head
* [new ref] refs/pull/16404/head -> refs/pull/16404/head
* [new ref] refs/pull/16406/head -> refs/pull/16406/head
* [new ref] refs/pull/16409/head -> refs/pull/16409/head
* [new ref] refs/pull/16413/head -> refs/pull/16413/head
* [new ref] refs/pull/16414/head -> refs/pull/16414/head
* [new ref] refs/pull/16420/head -> refs/pull/16420/head
* [new ref] refs/pull/16421/head -> refs/pull/16421/head
* [new ref] refs/pull/16422/head -> refs/pull/16422/head
* [new ref] refs/pull/16424/head -> refs/pull/16424/head
* [new ref] refs/pull/16426/head -> refs/pull/16426/head
* [new ref] refs/pull/16428/head -> refs/pull/16428/head
* [new ref] refs/pull/16433/head -> refs/pull/16433/head
* [new ref] refs/pull/16434/head -> refs/pull/16434/head
* [new ref] refs/pull/16436/head -> refs/pull/16436/head
* [new ref] refs/pull/16439/head -> refs/pull/16439/head
* [new ref] refs/pull/16440/head -> refs/pull/16440/head
* [new ref] refs/pull/16441/head -> refs/pull/16441/head
* [new ref] refs/pull/16442/head -> refs/pull/16442/head
* [new ref] refs/pull/16445/head -> refs/pull/16445/head
* [new ref] refs/pull/16449/head -> refs/pull/16449/head
* [new ref] refs/pull/16452/head -> refs/pull/16452/head
* [new ref] refs/pull/16457/head -> refs/pull/16457/head
* [new ref] refs/pull/16458/head -> refs/pull/16458/head
* [new ref] refs/pull/16459/head -> refs/pull/16459/head
* [new ref] refs/pull/16460/head -> refs/pull/16460/head
* [new ref] refs/pull/16462/head -> refs/pull/16462/head
* [new ref] refs/pull/16463/head -> refs/pull/16463/head
* [new ref] refs/pull/16464/head -> refs/pull/16464/head
* [new ref] refs/pull/16465/head -> refs/pull/16465/head
* [new ref] refs/pull/16466/head -> refs/pull/16466/head
* [new ref] refs/pull/16471/head -> refs/pull/16471/head
* [new ref] refs/pull/16473/head -> refs/pull/16473/head
* [new ref] refs/pull/16476/head -> refs/pull/16476/head
* [new ref] refs/pull/16478/head -> refs/pull/16478/head
* [new ref] refs/pull/16479/head -> refs/pull/16479/head
* [new ref] refs/pull/16480/head -> refs/pull/16480/head
* [new ref] refs/pull/16483/head -> refs/pull/16483/head
* [new ref] refs/pull/16484/head -> refs/pull/16484/head
* [new ref] refs/pull/16485/head -> refs/pull/16485/head
* [new ref] refs/pull/16486/head -> refs/pull/16486/head
* [new ref] refs/pull/16487/head -> refs/pull/16487/head
* [new ref] refs/pull/16489/head -> refs/pull/16489/head
* [new ref] refs/pull/16490/head -> refs/pull/16490/head
* [new ref] refs/pull/16493/head -> refs/pull/16493/head
* [new ref] refs/pull/16495/head -> refs/pull/16495/head
* [new ref] refs/pull/16497/head -> refs/pull/16497/head
* [new ref] refs/pull/16506/head -> refs/pull/16506/head
* [new ref] refs/pull/16508/head -> refs/pull/16508/head
* [new ref] refs/pull/16511/head -> refs/pull/16511/head
* [new ref] refs/pull/16512/head -> refs/pull/16512/head
* [new ref] refs/pull/16514/head -> refs/pull/16514/head
* [new ref] refs/pull/16515/head -> refs/pull/16515/head
* [new ref] refs/pull/16520/head -> refs/pull/16520/head
* [new ref] refs/pull/16527/head -> refs/pull/16527/head
* [new ref] refs/pull/16528/head -> refs/pull/16528/head
* [new ref] refs/pull/16529/head -> refs/pull/16529/head
* [new ref] refs/pull/16531/head -> refs/pull/16531/head
* [new ref] refs/pull/16532/head -> refs/pull/16532/head
* [new ref] refs/pull/16535/head -> refs/pull/16535/head
* [new ref] refs/pull/16537/head -> refs/pull/16537/head
* [new ref] refs/pull/16541/head -> refs/pull/16541/head
* [new ref] refs/pull/16542/head -> refs/pull/16542/head
* [new ref] refs/pull/16545/head -> refs/pull/16545/head
* [new ref] refs/pull/16546/head -> refs/pull/16546/head
* [new ref] refs/pull/16548/head -> refs/pull/16548/head
* [new ref] refs/pull/16549/head -> refs/pull/16549/head
* [new ref] refs/pull/16551/head -> refs/pull/16551/head
* [new ref] refs/pull/16552/head -> refs/pull/16552/head
* [new ref] refs/pull/16554/head -> refs/pull/16554/head
* [new ref] refs/pull/16556/head -> refs/pull/16556/head
* [new ref] refs/pull/16557/head -> refs/pull/16557/head
* [new ref] refs/pull/16558/head -> refs/pull/16558/head
* [new ref] refs/pull/16561/head -> refs/pull/16561/head
* [new ref] refs/pull/16563/head -> refs/pull/16563/head
* [new ref] refs/pull/16565/head -> refs/pull/16565/head
* [new ref] refs/pull/16570/head -> refs/pull/16570/head
* [new ref] refs/pull/16573/head -> refs/pull/16573/head
* [new ref] refs/pull/16574/head -> refs/pull/16574/head
* [new ref] refs/pull/16575/head -> refs/pull/16575/head
* [new ref] refs/pull/16577/head -> refs/pull/16577/head
* [new ref] refs/pull/16580/head -> refs/pull/16580/head
* [new ref] refs/pull/16581/head -> refs/pull/16581/head
* [new ref] refs/pull/16583/head -> refs/pull/16583/head
* [new ref] refs/pull/16584/head -> refs/pull/16584/head
* [new ref] refs/pull/16585/head -> refs/pull/16585/head
* [new ref] refs/pull/16587/head -> refs/pull/16587/head
* [new ref] refs/pull/16589/head -> refs/pull/16589/head
* [new ref] refs/pull/16590/head -> refs/pull/16590/head
* [new ref] refs/pull/16593/head -> refs/pull/16593/head
* [new ref] refs/pull/16594/head -> refs/pull/16594/head
* [new ref] refs/pull/16599/head -> refs/pull/16599/head
* [new ref] refs/pull/16604/head -> refs/pull/16604/head
* [new ref] refs/pull/16609/head -> refs/pull/16609/head
* [new ref] refs/pull/16627/head -> refs/pull/16627/head
* [new ref] refs/pull/16630/head -> refs/pull/16630/head
* [new ref] refs/pull/16637/head -> refs/pull/16637/head
* [new ref] refs/pull/16638/head -> refs/pull/16638/head
* [new ref] refs/pull/16639/head -> refs/pull/16639/head
* [new ref] refs/pull/16640/head -> refs/pull/16640/head
* [new ref] refs/pull/16641/head -> refs/pull/16641/head
* [new ref] refs/pull/16642/head -> refs/pull/16642/head
* [new ref] refs/pull/16643/head -> refs/pull/16643/head
* [new ref] refs/pull/16646/head -> refs/pull/16646/head
* [new ref] refs/pull/16647/head -> refs/pull/16647/head
* [new ref] refs/pull/16648/head -> refs/pull/16648/head
* [new ref] refs/pull/16649/head -> refs/pull/16649/head
* [new ref] refs/pull/16650/head -> refs/pull/16650/head
* [new ref] refs/pull/16651/head -> refs/pull/16651/head
* [new ref] refs/pull/16652/head -> refs/pull/16652/head
* [new ref] refs/pull/16653/head -> refs/pull/16653/head
* [new ref] refs/pull/16654/head -> refs/pull/16654/head
* [new ref] refs/pull/16655/head -> refs/pull/16655/head
* [new ref] refs/pull/16657/head -> refs/pull/16657/head
* [new ref] refs/pull/16659/head -> refs/pull/16659/head
* [new ref] refs/pull/16661/head -> refs/pull/16661/head
* [new ref] refs/pull/16662/head -> refs/pull/16662/head
* [new ref] refs/pull/16664/head -> refs/pull/16664/head
* [new ref] refs/pull/16667/head -> refs/pull/16667/head
* [new ref] refs/pull/16669/head -> refs/pull/16669/head
* [new ref] refs/pull/16670/head -> refs/pull/16670/head
* [new ref] refs/pull/16672/head -> refs/pull/16672/head
* [new ref] refs/pull/16674/head -> refs/pull/16674/head
* [new ref] refs/pull/16675/head -> refs/pull/16675/head
* [new ref] refs/pull/16676/head -> refs/pull/16676/head
* [new ref] refs/pull/16677/head -> refs/pull/16677/head
* [new ref] refs/pull/16678/head -> refs/pull/16678/head
* [new ref] refs/pull/16679/head -> refs/pull/16679/head
* [new ref] refs/pull/16680/head -> refs/pull/16680/head
* [new ref] refs/pull/16681/head -> refs/pull/16681/head
* [new ref] refs/pull/16682/head -> refs/pull/16682/head
* [new ref] refs/pull/16683/head -> refs/pull/16683/head
* [new ref] refs/pull/16684/head -> refs/pull/16684/head
* [new ref] refs/pull/16685/head -> refs/pull/16685/head
* [new ref] refs/pull/16686/head -> refs/pull/16686/head
* [new ref] refs/pull/16687/head -> refs/pull/16687/head
* [new ref] refs/pull/16688/head -> refs/pull/16688/head
* [new ref] refs/pull/16689/head -> refs/pull/16689/head
* [new ref] refs/pull/16690/head -> refs/pull/16690/head
* [new ref] refs/pull/16691/head -> refs/pull/16691/head
* [new ref] refs/pull/16692/head -> refs/pull/16692/head
* [new ref] refs/pull/16693/head -> refs/pull/16693/head
* [new ref] refs/pull/16696/head -> refs/pull/16696/head
* [new ref] refs/pull/16700/head -> refs/pull/16700/head
* [new ref] refs/pull/16702/head -> refs/pull/16702/head
* [new ref] refs/pull/16705/head -> refs/pull/16705/head
* [new ref] refs/pull/16707/head -> refs/pull/16707/head
* [new ref] refs/pull/16708/head -> refs/pull/16708/head
* [new ref] refs/pull/16709/head -> refs/pull/16709/head
* [new ref] refs/pull/16713/head -> refs/pull/16713/head
* [new ref] refs/pull/16714/head -> refs/pull/16714/head
* [new ref] refs/pull/16715/head -> refs/pull/16715/head
* [new ref] refs/pull/16719/head -> refs/pull/16719/head
* [new ref] refs/pull/16721/head -> refs/pull/16721/head
* [new ref] refs/pull/16727/head -> refs/pull/16727/head
* [new ref] refs/pull/16729/head -> refs/pull/16729/head
* [new ref] refs/pull/16730/head -> refs/pull/16730/head
* [new ref] refs/pull/16731/head -> refs/pull/16731/head
* [new ref] refs/pull/16733/head -> refs/pull/16733/head
* [new ref] refs/pull/16735/head -> refs/pull/16735/head
* [new ref] refs/pull/16736/head -> refs/pull/16736/head
* [new ref] refs/pull/16738/head -> refs/pull/16738/head
* [new ref] refs/pull/16740/head -> refs/pull/16740/head
* [new ref] refs/pull/16742/head -> refs/pull/16742/head
* [new ref] refs/pull/16744/head -> refs/pull/16744/head
* [new ref] refs/pull/16746/head -> refs/pull/16746/head
* [new ref] refs/pull/16751/head -> refs/pull/16751/head
* [new ref] refs/pull/16752/head -> refs/pull/16752/head
* [new ref] refs/pull/16753/head -> refs/pull/16753/head
* [new ref] refs/pull/16755/head -> refs/pull/16755/head
* [new ref] refs/pull/16756/head -> refs/pull/16756/head
* [new ref] refs/pull/16757/head -> refs/pull/16757/head
* [new ref] refs/pull/16759/head -> refs/pull/16759/head
* [new ref] refs/pull/16760/head -> refs/pull/16760/head
* [new ref] refs/pull/16762/head -> refs/pull/16762/head
* [new ref] refs/pull/16763/head -> refs/pull/16763/head
* [new ref] refs/pull/16764/head -> refs/pull/16764/head
* [new ref] refs/pull/16769/head -> refs/pull/16769/head
* [new ref] refs/pull/16770/head -> refs/pull/16770/head
* [new ref] refs/pull/16771/head -> refs/pull/16771/head
* [new ref] refs/pull/16772/head -> refs/pull/16772/head
* [new ref] refs/pull/16773/head -> refs/pull/16773/head
* [new ref] refs/pull/16775/head -> refs/pull/16775/head
* [new ref] refs/pull/16777/head -> refs/pull/16777/head
* [new ref] refs/pull/16778/head -> refs/pull/16778/head
* [new ref] refs/pull/16781/head -> refs/pull/16781/head
* [new ref] refs/pull/16782/head -> refs/pull/16782/head
* [new ref] refs/pull/16783/head -> refs/pull/16783/head
* [new ref] refs/pull/16797/head -> refs/pull/16797/head
* [new ref] refs/pull/16798/head -> refs/pull/16798/head
* [new ref] refs/pull/16800/head -> refs/pull/16800/head
* [new ref] refs/pull/16804/head -> refs/pull/16804/head
* [new ref] refs/pull/16809/head -> refs/pull/16809/head
* [new ref] refs/pull/16810/head -> refs/pull/16810/head
* [new ref] refs/pull/16811/head -> refs/pull/16811/head
* [new ref] refs/pull/16815/head -> refs/pull/16815/head
* [new ref] refs/pull/16816/head -> refs/pull/16816/head
* [new ref] refs/pull/16817/head -> refs/pull/16817/head
* [new ref] refs/pull/16818/head -> refs/pull/16818/head
* [new ref] refs/pull/16821/head -> refs/pull/16821/head
* [new ref] refs/pull/16822/head -> refs/pull/16822/head
* [new ref] refs/pull/16824/head -> refs/pull/16824/head
* [new ref] refs/pull/16825/head -> refs/pull/16825/head
* [new ref] refs/pull/16826/head -> refs/pull/16826/head
* [new ref] refs/pull/16828/head -> refs/pull/16828/head
* [new ref] refs/pull/16829/head -> refs/pull/16829/head
* [new ref] refs/pull/16833/head -> refs/pull/16833/head
* [new ref] refs/pull/16836/head -> refs/pull/16836/head
* [new ref] refs/pull/16840/head -> refs/pull/16840/head
* [new ref] refs/pull/16842/head -> refs/pull/16842/head
* [new ref] refs/pull/16848/head -> refs/pull/16848/head
* [new ref] refs/pull/16849/head -> refs/pull/16849/head
* [new ref] refs/pull/16856/head -> refs/pull/16856/head
* [new ref] refs/pull/16859/head -> refs/pull/16859/head
* [new ref] refs/pull/16863/head -> refs/pull/16863/head
* [new ref] refs/pull/16864/head -> refs/pull/16864/head
* [new ref] refs/pull/16865/head -> refs/pull/16865/head
* [new ref] refs/pull/16866/head -> refs/pull/16866/head
* [new ref] refs/pull/16870/head -> refs/pull/16870/head
* [new ref] refs/pull/16872/head -> refs/pull/16872/head
* [new ref] refs/pull/16873/head -> refs/pull/16873/head
* [new ref] refs/pull/16874/head -> refs/pull/16874/head
* [new ref] refs/pull/16876/head -> refs/pull/16876/head
* [new ref] refs/pull/16878/head -> refs/pull/16878/head
* [new ref] refs/pull/16879/head -> refs/pull/16879/head
* [new ref] refs/pull/16881/head -> refs/pull/16881/head
* [new ref] refs/pull/16882/head -> refs/pull/16882/head
* [new ref] refs/pull/16883/head -> refs/pull/16883/head
* [new ref] refs/pull/16884/head -> refs/pull/16884/head
* [new ref] refs/pull/16889/head -> refs/pull/16889/head
* [new ref] refs/pull/16892/head -> refs/pull/16892/head
* [new ref] refs/pull/16895/head -> refs/pull/16895/head
* [new ref] refs/pull/16896/head -> refs/pull/16896/head
* [new ref] refs/pull/16900/head -> refs/pull/16900/head
* [new ref] refs/pull/16902/head -> refs/pull/16902/head
* [new ref] refs/pull/16903/head -> refs/pull/16903/head
* [new ref] refs/pull/16907/head -> refs/pull/16907/head
* [new ref] refs/pull/16912/head -> refs/pull/16912/head
* [new ref] refs/pull/16914/head -> refs/pull/16914/head
* [new ref] refs/pull/16915/head -> refs/pull/16915/head
* [new ref] refs/pull/16918/head -> refs/pull/16918/head
* [new ref] refs/pull/16919/head -> refs/pull/16919/head
* [new ref] refs/pull/16920/head -> refs/pull/16920/head
* [new ref] refs/pull/16920/merge -> refs/pull/16920/merge
* [new ref] refs/pull/16921/head -> refs/pull/16921/head
* [new ref] refs/pull/16930/head -> refs/pull/16930/head
* [new ref] refs/pull/16932/head -> refs/pull/16932/head
* [new ref] refs/pull/16936/head -> refs/pull/16936/head
* [new ref] refs/pull/16937/head -> refs/pull/16937/head
* [new ref] refs/pull/16942/head -> refs/pull/16942/head
* [new ref] refs/pull/16953/head -> refs/pull/16953/head
* [new ref] refs/pull/16954/head -> refs/pull/16954/head
* [new ref] refs/pull/16958/head -> refs/pull/16958/head
* [new ref] refs/pull/16961/head -> refs/pull/16961/head
* [new ref] refs/pull/16964/head -> refs/pull/16964/head
* [new ref] refs/pull/16965/head -> refs/pull/16965/head
* [new ref] refs/pull/16966/head -> refs/pull/16966/head
* [new ref] refs/pull/16967/head -> refs/pull/16967/head
* [new ref] refs/pull/16969/head -> refs/pull/16969/head
* [new ref] refs/pull/16971/head -> refs/pull/16971/head
* [new ref] refs/pull/16975/head -> refs/pull/16975/head
* [new ref] refs/pull/16977/head -> refs/pull/16977/head
* [new ref] refs/pull/16983/head -> refs/pull/16983/head
* [new ref] refs/pull/16986/head -> refs/pull/16986/head
* [new ref] refs/pull/16988/head -> refs/pull/16988/head
* [new ref] refs/pull/16989/head -> refs/pull/16989/head
* [new ref] refs/pull/16991/head -> refs/pull/16991/head
* [new ref] refs/pull/16996/head -> refs/pull/16996/head
* [new ref] refs/pull/16997/head -> refs/pull/16997/head
* [new ref] refs/pull/16998/head -> refs/pull/16998/head
* [new ref] refs/pull/16998/merge -> refs/pull/16998/merge
* [new ref] refs/pull/17000/head -> refs/pull/17000/head
* [new ref] refs/pull/17001/head -> refs/pull/17001/head
* [new ref] refs/pull/17007/head -> refs/pull/17007/head
* [new ref] refs/pull/17009/head -> refs/pull/17009/head
* [new ref] refs/pull/17010/head -> refs/pull/17010/head
* [new ref] refs/pull/17016/head -> refs/pull/17016/head
* [new ref] refs/pull/17018/head -> refs/pull/17018/head
* [new ref] refs/pull/17019/head -> refs/pull/17019/head
* [new ref] refs/pull/17021/head -> refs/pull/17021/head
* [new ref] refs/pull/17025/head -> refs/pull/17025/head
* [new ref] refs/pull/17030/head -> refs/pull/17030/head
* [new ref] refs/pull/17031/head -> refs/pull/17031/head
* [new ref] refs/pull/17032/head -> refs/pull/17032/head
* [new ref] refs/pull/17040/head -> refs/pull/17040/head
* [new ref] refs/pull/17041/head -> refs/pull/17041/head
* [new ref] refs/pull/17042/head -> refs/pull/17042/head
* [new ref] refs/pull/17043/head -> refs/pull/17043/head
* [new ref] refs/pull/17044/head -> refs/pull/17044/head
* [new ref] refs/pull/17045/head -> refs/pull/17045/head
* [new ref] refs/pull/17046/head -> refs/pull/17046/head
* [new ref] refs/pull/17048/head -> refs/pull/17048/head
* [new ref] refs/pull/17050/head -> refs/pull/17050/head
* [new ref] refs/pull/17051/head -> refs/pull/17051/head
* [new ref] refs/pull/17053/head -> refs/pull/17053/head
* [new ref] refs/pull/17054/head -> refs/pull/17054/head
* [new ref] refs/pull/17055/head -> refs/pull/17055/head
* [new ref] refs/pull/17056/head -> refs/pull/17056/head
* [new ref] refs/pull/17057/head -> refs/pull/17057/head
* [new ref] refs/pull/17058/head -> refs/pull/17058/head
* [new ref] refs/pull/17059/head -> refs/pull/17059/head
* [new ref] refs/pull/17060/head -> refs/pull/17060/head
* [new ref] refs/pull/17061/head -> refs/pull/17061/head
* [new ref] refs/pull/17062/head -> refs/pull/17062/head
* [new ref] refs/pull/17064/head -> refs/pull/17064/head
* [new ref] refs/pull/17066/head -> refs/pull/17066/head
* [new ref] refs/pull/17073/head -> refs/pull/17073/head
* [new ref] refs/pull/17074/head -> refs/pull/17074/head
* [new ref] refs/pull/17075/head -> refs/pull/17075/head
* [new ref] refs/pull/17076/head -> refs/pull/17076/head
* [new ref] refs/pull/17077/head -> refs/pull/17077/head
* [new ref] refs/pull/17078/head -> refs/pull/17078/head
* [new ref] refs/pull/17082/head -> refs/pull/17082/head
* [new ref] refs/pull/17086/head -> refs/pull/17086/head
* [new ref] refs/pull/17094/head -> refs/pull/17094/head
* [new ref] refs/pull/17095/head -> refs/pull/17095/head
* [new ref] refs/pull/17097/head -> refs/pull/17097/head
* [new ref] refs/pull/17098/head -> refs/pull/17098/head
* [new ref] refs/pull/17099/head -> refs/pull/17099/head
* [new ref] refs/pull/17100/head -> refs/pull/17100/head
* [new ref] refs/pull/17101/head -> refs/pull/17101/head
* [new ref] refs/pull/17102/head -> refs/pull/17102/head
* [new ref] refs/pull/17105/head -> refs/pull/17105/head
* [new ref] refs/pull/17115/head -> refs/pull/17115/head
* [new ref] refs/pull/17116/head -> refs/pull/17116/head
* [new ref] refs/pull/17119/head -> refs/pull/17119/head
* [new ref] refs/pull/17123/head -> refs/pull/17123/head
* [new ref] refs/pull/17124/head -> refs/pull/17124/head
* [new ref] refs/pull/17127/head -> refs/pull/17127/head
* [new ref] refs/pull/17128/head -> refs/pull/17128/head
* [new ref] refs/pull/17130/head -> refs/pull/17130/head
* [new ref] refs/pull/17131/head -> refs/pull/17131/head
* [new ref] refs/pull/17144/head -> refs/pull/17144/head
* [new ref] refs/pull/17145/head -> refs/pull/17145/head
* [new ref] refs/pull/17146/head -> refs/pull/17146/head
* [new ref] refs/pull/17149/head -> refs/pull/17149/head
* [new ref] refs/pull/17150/head -> refs/pull/17150/head
* [new ref] refs/pull/17151/head -> refs/pull/17151/head
* [new ref] refs/pull/17152/head -> refs/pull/17152/head
* [new ref] refs/pull/17159/head -> refs/pull/17159/head
* [new ref] refs/pull/17160/head -> refs/pull/17160/head
* [new ref] refs/pull/17165/head -> refs/pull/17165/head
* [new ref] refs/pull/17166/head -> refs/pull/17166/head
* [new ref] refs/pull/17167/head -> refs/pull/17167/head
* [new ref] refs/pull/17171/head -> refs/pull/17171/head
* [new ref] refs/pull/17172/head -> refs/pull/17172/head
* [new ref] refs/pull/17173/head -> refs/pull/17173/head
* [new ref] refs/pull/17174/head -> refs/pull/17174/head
* [new ref] refs/pull/17175/head -> refs/pull/17175/head
* [new ref] refs/pull/17177/head -> refs/pull/17177/head
* [new ref] refs/pull/17178/head -> refs/pull/17178/head
* [new ref] refs/pull/17180/head -> refs/pull/17180/head
* [new ref] refs/pull/17181/head -> refs/pull/17181/head
* [new ref] refs/pull/17182/head -> refs/pull/17182/head
* [new ref] refs/pull/17183/head -> refs/pull/17183/head
* [new ref] refs/pull/17184/head -> refs/pull/17184/head
* [new ref] refs/pull/17185/head -> refs/pull/17185/head
* [new ref] refs/pull/17186/head -> refs/pull/17186/head
* [new ref] refs/pull/17187/head -> refs/pull/17187/head
* [new ref] refs/pull/17192/head -> refs/pull/17192/head
* [new ref] refs/pull/17198/head -> refs/pull/17198/head
* [new ref] refs/pull/17199/head -> refs/pull/17199/head
* [new ref] refs/pull/17204/head -> refs/pull/17204/head
* [new ref] refs/pull/17207/head -> refs/pull/17207/head
* [new ref] refs/pull/17211/head -> refs/pull/17211/head
* [new ref] refs/pull/17212/head -> refs/pull/17212/head
* [new ref] refs/pull/17213/head -> refs/pull/17213/head
* [new ref] refs/pull/17214/head -> refs/pull/17214/head
* [new ref] refs/pull/17215/head -> refs/pull/17215/head
* [new ref] refs/pull/17217/head -> refs/pull/17217/head
* [new ref] refs/pull/17218/head -> refs/pull/17218/head
* [new ref] refs/pull/17219/head -> refs/pull/17219/head
* [new ref] refs/pull/17221/head -> refs/pull/17221/head
* [new ref] refs/pull/17223/head -> refs/pull/17223/head
* [new ref] refs/pull/17226/head -> refs/pull/17226/head
* [new ref] refs/pull/17227/head -> refs/pull/17227/head
* [new ref] refs/pull/17228/head -> refs/pull/17228/head
* [new ref] refs/pull/17229/head -> refs/pull/17229/head
* [new ref] refs/pull/17230/head -> refs/pull/17230/head
* [new ref] refs/pull/17231/head -> refs/pull/17231/head
* [new ref] refs/pull/17232/head -> refs/pull/17232/head
* [new ref] refs/pull/17234/head -> refs/pull/17234/head
* [new ref] refs/pull/17236/head -> refs/pull/17236/head
* [new ref] refs/pull/17237/head -> refs/pull/17237/head
* [new ref] refs/pull/17239/head -> refs/pull/17239/head
* [new ref] refs/pull/17240/head -> refs/pull/17240/head
* [new ref] refs/pull/17241/head -> refs/pull/17241/head
* [new ref] refs/pull/17242/head -> refs/pull/17242/head
* [new ref] refs/pull/17243/head -> refs/pull/17243/head
* [new ref] refs/pull/17244/head -> refs/pull/17244/head
* [new ref] refs/pull/17245/head -> refs/pull/17245/head
* [new ref] refs/pull/17246/head -> refs/pull/17246/head
* [new ref] refs/pull/17247/head -> refs/pull/17247/head
* [new ref] refs/pull/17249/head -> refs/pull/17249/head
* [new ref] refs/pull/17250/head -> refs/pull/17250/head
* [new ref] refs/pull/17252/head -> refs/pull/17252/head
* [new ref] refs/pull/17253/head -> refs/pull/17253/head
* [new ref] refs/pull/17256/head -> refs/pull/17256/head
* [new ref] refs/pull/17258/head -> refs/pull/17258/head
* [new ref] refs/pull/17259/head -> refs/pull/17259/head
* [new ref] refs/pull/17260/head -> refs/pull/17260/head
* [new ref] refs/pull/17262/head -> refs/pull/17262/head
* [new ref] refs/pull/17263/head -> refs/pull/17263/head
* [new ref] refs/pull/17264/head -> refs/pull/17264/head
* [new ref] refs/pull/17265/head -> refs/pull/17265/head
* [new ref] refs/pull/17266/head -> refs/pull/17266/head
* [new ref] refs/pull/17268/head -> refs/pull/17268/head
* [new ref] refs/pull/17268/merge -> refs/pull/17268/merge
* [new ref] refs/pull/17269/head -> refs/pull/17269/head
* [new ref] refs/pull/17272/head -> refs/pull/17272/head
* [new ref] refs/pull/17273/head -> refs/pull/17273/head
* [new ref] refs/pull/17274/head -> refs/pull/17274/head
* [new ref] refs/pull/17276/head -> refs/pull/17276/head
* [new ref] refs/pull/17277/head -> refs/pull/17277/head
* [new ref] refs/pull/17279/head -> refs/pull/17279/head
* [new ref] refs/pull/17280/head -> refs/pull/17280/head
* [new ref] refs/pull/17281/head -> refs/pull/17281/head
* [new ref] refs/pull/17284/head -> refs/pull/17284/head
* [new ref] refs/pull/17292/head -> refs/pull/17292/head
* [new ref] refs/pull/17293/head -> refs/pull/17293/head
* [new ref] refs/pull/17294/head -> refs/pull/17294/head
* [new ref] refs/pull/17295/head -> refs/pull/17295/head
* [new ref] refs/pull/17304/head -> refs/pull/17304/head
* [new ref] refs/pull/17305/head -> refs/pull/17305/head
* [new ref] refs/pull/17308/head -> refs/pull/17308/head
* [new ref] refs/pull/17311/head -> refs/pull/17311/head
* [new ref] refs/pull/17316/head -> refs/pull/17316/head
* [new ref] refs/pull/17317/head -> refs/pull/17317/head
* [new ref] refs/pull/17319/head -> refs/pull/17319/head
* [new ref] refs/pull/17320/head -> refs/pull/17320/head
* [new ref] refs/pull/17321/head -> refs/pull/17321/head
* [new ref] refs/pull/17324/head -> refs/pull/17324/head
* [new ref] refs/pull/17325/head -> refs/pull/17325/head
* [new ref] refs/pull/17326/head -> refs/pull/17326/head
* [new ref] refs/pull/17327/head -> refs/pull/17327/head
* [new ref] refs/pull/17329/head -> refs/pull/17329/head
* [new ref] refs/pull/17330/head -> refs/pull/17330/head
* [new ref] refs/pull/17331/head -> refs/pull/17331/head
* [new ref] refs/pull/17332/head -> refs/pull/17332/head
* [new ref] refs/pull/17335/head -> refs/pull/17335/head
* [new ref] refs/pull/17337/head -> refs/pull/17337/head
* [new ref] refs/pull/17341/head -> refs/pull/17341/head
* [new ref] refs/pull/17342/head -> refs/pull/17342/head
* [new ref] refs/pull/17344/head -> refs/pull/17344/head
* [new ref] refs/pull/17345/head -> refs/pull/17345/head
* [new ref] refs/pull/17346/head -> refs/pull/17346/head
* [new ref] refs/pull/17349/head -> refs/pull/17349/head
* [new ref] refs/pull/17350/head -> refs/pull/17350/head
* [new ref] refs/pull/17351/head -> refs/pull/17351/head
* [new ref] refs/pull/17353/head -> refs/pull/17353/head
* [new ref] refs/pull/17354/head -> refs/pull/17354/head
* [new ref] refs/pull/17355/head -> refs/pull/17355/head
* [new ref] refs/pull/17357/head -> refs/pull/17357/head
* [new ref] refs/pull/17358/head -> refs/pull/17358/head
* [new ref] refs/pull/17359/head -> refs/pull/17359/head
* [new ref] refs/pull/17362/head -> refs/pull/17362/head
* [new ref] refs/pull/17369/head -> refs/pull/17369/head
* [new ref] refs/pull/17370/head -> refs/pull/17370/head
* [new ref] refs/pull/17372/head -> refs/pull/17372/head
* [new ref] refs/pull/17375/head -> refs/pull/17375/head
* [new ref] refs/pull/17388/head -> refs/pull/17388/head
* [new ref] refs/pull/17390/head -> refs/pull/17390/head
* [new ref] refs/pull/17393/head -> refs/pull/17393/head
* [new ref] refs/pull/17394/head -> refs/pull/17394/head
* [new ref] refs/pull/17395/head -> refs/pull/17395/head
* [new ref] refs/pull/17396/head -> refs/pull/17396/head
* [new ref] refs/pull/17397/head -> refs/pull/17397/head
* [new ref] refs/pull/17398/head -> refs/pull/17398/head
* [new ref] refs/pull/17400/head -> refs/pull/17400/head
* [new ref] refs/pull/17401/head -> refs/pull/17401/head
* [new ref] refs/pull/17403/head -> refs/pull/17403/head
* [new ref] refs/pull/17404/head -> refs/pull/17404/head
* [new ref] refs/pull/17405/head -> refs/pull/17405/head
* [new ref] refs/pull/17411/head -> refs/pull/17411/head
* [new ref] refs/pull/17412/head -> refs/pull/17412/head
* [new ref] refs/pull/17413/head -> refs/pull/17413/head
* [new ref] refs/pull/17414/head -> refs/pull/17414/head
* [new ref] refs/pull/17417/head -> refs/pull/17417/head
* [new ref] refs/pull/17418/head -> refs/pull/17418/head
* [new ref] refs/pull/17419/head -> refs/pull/17419/head
* [new ref] refs/pull/17422/head -> refs/pull/17422/head
* [new ref] refs/pull/17424/head -> refs/pull/17424/head
* [new ref] refs/pull/17427/head -> refs/pull/17427/head
* [new ref] refs/pull/17429/head -> refs/pull/17429/head
* [new ref] refs/pull/17430/head -> refs/pull/17430/head
* [new ref] refs/pull/17431/head -> refs/pull/17431/head
* [new ref] refs/pull/17434/head -> refs/pull/17434/head
* [new ref] refs/pull/17438/head -> refs/pull/17438/head
* [new ref] refs/pull/17439/head -> refs/pull/17439/head
* [new ref] refs/pull/17440/head -> refs/pull/17440/head
* [new ref] refs/pull/17443/head -> refs/pull/17443/head
* [new ref] refs/pull/17446/head -> refs/pull/17446/head
* [new ref] refs/pull/17447/head -> refs/pull/17447/head
* [new ref] refs/pull/17449/head -> refs/pull/17449/head
* [new ref] refs/pull/17452/head -> refs/pull/17452/head
* [new ref] refs/pull/17453/head -> refs/pull/17453/head
* [new ref] refs/pull/17454/head -> refs/pull/17454/head
* [new ref] refs/pull/17457/head -> refs/pull/17457/head
* [new ref] refs/pull/17458/head -> refs/pull/17458/head
* [new ref] refs/pull/17459/head -> refs/pull/17459/head
* [new ref] refs/pull/17460/head -> refs/pull/17460/head
* [new ref] refs/pull/17462/head -> refs/pull/17462/head
* [new ref] refs/pull/17463/head -> refs/pull/17463/head
* [new ref] refs/pull/17465/head -> refs/pull/17465/head
* [new ref] refs/pull/17466/head -> refs/pull/17466/head
* [new ref] refs/pull/17468/head -> refs/pull/17468/head
* [new ref] refs/pull/17470/head -> refs/pull/17470/head
* [new ref] refs/pull/17471/head -> refs/pull/17471/head
* [new ref] refs/pull/17473/head -> refs/pull/17473/head
* [new ref] refs/pull/17474/head -> refs/pull/17474/head
* [new ref] refs/pull/17476/head -> refs/pull/17476/head
* [new ref] refs/pull/17478/head -> refs/pull/17478/head
* [new ref] refs/pull/17481/head -> refs/pull/17481/head
* [new ref] refs/pull/17488/head -> refs/pull/17488/head
* [new ref] refs/pull/17490/head -> refs/pull/17490/head
* [new ref] refs/pull/17497/head -> refs/pull/17497/head
* [new ref] refs/pull/17499/head -> refs/pull/17499/head
* [new ref] refs/pull/17502/head -> refs/pull/17502/head
* [new ref] refs/pull/17503/head -> refs/pull/17503/head
* [new ref] refs/pull/17504/head -> refs/pull/17504/head
* [new ref] refs/pull/17507/head -> refs/pull/17507/head
* [new ref] refs/pull/17508/head -> refs/pull/17508/head
* [new ref] refs/pull/17511/head -> refs/pull/17511/head
* [new ref] refs/pull/17514/head -> refs/pull/17514/head
* [new ref] refs/pull/17519/head -> refs/pull/17519/head
* [new ref] refs/pull/17522/head -> refs/pull/17522/head
* [new ref] refs/pull/17524/head -> refs/pull/17524/head
* [new ref] refs/pull/17526/head -> refs/pull/17526/head
* [new ref] refs/pull/17529/head -> refs/pull/17529/head
* [new ref] refs/pull/17530/head -> refs/pull/17530/head
* [new ref] refs/pull/17531/head -> refs/pull/17531/head
* [new ref] refs/pull/17538/head -> refs/pull/17538/head
* [new ref] refs/pull/17558/head -> refs/pull/17558/head
* [new ref] refs/pull/17561/head -> refs/pull/17561/head
* [new ref] refs/pull/17563/head -> refs/pull/17563/head
* [new ref] refs/pull/17565/head -> refs/pull/17565/head
* [new ref] refs/pull/17567/head -> refs/pull/17567/head
* [new ref] refs/pull/17569/head -> refs/pull/17569/head
* [new ref] refs/pull/17570/head -> refs/pull/17570/head
* [new ref] refs/pull/17572/head -> refs/pull/17572/head
* [new ref] refs/pull/17573/head -> refs/pull/17573/head
* [new ref] refs/pull/17574/head -> refs/pull/17574/head
* [new ref] refs/pull/17580/head -> refs/pull/17580/head
* [new ref] refs/pull/17581/head -> refs/pull/17581/head
* [new ref] refs/pull/17585/head -> refs/pull/17585/head
* [new ref] refs/pull/17586/head -> refs/pull/17586/head
* [new ref] refs/pull/17587/head -> refs/pull/17587/head
* [new ref] refs/pull/17590/head -> refs/pull/17590/head
* [new ref] refs/pull/17591/head -> refs/pull/17591/head
* [new ref] refs/pull/17592/head -> refs/pull/17592/head
* [new ref] refs/pull/17593/head -> refs/pull/17593/head
* [new ref] refs/pull/17594/head -> refs/pull/17594/head
* [new ref] refs/pull/17596/head -> refs/pull/17596/head
* [new ref] refs/pull/17608/head -> refs/pull/17608/head
* [new ref] refs/pull/17609/head -> refs/pull/17609/head
* [new ref] refs/pull/17611/head -> refs/pull/17611/head
* [new ref] refs/pull/17612/head -> refs/pull/17612/head
* [new ref] refs/pull/17613/head -> refs/pull/17613/head
* [new ref] refs/pull/17614/head -> refs/pull/17614/head
* [new ref] refs/pull/17617/head -> refs/pull/17617/head
* [new ref] refs/pull/17618/head -> refs/pull/17618/head
* [new ref] refs/pull/17619/head -> refs/pull/17619/head
* [new ref] refs/pull/17621/head -> refs/pull/17621/head
* [new ref] refs/pull/17622/head -> refs/pull/17622/head
* [new ref] refs/pull/17624/head -> refs/pull/17624/head
* [new ref] refs/pull/17627/head -> refs/pull/17627/head
* [new ref] refs/pull/17628/head -> refs/pull/17628/head
* [new ref] refs/pull/17630/head -> refs/pull/17630/head
* [new ref] refs/pull/17634/head -> refs/pull/17634/head
* [new ref] refs/pull/17640/head -> refs/pull/17640/head
* [new ref] refs/pull/17647/head -> refs/pull/17647/head
* [new ref] refs/pull/17650/head -> refs/pull/17650/head
* [new ref] refs/pull/17651/head -> refs/pull/17651/head
* [new ref] refs/pull/17653/head -> refs/pull/17653/head
* [new ref] refs/pull/17656/head -> refs/pull/17656/head
* [new ref] refs/pull/17660/head -> refs/pull/17660/head
* [new ref] refs/pull/17661/head -> refs/pull/17661/head
* [new ref] refs/pull/17663/head -> refs/pull/17663/head
* [new ref] refs/pull/17665/head -> refs/pull/17665/head
* [new ref] refs/pull/17666/head -> refs/pull/17666/head
* [new ref] refs/pull/17668/head -> refs/pull/17668/head
* [new ref] refs/pull/17669/head -> refs/pull/17669/head
* [new ref] refs/pull/17670/head -> refs/pull/17670/head
* [new ref] refs/pull/17672/head -> refs/pull/17672/head
* [new ref] refs/pull/17673/head -> refs/pull/17673/head
* [new ref] refs/pull/17674/head -> refs/pull/17674/head
* [new ref] refs/pull/17676/head -> refs/pull/17676/head
* [new ref] refs/pull/17678/head -> refs/pull/17678/head
* [new ref] refs/pull/17680/head -> refs/pull/17680/head
* [new ref] refs/pull/17684/head -> refs/pull/17684/head
* [new ref] refs/pull/17692/head -> refs/pull/17692/head
* [new ref] refs/pull/17693/head -> refs/pull/17693/head
* [new ref] refs/pull/17694/head -> refs/pull/17694/head
* [new ref] refs/pull/17695/head -> refs/pull/17695/head
* [new ref] refs/pull/17697/head -> refs/pull/17697/head
* [new ref] refs/pull/17698/head -> refs/pull/17698/head
* [new ref] refs/pull/17699/head -> refs/pull/17699/head
* [new ref] refs/pull/17700/head -> refs/pull/17700/head
* [new ref] refs/pull/17701/head -> refs/pull/17701/head
* [new ref] refs/pull/17703/head -> refs/pull/17703/head
* [new ref] refs/pull/17704/head -> refs/pull/17704/head
* [new ref] refs/pull/17707/head -> refs/pull/17707/head
* [new ref] refs/pull/17711/head -> refs/pull/17711/head
* [new ref] refs/pull/17712/head -> refs/pull/17712/head
* [new ref] refs/pull/17713/head -> refs/pull/17713/head
* [new ref] refs/pull/17714/head -> refs/pull/17714/head
* [new ref] refs/pull/17717/head -> refs/pull/17717/head
* [new ref] refs/pull/17720/head -> refs/pull/17720/head
* [new ref] refs/pull/17722/head -> refs/pull/17722/head
* [new ref] refs/pull/17725/head -> refs/pull/17725/head
* [new ref] refs/pull/17726/head -> refs/pull/17726/head
* [new ref] refs/pull/17727/head -> refs/pull/17727/head
* [new ref] refs/pull/17734/head -> refs/pull/17734/head
* [new ref] refs/pull/17737/head -> refs/pull/17737/head
* [new ref] refs/pull/17738/head -> refs/pull/17738/head
* [new ref] refs/pull/17740/head -> refs/pull/17740/head
* [new ref] refs/pull/17741/head -> refs/pull/17741/head
* [new ref] refs/pull/17742/head -> refs/pull/17742/head
* [new ref] refs/pull/17744/head -> refs/pull/17744/head
* [new ref] refs/pull/17746/head -> refs/pull/17746/head
* [new ref] refs/pull/17747/head -> refs/pull/17747/head
* [new ref] refs/pull/17765/head -> refs/pull/17765/head
* [new ref] refs/pull/17766/head -> refs/pull/17766/head
* [new ref] refs/pull/17771/head -> refs/pull/17771/head
* [new ref] refs/pull/17775/head -> refs/pull/17775/head
* [new ref] refs/pull/17780/head -> refs/pull/17780/head
* [new ref] refs/pull/17781/head -> refs/pull/17781/head
* [new ref] refs/pull/17782/head -> refs/pull/17782/head
* [new ref] refs/pull/17783/head -> refs/pull/17783/head
* [new ref] refs/pull/17785/head -> refs/pull/17785/head
* [new ref] refs/pull/17786/head -> refs/pull/17786/head
* [new ref] refs/pull/17788/head -> refs/pull/17788/head
* [new ref] refs/pull/17789/head -> refs/pull/17789/head
* [new ref] refs/pull/17795/head -> refs/pull/17795/head
* [new ref] refs/pull/17798/head -> refs/pull/17798/head
* [new ref] refs/pull/17799/head -> refs/pull/17799/head
* [new ref] refs/pull/17800/head -> refs/pull/17800/head
* [new ref] refs/pull/17803/head -> refs/pull/17803/head
* [new ref] refs/pull/17806/head -> refs/pull/17806/head
* [new ref] refs/pull/17810/head -> refs/pull/17810/head
* [new ref] refs/pull/17813/head -> refs/pull/17813/head
* [new ref] refs/pull/17815/head -> refs/pull/17815/head
* [new ref] refs/pull/17816/head -> refs/pull/17816/head
* [new ref] refs/pull/17817/head -> refs/pull/17817/head
* [new ref] refs/pull/17818/head -> refs/pull/17818/head
* [new ref] refs/pull/17820/head -> refs/pull/17820/head
* [new ref] refs/pull/17823/head -> refs/pull/17823/head
* [new ref] refs/pull/17825/head -> refs/pull/17825/head
* [new ref] refs/pull/17826/head -> refs/pull/17826/head
* [new ref] refs/pull/17827/head -> refs/pull/17827/head
* [new ref] refs/pull/17828/head -> refs/pull/17828/head
* [new ref] refs/pull/17829/head -> refs/pull/17829/head
* [new ref] refs/pull/17830/head -> refs/pull/17830/head
* [new ref] refs/pull/17835/head -> refs/pull/17835/head
* [new ref] refs/pull/17838/head -> refs/pull/17838/head
* [new ref] refs/pull/17840/head -> refs/pull/17840/head
* [new ref] refs/pull/17842/head -> refs/pull/17842/head
* [new ref] refs/pull/17843/head -> refs/pull/17843/head
* [new ref] refs/pull/17844/head -> refs/pull/17844/head
* [new ref] refs/pull/17846/head -> refs/pull/17846/head
* [new ref] refs/pull/17849/head -> refs/pull/17849/head
* [new ref] refs/pull/17852/head -> refs/pull/17852/head
* [new ref] refs/pull/17853/head -> refs/pull/17853/head
* [new ref] refs/pull/17855/head -> refs/pull/17855/head
* [new ref] refs/pull/17860/head -> refs/pull/17860/head
* [new ref] refs/pull/17862/head -> refs/pull/17862/head
* [new ref] refs/pull/17863/head -> refs/pull/17863/head
* [new ref] refs/pull/17864/head -> refs/pull/17864/head
* [new ref] refs/pull/17865/head -> refs/pull/17865/head
* [new ref] refs/pull/17865/merge -> refs/pull/17865/merge
* [new ref] refs/pull/17867/head -> refs/pull/17867/head
* [new ref] refs/pull/17868/head -> refs/pull/17868/head
* [new ref] refs/pull/17874/head -> refs/pull/17874/head
* [new ref] refs/pull/17875/head -> refs/pull/17875/head
* [new ref] refs/pull/17879/head -> refs/pull/17879/head
* [new ref] refs/pull/17880/head -> refs/pull/17880/head
* [new ref] refs/pull/17881/head -> refs/pull/17881/head
* [new ref] refs/pull/17882/head -> refs/pull/17882/head
* [new ref] refs/pull/17883/head -> refs/pull/17883/head
* [new ref] refs/pull/17884/head -> refs/pull/17884/head
* [new ref] refs/pull/17887/head -> refs/pull/17887/head
* [new ref] refs/pull/17888/head -> refs/pull/17888/head
* [new ref] refs/pull/17889/head -> refs/pull/17889/head
* [new ref] refs/pull/17890/head -> refs/pull/17890/head
* [new ref] refs/pull/17893/head -> refs/pull/17893/head
* [new ref] refs/pull/17895/head -> refs/pull/17895/head
* [new ref] refs/pull/17898/head -> refs/pull/17898/head
* [new ref] refs/pull/17901/head -> refs/pull/17901/head
* [new ref] refs/pull/17902/head -> refs/pull/17902/head
* [new ref] refs/pull/17907/head -> refs/pull/17907/head
* [new ref] refs/pull/17908/head -> refs/pull/17908/head
* [new ref] refs/pull/17911/head -> refs/pull/17911/head
* [new ref] refs/pull/17914/head -> refs/pull/17914/head
* [new ref] refs/pull/17915/head -> refs/pull/17915/head
* [new ref] refs/pull/17916/head -> refs/pull/17916/head
* [new ref] refs/pull/17917/head -> refs/pull/17917/head
* [new ref] refs/pull/17918/head -> refs/pull/17918/head
* [new ref] refs/pull/17919/head -> refs/pull/17919/head
* [new ref] refs/pull/17920/head -> refs/pull/17920/head
* [new ref] refs/pull/17921/head -> refs/pull/17921/head
* [new ref] refs/pull/17924/head -> refs/pull/17924/head
* [new ref] refs/pull/17926/head -> refs/pull/17926/head
* [new ref] refs/pull/17927/head -> refs/pull/17927/head
* [new ref] refs/pull/17928/head -> refs/pull/17928/head
* [new ref] refs/pull/17930/head -> refs/pull/17930/head
* [new ref] refs/pull/17931/head -> refs/pull/17931/head
* [new ref] refs/pull/17934/head -> refs/pull/17934/head
* [new ref] refs/pull/17938/head -> refs/pull/17938/head
* [new ref] refs/pull/17939/head -> refs/pull/17939/head
* [new ref] refs/pull/17940/head -> refs/pull/17940/head
* [new ref] refs/pull/17941/head -> refs/pull/17941/head
* [new ref] refs/pull/17942/head -> refs/pull/17942/head
* [new ref] refs/pull/17951/head -> refs/pull/17951/head
* [new ref] refs/pull/17954/head -> refs/pull/17954/head
* [new ref] refs/pull/17955/head -> refs/pull/17955/head
* [new ref] refs/pull/17959/head -> refs/pull/17959/head
* [new ref] refs/pull/17961/head -> refs/pull/17961/head
* [new ref] refs/pull/17963/head -> refs/pull/17963/head
* [new ref] refs/pull/17964/head -> refs/pull/17964/head
* [new ref] refs/pull/17965/head -> refs/pull/17965/head
* [new ref] refs/pull/17966/head -> refs/pull/17966/head
* [new ref] refs/pull/17968/head -> refs/pull/17968/head
* [new ref] refs/pull/17970/head -> refs/pull/17970/head
* [new ref] refs/pull/17972/head -> refs/pull/17972/head
* [new ref] refs/pull/17974/head -> refs/pull/17974/head
* [new ref] refs/pull/17975/head -> refs/pull/17975/head
* [new ref] refs/pull/17976/head -> refs/pull/17976/head
* [new ref] refs/pull/17978/head -> refs/pull/17978/head
* [new ref] refs/pull/17979/head -> refs/pull/17979/head
* [new ref] refs/pull/17980/head -> refs/pull/17980/head
* [new ref] refs/pull/17981/head -> refs/pull/17981/head
* [new ref] refs/pull/17986/head -> refs/pull/17986/head
* [new ref] refs/pull/17989/head -> refs/pull/17989/head
* [new ref] refs/pull/17991/head -> refs/pull/17991/head
* [new ref] refs/pull/17993/head -> refs/pull/17993/head
* [new ref] refs/pull/17995/head -> refs/pull/17995/head
* [new ref] refs/pull/17996/head -> refs/pull/17996/head
* [new ref] refs/pull/18001/head -> refs/pull/18001/head
* [new ref] refs/pull/18003/head -> refs/pull/18003/head
* [new ref] refs/pull/18005/head -> refs/pull/18005/head
* [new ref] refs/pull/18006/head -> refs/pull/18006/head
* [new ref] refs/pull/18008/head -> refs/pull/18008/head
* [new ref] refs/pull/18009/head -> refs/pull/18009/head
* [new ref] refs/pull/18013/head -> refs/pull/18013/head
* [new ref] refs/pull/18015/head -> refs/pull/18015/head
* [new ref] refs/pull/18017/head -> refs/pull/18017/head
* [new ref] refs/pull/18021/head -> refs/pull/18021/head
* [new ref] refs/pull/18024/head -> refs/pull/18024/head
* [new ref] refs/pull/18025/head -> refs/pull/18025/head
* [new ref] refs/pull/18026/head -> refs/pull/18026/head
* [new ref] refs/pull/18031/head -> refs/pull/18031/head
* [new ref] refs/pull/18032/head -> refs/pull/18032/head
* [new ref] refs/pull/18033/head -> refs/pull/18033/head
* [new ref] refs/pull/18035/head -> refs/pull/18035/head
* [new ref] refs/pull/18038/head -> refs/pull/18038/head
* [new ref] refs/pull/18039/head -> refs/pull/18039/head
* [new ref] refs/pull/18041/head -> refs/pull/18041/head
* [new ref] refs/pull/18042/head -> refs/pull/18042/head
* [new ref] refs/pull/18043/head -> refs/pull/18043/head
* [new ref] refs/pull/18047/head -> refs/pull/18047/head
* [new ref] refs/pull/18048/head -> refs/pull/18048/head
* [new ref] refs/pull/18054/head -> refs/pull/18054/head
* [new ref] refs/pull/18058/head -> refs/pull/18058/head
* [new ref] refs/pull/18069/head -> refs/pull/18069/head
* [new ref] refs/pull/18071/head -> refs/pull/18071/head
* [new ref] refs/pull/18073/head -> refs/pull/18073/head
* [new ref] refs/pull/18075/head -> refs/pull/18075/head
* [new ref] refs/pull/18081/head -> refs/pull/18081/head
* [new ref] refs/pull/18090/head -> refs/pull/18090/head
* [new ref] refs/pull/18091/head -> refs/pull/18091/head
* [new ref] refs/pull/18093/head -> refs/pull/18093/head
* [new ref] refs/pull/18095/head -> refs/pull/18095/head
* [new ref] refs/pull/18099/head -> refs/pull/18099/head
* [new ref] refs/pull/18101/head -> refs/pull/18101/head
* [new ref] refs/pull/18103/head -> refs/pull/18103/head
* [new ref] refs/pull/18104/head -> refs/pull/18104/head
* [new ref] refs/pull/18105/head -> refs/pull/18105/head
* [new ref] refs/pull/18108/head -> refs/pull/18108/head
* [new ref] refs/pull/18109/head -> refs/pull/18109/head
* [new ref] refs/pull/18110/head -> refs/pull/18110/head
* [new ref] refs/pull/18114/head -> refs/pull/18114/head
* [new ref] refs/pull/18116/head -> refs/pull/18116/head
* [new ref] refs/pull/18117/head -> refs/pull/18117/head
* [new ref] refs/pull/18118/head -> refs/pull/18118/head
* [new ref] refs/pull/18119/head -> refs/pull/18119/head
* [new ref] refs/pull/18120/head -> refs/pull/18120/head
* [new ref] refs/pull/18121/head -> refs/pull/18121/head
* [new ref] refs/pull/18122/head -> refs/pull/18122/head
* [new ref] refs/pull/18131/head -> refs/pull/18131/head
* [new ref] refs/pull/18132/head -> refs/pull/18132/head
* [new ref] refs/pull/18138/head -> refs/pull/18138/head
* [new ref] refs/pull/18139/head -> refs/pull/18139/head
* [new ref] refs/pull/18141/head -> refs/pull/18141/head
* [new ref] refs/pull/18142/head -> refs/pull/18142/head
* [new ref] refs/pull/18145/head -> refs/pull/18145/head
* [new ref] refs/pull/18146/head -> refs/pull/18146/head
* [new ref] refs/pull/18147/head -> refs/pull/18147/head
* [new ref] refs/pull/18150/head -> refs/pull/18150/head
* [new ref] refs/pull/18151/head -> refs/pull/18151/head
* [new ref] refs/pull/18153/head -> refs/pull/18153/head
* [new ref] refs/pull/18154/head -> refs/pull/18154/head
* [new ref] refs/pull/18155/head -> refs/pull/18155/head
* [new ref] refs/pull/18156/head -> refs/pull/18156/head
* [new ref] refs/pull/18158/head -> refs/pull/18158/head
* [new ref] refs/pull/18161/head -> refs/pull/18161/head
* [new ref] refs/pull/18162/head -> refs/pull/18162/head
* [new ref] refs/pull/18163/head -> refs/pull/18163/head
* [new ref] refs/pull/18164/head -> refs/pull/18164/head
* [new ref] refs/pull/18167/head -> refs/pull/18167/head
* [new ref] refs/pull/18169/head -> refs/pull/18169/head
* [new ref] refs/pull/18170/head -> refs/pull/18170/head
* [new ref] refs/pull/18171/head -> refs/pull/18171/head
* [new ref] refs/pull/18172/head -> refs/pull/18172/head
* [new ref] refs/pull/18174/head -> refs/pull/18174/head
* [new ref] refs/pull/18177/head -> refs/pull/18177/head
* [new ref] refs/pull/18179/head -> refs/pull/18179/head
* [new ref] refs/pull/18181/head -> refs/pull/18181/head
* [new ref] refs/pull/18182/head -> refs/pull/18182/head
* [new ref] refs/pull/18183/head -> refs/pull/18183/head
* [new ref] refs/pull/18184/head -> refs/pull/18184/head
* [new ref] refs/pull/18187/head -> refs/pull/18187/head
* [new ref] refs/pull/18188/head -> refs/pull/18188/head
* [new ref] refs/pull/18190/head -> refs/pull/18190/head
* [new ref] refs/pull/18190/merge -> refs/pull/18190/merge
* [new ref] refs/pull/18193/head -> refs/pull/18193/head
* [new ref] refs/pull/18195/head -> refs/pull/18195/head
* [new ref] refs/pull/18196/head -> refs/pull/18196/head
* [new ref] refs/pull/18203/head -> refs/pull/18203/head
* [new ref] refs/pull/18205/head -> refs/pull/18205/head
* [new ref] refs/pull/18207/head -> refs/pull/18207/head
* [new ref] refs/pull/18209/head -> refs/pull/18209/head
* [new ref] refs/pull/18211/head -> refs/pull/18211/head
* [new ref] refs/pull/18212/head -> refs/pull/18212/head
* [new ref] refs/pull/18213/head -> refs/pull/18213/head
* [new ref] refs/pull/18215/head -> refs/pull/18215/head
* [new ref] refs/pull/18216/head -> refs/pull/18216/head
* [new ref] refs/pull/18217/head -> refs/pull/18217/head
* [new ref] refs/pull/18218/head -> refs/pull/18218/head
* [new ref] refs/pull/18219/head -> refs/pull/18219/head
* [new ref] refs/pull/18222/head -> refs/pull/18222/head
* [new ref] refs/pull/18223/head -> refs/pull/18223/head
* [new ref] refs/pull/18224/head -> refs/pull/18224/head
* [new ref] refs/pull/18225/head -> refs/pull/18225/head
* [new ref] refs/pull/18226/head -> refs/pull/18226/head
* [new ref] refs/pull/18227/head -> refs/pull/18227/head
* [new ref] refs/pull/18228/head -> refs/pull/18228/head
* [new ref] refs/pull/18229/head -> refs/pull/18229/head
* [new ref] refs/pull/18230/head -> refs/pull/18230/head
* [new ref] refs/pull/18231/head -> refs/pull/18231/head
* [new ref] refs/pull/18232/head -> refs/pull/18232/head
* [new ref] refs/pull/18234/head -> refs/pull/18234/head
* [new ref] refs/pull/18235/head -> refs/pull/18235/head
* [new ref] refs/pull/18236/head -> refs/pull/18236/head
* [new ref] refs/pull/18237/head -> refs/pull/18237/head
* [new ref] refs/pull/18239/head -> refs/pull/18239/head
* [new ref] refs/pull/18240/head -> refs/pull/18240/head
* [new ref] refs/pull/18241/head -> refs/pull/18241/head
* [new ref] refs/pull/18243/head -> refs/pull/18243/head
* [new ref] refs/pull/18258/head -> refs/pull/18258/head
* [new ref] refs/pull/18263/head -> refs/pull/18263/head
* [new ref] refs/pull/18265/head -> refs/pull/18265/head
* [new ref] refs/pull/18272/head -> refs/pull/18272/head
* [new ref] refs/pull/18273/head -> refs/pull/18273/head
* [new ref] refs/pull/18274/head -> refs/pull/18274/head
* [new ref] refs/pull/18275/head -> refs/pull/18275/head
* [new ref] refs/pull/18277/head -> refs/pull/18277/head
* [new ref] refs/pull/18295/head -> refs/pull/18295/head
* [new ref] refs/pull/18297/head -> refs/pull/18297/head
* [new ref] refs/pull/18301/head -> refs/pull/18301/head
* [new ref] refs/pull/18307/head -> refs/pull/18307/head
* [new ref] refs/pull/18310/head -> refs/pull/18310/head
* [new ref] refs/pull/18311/head -> refs/pull/18311/head
* [new ref] refs/pull/18314/head -> refs/pull/18314/head
* [new ref] refs/pull/18320/head -> refs/pull/18320/head
* [new ref] refs/pull/18322/head -> refs/pull/18322/head
* [new ref] refs/pull/18323/head -> refs/pull/18323/head
* [new ref] refs/pull/18324/head -> refs/pull/18324/head
* [new ref] refs/pull/18330/head -> refs/pull/18330/head
* [new ref] refs/pull/18332/head -> refs/pull/18332/head
* [new ref] refs/pull/18333/head -> refs/pull/18333/head
* [new ref] refs/pull/18335/head -> refs/pull/18335/head
* [new ref] refs/pull/18336/head -> refs/pull/18336/head
* [new ref] refs/pull/18339/head -> refs/pull/18339/head
* [new ref] refs/pull/18340/head -> refs/pull/18340/head
* [new ref] refs/pull/18343/head -> refs/pull/18343/head
* [new ref] refs/pull/18346/head -> refs/pull/18346/head
* [new ref] refs/pull/18347/head -> refs/pull/18347/head
* [new ref] refs/pull/18348/head -> refs/pull/18348/head
* [new ref] refs/pull/18350/head -> refs/pull/18350/head
* [new ref] refs/pull/18351/head -> refs/pull/18351/head
* [new ref] refs/pull/18352/head -> refs/pull/18352/head
* [new ref] refs/pull/18354/head -> refs/pull/18354/head
* [new ref] refs/pull/18358/head -> refs/pull/18358/head
* [new ref] refs/pull/18359/head -> refs/pull/18359/head
* [new ref] refs/pull/18362/head -> refs/pull/18362/head
* [new ref] refs/pull/18363/head -> refs/pull/18363/head
* [new ref] refs/pull/18367/head -> refs/pull/18367/head
* [new ref] refs/pull/18375/head -> refs/pull/18375/head
* [new ref] refs/pull/18376/head -> refs/pull/18376/head
* [new ref] refs/pull/18378/head -> refs/pull/18378/head
* [new ref] refs/pull/18379/head -> refs/pull/18379/head
* [new ref] refs/pull/18383/head -> refs/pull/18383/head
* [new ref] refs/pull/18386/head -> refs/pull/18386/head
* [new ref] refs/pull/18387/head -> refs/pull/18387/head
* [new ref] refs/pull/18389/head -> refs/pull/18389/head
* [new ref] refs/pull/18391/head -> refs/pull/18391/head
* [new ref] refs/pull/18393/head -> refs/pull/18393/head
* [new ref] refs/pull/18395/head -> refs/pull/18395/head
* [new ref] refs/pull/18396/head -> refs/pull/18396/head
* [new ref] refs/pull/18399/head -> refs/pull/18399/head
* [new ref] refs/pull/18400/head -> refs/pull/18400/head
* [new ref] refs/pull/18401/head -> refs/pull/18401/head
* [new ref] refs/pull/18402/head -> refs/pull/18402/head
* [new ref] refs/pull/18403/head -> refs/pull/18403/head
* [new ref] refs/pull/18404/head -> refs/pull/18404/head
* [new ref] refs/pull/18406/head -> refs/pull/18406/head
* [new ref] refs/pull/18407/head -> refs/pull/18407/head
* [new ref] refs/pull/18408/head -> refs/pull/18408/head
* [new ref] refs/pull/18409/head -> refs/pull/18409/head
* [new ref] refs/pull/18410/head -> refs/pull/18410/head
* [new ref] refs/pull/18411/head -> refs/pull/18411/head
* [new ref] refs/pull/18413/head -> refs/pull/18413/head
* [new ref] refs/pull/18414/head -> refs/pull/18414/head
* [new ref] refs/pull/18415/head -> refs/pull/18415/head
* [new ref] refs/pull/18416/head -> refs/pull/18416/head
* [new ref] refs/pull/18417/head -> refs/pull/18417/head
* [new ref] refs/pull/18421/head -> refs/pull/18421/head
* [new ref] refs/pull/18424/head -> refs/pull/18424/head
* [new ref] refs/pull/18426/head -> refs/pull/18426/head
* [new ref] refs/pull/18427/head -> refs/pull/18427/head
* [new ref] refs/pull/18428/head -> refs/pull/18428/head
* [new ref] refs/pull/18429/head -> refs/pull/18429/head
* [new ref] refs/pull/18435/head -> refs/pull/18435/head
* [new ref] refs/pull/18437/head -> refs/pull/18437/head
* [new ref] refs/pull/18438/head -> refs/pull/18438/head
* [new ref] refs/pull/18440/head -> refs/pull/18440/head
* [new ref] refs/pull/18442/head -> refs/pull/18442/head
* [new ref] refs/pull/18443/head -> refs/pull/18443/head
* [new ref] refs/pull/18446/head -> refs/pull/18446/head
* [new ref] refs/pull/18447/head -> refs/pull/18447/head
* [new ref] refs/pull/18448/head -> refs/pull/18448/head
* [new ref] refs/pull/18449/head -> refs/pull/18449/head
* [new ref] refs/pull/18450/head -> refs/pull/18450/head
* [new ref] refs/pull/18451/head -> refs/pull/18451/head
* [new ref] refs/pull/18454/head -> refs/pull/18454/head
* [new ref] refs/pull/18457/head -> refs/pull/18457/head
* [new ref] refs/pull/18458/head -> refs/pull/18458/head
* [new ref] refs/pull/18460/head -> refs/pull/18460/head
* [new ref] refs/pull/18461/head -> refs/pull/18461/head
* [new ref] refs/pull/18463/head -> refs/pull/18463/head
* [new ref] refs/pull/18464/head -> refs/pull/18464/head
* [new ref] refs/pull/18465/head -> refs/pull/18465/head
* [new ref] refs/pull/18468/head -> refs/pull/18468/head
* [new ref] refs/pull/18470/head -> refs/pull/18470/head
* [new ref] refs/pull/18471/head -> refs/pull/18471/head
* [new ref] refs/pull/18472/head -> refs/pull/18472/head
* [new ref] refs/pull/18474/head -> refs/pull/18474/head
* [new ref] refs/pull/18476/head -> refs/pull/18476/head
* [new ref] refs/pull/18477/head -> refs/pull/18477/head
* [new ref] refs/pull/18478/head -> refs/pull/18478/head
* [new ref] refs/pull/18480/head -> refs/pull/18480/head
* [new ref] refs/pull/18484/head -> refs/pull/18484/head
* [new ref] refs/pull/18485/head -> refs/pull/18485/head
* [new ref] refs/pull/18486/head -> refs/pull/18486/head
* [new ref] refs/pull/18489/head -> refs/pull/18489/head
* [new ref] refs/pull/18490/head -> refs/pull/18490/head
* [new ref] refs/pull/18492/head -> refs/pull/18492/head
* [new ref] refs/pull/18496/head -> refs/pull/18496/head
* [new ref] refs/pull/18497/head -> refs/pull/18497/head
* [new ref] refs/pull/18498/head -> refs/pull/18498/head
* [new ref] refs/pull/18499/head -> refs/pull/18499/head
* [new ref] refs/pull/18499/merge -> refs/pull/18499/merge
* [new ref] refs/pull/18500/head -> refs/pull/18500/head
* [new ref] refs/pull/18501/head -> refs/pull/18501/head
* [new ref] refs/pull/18502/head -> refs/pull/18502/head
* [new ref] refs/pull/18506/head -> refs/pull/18506/head
* [new ref] refs/pull/18508/head -> refs/pull/18508/head
* [new ref] refs/pull/18510/head -> refs/pull/18510/head
* [new ref] refs/pull/18512/head -> refs/pull/18512/head
* [new ref] refs/pull/18517/head -> refs/pull/18517/head
* [new ref] refs/pull/18519/head -> refs/pull/18519/head
* [new ref] refs/pull/18519/merge -> refs/pull/18519/merge
* [new ref] refs/pull/18521/head -> refs/pull/18521/head
* [new ref] refs/pull/18522/head -> refs/pull/18522/head
* [new ref] refs/pull/18523/head -> refs/pull/18523/head
* [new ref] refs/pull/18523/merge -> refs/pull/18523/merge
* [new ref] refs/pull/18528/head -> refs/pull/18528/head
* [new ref] refs/pull/18530/head -> refs/pull/18530/head
* [new ref] refs/pull/18531/head -> refs/pull/18531/head
* [new ref] refs/pull/18534/head -> refs/pull/18534/head
* [new ref] refs/pull/18536/head -> refs/pull/18536/head
* [new ref] refs/pull/18538/head -> refs/pull/18538/head
* [new ref] refs/pull/18541/head -> refs/pull/18541/head
* [new ref] refs/pull/18543/head -> refs/pull/18543/head
* [new ref] refs/pull/18544/head -> refs/pull/18544/head
* [new ref] refs/pull/18545/head -> refs/pull/18545/head
* [new ref] refs/pull/18548/head -> refs/pull/18548/head
* [new ref] refs/pull/18552/head -> refs/pull/18552/head
* [new ref] refs/pull/18553/head -> refs/pull/18553/head
* [new ref] refs/pull/18555/head -> refs/pull/18555/head
* [new ref] refs/pull/18557/head -> refs/pull/18557/head
* [new ref] refs/pull/18558/head -> refs/pull/18558/head
* [new ref] refs/pull/18559/head -> refs/pull/18559/head
* [new ref] refs/pull/18560/head -> refs/pull/18560/head
* [new ref] refs/pull/18561/head -> refs/pull/18561/head
* [new ref] refs/pull/18562/head -> refs/pull/18562/head
* [new ref] refs/pull/18563/head -> refs/pull/18563/head
* [new ref] refs/pull/18564/head -> refs/pull/18564/head
* [new ref] refs/pull/18565/head -> refs/pull/18565/head
* [new ref] refs/pull/18566/head -> refs/pull/18566/head
* [new ref] refs/pull/18567/head -> refs/pull/18567/head
* [new ref] refs/pull/18569/head -> refs/pull/18569/head
* [new ref] refs/pull/18570/head -> refs/pull/18570/head
* [new ref] refs/pull/18572/head -> refs/pull/18572/head
* [new ref] refs/pull/18575/head -> refs/pull/18575/head
* [new ref] refs/pull/18577/head -> refs/pull/18577/head
* [new ref] refs/pull/18581/head -> refs/pull/18581/head
* [new ref] refs/pull/18582/head -> refs/pull/18582/head
* [new ref] refs/pull/18583/head -> refs/pull/18583/head
* [new ref] refs/pull/18584/head -> refs/pull/18584/head
* [new ref] refs/pull/18586/head -> refs/pull/18586/head
* [new ref] refs/pull/18587/head -> refs/pull/18587/head
* [new ref] refs/pull/18590/head -> refs/pull/18590/head
* [new ref] refs/pull/18592/head -> refs/pull/18592/head
* [new ref] refs/pull/18595/head -> refs/pull/18595/head
* [new ref] refs/pull/18596/head -> refs/pull/18596/head
* [new ref] refs/pull/18597/head -> refs/pull/18597/head
* [new ref] refs/pull/18598/head -> refs/pull/18598/head
* [new ref] refs/pull/18599/head -> refs/pull/18599/head
* [new ref] refs/pull/18600/head -> refs/pull/18600/head
* [new ref] refs/pull/18601/head -> refs/pull/18601/head
* [new ref] refs/pull/18603/head -> refs/pull/18603/head
* [new ref] refs/pull/18604/head -> refs/pull/18604/head
* [new ref] refs/pull/18605/head -> refs/pull/18605/head
* [new ref] refs/pull/18607/head -> refs/pull/18607/head
* [new ref] refs/pull/18608/head -> refs/pull/18608/head
* [new ref] refs/pull/18609/head -> refs/pull/18609/head
* [new ref] refs/pull/18610/head -> refs/pull/18610/head
* [new ref] refs/pull/18613/head -> refs/pull/18613/head
* [new ref] refs/pull/18614/head -> refs/pull/18614/head
* [new ref] refs/pull/18615/head -> refs/pull/18615/head
* [new ref] refs/pull/18616/head -> refs/pull/18616/head
* [new ref] refs/pull/18617/head -> refs/pull/18617/head
* [new ref] refs/pull/18634/head -> refs/pull/18634/head
* [new ref] refs/pull/18636/head -> refs/pull/18636/head
* [new ref] refs/pull/18638/head -> refs/pull/18638/head
* [new ref] refs/pull/18639/head -> refs/pull/18639/head
* [new ref] refs/pull/18641/head -> refs/pull/18641/head
* [new ref] refs/pull/18644/head -> refs/pull/18644/head
* [new ref] refs/pull/18645/head -> refs/pull/18645/head
* [new ref] refs/pull/18648/head -> refs/pull/18648/head
* [new ref] refs/pull/18650/head -> refs/pull/18650/head
* [new ref] refs/pull/18651/head -> refs/pull/18651/head
* [new ref] refs/pull/18653/head -> refs/pull/18653/head
* [new ref] refs/pull/18655/head -> refs/pull/18655/head
* [new ref] refs/pull/18656/head -> refs/pull/18656/head
* [new ref] refs/pull/18657/head -> refs/pull/18657/head
* [new ref] refs/pull/18658/head -> refs/pull/18658/head
* [new ref] refs/pull/18659/head -> refs/pull/18659/head
* [new ref] refs/pull/18661/head -> refs/pull/18661/head
* [new ref] refs/pull/18662/head -> refs/pull/18662/head
* [new ref] refs/pull/18663/head -> refs/pull/18663/head
* [new ref] refs/pull/18664/head -> refs/pull/18664/head
* [new ref] refs/pull/18665/head -> refs/pull/18665/head
* [new ref] refs/pull/18667/head -> refs/pull/18667/head
* [new ref] refs/pull/18668/head -> refs/pull/18668/head
* [new ref] refs/pull/18669/head -> refs/pull/18669/head
* [new ref] refs/pull/18670/head -> refs/pull/18670/head
* [new ref] refs/pull/18671/head -> refs/pull/18671/head
* [new ref] refs/pull/18672/head -> refs/pull/18672/head
* [new ref] refs/pull/18673/head -> refs/pull/18673/head
* [new ref] refs/pull/18675/head -> refs/pull/18675/head
* [new ref] refs/pull/18676/head -> refs/pull/18676/head
* [new ref] refs/pull/18677/head -> refs/pull/18677/head
* [new ref] refs/pull/18678/head -> refs/pull/18678/head
* [new ref] refs/pull/18681/head -> refs/pull/18681/head
* [new ref] refs/pull/18682/head -> refs/pull/18682/head
* [new ref] refs/pull/18683/head -> refs/pull/18683/head
* [new ref] refs/pull/18685/head -> refs/pull/18685/head
* [new ref] refs/pull/18686/head -> refs/pull/18686/head
* [new ref] refs/pull/18688/head -> refs/pull/18688/head
* [new ref] refs/pull/18690/head -> refs/pull/18690/head
* [new ref] refs/pull/18691/head -> refs/pull/18691/head
* [new ref] refs/pull/18693/head -> refs/pull/18693/head
* [new ref] refs/pull/18695/head -> refs/pull/18695/head
* [new ref] refs/pull/18696/head -> refs/pull/18696/head
* [new ref] refs/pull/18697/head -> refs/pull/18697/head
* [new ref] refs/pull/18698/head -> refs/pull/18698/head
* [new ref] refs/pull/18704/head -> refs/pull/18704/head
* [new ref] refs/pull/18705/head -> refs/pull/18705/head
* [new ref] refs/pull/18707/head -> refs/pull/18707/head
* [new ref] refs/pull/18709/head -> refs/pull/18709/head
* [new ref] refs/pull/18710/head -> refs/pull/18710/head
* [new ref] refs/pull/18711/head -> refs/pull/18711/head
* [new ref] refs/pull/18713/head -> refs/pull/18713/head
* [new ref] refs/pull/18714/head -> refs/pull/18714/head
* [new ref] refs/pull/18720/head -> refs/pull/18720/head
* [new ref] refs/pull/18721/head -> refs/pull/18721/head
* [new ref] refs/pull/18725/head -> refs/pull/18725/head
* [new ref] refs/pull/18728/head -> refs/pull/18728/head
* [new ref] refs/pull/18732/head -> refs/pull/18732/head
* [new ref] refs/pull/18733/head -> refs/pull/18733/head
* [new ref] refs/pull/18734/head -> refs/pull/18734/head
* [new ref] refs/pull/18736/head -> refs/pull/18736/head
* [new ref] refs/pull/18737/head -> refs/pull/18737/head
* [new ref] refs/pull/18739/head -> refs/pull/18739/head
* [new ref] refs/pull/18741/head -> refs/pull/18741/head
* [new ref] refs/pull/18743/head -> refs/pull/18743/head
* [new ref] refs/pull/18747/head -> refs/pull/18747/head
* [new ref] refs/pull/18749/head -> refs/pull/18749/head
* [new ref] refs/pull/18752/head -> refs/pull/18752/head
* [new ref] refs/pull/18753/head -> refs/pull/18753/head
* [new ref] refs/pull/18753/merge -> refs/pull/18753/merge
* [new ref] refs/pull/18755/head -> refs/pull/18755/head
* [new ref] refs/pull/18756/head -> refs/pull/18756/head
* [new ref] refs/pull/18757/head -> refs/pull/18757/head
* [new ref] refs/pull/18759/head -> refs/pull/18759/head
+ 5f8e359427...1e6dccdf08 refs/pull/1876/merge -> refs/pull/1876/merge (forced update)
* [new ref] refs/pull/18762/head -> refs/pull/18762/head
* [new ref] refs/pull/18766/head -> refs/pull/18766/head
* [new ref] refs/pull/18767/head -> refs/pull/18767/head
* [new ref] refs/pull/18769/head -> refs/pull/18769/head
* [new ref] refs/pull/18770/head -> refs/pull/18770/head
* [new ref] refs/pull/18771/head -> refs/pull/18771/head
* [new ref] refs/pull/18772/head -> refs/pull/18772/head
* [new ref] refs/pull/18773/head -> refs/pull/18773/head
* [new ref] refs/pull/18774/head -> refs/pull/18774/head
* [new ref] refs/pull/18775/head -> refs/pull/18775/head
* [new ref] refs/pull/18777/head -> refs/pull/18777/head
* [new ref] refs/pull/18778/head -> refs/pull/18778/head
* [new ref] refs/pull/18780/head -> refs/pull/18780/head
* [new ref] refs/pull/18783/head -> refs/pull/18783/head
* [new ref] refs/pull/18785/head -> refs/pull/18785/head
* [new ref] refs/pull/18785/merge -> refs/pull/18785/merge
* [new ref] refs/pull/18786/head -> refs/pull/18786/head
* [new ref] refs/pull/18787/head -> refs/pull/18787/head
* [new ref] refs/pull/18791/head -> refs/pull/18791/head
* [new ref] refs/pull/18793/head -> refs/pull/18793/head
* [new ref] refs/pull/18794/head -> refs/pull/18794/head
* [new ref] refs/pull/18795/head -> refs/pull/18795/head
* [new ref] refs/pull/18796/head -> refs/pull/18796/head
* [new ref] refs/pull/18797/head -> refs/pull/18797/head
* [new ref] refs/pull/18798/head -> refs/pull/18798/head
* [new ref] refs/pull/18799/head -> refs/pull/18799/head
* [new ref] refs/pull/18802/head -> refs/pull/18802/head
* [new ref] refs/pull/18804/head -> refs/pull/18804/head
* [new ref] refs/pull/18813/head -> refs/pull/18813/head
* [new ref] refs/pull/18814/head -> refs/pull/18814/head
* [new ref] refs/pull/18817/head -> refs/pull/18817/head
* [new ref] refs/pull/18819/head -> refs/pull/18819/head
* [new ref] refs/pull/18820/head -> refs/pull/18820/head
* [new ref] refs/pull/18821/head -> refs/pull/18821/head
* [new ref] refs/pull/18822/head -> refs/pull/18822/head
* [new ref] refs/pull/18823/head -> refs/pull/18823/head
* [new ref] refs/pull/18824/head -> refs/pull/18824/head
* [new ref] refs/pull/18825/head -> refs/pull/18825/head
* [new ref] refs/pull/18827/head -> refs/pull/18827/head
* [new ref] refs/pull/18828/head -> refs/pull/18828/head
* [new ref] refs/pull/18829/head -> refs/pull/18829/head
* [new ref] refs/pull/18830/head -> refs/pull/18830/head
* [new ref] refs/pull/18832/head -> refs/pull/18832/head
* [new ref] refs/pull/18835/head -> refs/pull/18835/head
* [new ref] refs/pull/18837/head -> refs/pull/18837/head
* [new ref] refs/pull/18838/head -> refs/pull/18838/head
* [new ref] refs/pull/18839/head -> refs/pull/18839/head
* [new ref] refs/pull/18840/head -> refs/pull/18840/head
* [new ref] refs/pull/18841/head -> refs/pull/18841/head
* [new ref] refs/pull/18845/head -> refs/pull/18845/head
* [new ref] refs/pull/18846/head -> refs/pull/18846/head
* [new ref] refs/pull/18847/head -> refs/pull/18847/head
* [new ref] refs/pull/18848/head -> refs/pull/18848/head
* [new ref] refs/pull/18851/head -> refs/pull/18851/head
* [new ref] refs/pull/18852/head -> refs/pull/18852/head
* [new ref] refs/pull/18853/head -> refs/pull/18853/head
* [new ref] refs/pull/18854/head -> refs/pull/18854/head
* [new ref] refs/pull/18855/head -> refs/pull/18855/head
* [new ref] refs/pull/18857/head -> refs/pull/18857/head
* [new ref] refs/pull/18858/head -> refs/pull/18858/head
* [new ref] refs/pull/18859/head -> refs/pull/18859/head
* [new ref] refs/pull/18861/head -> refs/pull/18861/head
* [new ref] refs/pull/18862/head -> refs/pull/18862/head
* [new ref] refs/pull/18863/head -> refs/pull/18863/head
* [new ref] refs/pull/18864/head -> refs/pull/18864/head
* [new ref] refs/pull/18865/head -> refs/pull/18865/head
* [new ref] refs/pull/18866/head -> refs/pull/18866/head
* [new ref] refs/pull/18867/head -> refs/pull/18867/head
* [new ref] refs/pull/18869/head -> refs/pull/18869/head
* [new ref] refs/pull/18870/head -> refs/pull/18870/head
* [new ref] refs/pull/18873/head -> refs/pull/18873/head
* [new ref] refs/pull/18876/head -> refs/pull/18876/head
* [new ref] refs/pull/18878/head -> refs/pull/18878/head
* [new ref] refs/pull/18879/head -> refs/pull/18879/head
* [new ref] refs/pull/18880/head -> refs/pull/18880/head
* [new ref] refs/pull/18882/head -> refs/pull/18882/head
* [new ref] refs/pull/18883/head -> refs/pull/18883/head
* [new ref] refs/pull/18887/head -> refs/pull/18887/head
* [new ref] refs/pull/18889/head -> refs/pull/18889/head
* [new ref] refs/pull/18891/head -> refs/pull/18891/head
* [new ref] refs/pull/18894/head -> refs/pull/18894/head
* [new ref] refs/pull/18898/head -> refs/pull/18898/head
* [new ref] refs/pull/18902/head -> refs/pull/18902/head
* [new ref] refs/pull/18904/head -> refs/pull/18904/head
* [new ref] refs/pull/18905/head -> refs/pull/18905/head
* [new ref] refs/pull/18916/head -> refs/pull/18916/head
* [new ref] refs/pull/18924/head -> refs/pull/18924/head
* [new ref] refs/pull/18928/head -> refs/pull/18928/head
* [new ref] refs/pull/18931/head -> refs/pull/18931/head
* [new ref] refs/pull/18932/head -> refs/pull/18932/head
* [new ref] refs/pull/18933/head -> refs/pull/18933/head
* [new ref] refs/pull/18935/head -> refs/pull/18935/head
* [new ref] refs/pull/18936/head -> refs/pull/18936/head
* [new ref] refs/pull/18938/head -> refs/pull/18938/head
* [new ref] refs/pull/18939/head -> refs/pull/18939/head
* [new ref] refs/pull/18941/head -> refs/pull/18941/head
* [new ref] refs/pull/18943/head -> refs/pull/18943/head
* [new ref] refs/pull/18944/head -> refs/pull/18944/head
* [new ref] refs/pull/18945/head -> refs/pull/18945/head
* [new ref] refs/pull/18947/head -> refs/pull/18947/head
* [new ref] refs/pull/18948/head -> refs/pull/18948/head
* [new ref] refs/pull/18949/head -> refs/pull/18949/head
* [new ref] refs/pull/18950/head -> refs/pull/18950/head
* [new ref] refs/pull/18952/head -> refs/pull/18952/head
* [new ref] refs/pull/18954/head -> refs/pull/18954/head
* [new ref] refs/pull/18955/head -> refs/pull/18955/head
* [new ref] refs/pull/18957/head -> refs/pull/18957/head
* [new ref] refs/pull/18958/head -> refs/pull/18958/head
* [new ref] refs/pull/18959/head -> refs/pull/18959/head
* [new ref] refs/pull/18963/head -> refs/pull/18963/head
* [new ref] refs/pull/18965/head -> refs/pull/18965/head
* [new ref] refs/pull/18967/head -> refs/pull/18967/head
* [new ref] refs/pull/18969/head -> refs/pull/18969/head
* [new ref] refs/pull/18970/head -> refs/pull/18970/head
* [new ref] refs/pull/18971/head -> refs/pull/18971/head
* [new ref] refs/pull/18972/head -> refs/pull/18972/head
* [new ref] refs/pull/18973/head -> refs/pull/18973/head
* [new ref] refs/pull/18974/head -> refs/pull/18974/head
* [new ref] refs/pull/18975/head -> refs/pull/18975/head
* [new ref] refs/pull/18976/head -> refs/pull/18976/head
* [new ref] refs/pull/18977/head -> refs/pull/18977/head
* [new ref] refs/pull/18982/head -> refs/pull/18982/head
* [new ref] refs/pull/18985/head -> refs/pull/18985/head
* [new ref] refs/pull/18988/head -> refs/pull/18988/head
* [new ref] refs/pull/18991/head -> refs/pull/18991/head
* [new ref] refs/pull/18992/head -> refs/pull/18992/head
* [new ref] refs/pull/18998/head -> refs/pull/18998/head
* [new ref] refs/pull/19001/head -> refs/pull/19001/head
* [new ref] refs/pull/19004/head -> refs/pull/19004/head
* [new ref] refs/pull/19006/head -> refs/pull/19006/head
* [new ref] refs/pull/19008/head -> refs/pull/19008/head
* [new ref] refs/pull/19010/head -> refs/pull/19010/head
* [new ref] refs/pull/19011/head -> refs/pull/19011/head
* [new ref] refs/pull/19012/head -> refs/pull/19012/head
* [new ref] refs/pull/19013/head -> refs/pull/19013/head
* [new ref] refs/pull/19013/merge -> refs/pull/19013/merge
* [new ref] refs/pull/19014/head -> refs/pull/19014/head
* [new ref] refs/pull/19015/head -> refs/pull/19015/head
* [new ref] refs/pull/19016/head -> refs/pull/19016/head
* [new ref] refs/pull/19017/head -> refs/pull/19017/head
* [new ref] refs/pull/19019/head -> refs/pull/19019/head
* [new ref] refs/pull/19023/head -> refs/pull/19023/head
* [new ref] refs/pull/19024/head -> refs/pull/19024/head
* [new ref] refs/pull/19024/merge -> refs/pull/19024/merge
* [new ref] refs/pull/19025/head -> refs/pull/19025/head
* [new ref] refs/pull/19026/head -> refs/pull/19026/head
* [new ref] refs/pull/19027/head -> refs/pull/19027/head
* [new ref] refs/pull/19029/head -> refs/pull/19029/head
* [new ref] refs/pull/19030/head -> refs/pull/19030/head
* [new ref] refs/pull/19031/head -> refs/pull/19031/head
* [new ref] refs/pull/19032/head -> refs/pull/19032/head
* [new ref] refs/pull/19033/head -> refs/pull/19033/head
* [new ref] refs/pull/19034/head -> refs/pull/19034/head
* [new ref] refs/pull/19036/head -> refs/pull/19036/head
* [new ref] refs/pull/19037/head -> refs/pull/19037/head
* [new ref] refs/pull/19038/head -> refs/pull/19038/head
* [new ref] refs/pull/19039/head -> refs/pull/19039/head
* [new ref] refs/pull/19041/head -> refs/pull/19041/head
* [new ref] refs/pull/19042/head -> refs/pull/19042/head
* [new ref] refs/pull/19044/head -> refs/pull/19044/head
* [new ref] refs/pull/19046/head -> refs/pull/19046/head
* [new ref] refs/pull/19053/head -> refs/pull/19053/head
* [new ref] refs/pull/19056/head -> refs/pull/19056/head
* [new ref] refs/pull/19057/head -> refs/pull/19057/head
* [new ref] refs/pull/19059/head -> refs/pull/19059/head
* [new ref] refs/pull/19061/head -> refs/pull/19061/head
* [new ref] refs/pull/19064/head -> refs/pull/19064/head
* [new ref] refs/pull/19074/head -> refs/pull/19074/head
* [new ref] refs/pull/19078/head -> refs/pull/19078/head
* [new ref] refs/pull/19080/head -> refs/pull/19080/head
* [new ref] refs/pull/19090/head -> refs/pull/19090/head
* [new ref] refs/pull/19139/head -> refs/pull/19139/head
* [new ref] refs/pull/19161/head -> refs/pull/19161/head
* [new ref] refs/pull/19161/merge -> refs/pull/19161/merge
* [new ref] refs/pull/19166/head -> refs/pull/19166/head
* [new ref] refs/pull/19171/head -> refs/pull/19171/head
* [new ref] refs/pull/19172/head -> refs/pull/19172/head
* [new ref] refs/pull/19173/head -> refs/pull/19173/head
* [new ref] refs/pull/19174/head -> refs/pull/19174/head
* [new ref] refs/pull/19175/head -> refs/pull/19175/head
* [new ref] refs/pull/19178/head -> refs/pull/19178/head
* [new ref] refs/pull/19180/head -> refs/pull/19180/head
* [new ref] refs/pull/19182/head -> refs/pull/19182/head
* [new ref] refs/pull/19183/head -> refs/pull/19183/head
* [new ref] refs/pull/19183/merge -> refs/pull/19183/merge
* [new ref] refs/pull/19184/head -> refs/pull/19184/head
* [new ref] refs/pull/19188/head -> refs/pull/19188/head
* [new ref] refs/pull/19189/head -> refs/pull/19189/head
* [new ref] refs/pull/19190/head -> refs/pull/19190/head
* [new ref] refs/pull/19192/head -> refs/pull/19192/head
* [new ref] refs/pull/19193/head -> refs/pull/19193/head
* [new ref] refs/pull/19201/head -> refs/pull/19201/head
* [new ref] refs/pull/19202/head -> refs/pull/19202/head
* [new ref] refs/pull/19203/head -> refs/pull/19203/head
* [new ref] refs/pull/19204/head -> refs/pull/19204/head
* [new ref] refs/pull/19205/head -> refs/pull/19205/head
* [new ref] refs/pull/19209/head -> refs/pull/19209/head
* [new ref] refs/pull/19210/head -> refs/pull/19210/head
* [new ref] refs/pull/19210/merge -> refs/pull/19210/merge
* [new ref] refs/pull/19211/head -> refs/pull/19211/head
* [new ref] refs/pull/19211/merge -> refs/pull/19211/merge
* [new ref] refs/pull/19214/head -> refs/pull/19214/head
* [new ref] refs/pull/19218/head -> refs/pull/19218/head
* [new ref] refs/pull/19219/head -> refs/pull/19219/head
* [new ref] refs/pull/19221/head -> refs/pull/19221/head
* [new ref] refs/pull/19222/head -> refs/pull/19222/head
* [new ref] refs/pull/19226/head -> refs/pull/19226/head
* [new ref] refs/pull/19227/head -> refs/pull/19227/head
* [new ref] refs/pull/19231/head -> refs/pull/19231/head
* [new ref] refs/pull/19240/head -> refs/pull/19240/head
* [new ref] refs/pull/19243/head -> refs/pull/19243/head
* [new ref] refs/pull/19244/head -> refs/pull/19244/head
* [new ref] refs/pull/19246/head -> refs/pull/19246/head
* [new ref] refs/pull/19247/head -> refs/pull/19247/head
* [new ref] refs/pull/19250/head -> refs/pull/19250/head
* [new ref] refs/pull/19253/head -> refs/pull/19253/head
* [new ref] refs/pull/19254/head -> refs/pull/19254/head
* [new ref] refs/pull/19261/head -> refs/pull/19261/head
* [new ref] refs/pull/19262/head -> refs/pull/19262/head
* [new ref] refs/pull/19264/head -> refs/pull/19264/head
* [new ref] refs/pull/19266/head -> refs/pull/19266/head
* [new ref] refs/pull/19267/head -> refs/pull/19267/head
* [new ref] refs/pull/19269/head -> refs/pull/19269/head
* [new ref] refs/pull/19274/head -> refs/pull/19274/head
* [new ref] refs/pull/19277/head -> refs/pull/19277/head
* [new ref] refs/pull/19278/head -> refs/pull/19278/head
* [new ref] refs/pull/19281/head -> refs/pull/19281/head
* [new ref] refs/pull/19284/head -> refs/pull/19284/head
* [new ref] refs/pull/19286/head -> refs/pull/19286/head
* [new ref] refs/pull/19287/head -> refs/pull/19287/head
* [new ref] refs/pull/19288/head -> refs/pull/19288/head
* [new ref] refs/pull/19290/head -> refs/pull/19290/head
* [new ref] refs/pull/19291/head -> refs/pull/19291/head
* [new ref] refs/pull/19292/head -> refs/pull/19292/head
* [new ref] refs/pull/19294/head -> refs/pull/19294/head
* [new ref] refs/pull/19295/head -> refs/pull/19295/head
* [new ref] refs/pull/19297/head -> refs/pull/19297/head
* [new ref] refs/pull/19298/head -> refs/pull/19298/head
* [new ref] refs/pull/19299/head -> refs/pull/19299/head
* [new ref] refs/pull/19300/head -> refs/pull/19300/head
* [new ref] refs/pull/19301/head -> refs/pull/19301/head
* [new ref] refs/pull/19302/head -> refs/pull/19302/head
* [new ref] refs/pull/19303/head -> refs/pull/19303/head
* [new ref] refs/pull/19304/head -> refs/pull/19304/head
* [new ref] refs/pull/19305/head -> refs/pull/19305/head
* [new ref] refs/pull/19306/head -> refs/pull/19306/head
* [new ref] refs/pull/19307/head -> refs/pull/19307/head
* [new ref] refs/pull/19308/head -> refs/pull/19308/head
* [new ref] refs/pull/19309/head -> refs/pull/19309/head
* [new ref] refs/pull/19310/head -> refs/pull/19310/head
* [new ref] refs/pull/19311/head -> refs/pull/19311/head
* [new ref] refs/pull/19313/head -> refs/pull/19313/head
* [new ref] refs/pull/19314/head -> refs/pull/19314/head
* [new ref] refs/pull/19315/head -> refs/pull/19315/head
* [new ref] refs/pull/19316/head -> refs/pull/19316/head
* [new ref] refs/pull/19317/head -> refs/pull/19317/head
* [new ref] refs/pull/19318/head -> refs/pull/19318/head
* [new ref] refs/pull/19319/head -> refs/pull/19319/head
* [new ref] refs/pull/19320/head -> refs/pull/19320/head
* [new ref] refs/pull/19321/head -> refs/pull/19321/head
* [new ref] refs/pull/19322/head -> refs/pull/19322/head
* [new ref] refs/pull/19323/head -> refs/pull/19323/head
* [new ref] refs/pull/19324/head -> refs/pull/19324/head
* [new ref] refs/pull/19325/head -> refs/pull/19325/head
* [new ref] refs/pull/19326/head -> refs/pull/19326/head
* [new ref] refs/pull/19327/head -> refs/pull/19327/head
* [new ref] refs/pull/19328/head -> refs/pull/19328/head
* [new ref] refs/pull/19329/head -> refs/pull/19329/head
* [new ref] refs/pull/19330/head -> refs/pull/19330/head
* [new ref] refs/pull/19331/head -> refs/pull/19331/head
* [new ref] refs/pull/19332/head -> refs/pull/19332/head
* [new ref] refs/pull/19332/merge -> refs/pull/19332/merge
* [new ref] refs/pull/19333/head -> refs/pull/19333/head
* [new ref] refs/pull/19334/head -> refs/pull/19334/head
* [new ref] refs/pull/19335/head -> refs/pull/19335/head
* [new ref] refs/pull/19336/head -> refs/pull/19336/head
* [new ref] refs/pull/19337/head -> refs/pull/19337/head
* [new ref] refs/pull/19337/merge -> refs/pull/19337/merge
* [new ref] refs/pull/19339/head -> refs/pull/19339/head
* [new ref] refs/pull/19340/head -> refs/pull/19340/head
* [new ref] refs/pull/19341/head -> refs/pull/19341/head
* [new ref] refs/pull/19342/head -> refs/pull/19342/head
* [new ref] refs/pull/19343/head -> refs/pull/19343/head
* [new ref] refs/pull/19345/head -> refs/pull/19345/head
* [new ref] refs/pull/19346/head -> refs/pull/19346/head
* [new ref] refs/pull/19347/head -> refs/pull/19347/head
* [new ref] refs/pull/19348/head -> refs/pull/19348/head
* [new ref] refs/pull/19349/head -> refs/pull/19349/head
* [new ref] refs/pull/19350/head -> refs/pull/19350/head
* [new ref] refs/pull/19351/head -> refs/pull/19351/head
* [new ref] refs/pull/19352/head -> refs/pull/19352/head
* [new ref] refs/pull/19354/head -> refs/pull/19354/head
* [new ref] refs/pull/19355/head -> refs/pull/19355/head
* [new ref] refs/pull/19356/head -> refs/pull/19356/head
* [new ref] refs/pull/19357/head -> refs/pull/19357/head
* [new ref] refs/pull/19358/head -> refs/pull/19358/head
* [new ref] refs/pull/19360/head -> refs/pull/19360/head
* [new ref] refs/pull/19361/head -> refs/pull/19361/head
* [new ref] refs/pull/19362/head -> refs/pull/19362/head
* [new ref] refs/pull/19363/head -> refs/pull/19363/head
* [new ref] refs/pull/19364/head -> refs/pull/19364/head
* [new ref] refs/pull/19365/head -> refs/pull/19365/head
* [new ref] refs/pull/19367/head -> refs/pull/19367/head
* [new ref] refs/pull/19369/head -> refs/pull/19369/head
* [new ref] refs/pull/19370/head -> refs/pull/19370/head
* [new ref] refs/pull/19371/head -> refs/pull/19371/head
* [new ref] refs/pull/19372/head -> refs/pull/19372/head
* [new ref] refs/pull/19373/head -> refs/pull/19373/head
* [new ref] refs/pull/19375/head -> refs/pull/19375/head
* [new ref] refs/pull/19376/head -> refs/pull/19376/head
* [new ref] refs/pull/19377/head -> refs/pull/19377/head
* [new ref] refs/pull/19378/head -> refs/pull/19378/head
* [new ref] refs/pull/19380/head -> refs/pull/19380/head
* [new ref] refs/pull/19382/head -> refs/pull/19382/head
* [new ref] refs/pull/19383/head -> refs/pull/19383/head
* [new ref] refs/pull/19385/head -> refs/pull/19385/head
* [new ref] refs/pull/19389/head -> refs/pull/19389/head
* [new ref] refs/pull/19390/head -> refs/pull/19390/head
* [new ref] refs/pull/19391/head -> refs/pull/19391/head
* [new ref] refs/pull/19392/head -> refs/pull/19392/head
* [new ref] refs/pull/19393/head -> refs/pull/19393/head
* [new ref] refs/pull/19394/head -> refs/pull/19394/head
* [new ref] refs/pull/19396/head -> refs/pull/19396/head
* [new ref] refs/pull/19397/head -> refs/pull/19397/head
* [new ref] refs/pull/19398/head -> refs/pull/19398/head
* [new ref] refs/pull/19399/head -> refs/pull/19399/head
* [new ref] refs/pull/19400/head -> refs/pull/19400/head
* [new ref] refs/pull/19401/head -> refs/pull/19401/head
* [new ref] refs/pull/19402/head -> refs/pull/19402/head
* [new ref] refs/pull/19404/head -> refs/pull/19404/head
* [new ref] refs/pull/19405/head -> refs/pull/19405/head
* [new ref] refs/pull/19406/head -> refs/pull/19406/head
* [new ref] refs/pull/19408/head -> refs/pull/19408/head
* [new ref] refs/pull/19409/head -> refs/pull/19409/head
* [new ref] refs/pull/19410/head -> refs/pull/19410/head
* [new ref] refs/pull/19411/head -> refs/pull/19411/head
* [new ref] refs/pull/19412/head -> refs/pull/19412/head
* [new ref] refs/pull/19413/head -> refs/pull/19413/head
* [new ref] refs/pull/19414/head -> refs/pull/19414/head
* [new ref] refs/pull/19415/head -> refs/pull/19415/head
* [new ref] refs/pull/19416/head -> refs/pull/19416/head
* [new ref] refs/pull/19417/head -> refs/pull/19417/head
* [new ref] refs/pull/19418/head -> refs/pull/19418/head
* [new ref] refs/pull/19419/head -> refs/pull/19419/head
* [new ref] refs/pull/19420/head -> refs/pull/19420/head
* [new ref] refs/pull/19421/head -> refs/pull/19421/head
* [new ref] refs/pull/19424/head -> refs/pull/19424/head
* [new ref] refs/pull/19425/head -> refs/pull/19425/head
* [new ref] refs/pull/19426/head -> refs/pull/19426/head
* [new ref] refs/pull/19427/head -> refs/pull/19427/head
* [new ref] refs/pull/19431/head -> refs/pull/19431/head
* [new ref] refs/pull/19432/head -> refs/pull/19432/head
* [new ref] refs/pull/19433/head -> refs/pull/19433/head
* [new ref] refs/pull/19434/head -> refs/pull/19434/head
* [new ref] refs/pull/19438/head -> refs/pull/19438/head
* [new ref] refs/pull/19439/head -> refs/pull/19439/head
* [new ref] refs/pull/19443/head -> refs/pull/19443/head
* [new ref] refs/pull/19446/head -> refs/pull/19446/head
* [new ref] refs/pull/19451/head -> refs/pull/19451/head
* [new ref] refs/pull/19453/head -> refs/pull/19453/head
* [new ref] refs/pull/19455/head -> refs/pull/19455/head
* [new ref] refs/pull/19457/head -> refs/pull/19457/head
* [new ref] refs/pull/19460/head -> refs/pull/19460/head
* [new ref] refs/pull/19462/head -> refs/pull/19462/head
* [new ref] refs/pull/19464/head -> refs/pull/19464/head
* [new ref] refs/pull/19467/head -> refs/pull/19467/head
* [new ref] refs/pull/19470/head -> refs/pull/19470/head
* [new ref] refs/pull/19474/head -> refs/pull/19474/head
* [new ref] refs/pull/19476/head -> refs/pull/19476/head
* [new ref] refs/pull/19477/head -> refs/pull/19477/head
* [new ref] refs/pull/19478/head -> refs/pull/19478/head
* [new ref] refs/pull/19479/head -> refs/pull/19479/head
* [new ref] refs/pull/19480/head -> refs/pull/19480/head
* [new ref] refs/pull/19482/head -> refs/pull/19482/head
* [new ref] refs/pull/19484/head -> refs/pull/19484/head
* [new ref] refs/pull/19487/head -> refs/pull/19487/head
* [new ref] refs/pull/19488/head -> refs/pull/19488/head
* [new ref] refs/pull/19489/head -> refs/pull/19489/head
* [new ref] refs/pull/19490/head -> refs/pull/19490/head
* [new ref] refs/pull/19491/head -> refs/pull/19491/head
* [new ref] refs/pull/19492/head -> refs/pull/19492/head
* [new ref] refs/pull/19494/head -> refs/pull/19494/head
* [new ref] refs/pull/19495/head -> refs/pull/19495/head
* [new ref] refs/pull/19496/head -> refs/pull/19496/head
* [new ref] refs/pull/19499/head -> refs/pull/19499/head
* [new ref] refs/pull/19500/head -> refs/pull/19500/head
* [new ref] refs/pull/19502/head -> refs/pull/19502/head
* [new ref] refs/pull/19503/head -> refs/pull/19503/head
* [new ref] refs/pull/19505/head -> refs/pull/19505/head
* [new ref] refs/pull/19506/head -> refs/pull/19506/head
* [new ref] refs/pull/19508/head -> refs/pull/19508/head
* [new ref] refs/pull/19511/head -> refs/pull/19511/head
* [new ref] refs/pull/19521/head -> refs/pull/19521/head
* [new ref] refs/pull/19522/head -> refs/pull/19522/head
* [new ref] refs/pull/19523/head -> refs/pull/19523/head
* [new ref] refs/pull/19526/head -> refs/pull/19526/head
* [new ref] refs/pull/19529/head -> refs/pull/19529/head
* [new ref] refs/pull/19533/head -> refs/pull/19533/head
* [new ref] refs/pull/19534/head -> refs/pull/19534/head
* [new ref] refs/pull/19535/head -> refs/pull/19535/head
* [new ref] refs/pull/19536/head -> refs/pull/19536/head
* [new ref] refs/pull/19537/head -> refs/pull/19537/head
* [new ref] refs/pull/19538/head -> refs/pull/19538/head
* [new ref] refs/pull/19539/head -> refs/pull/19539/head
* [new ref] refs/pull/19540/head -> refs/pull/19540/head
* [new ref] refs/pull/19540/merge -> refs/pull/19540/merge
* [new ref] refs/pull/19541/head -> refs/pull/19541/head
* [new ref] refs/pull/19546/head -> refs/pull/19546/head
* [new ref] refs/pull/19547/head -> refs/pull/19547/head
* [new ref] refs/pull/19548/head -> refs/pull/19548/head
* [new ref] refs/pull/19549/head -> refs/pull/19549/head
* [new ref] refs/pull/19552/head -> refs/pull/19552/head
* [new ref] refs/pull/19553/head -> refs/pull/19553/head
* [new ref] refs/pull/19553/merge -> refs/pull/19553/merge
* [new ref] refs/pull/19554/head -> refs/pull/19554/head
* [new ref] refs/pull/19555/head -> refs/pull/19555/head
* [new ref] refs/pull/19556/head -> refs/pull/19556/head
* [new ref] refs/pull/19557/head -> refs/pull/19557/head
* [new ref] refs/pull/19559/head -> refs/pull/19559/head
* [new ref] refs/pull/19562/head -> refs/pull/19562/head
* [new ref] refs/pull/19565/head -> refs/pull/19565/head
* [new ref] refs/pull/19567/head -> refs/pull/19567/head
* [new ref] refs/pull/19568/head -> refs/pull/19568/head
* [new ref] refs/pull/19570/head -> refs/pull/19570/head
* [new ref] refs/pull/19571/head -> refs/pull/19571/head
* [new ref] refs/pull/19572/head -> refs/pull/19572/head
* [new ref] refs/pull/19574/head -> refs/pull/19574/head
* [new ref] refs/pull/19576/head -> refs/pull/19576/head
* [new ref] refs/pull/19577/head -> refs/pull/19577/head
* [new ref] refs/pull/19581/head -> refs/pull/19581/head
* [new ref] refs/pull/19584/head -> refs/pull/19584/head
* [new ref] refs/pull/19585/head -> refs/pull/19585/head
* [new ref] refs/pull/19587/head -> refs/pull/19587/head
* [new ref] refs/pull/19588/head -> refs/pull/19588/head
* [new ref] refs/pull/19591/head -> refs/pull/19591/head
* [new ref] refs/pull/19591/merge -> refs/pull/19591/merge
* [new ref] refs/pull/19593/head -> refs/pull/19593/head
* [new ref] refs/pull/19595/head -> refs/pull/19595/head
* [new ref] refs/pull/19598/head -> refs/pull/19598/head
* [new ref] refs/pull/19603/head -> refs/pull/19603/head
* [new ref] refs/pull/19605/head -> refs/pull/19605/head
* [new ref] refs/pull/19608/head -> refs/pull/19608/head
* [new ref] refs/pull/19609/head -> refs/pull/19609/head
* [new ref] refs/pull/19609/merge -> refs/pull/19609/merge
* [new ref] refs/pull/19612/head -> refs/pull/19612/head
* [new ref] refs/pull/19614/head -> refs/pull/19614/head
* [new ref] refs/pull/19616/head -> refs/pull/19616/head
* [new ref] refs/pull/19617/head -> refs/pull/19617/head
* [new ref] refs/pull/19618/head -> refs/pull/19618/head
* [new ref] refs/pull/19620/head -> refs/pull/19620/head
* [new ref] refs/pull/19620/merge -> refs/pull/19620/merge
* [new ref] refs/pull/19622/head -> refs/pull/19622/head
* [new ref] refs/pull/19623/head -> refs/pull/19623/head
* [new ref] refs/pull/19625/head -> refs/pull/19625/head
* [new ref] refs/pull/19626/head -> refs/pull/19626/head
* [new ref] refs/pull/19628/head -> refs/pull/19628/head
* [new ref] refs/pull/19629/head -> refs/pull/19629/head
* [new ref] refs/pull/19633/head -> refs/pull/19633/head
* [new ref] refs/pull/19634/head -> refs/pull/19634/head
* [new ref] refs/pull/19635/head -> refs/pull/19635/head
* [new ref] refs/pull/19638/head -> refs/pull/19638/head
* [new ref] refs/pull/19638/merge -> refs/pull/19638/merge
* [new ref] refs/pull/19642/head -> refs/pull/19642/head
* [new ref] refs/pull/19643/head -> refs/pull/19643/head
* [new ref] refs/pull/19644/head -> refs/pull/19644/head
* [new ref] refs/pull/19646/head -> refs/pull/19646/head
* [new ref] refs/pull/19647/head -> refs/pull/19647/head
* [new ref] refs/pull/19652/head -> refs/pull/19652/head
* [new ref] refs/pull/19658/head -> refs/pull/19658/head
* [new ref] refs/pull/19659/head -> refs/pull/19659/head
* [new ref] refs/pull/19665/head -> refs/pull/19665/head
* [new ref] refs/pull/19667/head -> refs/pull/19667/head
* [new ref] refs/pull/19668/head -> refs/pull/19668/head
* [new ref] refs/pull/19670/head -> refs/pull/19670/head
* [new ref] refs/pull/19671/head -> refs/pull/19671/head
* [new ref] refs/pull/19673/head -> refs/pull/19673/head
* [new ref] refs/pull/19676/head -> refs/pull/19676/head
* [new ref] refs/pull/19680/head -> refs/pull/19680/head
* [new ref] refs/pull/19681/head -> refs/pull/19681/head
* [new ref] refs/pull/19682/head -> refs/pull/19682/head
* [new ref] refs/pull/19685/head -> refs/pull/19685/head
* [new ref] refs/pull/19687/head -> refs/pull/19687/head
* [new ref] refs/pull/19689/head -> refs/pull/19689/head
* [new ref] refs/pull/19690/head -> refs/pull/19690/head
* [new ref] refs/pull/19691/head -> refs/pull/19691/head
* [new ref] refs/pull/19693/head -> refs/pull/19693/head
* [new ref] refs/pull/19694/head -> refs/pull/19694/head
* [new ref] refs/pull/19695/head -> refs/pull/19695/head
* [new ref] refs/pull/19696/head -> refs/pull/19696/head
* [new ref] refs/pull/19697/head -> refs/pull/19697/head
* [new ref] refs/pull/19698/head -> refs/pull/19698/head
* [new ref] refs/pull/19699/head -> refs/pull/19699/head
* [new ref] refs/pull/19701/head -> refs/pull/19701/head
* [new ref] refs/pull/19701/merge -> refs/pull/19701/merge
* [new ref] refs/pull/19703/head -> refs/pull/19703/head
* [new ref] refs/pull/19705/head -> refs/pull/19705/head
* [new ref] refs/pull/19705/merge -> refs/pull/19705/merge
* [new ref] refs/pull/19706/head -> refs/pull/19706/head
* [new ref] refs/pull/19707/head -> refs/pull/19707/head
* [new ref] refs/pull/19716/head -> refs/pull/19716/head
* [new ref] refs/pull/19716/merge -> refs/pull/19716/merge
* [new ref] refs/pull/19722/head -> refs/pull/19722/head
* [new ref] refs/pull/19723/head -> refs/pull/19723/head
* [new ref] refs/pull/19725/head -> refs/pull/19725/head
* [new ref] refs/pull/19726/head -> refs/pull/19726/head
* [new ref] refs/pull/19730/head -> refs/pull/19730/head
* [new ref] refs/pull/19736/head -> refs/pull/19736/head
* [new ref] refs/pull/19738/head -> refs/pull/19738/head
* [new ref] refs/pull/19739/head -> refs/pull/19739/head
* [new ref] refs/pull/19741/head -> refs/pull/19741/head
* [new ref] refs/pull/19742/head -> refs/pull/19742/head
* [new ref] refs/pull/19743/head -> refs/pull/19743/head
* [new ref] refs/pull/19744/head -> refs/pull/19744/head
* [new ref] refs/pull/19745/head -> refs/pull/19745/head
* [new ref] refs/pull/19746/head -> refs/pull/19746/head
* [new ref] refs/pull/19746/merge -> refs/pull/19746/merge
* [new ref] refs/pull/19747/head -> refs/pull/19747/head
* [new ref] refs/pull/19749/head -> refs/pull/19749/head
* [new ref] refs/pull/19750/head -> refs/pull/19750/head
* [new ref] refs/pull/19754/head -> refs/pull/19754/head
* [new ref] refs/pull/19754/merge -> refs/pull/19754/merge
* [new ref] refs/pull/19755/head -> refs/pull/19755/head
* [new ref] refs/pull/19755/merge -> refs/pull/19755/merge
* [new ref] refs/pull/19756/head -> refs/pull/19756/head
* [new ref] refs/pull/19759/head -> refs/pull/19759/head
* [new ref] refs/pull/19763/head -> refs/pull/19763/head
* [new ref] refs/pull/19764/head -> refs/pull/19764/head
* [new ref] refs/pull/19765/head -> refs/pull/19765/head
* [new ref] refs/pull/19766/head -> refs/pull/19766/head
* [new ref] refs/pull/19767/head -> refs/pull/19767/head
* [new ref] refs/pull/19770/head -> refs/pull/19770/head
* [new ref] refs/pull/19772/head -> refs/pull/19772/head
* [new ref] refs/pull/19775/head -> refs/pull/19775/head
* [new ref] refs/pull/19777/head -> refs/pull/19777/head
* [new ref] refs/pull/19779/head -> refs/pull/19779/head
* [new ref] refs/pull/19781/head -> refs/pull/19781/head
* [new ref] refs/pull/19782/head -> refs/pull/19782/head
* [new ref] refs/pull/19786/head -> refs/pull/19786/head
* [new ref] refs/pull/19788/head -> refs/pull/19788/head
* [new ref] refs/pull/19789/head -> refs/pull/19789/head
* [new ref] refs/pull/19791/head -> refs/pull/19791/head
* [new ref] refs/pull/19794/head -> refs/pull/19794/head
* [new ref] refs/pull/19795/head -> refs/pull/19795/head
* [new ref] refs/pull/19796/head -> refs/pull/19796/head
* [new ref] refs/pull/19797/head -> refs/pull/19797/head
* [new ref] refs/pull/19800/head -> refs/pull/19800/head
* [new ref] refs/pull/19804/head -> refs/pull/19804/head
* [new ref] refs/pull/19806/head -> refs/pull/19806/head
* [new ref] refs/pull/19807/head -> refs/pull/19807/head
* [new ref] refs/pull/19811/head -> refs/pull/19811/head
* [new ref] refs/pull/19812/head -> refs/pull/19812/head
* [new ref] refs/pull/19813/head -> refs/pull/19813/head
* [new ref] refs/pull/19814/head -> refs/pull/19814/head
* [new ref] refs/pull/19815/head -> refs/pull/19815/head
* [new ref] refs/pull/19815/merge -> refs/pull/19815/merge
* [new ref] refs/pull/19816/head -> refs/pull/19816/head
* [new ref] refs/pull/19819/head -> refs/pull/19819/head
* [new ref] refs/pull/19820/head -> refs/pull/19820/head
* [new ref] refs/pull/19821/head -> refs/pull/19821/head
* [new ref] refs/pull/19823/head -> refs/pull/19823/head
* [new ref] refs/pull/19824/head -> refs/pull/19824/head
* [new ref] refs/pull/19825/head -> refs/pull/19825/head
* [new ref] refs/pull/19827/head -> refs/pull/19827/head
* [new ref] refs/pull/19828/head -> refs/pull/19828/head
* [new ref] refs/pull/19831/head -> refs/pull/19831/head
* [new ref] refs/pull/19832/head -> refs/pull/19832/head
* [new ref] refs/pull/19833/head -> refs/pull/19833/head
* [new ref] refs/pull/19834/head -> refs/pull/19834/head
* [new ref] refs/pull/19837/head -> refs/pull/19837/head
* [new ref] refs/pull/19837/merge -> refs/pull/19837/merge
* [new ref] refs/pull/19838/head -> refs/pull/19838/head
* [new ref] refs/pull/19839/head -> refs/pull/19839/head
* [new ref] refs/pull/19840/head -> refs/pull/19840/head
* [new ref] refs/pull/19842/head -> refs/pull/19842/head
* [new ref] refs/pull/19844/head -> refs/pull/19844/head
* [new ref] refs/pull/19847/head -> refs/pull/19847/head
* [new ref] refs/pull/19849/head -> refs/pull/19849/head
* [new ref] refs/pull/19850/head -> refs/pull/19850/head
* [new ref] refs/pull/19854/head -> refs/pull/19854/head
* [new ref] refs/pull/19855/head -> refs/pull/19855/head
* [new ref] refs/pull/19855/merge -> refs/pull/19855/merge
* [new ref] refs/pull/19856/head -> refs/pull/19856/head
* [new ref] refs/pull/19857/head -> refs/pull/19857/head
* [new ref] refs/pull/19857/merge -> refs/pull/19857/merge
* [new ref] refs/pull/19860/head -> refs/pull/19860/head
* [new ref] refs/pull/19860/merge -> refs/pull/19860/merge
* [new ref] refs/pull/19861/head -> refs/pull/19861/head
* [new ref] refs/pull/19863/head -> refs/pull/19863/head
* [new ref] refs/pull/19866/head -> refs/pull/19866/head
* [new ref] refs/pull/19866/merge -> refs/pull/19866/merge
* [new ref] refs/pull/19867/head -> refs/pull/19867/head
* [new ref] refs/pull/19869/head -> refs/pull/19869/head
* [new ref] refs/pull/19870/head -> refs/pull/19870/head
* [new ref] refs/pull/19874/head -> refs/pull/19874/head
* [new ref] refs/pull/19876/head -> refs/pull/19876/head
* [new ref] refs/pull/19877/head -> refs/pull/19877/head
* [new ref] refs/pull/19881/head -> refs/pull/19881/head
* [new ref] refs/pull/19881/merge -> refs/pull/19881/merge
* [new ref] refs/pull/19882/head -> refs/pull/19882/head
* [new ref] refs/pull/19884/head -> refs/pull/19884/head
* [new ref] refs/pull/19886/head -> refs/pull/19886/head
* [new ref] refs/pull/19888/head -> refs/pull/19888/head
* [new ref] refs/pull/19889/head -> refs/pull/19889/head
* [new ref] refs/pull/19890/head -> refs/pull/19890/head
* [new ref] refs/pull/19891/head -> refs/pull/19891/head
* [new ref] refs/pull/19892/head -> refs/pull/19892/head
* [new ref] refs/pull/19898/head -> refs/pull/19898/head
* [new ref] refs/pull/19898/merge -> refs/pull/19898/merge
* [new ref] refs/pull/19900/head -> refs/pull/19900/head
* [new ref] refs/pull/19901/head -> refs/pull/19901/head
* [new ref] refs/pull/19901/merge -> refs/pull/19901/merge
* [new ref] refs/pull/19902/head -> refs/pull/19902/head
* [new ref] refs/pull/19903/head -> refs/pull/19903/head
* [new ref] refs/pull/19905/head -> refs/pull/19905/head
* [new ref] refs/pull/19907/head -> refs/pull/19907/head
* [new ref] refs/pull/19910/head -> refs/pull/19910/head
* [new ref] refs/pull/19912/head -> refs/pull/19912/head
* [new ref] refs/pull/19913/head -> refs/pull/19913/head
* [new ref] refs/pull/19914/head -> refs/pull/19914/head
* [new ref] refs/pull/19915/head -> refs/pull/19915/head
* [new ref] refs/pull/19916/head -> refs/pull/19916/head
* [new ref] refs/pull/19917/head -> refs/pull/19917/head
* [new ref] refs/pull/19918/head -> refs/pull/19918/head
* [new ref] refs/pull/19920/head -> refs/pull/19920/head
* [new ref] refs/pull/19921/head -> refs/pull/19921/head
* [new ref] refs/pull/19922/head -> refs/pull/19922/head
* [new ref] refs/pull/19924/head -> refs/pull/19924/head
* [new ref] refs/pull/19930/head -> refs/pull/19930/head
* [new ref] refs/pull/19931/head -> refs/pull/19931/head
* [new ref] refs/pull/19932/head -> refs/pull/19932/head
* [new ref] refs/pull/19933/head -> refs/pull/19933/head
* [new ref] refs/pull/19935/head -> refs/pull/19935/head
* [new ref] refs/pull/19937/head -> refs/pull/19937/head
* [new ref] refs/pull/19938/head -> refs/pull/19938/head
* [new ref] refs/pull/19939/head -> refs/pull/19939/head
* [new ref] refs/pull/19941/head -> refs/pull/19941/head
* [new ref] refs/pull/19945/head -> refs/pull/19945/head
* [new ref] refs/pull/19946/head -> refs/pull/19946/head
* [new ref] refs/pull/19949/head -> refs/pull/19949/head
* [new ref] refs/pull/19951/head -> refs/pull/19951/head
* [new ref] refs/pull/19954/head -> refs/pull/19954/head
* [new ref] refs/pull/19955/head -> refs/pull/19955/head
* [new ref] refs/pull/19959/head -> refs/pull/19959/head
* [new ref] refs/pull/19960/head -> refs/pull/19960/head
* [new ref] refs/pull/19961/head -> refs/pull/19961/head
* [new ref] refs/pull/19963/head -> refs/pull/19963/head
* [new ref] refs/pull/19964/head -> refs/pull/19964/head
* [new ref] refs/pull/19966/head -> refs/pull/19966/head
* [new ref] refs/pull/19971/head -> refs/pull/19971/head
* [new ref] refs/pull/19972/head -> refs/pull/19972/head
* [new ref] refs/pull/19973/head -> refs/pull/19973/head
* [new ref] refs/pull/19974/head -> refs/pull/19974/head
* [new ref] refs/pull/19977/head -> refs/pull/19977/head
* [new ref] refs/pull/19980/head -> refs/pull/19980/head
* [new ref] refs/pull/19981/head -> refs/pull/19981/head
* [new ref] refs/pull/19982/head -> refs/pull/19982/head
* [new ref] refs/pull/19986/head -> refs/pull/19986/head
* [new ref] refs/pull/19989/head -> refs/pull/19989/head
* [new ref] refs/pull/19990/head -> refs/pull/19990/head
* [new ref] refs/pull/19991/head -> refs/pull/19991/head
* [new ref] refs/pull/19994/head -> refs/pull/19994/head
* [new ref] refs/pull/19996/head -> refs/pull/19996/head
* [new ref] refs/pull/19999/head -> refs/pull/19999/head
* [new ref] refs/pull/20000/head -> refs/pull/20000/head
* [new ref] refs/pull/20001/head -> refs/pull/20001/head
* [new ref] refs/pull/20004/head -> refs/pull/20004/head
* [new ref] refs/pull/20006/head -> refs/pull/20006/head
* [new ref] refs/pull/20007/head -> refs/pull/20007/head
* [new ref] refs/pull/20010/head -> refs/pull/20010/head
* [new ref] refs/pull/20011/head -> refs/pull/20011/head
* [new ref] refs/pull/20014/head -> refs/pull/20014/head
* [new ref] refs/pull/20016/head -> refs/pull/20016/head
* [new ref] refs/pull/20020/head -> refs/pull/20020/head
* [new ref] refs/pull/20021/head -> refs/pull/20021/head
* [new ref] refs/pull/20023/head -> refs/pull/20023/head
* [new ref] refs/pull/20023/merge -> refs/pull/20023/merge
* [new ref] refs/pull/20024/head -> refs/pull/20024/head
* [new ref] refs/pull/20027/head -> refs/pull/20027/head
* [new ref] refs/pull/20027/merge -> refs/pull/20027/merge
* [new ref] refs/pull/20029/head -> refs/pull/20029/head
* [new ref] refs/pull/20033/head -> refs/pull/20033/head
* [new ref] refs/pull/20035/head -> refs/pull/20035/head
* [new ref] refs/pull/20037/head -> refs/pull/20037/head
* [new ref] refs/pull/20038/head -> refs/pull/20038/head
* [new ref] refs/pull/20039/head -> refs/pull/20039/head
* [new ref] refs/pull/20040/head -> refs/pull/20040/head
* [new ref] refs/pull/20041/head -> refs/pull/20041/head
* [new ref] refs/pull/20042/head -> refs/pull/20042/head
* [new ref] refs/pull/20044/head -> refs/pull/20044/head
* [new ref] refs/pull/20047/head -> refs/pull/20047/head
* [new ref] refs/pull/20048/head -> refs/pull/20048/head
* [new ref] refs/pull/20049/head -> refs/pull/20049/head
* [new ref] refs/pull/20050/head -> refs/pull/20050/head
* [new ref] refs/pull/20052/head -> refs/pull/20052/head
* [new ref] refs/pull/20054/head -> refs/pull/20054/head
* [new ref] refs/pull/20055/head -> refs/pull/20055/head
* [new ref] refs/pull/20056/head -> refs/pull/20056/head
* [new ref] refs/pull/20059/head -> refs/pull/20059/head
* [new ref] refs/pull/20064/head -> refs/pull/20064/head
* [new ref] refs/pull/20066/head -> refs/pull/20066/head
* [new ref] refs/pull/20066/merge -> refs/pull/20066/merge
* [new ref] refs/pull/20069/head -> refs/pull/20069/head
* [new ref] refs/pull/20071/head -> refs/pull/20071/head
* [new ref] refs/pull/20072/head -> refs/pull/20072/head
* [new ref] refs/pull/20073/head -> refs/pull/20073/head
* [new ref] refs/pull/20075/head -> refs/pull/20075/head
* [new ref] refs/pull/20078/head -> refs/pull/20078/head
* [new ref] refs/pull/20080/head -> refs/pull/20080/head
* [new ref] refs/pull/20080/merge -> refs/pull/20080/merge
* [new ref] refs/pull/20082/head -> refs/pull/20082/head
* [new ref] refs/pull/20083/head -> refs/pull/20083/head
* [new ref] refs/pull/20084/head -> refs/pull/20084/head
* [new ref] refs/pull/20086/head -> refs/pull/20086/head
* [new ref] refs/pull/20087/head -> refs/pull/20087/head
* [new ref] refs/pull/20088/head -> refs/pull/20088/head
* [new ref] refs/pull/20090/head -> refs/pull/20090/head
* [new ref] refs/pull/20090/merge -> refs/pull/20090/merge
* [new ref] refs/pull/20091/head -> refs/pull/20091/head
* [new ref] refs/pull/20094/head -> refs/pull/20094/head
* [new ref] refs/pull/20095/head -> refs/pull/20095/head
* [new ref] refs/pull/20096/head -> refs/pull/20096/head
* [new ref] refs/pull/20099/head -> refs/pull/20099/head
* [new ref] refs/pull/20100/head -> refs/pull/20100/head
* [new ref] refs/pull/20101/head -> refs/pull/20101/head
* [new ref] refs/pull/20104/head -> refs/pull/20104/head
* [new ref] refs/pull/20105/head -> refs/pull/20105/head
* [new ref] refs/pull/20107/head -> refs/pull/20107/head
* [new ref] refs/pull/20108/head -> refs/pull/20108/head
* [new ref] refs/pull/20108/merge -> refs/pull/20108/merge
* [new ref] refs/pull/20109/head -> refs/pull/20109/head
* [new ref] refs/pull/20111/head -> refs/pull/20111/head
* [new ref] refs/pull/20112/head -> refs/pull/20112/head
* [new ref] refs/pull/20114/head -> refs/pull/20114/head
* [new ref] refs/pull/20116/head -> refs/pull/20116/head
* [new ref] refs/pull/20117/head -> refs/pull/20117/head
* [new ref] refs/pull/20119/head -> refs/pull/20119/head
* [new ref] refs/pull/20121/head -> refs/pull/20121/head
* [new ref] refs/pull/20123/head -> refs/pull/20123/head
* [new ref] refs/pull/20126/head -> refs/pull/20126/head
* [new ref] refs/pull/20131/head -> refs/pull/20131/head
* [new ref] refs/pull/20133/head -> refs/pull/20133/head
* [new ref] refs/pull/20136/head -> refs/pull/20136/head
* [new ref] refs/pull/20138/head -> refs/pull/20138/head
* [new ref] refs/pull/20141/head -> refs/pull/20141/head
* [new ref] refs/pull/20148/head -> refs/pull/20148/head
* [new ref] refs/pull/20152/head -> refs/pull/20152/head
* [new ref] refs/pull/20153/head -> refs/pull/20153/head
* [new ref] refs/pull/20154/head -> refs/pull/20154/head
* [new ref] refs/pull/20157/head -> refs/pull/20157/head
* [new ref] refs/pull/20158/head -> refs/pull/20158/head
* [new ref] refs/pull/20160/head -> refs/pull/20160/head
* [new ref] refs/pull/20161/head -> refs/pull/20161/head
* [new ref] refs/pull/20162/head -> refs/pull/20162/head
* [new ref] refs/pull/20164/head -> refs/pull/20164/head
* [new ref] refs/pull/20167/head -> refs/pull/20167/head
* [new ref] refs/pull/20170/head -> refs/pull/20170/head
* [new ref] refs/pull/20170/merge -> refs/pull/20170/merge
* [new ref] refs/pull/20171/head -> refs/pull/20171/head
* [new ref] refs/pull/20171/merge -> refs/pull/20171/merge
* [new ref] refs/pull/20172/head -> refs/pull/20172/head
* [new ref] refs/pull/20173/head -> refs/pull/20173/head
* [new ref] refs/pull/20174/head -> refs/pull/20174/head
* [new ref] refs/pull/20175/head -> refs/pull/20175/head
* [new ref] refs/pull/20178/head -> refs/pull/20178/head
* [new ref] refs/pull/20179/head -> refs/pull/20179/head
* [new ref] refs/pull/20180/head -> refs/pull/20180/head
* [new ref] refs/pull/20182/head -> refs/pull/20182/head
* [new ref] refs/pull/20184/head -> refs/pull/20184/head
* [new ref] refs/pull/20185/head -> refs/pull/20185/head
* [new ref] refs/pull/20196/head -> refs/pull/20196/head
* [new ref] refs/pull/20198/head -> refs/pull/20198/head
* [new ref] refs/pull/20200/head -> refs/pull/20200/head
* [new ref] refs/pull/20200/merge -> refs/pull/20200/merge
* [new ref] refs/pull/20201/head -> refs/pull/20201/head
* [new ref] refs/pull/20202/head -> refs/pull/20202/head
* [new ref] refs/pull/20203/head -> refs/pull/20203/head
* [new ref] refs/pull/20204/head -> refs/pull/20204/head
* [new ref] refs/pull/20204/merge -> refs/pull/20204/merge
* [new ref] refs/pull/20205/head -> refs/pull/20205/head
* [new ref] refs/pull/20206/head -> refs/pull/20206/head
* [new ref] refs/pull/20207/head -> refs/pull/20207/head
* [new ref] refs/pull/20212/head -> refs/pull/20212/head
* [new ref] refs/pull/20214/head -> refs/pull/20214/head
* [new ref] refs/pull/20215/head -> refs/pull/20215/head
* [new ref] refs/pull/20216/head -> refs/pull/20216/head
* [new ref] refs/pull/20218/head -> refs/pull/20218/head
* [new ref] refs/pull/20220/head -> refs/pull/20220/head
* [new ref] refs/pull/20221/head -> refs/pull/20221/head
* [new ref] refs/pull/20224/head -> refs/pull/20224/head
* [new ref] refs/pull/20228/head -> refs/pull/20228/head
* [new ref] refs/pull/20229/head -> refs/pull/20229/head
* [new ref] refs/pull/20230/head -> refs/pull/20230/head
* [new ref] refs/pull/20231/head -> refs/pull/20231/head
* [new ref] refs/pull/20232/head -> refs/pull/20232/head
* [new ref] refs/pull/20235/head -> refs/pull/20235/head
* [new ref] refs/pull/20237/head -> refs/pull/20237/head
* [new ref] refs/pull/20238/head -> refs/pull/20238/head
* [new ref] refs/pull/20238/merge -> refs/pull/20238/merge
* [new ref] refs/pull/20239/head -> refs/pull/20239/head
* [new ref] refs/pull/20240/head -> refs/pull/20240/head
* [new ref] refs/pull/20241/head -> refs/pull/20241/head
* [new ref] refs/pull/20244/head -> refs/pull/20244/head
* [new ref] refs/pull/20248/head -> refs/pull/20248/head
* [new ref] refs/pull/20249/head -> refs/pull/20249/head
* [new ref] refs/pull/20251/head -> refs/pull/20251/head
* [new ref] refs/pull/20252/head -> refs/pull/20252/head
* [new ref] refs/pull/20256/head -> refs/pull/20256/head
* [new ref] refs/pull/20259/head -> refs/pull/20259/head
* [new ref] refs/pull/20260/head -> refs/pull/20260/head
* [new ref] refs/pull/20261/head -> refs/pull/20261/head
* [new ref] refs/pull/20261/merge -> refs/pull/20261/merge
* [new ref] refs/pull/20265/head -> refs/pull/20265/head
* [new ref] refs/pull/20266/head -> refs/pull/20266/head
* [new ref] refs/pull/20267/head -> refs/pull/20267/head
* [new ref] refs/pull/20268/head -> refs/pull/20268/head
* [new ref] refs/pull/20273/head -> refs/pull/20273/head
* [new ref] refs/pull/20273/merge -> refs/pull/20273/merge
* [new ref] refs/pull/20274/head -> refs/pull/20274/head
* [new ref] refs/pull/20276/head -> refs/pull/20276/head
* [new ref] refs/pull/20276/merge -> refs/pull/20276/merge
* [new ref] refs/pull/20279/head -> refs/pull/20279/head
* [new ref] refs/pull/20280/head -> refs/pull/20280/head
* [new ref] refs/pull/20283/head -> refs/pull/20283/head
* [new ref] refs/pull/20286/head -> refs/pull/20286/head
* [new ref] refs/pull/20287/head -> refs/pull/20287/head
* [new ref] refs/pull/20289/head -> refs/pull/20289/head
* [new ref] refs/pull/20290/head -> refs/pull/20290/head
* [new ref] refs/pull/20291/head -> refs/pull/20291/head
* [new ref] refs/pull/20295/head -> refs/pull/20295/head
* [new ref] refs/pull/20297/head -> refs/pull/20297/head
* [new ref] refs/pull/20299/head -> refs/pull/20299/head
* [new ref] refs/pull/20300/head -> refs/pull/20300/head
* [new ref] refs/pull/20305/head -> refs/pull/20305/head
* [new ref] refs/pull/20306/head -> refs/pull/20306/head
* [new ref] refs/pull/20307/head -> refs/pull/20307/head
* [new ref] refs/pull/20318/head -> refs/pull/20318/head
* [new ref] refs/pull/20320/head -> refs/pull/20320/head
* [new ref] refs/pull/20322/head -> refs/pull/20322/head
* [new ref] refs/pull/20323/head -> refs/pull/20323/head
* [new ref] refs/pull/20324/head -> refs/pull/20324/head
* [new ref] refs/pull/20325/head -> refs/pull/20325/head
* [new ref] refs/pull/20326/head -> refs/pull/20326/head
* [new ref] refs/pull/20328/head -> refs/pull/20328/head
* [new ref] refs/pull/20330/head -> refs/pull/20330/head
* [new ref] refs/pull/20333/head -> refs/pull/20333/head
* [new ref] refs/pull/20334/head -> refs/pull/20334/head
* [new ref] refs/pull/20335/head -> refs/pull/20335/head
* [new ref] refs/pull/20337/head -> refs/pull/20337/head
* [new ref] refs/pull/20339/head -> refs/pull/20339/head
* [new ref] refs/pull/20340/head -> refs/pull/20340/head
* [new ref] refs/pull/20341/head -> refs/pull/20341/head
* [new ref] refs/pull/20342/head -> refs/pull/20342/head
* [new ref] refs/pull/20343/head -> refs/pull/20343/head
* [new ref] refs/pull/20345/head -> refs/pull/20345/head
* [new ref] refs/pull/20346/head -> refs/pull/20346/head
* [new ref] refs/pull/20348/head -> refs/pull/20348/head
* [new ref] refs/pull/20349/head -> refs/pull/20349/head
* [new ref] refs/pull/20351/head -> refs/pull/20351/head
* [new ref] refs/pull/20352/head -> refs/pull/20352/head
* [new ref] refs/pull/20353/head -> refs/pull/20353/head
* [new ref] refs/pull/20354/head -> refs/pull/20354/head
* [new ref] refs/pull/20357/head -> refs/pull/20357/head
* [new ref] refs/pull/20358/head -> refs/pull/20358/head
* [new ref] refs/pull/20359/head -> refs/pull/20359/head
* [new ref] refs/pull/20360/head -> refs/pull/20360/head
* [new ref] refs/pull/20361/head -> refs/pull/20361/head
* [new ref] refs/pull/20362/head -> refs/pull/20362/head
* [new ref] refs/pull/20365/head -> refs/pull/20365/head
* [new ref] refs/pull/20366/head -> refs/pull/20366/head
* [new ref] refs/pull/20368/head -> refs/pull/20368/head
* [new ref] refs/pull/20369/head -> refs/pull/20369/head
* [new ref] refs/pull/20374/head -> refs/pull/20374/head
* [new ref] refs/pull/20375/head -> refs/pull/20375/head
* [new ref] refs/pull/20376/head -> refs/pull/20376/head
* [new ref] refs/pull/20378/head -> refs/pull/20378/head
* [new ref] refs/pull/20379/head -> refs/pull/20379/head
* [new ref] refs/pull/20382/head -> refs/pull/20382/head
* [new ref] refs/pull/20382/merge -> refs/pull/20382/merge
* [new ref] refs/pull/20383/head -> refs/pull/20383/head
* [new ref] refs/pull/20384/head -> refs/pull/20384/head
* [new ref] refs/pull/20392/head -> refs/pull/20392/head
* [new ref] refs/pull/20392/merge -> refs/pull/20392/merge
* [new ref] refs/pull/20395/head -> refs/pull/20395/head
* [new ref] refs/pull/20396/head -> refs/pull/20396/head
* [new ref] refs/pull/20397/head -> refs/pull/20397/head
* [new ref] refs/pull/20399/head -> refs/pull/20399/head
* [new ref] refs/pull/20401/head -> refs/pull/20401/head
* [new ref] refs/pull/20403/head -> refs/pull/20403/head
* [new ref] refs/pull/20406/head -> refs/pull/20406/head
* [new ref] refs/pull/20406/merge -> refs/pull/20406/merge
* [new ref] refs/pull/20407/head -> refs/pull/20407/head
* [new ref] refs/pull/20409/head -> refs/pull/20409/head
* [new ref] refs/pull/20411/head -> refs/pull/20411/head
* [new ref] refs/pull/20414/head -> refs/pull/20414/head
* [new ref] refs/pull/20416/head -> refs/pull/20416/head
* [new ref] refs/pull/20418/head -> refs/pull/20418/head
* [new ref] refs/pull/20419/head -> refs/pull/20419/head
* [new ref] refs/pull/20420/head -> refs/pull/20420/head
* [new ref] refs/pull/20422/head -> refs/pull/20422/head
* [new ref] refs/pull/20424/head -> refs/pull/20424/head
* [new ref] refs/pull/20429/head -> refs/pull/20429/head
* [new ref] refs/pull/20430/head -> refs/pull/20430/head
* [new ref] refs/pull/20431/head -> refs/pull/20431/head
* [new ref] refs/pull/20432/head -> refs/pull/20432/head
* [new ref] refs/pull/20434/head -> refs/pull/20434/head
* [new ref] refs/pull/20438/head -> refs/pull/20438/head
* [new ref] refs/pull/20439/head -> refs/pull/20439/head
* [new ref] refs/pull/20440/head -> refs/pull/20440/head
* [new ref] refs/pull/20441/head -> refs/pull/20441/head
* [new ref] refs/pull/20442/head -> refs/pull/20442/head
* [new ref] refs/pull/20442/merge -> refs/pull/20442/merge
* [new ref] refs/pull/20449/head -> refs/pull/20449/head
* [new ref] refs/pull/20450/head -> refs/pull/20450/head
* [new ref] refs/pull/20451/head -> refs/pull/20451/head
* [new ref] refs/pull/20452/head -> refs/pull/20452/head
* [new ref] refs/pull/20454/head -> refs/pull/20454/head
* [new ref] refs/pull/20460/head -> refs/pull/20460/head
* [new ref] refs/pull/20463/head -> refs/pull/20463/head
* [new ref] refs/pull/20465/head -> refs/pull/20465/head
* [new ref] refs/pull/20467/head -> refs/pull/20467/head
* [new ref] refs/pull/20471/head -> refs/pull/20471/head
* [new ref] refs/pull/20473/head -> refs/pull/20473/head
* [new ref] refs/pull/20474/head -> refs/pull/20474/head
* [new ref] refs/pull/20475/head -> refs/pull/20475/head
* [new ref] refs/pull/20477/head -> refs/pull/20477/head
* [new ref] refs/pull/20478/head -> refs/pull/20478/head
* [new ref] refs/pull/20479/head -> refs/pull/20479/head
* [new ref] refs/pull/20481/head -> refs/pull/20481/head
* [new ref] refs/pull/20484/head -> refs/pull/20484/head
* [new ref] refs/pull/20485/head -> refs/pull/20485/head
* [new ref] refs/pull/20487/head -> refs/pull/20487/head
* [new ref] refs/pull/20488/head -> refs/pull/20488/head
* [new ref] refs/pull/20489/head -> refs/pull/20489/head
* [new ref] refs/pull/20490/head -> refs/pull/20490/head
* [new ref] refs/pull/20491/head -> refs/pull/20491/head
* [new ref] refs/pull/20492/head -> refs/pull/20492/head
* [new ref] refs/pull/20494/head -> refs/pull/20494/head
* [new ref] refs/pull/20497/head -> refs/pull/20497/head
* [new ref] refs/pull/20499/head -> refs/pull/20499/head
* [new ref] refs/pull/20499/merge -> refs/pull/20499/merge
* [new ref] refs/pull/20501/head -> refs/pull/20501/head
* [new ref] refs/pull/20502/head -> refs/pull/20502/head
* [new ref] refs/pull/20504/head -> refs/pull/20504/head
* [new ref] refs/pull/20507/head -> refs/pull/20507/head
* [new ref] refs/pull/20509/head -> refs/pull/20509/head
* [new ref] refs/pull/20510/head -> refs/pull/20510/head
* [new ref] refs/pull/20512/head -> refs/pull/20512/head
* [new ref] refs/pull/20514/head -> refs/pull/20514/head
* [new ref] refs/pull/20515/head -> refs/pull/20515/head
* [new ref] refs/pull/20517/head -> refs/pull/20517/head
* [new ref] refs/pull/20518/head -> refs/pull/20518/head
* [new ref] refs/pull/20519/head -> refs/pull/20519/head
* [new ref] refs/pull/20520/head -> refs/pull/20520/head
* [new ref] refs/pull/20523/head -> refs/pull/20523/head
* [new ref] refs/pull/20524/head -> refs/pull/20524/head
* [new ref] refs/pull/20526/head -> refs/pull/20526/head
* [new ref] refs/pull/20527/head -> refs/pull/20527/head
* [new ref] refs/pull/20528/head -> refs/pull/20528/head
* [new ref] refs/pull/20529/head -> refs/pull/20529/head
* [new ref] refs/pull/20531/head -> refs/pull/20531/head
* [new ref] refs/pull/20532/head -> refs/pull/20532/head
* [new ref] refs/pull/20534/head -> refs/pull/20534/head
* [new ref] refs/pull/20535/head -> refs/pull/20535/head
* [new ref] refs/pull/20536/head -> refs/pull/20536/head
* [new ref] refs/pull/20536/merge -> refs/pull/20536/merge
* [new ref] refs/pull/20538/head -> refs/pull/20538/head
* [new ref] refs/pull/20539/head -> refs/pull/20539/head
* [new ref] refs/pull/20542/head -> refs/pull/20542/head
* [new ref] refs/pull/20544/head -> refs/pull/20544/head
* [new ref] refs/pull/20546/head -> refs/pull/20546/head
* [new ref] refs/pull/20548/head -> refs/pull/20548/head
* [new ref] refs/pull/20553/head -> refs/pull/20553/head
* [new ref] refs/pull/20554/head -> refs/pull/20554/head
* [new ref] refs/pull/20555/head -> refs/pull/20555/head
* [new ref] refs/pull/20556/head -> refs/pull/20556/head
* [new ref] refs/pull/20558/head -> refs/pull/20558/head
* [new ref] refs/pull/20559/head -> refs/pull/20559/head
* [new ref] refs/pull/20561/head -> refs/pull/20561/head
* [new ref] refs/pull/20562/head -> refs/pull/20562/head
* [new ref] refs/pull/20563/head -> refs/pull/20563/head
* [new ref] refs/pull/20565/head -> refs/pull/20565/head
* [new ref] refs/pull/20566/head -> refs/pull/20566/head
* [new ref] refs/pull/20567/head -> refs/pull/20567/head
* [new ref] refs/pull/20568/head -> refs/pull/20568/head
* [new ref] refs/pull/20570/head -> refs/pull/20570/head
* [new ref] refs/pull/20571/head -> refs/pull/20571/head
* [new ref] refs/pull/20572/head -> refs/pull/20572/head
* [new ref] refs/pull/20573/head -> refs/pull/20573/head
* [new ref] refs/pull/20574/head -> refs/pull/20574/head
* [new ref] refs/pull/20575/head -> refs/pull/20575/head
* [new ref] refs/pull/20577/head -> refs/pull/20577/head
* [new ref] refs/pull/20579/head -> refs/pull/20579/head
* [new ref] refs/pull/20580/head -> refs/pull/20580/head
* [new ref] refs/pull/20581/head -> refs/pull/20581/head
* [new ref] refs/pull/20583/head -> refs/pull/20583/head
* [new ref] refs/pull/20585/head -> refs/pull/20585/head
* [new ref] refs/pull/20589/head -> refs/pull/20589/head
* [new ref] refs/pull/20590/head -> refs/pull/20590/head
* [new ref] refs/pull/20591/head -> refs/pull/20591/head
* [new ref] refs/pull/20591/merge -> refs/pull/20591/merge
* [new ref] refs/pull/20592/head -> refs/pull/20592/head
* [new ref] refs/pull/20593/head -> refs/pull/20593/head
* [new ref] refs/pull/20596/head -> refs/pull/20596/head
* [new ref] refs/pull/20597/head -> refs/pull/20597/head
* [new ref] refs/pull/20598/head -> refs/pull/20598/head
* [new ref] refs/pull/20599/head -> refs/pull/20599/head
* [new ref] refs/pull/20604/head -> refs/pull/20604/head
* [new ref] refs/pull/20607/head -> refs/pull/20607/head
* [new ref] refs/pull/20608/head -> refs/pull/20608/head
* [new ref] refs/pull/20609/head -> refs/pull/20609/head
* [new ref] refs/pull/20610/head -> refs/pull/20610/head
* [new ref] refs/pull/20612/head -> refs/pull/20612/head
* [new ref] refs/pull/20613/head -> refs/pull/20613/head
* [new ref] refs/pull/20614/head -> refs/pull/20614/head
* [new ref] refs/pull/20617/head -> refs/pull/20617/head
* [new ref] refs/pull/20619/head -> refs/pull/20619/head
* [new ref] refs/pull/20620/head -> refs/pull/20620/head
* [new ref] refs/pull/20621/head -> refs/pull/20621/head
* [new ref] refs/pull/20622/head -> refs/pull/20622/head
* [new ref] refs/pull/20624/head -> refs/pull/20624/head
* [new ref] refs/pull/20624/merge -> refs/pull/20624/merge
* [new ref] refs/pull/20625/head -> refs/pull/20625/head
* [new ref] refs/pull/20626/head -> refs/pull/20626/head
* [new ref] refs/pull/20627/head -> refs/pull/20627/head
* [new ref] refs/pull/20629/head -> refs/pull/20629/head
* [new ref] refs/pull/20630/head -> refs/pull/20630/head
* [new ref] refs/pull/20634/head -> refs/pull/20634/head
* [new ref] refs/pull/20636/head -> refs/pull/20636/head
* [new ref] refs/pull/20637/head -> refs/pull/20637/head
* [new ref] refs/pull/20638/head -> refs/pull/20638/head
* [new ref] refs/pull/20639/head -> refs/pull/20639/head
* [new ref] refs/pull/20641/head -> refs/pull/20641/head
* [new ref] refs/pull/20643/head -> refs/pull/20643/head
* [new ref] refs/pull/20644/head -> refs/pull/20644/head
* [new ref] refs/pull/20645/head -> refs/pull/20645/head
* [new ref] refs/pull/20648/head -> refs/pull/20648/head
* [new ref] refs/pull/20651/head -> refs/pull/20651/head
* [new ref] refs/pull/20652/head -> refs/pull/20652/head
* [new ref] refs/pull/20653/head -> refs/pull/20653/head
* [new ref] refs/pull/20654/head -> refs/pull/20654/head
* [new ref] refs/pull/20658/head -> refs/pull/20658/head
* [new ref] refs/pull/20658/merge -> refs/pull/20658/merge
* [new ref] refs/pull/20659/head -> refs/pull/20659/head
* [new ref] refs/pull/20660/head -> refs/pull/20660/head
* [new ref] refs/pull/20660/merge -> refs/pull/20660/merge
* [new ref] refs/pull/20662/head -> refs/pull/20662/head
* [new ref] refs/pull/20664/head -> refs/pull/20664/head
* [new ref] refs/pull/20665/head -> refs/pull/20665/head
* [new ref] refs/pull/20667/head -> refs/pull/20667/head
* [new ref] refs/pull/20668/head -> refs/pull/20668/head
* [new ref] refs/pull/20668/merge -> refs/pull/20668/merge
* [new ref] refs/pull/20669/head -> refs/pull/20669/head
* [new ref] refs/pull/20670/head -> refs/pull/20670/head
* [new ref] refs/pull/20671/head -> refs/pull/20671/head
* [new ref] refs/pull/20673/head -> refs/pull/20673/head
* [new ref] refs/pull/20676/head -> refs/pull/20676/head
* [new ref] refs/pull/20677/head -> refs/pull/20677/head
* [new ref] refs/pull/20678/head -> refs/pull/20678/head
* [new ref] refs/pull/20679/head -> refs/pull/20679/head
* [new ref] refs/pull/20680/head -> refs/pull/20680/head
* [new ref] refs/pull/20681/head -> refs/pull/20681/head
* [new ref] refs/pull/20682/head -> refs/pull/20682/head
* [new ref] refs/pull/20683/head -> refs/pull/20683/head
* [new ref] refs/pull/20683/merge -> refs/pull/20683/merge
* [new ref] refs/pull/20684/head -> refs/pull/20684/head
* [new ref] refs/pull/20685/head -> refs/pull/20685/head
* [new ref] refs/pull/20689/head -> refs/pull/20689/head
* [new ref] refs/pull/20691/head -> refs/pull/20691/head
* [new ref] refs/pull/20692/head -> refs/pull/20692/head
* [new ref] refs/pull/20695/head -> refs/pull/20695/head
* [new ref] refs/pull/20695/merge -> refs/pull/20695/merge
* [new ref] refs/pull/20696/head -> refs/pull/20696/head
* [new ref] refs/pull/20699/head -> refs/pull/20699/head
* [new ref] refs/pull/20700/head -> refs/pull/20700/head
* [new ref] refs/pull/20700/merge -> refs/pull/20700/merge
* [new ref] refs/pull/20701/head -> refs/pull/20701/head
* [new ref] refs/pull/20706/head -> refs/pull/20706/head
* [new ref] refs/pull/20708/head -> refs/pull/20708/head
* [new ref] refs/pull/20709/head -> refs/pull/20709/head
* [new ref] refs/pull/20713/head -> refs/pull/20713/head
* [new ref] refs/pull/20714/head -> refs/pull/20714/head
* [new ref] refs/pull/20717/head -> refs/pull/20717/head
* [new ref] refs/pull/20722/head -> refs/pull/20722/head
* [new ref] refs/pull/20725/head -> refs/pull/20725/head
* [new ref] refs/pull/20726/head -> refs/pull/20726/head
* [new ref] refs/pull/20727/head -> refs/pull/20727/head
* [new ref] refs/pull/20729/head -> refs/pull/20729/head
* [new ref] refs/pull/20732/head -> refs/pull/20732/head
* [new ref] refs/pull/20733/head -> refs/pull/20733/head
* [new ref] refs/pull/20734/head -> refs/pull/20734/head
* [new ref] refs/pull/20735/head -> refs/pull/20735/head
* [new ref] refs/pull/20738/head -> refs/pull/20738/head
* [new ref] refs/pull/20738/merge -> refs/pull/20738/merge
* [new ref] refs/pull/20740/head -> refs/pull/20740/head
* [new ref] refs/pull/20742/head -> refs/pull/20742/head
* [new ref] refs/pull/20743/head -> refs/pull/20743/head
* [new ref] refs/pull/20745/head -> refs/pull/20745/head
* [new ref] refs/pull/20747/head -> refs/pull/20747/head
* [new ref] refs/pull/20748/head -> refs/pull/20748/head
* [new ref] refs/pull/20750/head -> refs/pull/20750/head
* [new ref] refs/pull/20751/head -> refs/pull/20751/head
* [new ref] refs/pull/20752/head -> refs/pull/20752/head
* [new ref] refs/pull/20754/head -> refs/pull/20754/head
* [new ref] refs/pull/20757/head -> refs/pull/20757/head
* [new ref] refs/pull/20758/head -> refs/pull/20758/head
* [new ref] refs/pull/20759/head -> refs/pull/20759/head
* [new ref] refs/pull/20760/head -> refs/pull/20760/head
* [new ref] refs/pull/20762/head -> refs/pull/20762/head
* [new ref] refs/pull/20762/merge -> refs/pull/20762/merge
* [new ref] refs/pull/20763/head -> refs/pull/20763/head
* [new ref] refs/pull/20766/head -> refs/pull/20766/head
* [new ref] refs/pull/20768/head -> refs/pull/20768/head
* [new ref] refs/pull/20769/head -> refs/pull/20769/head
* [new ref] refs/pull/20772/head -> refs/pull/20772/head
* [new ref] refs/pull/20774/head -> refs/pull/20774/head
* [new ref] refs/pull/20775/head -> refs/pull/20775/head
* [new ref] refs/pull/20776/head -> refs/pull/20776/head
* [new ref] refs/pull/20776/merge -> refs/pull/20776/merge
* [new ref] refs/pull/20777/head -> refs/pull/20777/head
* [new ref] refs/pull/20778/head -> refs/pull/20778/head
* [new ref] refs/pull/20779/head -> refs/pull/20779/head
* [new ref] refs/pull/20779/merge -> refs/pull/20779/merge
* [new ref] refs/pull/20783/head -> refs/pull/20783/head
* [new ref] refs/pull/20784/head -> refs/pull/20784/head
* [new ref] refs/pull/20786/head -> refs/pull/20786/head
* [new ref] refs/pull/20788/head -> refs/pull/20788/head
* [new ref] refs/pull/20789/head -> refs/pull/20789/head
* [new ref] refs/pull/20790/head -> refs/pull/20790/head
* [new ref] refs/pull/20793/head -> refs/pull/20793/head
* [new ref] refs/pull/20794/head -> refs/pull/20794/head
* [new ref] refs/pull/20796/head -> refs/pull/20796/head
* [new ref] refs/pull/20798/head -> refs/pull/20798/head
* [new ref] refs/pull/20798/merge -> refs/pull/20798/merge
* [new ref] refs/pull/20801/head -> refs/pull/20801/head
* [new ref] refs/pull/20802/head -> refs/pull/20802/head
* [new ref] refs/pull/20802/merge -> refs/pull/20802/merge
* [new ref] refs/pull/20805/head -> refs/pull/20805/head
* [new ref] refs/pull/20806/head -> refs/pull/20806/head
* [new ref] refs/pull/20807/head -> refs/pull/20807/head
* [new ref] refs/pull/20808/head -> refs/pull/20808/head
* [new ref] refs/pull/20809/head -> refs/pull/20809/head
* [new ref] refs/pull/20811/head -> refs/pull/20811/head
* [new ref] refs/pull/20815/head -> refs/pull/20815/head
* [new ref] refs/pull/20817/head -> refs/pull/20817/head
* [new ref] refs/pull/20820/head -> refs/pull/20820/head
* [new ref] refs/pull/20820/merge -> refs/pull/20820/merge
* [new ref] refs/pull/20821/head -> refs/pull/20821/head
* [new ref] refs/pull/20823/head -> refs/pull/20823/head
* [new ref] refs/pull/20825/head -> refs/pull/20825/head
* [new ref] refs/pull/20835/head -> refs/pull/20835/head
* [new ref] refs/pull/20836/head -> refs/pull/20836/head
* [new ref] refs/pull/20837/head -> refs/pull/20837/head
* [new ref] refs/pull/20840/head -> refs/pull/20840/head
* [new ref] refs/pull/20844/head -> refs/pull/20844/head
* [new ref] refs/pull/20845/head -> refs/pull/20845/head
* [new ref] refs/pull/20848/head -> refs/pull/20848/head
* [new ref] refs/pull/20848/merge -> refs/pull/20848/merge
* [new ref] refs/pull/20850/head -> refs/pull/20850/head
* [new ref] refs/pull/20852/head -> refs/pull/20852/head
* [new ref] refs/pull/20853/head -> refs/pull/20853/head
* [new ref] refs/pull/20860/head -> refs/pull/20860/head
* [new ref] refs/pull/20862/head -> refs/pull/20862/head
* [new ref] refs/pull/20863/head -> refs/pull/20863/head
* [new ref] refs/pull/20864/head -> refs/pull/20864/head
* [new ref] refs/pull/20865/head -> refs/pull/20865/head
* [new ref] refs/pull/20867/head -> refs/pull/20867/head
* [new ref] refs/pull/20869/head -> refs/pull/20869/head
* [new ref] refs/pull/20870/head -> refs/pull/20870/head
* [new ref] refs/pull/20871/head -> refs/pull/20871/head
* [new ref] refs/pull/20872/head -> refs/pull/20872/head
* [new ref] refs/pull/20873/head -> refs/pull/20873/head
* [new ref] refs/pull/20873/merge -> refs/pull/20873/merge
* [new ref] refs/pull/20874/head -> refs/pull/20874/head
* [new ref] refs/pull/20875/head -> refs/pull/20875/head
* [new ref] refs/pull/20876/head -> refs/pull/20876/head
* [new ref] refs/pull/20877/head -> refs/pull/20877/head
* [new ref] refs/pull/20879/head -> refs/pull/20879/head
* [new ref] refs/pull/20880/head -> refs/pull/20880/head
* [new ref] refs/pull/20881/head -> refs/pull/20881/head
* [new ref] refs/pull/20884/head -> refs/pull/20884/head
* [new ref] refs/pull/20887/head -> refs/pull/20887/head
* [new ref] refs/pull/20890/head -> refs/pull/20890/head
* [new ref] refs/pull/20892/head -> refs/pull/20892/head
* [new ref] refs/pull/20893/head -> refs/pull/20893/head
* [new ref] refs/pull/20895/head -> refs/pull/20895/head
* [new ref] refs/pull/20896/head -> refs/pull/20896/head
* [new ref] refs/pull/20897/head -> refs/pull/20897/head
* [new ref] refs/pull/20898/head -> refs/pull/20898/head
* [new ref] refs/pull/20902/head -> refs/pull/20902/head
* [new ref] refs/pull/20903/head -> refs/pull/20903/head
* [new ref] refs/pull/20904/head -> refs/pull/20904/head
* [new ref] refs/pull/20905/head -> refs/pull/20905/head
* [new ref] refs/pull/20911/head -> refs/pull/20911/head
* [new ref] refs/pull/20912/head -> refs/pull/20912/head
* [new ref] refs/pull/20913/head -> refs/pull/20913/head
* [new ref] refs/pull/20914/head -> refs/pull/20914/head
* [new ref] refs/pull/20915/head -> refs/pull/20915/head
* [new ref] refs/pull/20916/head -> refs/pull/20916/head
* [new ref] refs/pull/20917/head -> refs/pull/20917/head
* [new ref] refs/pull/20919/head -> refs/pull/20919/head
* [new ref] refs/pull/20922/head -> refs/pull/20922/head
* [new ref] refs/pull/20923/head -> refs/pull/20923/head
* [new ref] refs/pull/20927/head -> refs/pull/20927/head
* [new ref] refs/pull/20928/head -> refs/pull/20928/head
* [new ref] refs/pull/20931/head -> refs/pull/20931/head
* [new ref] refs/pull/20932/head -> refs/pull/20932/head
* [new ref] refs/pull/20934/head -> refs/pull/20934/head
* [new ref] refs/pull/20935/head -> refs/pull/20935/head
* [new ref] refs/pull/20937/head -> refs/pull/20937/head
* [new ref] refs/pull/20938/head -> refs/pull/20938/head
* [new ref] refs/pull/20940/head -> refs/pull/20940/head
* [new ref] refs/pull/20943/head -> refs/pull/20943/head
* [new ref] refs/pull/20945/head -> refs/pull/20945/head
* [new ref] refs/pull/20946/head -> refs/pull/20946/head
* [new ref] refs/pull/20950/head -> refs/pull/20950/head
* [new ref] refs/pull/20954/head -> refs/pull/20954/head
* [new ref] refs/pull/20958/head -> refs/pull/20958/head
* [new ref] refs/pull/20959/head -> refs/pull/20959/head
* [new ref] refs/pull/20960/head -> refs/pull/20960/head
* [new ref] refs/pull/20961/head -> refs/pull/20961/head
* [new ref] refs/pull/20963/head -> refs/pull/20963/head
* [new ref] refs/pull/20964/head -> refs/pull/20964/head
* [new ref] refs/pull/20966/head -> refs/pull/20966/head
* [new ref] refs/pull/20969/head -> refs/pull/20969/head
* [new ref] refs/pull/20970/head -> refs/pull/20970/head
* [new ref] refs/pull/20971/head -> refs/pull/20971/head
* [new ref] refs/pull/20972/head -> refs/pull/20972/head
* [new ref] refs/pull/20973/head -> refs/pull/20973/head
* [new ref] refs/pull/20974/head -> refs/pull/20974/head
* [new ref] refs/pull/20975/head -> refs/pull/20975/head
* [new ref] refs/pull/20979/head -> refs/pull/20979/head
* [new ref] refs/pull/20981/head -> refs/pull/20981/head
* [new ref] refs/pull/20982/head -> refs/pull/20982/head
* [new ref] refs/pull/20986/head -> refs/pull/20986/head
* [new ref] refs/pull/20987/head -> refs/pull/20987/head
* [new ref] refs/pull/20988/head -> refs/pull/20988/head
* [new ref] refs/pull/20989/head -> refs/pull/20989/head
* [new ref] refs/pull/20991/head -> refs/pull/20991/head
* [new ref] refs/pull/20992/head -> refs/pull/20992/head
* [new ref] refs/pull/21001/head -> refs/pull/21001/head
* [new ref] refs/pull/21003/head -> refs/pull/21003/head
* [new ref] refs/pull/21004/head -> refs/pull/21004/head
* [new ref] refs/pull/21008/head -> refs/pull/21008/head
* [new ref] refs/pull/21009/head -> refs/pull/21009/head
* [new ref] refs/pull/21011/head -> refs/pull/21011/head
* [new ref] refs/pull/21013/head -> refs/pull/21013/head
* [new ref] refs/pull/21015/head -> refs/pull/21015/head
* [new ref] refs/pull/21016/head -> refs/pull/21016/head
* [new ref] refs/pull/21017/head -> refs/pull/21017/head
* [new ref] refs/pull/21022/head -> refs/pull/21022/head
* [new ref] refs/pull/21024/head -> refs/pull/21024/head
* [new ref] refs/pull/21026/head -> refs/pull/21026/head
* [new ref] refs/pull/21028/head -> refs/pull/21028/head
* [new ref] refs/pull/21029/head -> refs/pull/21029/head
* [new ref] refs/pull/21030/head -> refs/pull/21030/head
* [new ref] refs/pull/21032/head -> refs/pull/21032/head
* [new ref] refs/pull/21033/head -> refs/pull/21033/head
* [new ref] refs/pull/21034/head -> refs/pull/21034/head
* [new ref] refs/pull/21035/head -> refs/pull/21035/head
* [new ref] refs/pull/21037/head -> refs/pull/21037/head
* [new ref] refs/pull/21039/head -> refs/pull/21039/head
* [new ref] refs/pull/21041/head -> refs/pull/21041/head
* [new ref] refs/pull/21042/head -> refs/pull/21042/head
* [new ref] refs/pull/21043/head -> refs/pull/21043/head
* [new ref] refs/pull/21044/head -> refs/pull/21044/head
* [new ref] refs/pull/21045/head -> refs/pull/21045/head
* [new ref] refs/pull/21047/head -> refs/pull/21047/head
* [new ref] refs/pull/21048/head -> refs/pull/21048/head
* [new ref] refs/pull/21050/head -> refs/pull/21050/head
* [new ref] refs/pull/21051/head -> refs/pull/21051/head
* [new ref] refs/pull/21054/head -> refs/pull/21054/head
* [new ref] refs/pull/21055/head -> refs/pull/21055/head
* [new ref] refs/pull/21056/head -> refs/pull/21056/head
* [new ref] refs/pull/21057/head -> refs/pull/21057/head
* [new ref] refs/pull/21058/head -> refs/pull/21058/head
* [new ref] refs/pull/21059/head -> refs/pull/21059/head
* [new ref] refs/pull/21060/head -> refs/pull/21060/head
* [new ref] refs/pull/21061/head -> refs/pull/21061/head
* [new ref] refs/pull/21062/head -> refs/pull/21062/head
* [new ref] refs/pull/21064/head -> refs/pull/21064/head
* [new ref] refs/pull/21067/head -> refs/pull/21067/head
* [new ref] refs/pull/21068/head -> refs/pull/21068/head
* [new ref] refs/pull/21070/head -> refs/pull/21070/head
* [new ref] refs/pull/21074/head -> refs/pull/21074/head
* [new ref] refs/pull/21078/head -> refs/pull/21078/head
* [new ref] refs/pull/21081/head -> refs/pull/21081/head
* [new ref] refs/pull/21083/head -> refs/pull/21083/head
* [new ref] refs/pull/21085/head -> refs/pull/21085/head
* [new ref] refs/pull/21087/head -> refs/pull/21087/head
* [new ref] refs/pull/21090/head -> refs/pull/21090/head
* [new ref] refs/pull/21090/merge -> refs/pull/21090/merge
* [new ref] refs/pull/21102/head -> refs/pull/21102/head
* [new ref] refs/pull/21103/head -> refs/pull/21103/head
* [new ref] refs/pull/21105/head -> refs/pull/21105/head
* [new ref] refs/pull/21107/head -> refs/pull/21107/head
* [new ref] refs/pull/21108/head -> refs/pull/21108/head
* [new ref] refs/pull/21110/head -> refs/pull/21110/head
* [new ref] refs/pull/21112/head -> refs/pull/21112/head
* [new ref] refs/pull/21112/merge -> refs/pull/21112/merge
* [new ref] refs/pull/21115/head -> refs/pull/21115/head
* [new ref] refs/pull/21116/head -> refs/pull/21116/head
* [new ref] refs/pull/21118/head -> refs/pull/21118/head
* [new ref] refs/pull/21119/head -> refs/pull/21119/head
* [new ref] refs/pull/21123/head -> refs/pull/21123/head
* [new ref] refs/pull/21124/head -> refs/pull/21124/head
* [new ref] refs/pull/21125/head -> refs/pull/21125/head
* [new ref] refs/pull/21126/head -> refs/pull/21126/head
* [new ref] refs/pull/21128/head -> refs/pull/21128/head
* [new ref] refs/pull/21129/head -> refs/pull/21129/head
* [new ref] refs/pull/21132/head -> refs/pull/21132/head
* [new ref] refs/pull/21133/head -> refs/pull/21133/head
* [new ref] refs/pull/21136/head -> refs/pull/21136/head
* [new ref] refs/pull/21137/head -> refs/pull/21137/head
* [new ref] refs/pull/21139/head -> refs/pull/21139/head
* [new ref] refs/pull/21141/head -> refs/pull/21141/head
* [new ref] refs/pull/21141/merge -> refs/pull/21141/merge
* [new ref] refs/pull/21146/head -> refs/pull/21146/head
* [new ref] refs/pull/21147/head -> refs/pull/21147/head
* [new ref] refs/pull/21148/head -> refs/pull/21148/head
* [new ref] refs/pull/21150/head -> refs/pull/21150/head
* [new ref] refs/pull/21151/head -> refs/pull/21151/head
* [new ref] refs/pull/21152/head -> refs/pull/21152/head
* [new ref] refs/pull/21154/head -> refs/pull/21154/head
* [new ref] refs/pull/21155/head -> refs/pull/21155/head
* [new ref] refs/pull/21156/head -> refs/pull/21156/head
* [new ref] refs/pull/21157/head -> refs/pull/21157/head
* [new ref] refs/pull/21159/head -> refs/pull/21159/head
* [new ref] refs/pull/21163/head -> refs/pull/21163/head
* [new ref] refs/pull/21164/head -> refs/pull/21164/head
* [new ref] refs/pull/21164/merge -> refs/pull/21164/merge
* [new ref] refs/pull/21166/head -> refs/pull/21166/head
* [new ref] refs/pull/21167/head -> refs/pull/21167/head
* [new ref] refs/pull/21168/head -> refs/pull/21168/head
* [new ref] refs/pull/21169/head -> refs/pull/21169/head
* [new ref] refs/pull/21171/head -> refs/pull/21171/head
* [new ref] refs/pull/21172/head -> refs/pull/21172/head
* [new ref] refs/pull/21173/head -> refs/pull/21173/head
* [new ref] refs/pull/21175/head -> refs/pull/21175/head
* [new ref] refs/pull/21177/head -> refs/pull/21177/head
* [new ref] refs/pull/21178/head -> refs/pull/21178/head
* [new ref] refs/pull/21179/head -> refs/pull/21179/head
* [new ref] refs/pull/21183/head -> refs/pull/21183/head
* [new ref] refs/pull/21184/head -> refs/pull/21184/head
* [new ref] refs/pull/21184/merge -> refs/pull/21184/merge
* [new ref] refs/pull/21186/head -> refs/pull/21186/head
* [new ref] refs/pull/21188/head -> refs/pull/21188/head
* [new ref] refs/pull/21189/head -> refs/pull/21189/head
* [new ref] refs/pull/21191/head -> refs/pull/21191/head
* [new ref] refs/pull/21191/merge -> refs/pull/21191/merge
* [new ref] refs/pull/21194/head -> refs/pull/21194/head
* [new ref] refs/pull/21196/head -> refs/pull/21196/head
* [new ref] refs/pull/21198/head -> refs/pull/21198/head
* [new ref] refs/pull/21199/head -> refs/pull/21199/head
* [new ref] refs/pull/21205/head -> refs/pull/21205/head
* [new ref] refs/pull/21206/head -> refs/pull/21206/head
* [new ref] refs/pull/21207/head -> refs/pull/21207/head
* [new ref] refs/pull/21209/head -> refs/pull/21209/head
* [new ref] refs/pull/21212/head -> refs/pull/21212/head
* [new ref] refs/pull/21213/head -> refs/pull/21213/head
* [new ref] refs/pull/21215/head -> refs/pull/21215/head
* [new ref] refs/pull/21215/merge -> refs/pull/21215/merge
* [new ref] refs/pull/21218/head -> refs/pull/21218/head
* [new ref] refs/pull/21222/head -> refs/pull/21222/head
* [new ref] refs/pull/21223/head -> refs/pull/21223/head
* [new ref] refs/pull/21224/head -> refs/pull/21224/head
* [new ref] refs/pull/21225/head -> refs/pull/21225/head
* [new ref] refs/pull/21225/merge -> refs/pull/21225/merge
* [new ref] refs/pull/21226/head -> refs/pull/21226/head
* [new ref] refs/pull/21227/head -> refs/pull/21227/head
* [new ref] refs/pull/21228/head -> refs/pull/21228/head
* [new ref] refs/pull/21229/head -> refs/pull/21229/head
* [new ref] refs/pull/21231/head -> refs/pull/21231/head
* [new ref] refs/pull/21233/head -> refs/pull/21233/head
* [new ref] refs/pull/21233/merge -> refs/pull/21233/merge
* [new ref] refs/pull/21234/head -> refs/pull/21234/head
* [new ref] refs/pull/21236/head -> refs/pull/21236/head
* [new ref] refs/pull/21237/head -> refs/pull/21237/head
* [new ref] refs/pull/21239/head -> refs/pull/21239/head
* [new ref] refs/pull/21241/head -> refs/pull/21241/head
* [new ref] refs/pull/21243/head -> refs/pull/21243/head
* [new ref] refs/pull/21245/head -> refs/pull/21245/head
* [new ref] refs/pull/21246/head -> refs/pull/21246/head
* [new ref] refs/pull/21248/head -> refs/pull/21248/head
* [new ref] refs/pull/21250/head -> refs/pull/21250/head
* [new ref] refs/pull/21254/head -> refs/pull/21254/head
* [new ref] refs/pull/21261/head -> refs/pull/21261/head
* [new ref] refs/pull/21262/head -> refs/pull/21262/head
* [new ref] refs/pull/21265/head -> refs/pull/21265/head
* [new ref] refs/pull/21265/merge -> refs/pull/21265/merge
* [new ref] refs/pull/21266/head -> refs/pull/21266/head
* [new ref] refs/pull/21267/head -> refs/pull/21267/head
* [new ref] refs/pull/21268/head -> refs/pull/21268/head
* [new ref] refs/pull/21269/head -> refs/pull/21269/head
* [new ref] refs/pull/21270/head -> refs/pull/21270/head
* [new ref] refs/pull/21270/merge -> refs/pull/21270/merge
* [new ref] refs/pull/21271/head -> refs/pull/21271/head
* [new ref] refs/pull/21272/head -> refs/pull/21272/head
* [new ref] refs/pull/21273/head -> refs/pull/21273/head
* [new ref] refs/pull/21278/head -> refs/pull/21278/head
* [new ref] refs/pull/21281/head -> refs/pull/21281/head
* [new ref] refs/pull/21282/head -> refs/pull/21282/head
* [new ref] refs/pull/21283/head -> refs/pull/21283/head
* [new ref] refs/pull/21284/head -> refs/pull/21284/head
* [new ref] refs/pull/21286/head -> refs/pull/21286/head
* [new ref] refs/pull/21287/head -> refs/pull/21287/head
* [new ref] refs/pull/21288/head -> refs/pull/21288/head
* [new ref] refs/pull/21290/head -> refs/pull/21290/head
* [new ref] refs/pull/21291/head -> refs/pull/21291/head
* [new ref] refs/pull/21292/head -> refs/pull/21292/head
* [new ref] refs/pull/21296/head -> refs/pull/21296/head
* [new ref] refs/pull/21298/head -> refs/pull/21298/head
* [new ref] refs/pull/21299/head -> refs/pull/21299/head
* [new ref] refs/pull/21300/head -> refs/pull/21300/head
* [new ref] refs/pull/21305/head -> refs/pull/21305/head
* [new ref] refs/pull/21306/head -> refs/pull/21306/head
* [new ref] refs/pull/21307/head -> refs/pull/21307/head
* [new ref] refs/pull/21307/merge -> refs/pull/21307/merge
* [new ref] refs/pull/21313/head -> refs/pull/21313/head
* [new ref] refs/pull/21314/head -> refs/pull/21314/head
* [new ref] refs/pull/21315/head -> refs/pull/21315/head
* [new ref] refs/pull/21316/head -> refs/pull/21316/head
* [new ref] refs/pull/21318/head -> refs/pull/21318/head
* [new ref] refs/pull/21319/head -> refs/pull/21319/head
* [new ref] refs/pull/21321/head -> refs/pull/21321/head
* [new ref] refs/pull/21322/head -> refs/pull/21322/head
* [new ref] refs/pull/21333/head -> refs/pull/21333/head
* [new ref] refs/pull/21334/head -> refs/pull/21334/head
* [new ref] refs/pull/21336/head -> refs/pull/21336/head
* [new ref] refs/pull/21339/head -> refs/pull/21339/head
* [new ref] refs/pull/21341/head -> refs/pull/21341/head
* [new ref] refs/pull/21342/head -> refs/pull/21342/head
* [new ref] refs/pull/21344/head -> refs/pull/21344/head
* [new ref] refs/pull/21345/head -> refs/pull/21345/head
* [new ref] refs/pull/21345/merge -> refs/pull/21345/merge
* [new ref] refs/pull/21346/head -> refs/pull/21346/head
* [new ref] refs/pull/21347/head -> refs/pull/21347/head
* [new ref] refs/pull/21348/head -> refs/pull/21348/head
* [new ref] refs/pull/21349/head -> refs/pull/21349/head
* [new ref] refs/pull/21351/head -> refs/pull/21351/head
* [new ref] refs/pull/21353/head -> refs/pull/21353/head
* [new ref] refs/pull/21354/head -> refs/pull/21354/head
* [new ref] refs/pull/21355/head -> refs/pull/21355/head
* [new ref] refs/pull/21356/head -> refs/pull/21356/head
* [new ref] refs/pull/21358/head -> refs/pull/21358/head
* [new ref] refs/pull/21360/head -> refs/pull/21360/head
* [new ref] refs/pull/21362/head -> refs/pull/21362/head
* [new ref] refs/pull/21363/head -> refs/pull/21363/head
* [new ref] refs/pull/21363/merge -> refs/pull/21363/merge
* [new ref] refs/pull/21364/head -> refs/pull/21364/head
* [new ref] refs/pull/21365/head -> refs/pull/21365/head
* [new ref] refs/pull/21369/head -> refs/pull/21369/head
* [new ref] refs/pull/21371/head -> refs/pull/21371/head
* [new ref] refs/pull/21374/head -> refs/pull/21374/head
* [new ref] refs/pull/21375/head -> refs/pull/21375/head
* [new ref] refs/pull/21376/head -> refs/pull/21376/head
* [new ref] refs/pull/21376/merge -> refs/pull/21376/merge
* [new ref] refs/pull/21377/head -> refs/pull/21377/head
* [new ref] refs/pull/21378/head -> refs/pull/21378/head
* [new ref] refs/pull/21379/head -> refs/pull/21379/head
* [new ref] refs/pull/21379/merge -> refs/pull/21379/merge
* [new ref] refs/pull/21380/head -> refs/pull/21380/head
* [new ref] refs/pull/21383/head -> refs/pull/21383/head
* [new ref] refs/pull/21384/head -> refs/pull/21384/head
* [new ref] refs/pull/21385/head -> refs/pull/21385/head
* [new ref] refs/pull/21388/head -> refs/pull/21388/head
* [new ref] refs/pull/21393/head -> refs/pull/21393/head
* [new ref] refs/pull/21394/head -> refs/pull/21394/head
* [new ref] refs/pull/21397/head -> refs/pull/21397/head
* [new ref] refs/pull/21397/merge -> refs/pull/21397/merge
* [new ref] refs/pull/21401/head -> refs/pull/21401/head
* [new ref] refs/pull/21402/head -> refs/pull/21402/head
* [new ref] refs/pull/21403/head -> refs/pull/21403/head
* [new ref] refs/pull/21404/head -> refs/pull/21404/head
* [new ref] refs/pull/21405/head -> refs/pull/21405/head
* [new ref] refs/pull/21407/head -> refs/pull/21407/head
* [new ref] refs/pull/21412/head -> refs/pull/21412/head
* [new ref] refs/pull/21414/head -> refs/pull/21414/head
* [new ref] refs/pull/21416/head -> refs/pull/21416/head
* [new ref] refs/pull/21419/head -> refs/pull/21419/head
* [new ref] refs/pull/21425/head -> refs/pull/21425/head
* [new ref] refs/pull/21426/head -> refs/pull/21426/head
* [new ref] refs/pull/21426/merge -> refs/pull/21426/merge
* [new ref] refs/pull/21428/head -> refs/pull/21428/head
* [new ref] refs/pull/21429/head -> refs/pull/21429/head
* [new ref] refs/pull/21431/head -> refs/pull/21431/head
* [new ref] refs/pull/21434/head -> refs/pull/21434/head
* [new ref] refs/pull/21436/head -> refs/pull/21436/head
* [new ref] refs/pull/21437/head -> refs/pull/21437/head
* [new ref] refs/pull/21439/head -> refs/pull/21439/head
* [new ref] refs/pull/21439/merge -> refs/pull/21439/merge
* [new ref] refs/pull/21440/head -> refs/pull/21440/head
* [new ref] refs/pull/21440/merge -> refs/pull/21440/merge
* [new ref] refs/pull/21443/head -> refs/pull/21443/head
* [new ref] refs/pull/21447/head -> refs/pull/21447/head
* [new ref] refs/pull/21455/head -> refs/pull/21455/head
* [new ref] refs/pull/21457/head -> refs/pull/21457/head
* [new ref] refs/pull/21458/head -> refs/pull/21458/head
* [new ref] refs/pull/21460/head -> refs/pull/21460/head
* [new ref] refs/pull/21463/head -> refs/pull/21463/head
* [new ref] refs/pull/21464/head -> refs/pull/21464/head
* [new ref] refs/pull/21467/head -> refs/pull/21467/head
* [new ref] refs/pull/21470/head -> refs/pull/21470/head
* [new ref] refs/pull/21471/head -> refs/pull/21471/head
* [new ref] refs/pull/21472/head -> refs/pull/21472/head
* [new ref] refs/pull/21473/head -> refs/pull/21473/head
* [new ref] refs/pull/21474/head -> refs/pull/21474/head
* [new ref] refs/pull/21475/head -> refs/pull/21475/head
* [new ref] refs/pull/21475/merge -> refs/pull/21475/merge
* [new ref] refs/pull/21478/head -> refs/pull/21478/head
* [new ref] refs/pull/21480/head -> refs/pull/21480/head
* [new ref] refs/pull/21481/head -> refs/pull/21481/head
* [new ref] refs/pull/21481/merge -> refs/pull/21481/merge
* [new ref] refs/pull/21485/head -> refs/pull/21485/head
* [new ref] refs/pull/21486/head -> refs/pull/21486/head
* [new ref] refs/pull/21487/head -> refs/pull/21487/head
* [new ref] refs/pull/21488/head -> refs/pull/21488/head
* [new ref] refs/pull/21490/head -> refs/pull/21490/head
* [new ref] refs/pull/21492/head -> refs/pull/21492/head
* [new ref] refs/pull/21495/head -> refs/pull/21495/head
* [new ref] refs/pull/21495/merge -> refs/pull/21495/merge
* [new ref] refs/pull/21496/head -> refs/pull/21496/head
* [new ref] refs/pull/21501/head -> refs/pull/21501/head
* [new ref] refs/pull/21502/head -> refs/pull/21502/head
* [new ref] refs/pull/21503/head -> refs/pull/21503/head
* [new ref] refs/pull/21506/head -> refs/pull/21506/head
* [new ref] refs/pull/21509/head -> refs/pull/21509/head
* [new ref] refs/pull/21510/head -> refs/pull/21510/head
* [new ref] refs/pull/21510/merge -> refs/pull/21510/merge
* [new ref] refs/pull/21511/head -> refs/pull/21511/head
* [new ref] refs/pull/21515/head -> refs/pull/21515/head
* [new ref] refs/pull/21516/head -> refs/pull/21516/head
* [new ref] refs/pull/21520/head -> refs/pull/21520/head
* [new ref] refs/pull/21521/head -> refs/pull/21521/head
* [new ref] refs/pull/21522/head -> refs/pull/21522/head
* [new ref] refs/pull/21523/head -> refs/pull/21523/head
* [new ref] refs/pull/21523/merge -> refs/pull/21523/merge
* [new ref] refs/pull/21524/head -> refs/pull/21524/head
* [new ref] refs/pull/21525/head -> refs/pull/21525/head
* [new ref] refs/pull/21526/head -> refs/pull/21526/head
* [new ref] refs/pull/21530/head -> refs/pull/21530/head
* [new ref] refs/pull/21531/head -> refs/pull/21531/head
* [new ref] refs/pull/21531/merge -> refs/pull/21531/merge
* [new ref] refs/pull/21532/head -> refs/pull/21532/head
* [new ref] refs/pull/21533/head -> refs/pull/21533/head
* [new ref] refs/pull/21534/head -> refs/pull/21534/head
* [new ref] refs/pull/21536/head -> refs/pull/21536/head
* [new ref] refs/pull/21540/head -> refs/pull/21540/head
* [new ref] refs/pull/21541/head -> refs/pull/21541/head
* [new ref] refs/pull/21541/merge -> refs/pull/21541/merge
* [new ref] refs/pull/21542/head -> refs/pull/21542/head
* [new ref] refs/pull/21543/head -> refs/pull/21543/head
* [new ref] refs/pull/21547/head -> refs/pull/21547/head
* [new ref] refs/pull/21550/head -> refs/pull/21550/head
* [new ref] refs/pull/21551/head -> refs/pull/21551/head
* [new ref] refs/pull/21552/head -> refs/pull/21552/head
* [new ref] refs/pull/21554/head -> refs/pull/21554/head
* [new ref] refs/pull/21557/head -> refs/pull/21557/head
* [new ref] refs/pull/21561/head -> refs/pull/21561/head
* [new ref] refs/pull/21566/head -> refs/pull/21566/head
* [new ref] refs/pull/21576/head -> refs/pull/21576/head
* [new ref] refs/pull/21581/head -> refs/pull/21581/head
* [new ref] refs/pull/21582/head -> refs/pull/21582/head
* [new ref] refs/pull/21583/head -> refs/pull/21583/head
* [new ref] refs/pull/21584/head -> refs/pull/21584/head
* [new ref] refs/pull/21586/head -> refs/pull/21586/head
* [new ref] refs/pull/21587/head -> refs/pull/21587/head
* [new ref] refs/pull/21589/head -> refs/pull/21589/head
* [new ref] refs/pull/21592/head -> refs/pull/21592/head
* [new ref] refs/pull/21593/head -> refs/pull/21593/head
* [new ref] refs/pull/21593/merge -> refs/pull/21593/merge
* [new ref] refs/pull/21595/head -> refs/pull/21595/head
* [new ref] refs/pull/21595/merge -> refs/pull/21595/merge
* [new ref] refs/pull/21601/head -> refs/pull/21601/head
* [new ref] refs/pull/21606/head -> refs/pull/21606/head
* [new ref] refs/pull/21607/head -> refs/pull/21607/head
* [new ref] refs/pull/21608/head -> refs/pull/21608/head
* [new ref] refs/pull/21610/head -> refs/pull/21610/head
* [new ref] refs/pull/21611/head -> refs/pull/21611/head
* [new ref] refs/pull/21613/head -> refs/pull/21613/head
* [new ref] refs/pull/21614/head -> refs/pull/21614/head
* [new ref] refs/pull/21616/head -> refs/pull/21616/head
* [new ref] refs/pull/21618/head -> refs/pull/21618/head
* [new ref] refs/pull/21620/head -> refs/pull/21620/head
* [new ref] refs/pull/21621/head -> refs/pull/21621/head
* [new ref] refs/pull/21624/head -> refs/pull/21624/head
* [new ref] refs/pull/21626/head -> refs/pull/21626/head
* [new ref] refs/pull/21628/head -> refs/pull/21628/head
* [new ref] refs/pull/21629/head -> refs/pull/21629/head
* [new ref] refs/pull/21631/head -> refs/pull/21631/head
* [new ref] refs/pull/21631/merge -> refs/pull/21631/merge
* [new ref] refs/pull/21632/head -> refs/pull/21632/head
* [new ref] refs/pull/21632/merge -> refs/pull/21632/merge
* [new ref] refs/pull/21636/head -> refs/pull/21636/head
* [new ref] refs/pull/21637/head -> refs/pull/21637/head
* [new ref] refs/pull/21638/head -> refs/pull/21638/head
* [new ref] refs/pull/21639/head -> refs/pull/21639/head
* [new ref] refs/pull/21640/head -> refs/pull/21640/head
* [new ref] refs/pull/21647/head -> refs/pull/21647/head
* [new ref] refs/pull/21648/head -> refs/pull/21648/head
* [new ref] refs/pull/21650/head -> refs/pull/21650/head
* [new ref] refs/pull/21651/head -> refs/pull/21651/head
* [new ref] refs/pull/21656/head -> refs/pull/21656/head
* [new ref] refs/pull/21659/head -> refs/pull/21659/head
* [new ref] refs/pull/21661/head -> refs/pull/21661/head
* [new ref] refs/pull/21661/merge -> refs/pull/21661/merge
* [new ref] refs/pull/21663/head -> refs/pull/21663/head
* [new ref] refs/pull/21664/head -> refs/pull/21664/head
* [new ref] refs/pull/21665/head -> refs/pull/21665/head
* [new ref] refs/pull/21666/head -> refs/pull/21666/head
* [new ref] refs/pull/21668/head -> refs/pull/21668/head
* [new ref] refs/pull/21668/merge -> refs/pull/21668/merge
* [new ref] refs/pull/21670/head -> refs/pull/21670/head
* [new ref] refs/pull/21674/head -> refs/pull/21674/head
* [new ref] refs/pull/21676/head -> refs/pull/21676/head
* [new ref] refs/pull/21678/head -> refs/pull/21678/head
* [new ref] refs/pull/21679/head -> refs/pull/21679/head
* [new ref] refs/pull/21680/head -> refs/pull/21680/head
* [new ref] refs/pull/21682/head -> refs/pull/21682/head
* [new ref] refs/pull/21683/head -> refs/pull/21683/head
* [new ref] refs/pull/21683/merge -> refs/pull/21683/merge
* [new ref] refs/pull/21687/head -> refs/pull/21687/head
* [new ref] refs/pull/21687/merge -> refs/pull/21687/merge
* [new ref] refs/pull/21689/head -> refs/pull/21689/head
* [new ref] refs/pull/21689/merge -> refs/pull/21689/merge
* [new ref] refs/pull/21693/head -> refs/pull/21693/head
* [new ref] refs/pull/21695/head -> refs/pull/21695/head
* [new ref] refs/pull/21696/head -> refs/pull/21696/head
* [new ref] refs/pull/21697/head -> refs/pull/21697/head
* [new ref] refs/pull/21699/head -> refs/pull/21699/head
* [new ref] refs/pull/21702/head -> refs/pull/21702/head
* [new ref] refs/pull/21703/head -> refs/pull/21703/head
* [new ref] refs/pull/21705/head -> refs/pull/21705/head
* [new ref] refs/pull/21706/head -> refs/pull/21706/head
* [new ref] refs/pull/21707/head -> refs/pull/21707/head
* [new ref] refs/pull/21708/head -> refs/pull/21708/head
* [new ref] refs/pull/21710/head -> refs/pull/21710/head
* [new ref] refs/pull/21711/head -> refs/pull/21711/head
* [new ref] refs/pull/21713/head -> refs/pull/21713/head
* [new ref] refs/pull/21714/head -> refs/pull/21714/head
* [new ref] refs/pull/21715/head -> refs/pull/21715/head
* [new ref] refs/pull/21717/head -> refs/pull/21717/head
* [new ref] refs/pull/21719/head -> refs/pull/21719/head
* [new ref] refs/pull/21720/head -> refs/pull/21720/head
* [new ref] refs/pull/21721/head -> refs/pull/21721/head
* [new ref] refs/pull/21728/head -> refs/pull/21728/head
* [new ref] refs/pull/21730/head -> refs/pull/21730/head
* [new ref] refs/pull/21731/head -> refs/pull/21731/head
* [new ref] refs/pull/21731/merge -> refs/pull/21731/merge
* [new ref] refs/pull/21738/head -> refs/pull/21738/head
* [new ref] refs/pull/21742/head -> refs/pull/21742/head
* [new ref] refs/pull/21747/head -> refs/pull/21747/head
* [new ref] refs/pull/21748/head -> refs/pull/21748/head
* [new ref] refs/pull/21750/head -> refs/pull/21750/head
* [new ref] refs/pull/21753/head -> refs/pull/21753/head
* [new ref] refs/pull/21758/head -> refs/pull/21758/head
* [new ref] refs/pull/21759/head -> refs/pull/21759/head
* [new ref] refs/pull/21762/head -> refs/pull/21762/head
* [new ref] refs/pull/21762/merge -> refs/pull/21762/merge
* [new ref] refs/pull/21766/head -> refs/pull/21766/head
* [new ref] refs/pull/21769/head -> refs/pull/21769/head
* [new ref] refs/pull/21770/head -> refs/pull/21770/head
* [new ref] refs/pull/21771/head -> refs/pull/21771/head
* [new ref] refs/pull/21772/head -> refs/pull/21772/head
* [new ref] refs/pull/21774/head -> refs/pull/21774/head
* [new ref] refs/pull/21775/head -> refs/pull/21775/head
* [new ref] refs/pull/21776/head -> refs/pull/21776/head
* [new ref] refs/pull/21777/head -> refs/pull/21777/head
* [new ref] refs/pull/21778/head -> refs/pull/21778/head
* [new ref] refs/pull/21780/head -> refs/pull/21780/head
* [new ref] refs/pull/21781/head -> refs/pull/21781/head
* [new ref] refs/pull/21782/head -> refs/pull/21782/head
* [new ref] refs/pull/21784/head -> refs/pull/21784/head
* [new ref] refs/pull/21786/head -> refs/pull/21786/head
* [new ref] refs/pull/21787/head -> refs/pull/21787/head
* [new ref] refs/pull/21788/head -> refs/pull/21788/head
* [new ref] refs/pull/21790/head -> refs/pull/21790/head
* [new ref] refs/pull/21791/head -> refs/pull/21791/head
* [new ref] refs/pull/21794/head -> refs/pull/21794/head
* [new ref] refs/pull/21796/head -> refs/pull/21796/head
* [new ref] refs/pull/21797/head -> refs/pull/21797/head
* [new ref] refs/pull/21799/head -> refs/pull/21799/head
* [new ref] refs/pull/21800/head -> refs/pull/21800/head
* [new ref] refs/pull/21801/head -> refs/pull/21801/head
* [new ref] refs/pull/21802/head -> refs/pull/21802/head
* [new ref] refs/pull/21804/head -> refs/pull/21804/head
* [new ref] refs/pull/21804/merge -> refs/pull/21804/merge
* [new ref] refs/pull/21807/head -> refs/pull/21807/head
* [new ref] refs/pull/21810/head -> refs/pull/21810/head
* [new ref] refs/pull/21811/head -> refs/pull/21811/head
* [new ref] refs/pull/21812/head -> refs/pull/21812/head
* [new ref] refs/pull/21813/head -> refs/pull/21813/head
* [new ref] refs/pull/21816/head -> refs/pull/21816/head
* [new ref] refs/pull/21819/head -> refs/pull/21819/head
* [new ref] refs/pull/21821/head -> refs/pull/21821/head
* [new ref] refs/pull/21826/head -> refs/pull/21826/head
* [new ref] refs/pull/21827/head -> refs/pull/21827/head
* [new ref] refs/pull/21828/head -> refs/pull/21828/head
* [new ref] refs/pull/21829/head -> refs/pull/21829/head
* [new ref] refs/pull/21837/head -> refs/pull/21837/head
* [new ref] refs/pull/21838/head -> refs/pull/21838/head
* [new ref] refs/pull/21839/head -> refs/pull/21839/head
* [new ref] refs/pull/21840/head -> refs/pull/21840/head
* [new ref] refs/pull/21840/merge -> refs/pull/21840/merge
* [new ref] refs/pull/21843/head -> refs/pull/21843/head
* [new ref] refs/pull/21844/head -> refs/pull/21844/head
* [new ref] refs/pull/21848/head -> refs/pull/21848/head
* [new ref] refs/pull/21850/head -> refs/pull/21850/head
* [new ref] refs/pull/21852/head -> refs/pull/21852/head
* [new ref] refs/pull/21854/head -> refs/pull/21854/head
* [new ref] refs/pull/21858/head -> refs/pull/21858/head
* [new ref] refs/pull/21859/head -> refs/pull/21859/head
* [new ref] refs/pull/21864/head -> refs/pull/21864/head
* [new ref] refs/pull/21865/head -> refs/pull/21865/head
* [new ref] refs/pull/21871/head -> refs/pull/21871/head
* [new ref] refs/pull/21873/head -> refs/pull/21873/head
* [new ref] refs/pull/21873/merge -> refs/pull/21873/merge
* [new ref] refs/pull/21875/head -> refs/pull/21875/head
* [new ref] refs/pull/21876/head -> refs/pull/21876/head
* [new ref] refs/pull/21877/head -> refs/pull/21877/head
* [new ref] refs/pull/21877/merge -> refs/pull/21877/merge
* [new ref] refs/pull/21878/head -> refs/pull/21878/head
* [new ref] refs/pull/21879/head -> refs/pull/21879/head
* [new ref] refs/pull/21880/head -> refs/pull/21880/head
* [new ref] refs/pull/21880/merge -> refs/pull/21880/merge
* [new ref] refs/pull/21881/head -> refs/pull/21881/head
* [new ref] refs/pull/21884/head -> refs/pull/21884/head
* [new ref] refs/pull/21885/head -> refs/pull/21885/head
* [new ref] refs/pull/21886/head -> refs/pull/21886/head
* [new ref] refs/pull/21894/head -> refs/pull/21894/head
* [new ref] refs/pull/21896/head -> refs/pull/21896/head
* [new ref] refs/pull/21897/head -> refs/pull/21897/head
* [new ref] refs/pull/21902/head -> refs/pull/21902/head
* [new ref] refs/pull/21903/head -> refs/pull/21903/head
* [new ref] refs/pull/21905/head -> refs/pull/21905/head
* [new ref] refs/pull/21906/head -> refs/pull/21906/head
* [new ref] refs/pull/21907/head -> refs/pull/21907/head
* [new ref] refs/pull/21908/head -> refs/pull/21908/head
* [new ref] refs/pull/21909/head -> refs/pull/21909/head
* [new ref] refs/pull/21910/head -> refs/pull/21910/head
* [new ref] refs/pull/21912/head -> refs/pull/21912/head
* [new ref] refs/pull/21913/head -> refs/pull/21913/head
* [new ref] refs/pull/21914/head -> refs/pull/21914/head
* [new ref] refs/pull/21915/head -> refs/pull/21915/head
* [new ref] refs/pull/21916/head -> refs/pull/21916/head
* [new ref] refs/pull/21917/head -> refs/pull/21917/head
* [new ref] refs/pull/21918/head -> refs/pull/21918/head
* [new ref] refs/pull/21921/head -> refs/pull/21921/head
* [new ref] refs/pull/21922/head -> refs/pull/21922/head
* [new ref] refs/pull/21927/head -> refs/pull/21927/head
* [new ref] refs/pull/21930/head -> refs/pull/21930/head
* [new ref] refs/pull/21931/head -> refs/pull/21931/head
* [new ref] refs/pull/21932/head -> refs/pull/21932/head
* [new ref] refs/pull/21933/head -> refs/pull/21933/head
* [new ref] refs/pull/21934/head -> refs/pull/21934/head
* [new ref] refs/pull/21935/head -> refs/pull/21935/head
* [new ref] refs/pull/21936/head -> refs/pull/21936/head
* [new ref] refs/pull/21936/merge -> refs/pull/21936/merge
* [new ref] refs/pull/21938/head -> refs/pull/21938/head
* [new ref] refs/pull/21940/head -> refs/pull/21940/head
* [new ref] refs/pull/21941/head -> refs/pull/21941/head
* [new ref] refs/pull/21942/head -> refs/pull/21942/head
* [new ref] refs/pull/21944/head -> refs/pull/21944/head
* [new ref] refs/pull/21945/head -> refs/pull/21945/head
* [new ref] refs/pull/21946/head -> refs/pull/21946/head
* [new ref] refs/pull/21947/head -> refs/pull/21947/head
* [new ref] refs/pull/21948/head -> refs/pull/21948/head
* [new ref] refs/pull/21949/head -> refs/pull/21949/head
* [new ref] refs/pull/21950/head -> refs/pull/21950/head
* [new ref] refs/pull/21951/head -> refs/pull/21951/head
* [new ref] refs/pull/21952/head -> refs/pull/21952/head
* [new ref] refs/pull/21954/head -> refs/pull/21954/head
* [new ref] refs/pull/21955/head -> refs/pull/21955/head
* [new ref] refs/pull/21958/head -> refs/pull/21958/head
* [new ref] refs/pull/21959/head -> refs/pull/21959/head
* [new ref] refs/pull/21960/head -> refs/pull/21960/head
* [new ref] refs/pull/21961/head -> refs/pull/21961/head
* [new ref] refs/pull/21962/head -> refs/pull/21962/head
* [new ref] refs/pull/21963/head -> refs/pull/21963/head
* [new ref] refs/pull/21963/merge -> refs/pull/21963/merge
* [new ref] refs/pull/21964/head -> refs/pull/21964/head
* [new ref] refs/pull/21965/head -> refs/pull/21965/head
* [new ref] refs/pull/21966/head -> refs/pull/21966/head
* [new ref] refs/pull/21967/head -> refs/pull/21967/head
* [new ref] refs/pull/21971/head -> refs/pull/21971/head
* [new ref] refs/pull/21972/head -> refs/pull/21972/head
* [new ref] refs/pull/21973/head -> refs/pull/21973/head
* [new ref] refs/pull/21976/head -> refs/pull/21976/head
* [new ref] refs/pull/21976/merge -> refs/pull/21976/merge
* [new ref] refs/pull/21977/head -> refs/pull/21977/head
* [new ref] refs/pull/21979/head -> refs/pull/21979/head
* [new ref] refs/pull/21980/head -> refs/pull/21980/head
* [new ref] refs/pull/21984/head -> refs/pull/21984/head
* [new ref] refs/pull/21986/head -> refs/pull/21986/head
* [new ref] refs/pull/21988/head -> refs/pull/21988/head
* [new ref] refs/pull/21989/head -> refs/pull/21989/head
* [new ref] refs/pull/21991/head -> refs/pull/21991/head
* [new ref] refs/pull/21992/head -> refs/pull/21992/head
* [new ref] refs/pull/21995/head -> refs/pull/21995/head
* [new ref] refs/pull/21996/head -> refs/pull/21996/head
* [new ref] refs/pull/21998/head -> refs/pull/21998/head
* [new ref] refs/pull/21998/merge -> refs/pull/21998/merge
* [new ref] refs/pull/22005/head -> refs/pull/22005/head
* [new ref] refs/pull/22007/head -> refs/pull/22007/head
* [new ref] refs/pull/22014/head -> refs/pull/22014/head
* [new ref] refs/pull/22018/head -> refs/pull/22018/head
* [new ref] refs/pull/22022/head -> refs/pull/22022/head
* [new ref] refs/pull/22024/head -> refs/pull/22024/head
* [new ref] refs/pull/22026/head -> refs/pull/22026/head
* [new ref] refs/pull/22027/head -> refs/pull/22027/head
* [new ref] refs/pull/22030/head -> refs/pull/22030/head
* [new ref] refs/pull/22034/head -> refs/pull/22034/head
* [new ref] refs/pull/22036/head -> refs/pull/22036/head
* [new ref] refs/pull/22037/head -> refs/pull/22037/head
* [new ref] refs/pull/22038/head -> refs/pull/22038/head
* [new ref] refs/pull/22039/head -> refs/pull/22039/head
* [new ref] refs/pull/22040/head -> refs/pull/22040/head
* [new ref] refs/pull/22042/head -> refs/pull/22042/head
* [new ref] refs/pull/22043/head -> refs/pull/22043/head
* [new ref] refs/pull/22044/head -> refs/pull/22044/head
* [new ref] refs/pull/22045/head -> refs/pull/22045/head
* [new ref] refs/pull/22047/head -> refs/pull/22047/head
* [new ref] refs/pull/22051/head -> refs/pull/22051/head
* [new ref] refs/pull/22054/head -> refs/pull/22054/head
* [new ref] refs/pull/22055/head -> refs/pull/22055/head
* [new ref] refs/pull/22056/head -> refs/pull/22056/head
* [new ref] refs/pull/22059/head -> refs/pull/22059/head
* [new ref] refs/pull/22060/head -> refs/pull/22060/head
* [new ref] refs/pull/22063/head -> refs/pull/22063/head
* [new ref] refs/pull/22065/head -> refs/pull/22065/head
* [new ref] refs/pull/22066/head -> refs/pull/22066/head
* [new ref] refs/pull/22066/merge -> refs/pull/22066/merge
* [new ref] refs/pull/22067/head -> refs/pull/22067/head
* [new ref] refs/pull/22067/merge -> refs/pull/22067/merge
* [new ref] refs/pull/22069/head -> refs/pull/22069/head
* [new ref] refs/pull/22071/head -> refs/pull/22071/head
* [new ref] refs/pull/22072/head -> refs/pull/22072/head
* [new ref] refs/pull/22074/head -> refs/pull/22074/head
* [new ref] refs/pull/22076/head -> refs/pull/22076/head
* [new ref] refs/pull/22081/head -> refs/pull/22081/head
* [new ref] refs/pull/22081/merge -> refs/pull/22081/merge
* [new ref] refs/pull/22082/head -> refs/pull/22082/head
* [new ref] refs/pull/22085/head -> refs/pull/22085/head
* [new ref] refs/pull/22086/head -> refs/pull/22086/head
* [new ref] refs/pull/22087/head -> refs/pull/22087/head
* [new ref] refs/pull/22087/merge -> refs/pull/22087/merge
* [new ref] refs/pull/22088/head -> refs/pull/22088/head
* [new ref] refs/pull/22089/head -> refs/pull/22089/head
* [new ref] refs/pull/22090/head -> refs/pull/22090/head
* [new ref] refs/pull/22091/head -> refs/pull/22091/head
* [new ref] refs/pull/22095/head -> refs/pull/22095/head
* [new ref] refs/pull/22097/head -> refs/pull/22097/head
* [new ref] refs/pull/22097/merge -> refs/pull/22097/merge
* [new ref] refs/pull/22100/head -> refs/pull/22100/head
* [new ref] refs/pull/22100/merge -> refs/pull/22100/merge
* [new ref] refs/pull/22104/head -> refs/pull/22104/head
* [new ref] refs/pull/22105/head -> refs/pull/22105/head
* [new ref] refs/pull/22106/head -> refs/pull/22106/head
* [new ref] refs/pull/22110/head -> refs/pull/22110/head
* [new ref] refs/pull/22115/head -> refs/pull/22115/head
* [new ref] refs/pull/22117/head -> refs/pull/22117/head
* [new ref] refs/pull/22118/head -> refs/pull/22118/head
* [new ref] refs/pull/22119/head -> refs/pull/22119/head
* [new ref] refs/pull/22122/head -> refs/pull/22122/head
* [new ref] refs/pull/22128/head -> refs/pull/22128/head
* [new ref] refs/pull/22132/head -> refs/pull/22132/head
* [new ref] refs/pull/22134/head -> refs/pull/22134/head
* [new ref] refs/pull/22134/merge -> refs/pull/22134/merge
* [new ref] refs/pull/22135/head -> refs/pull/22135/head
* [new ref] refs/pull/22135/merge -> refs/pull/22135/merge
* [new ref] refs/pull/22138/head -> refs/pull/22138/head
* [new ref] refs/pull/22139/head -> refs/pull/22139/head
* [new ref] refs/pull/22140/head -> refs/pull/22140/head
* [new ref] refs/pull/22148/head -> refs/pull/22148/head
* [new ref] refs/pull/22151/head -> refs/pull/22151/head
* [new ref] refs/pull/22153/head -> refs/pull/22153/head
* [new ref] refs/pull/22155/head -> refs/pull/22155/head
* [new ref] refs/pull/22156/head -> refs/pull/22156/head
* [new ref] refs/pull/22157/head -> refs/pull/22157/head
* [new ref] refs/pull/22157/merge -> refs/pull/22157/merge
* [new ref] refs/pull/22158/head -> refs/pull/22158/head
* [new ref] refs/pull/22161/head -> refs/pull/22161/head
* [new ref] refs/pull/22162/head -> refs/pull/22162/head
* [new ref] refs/pull/22165/head -> refs/pull/22165/head
* [new ref] refs/pull/22172/head -> refs/pull/22172/head
* [new ref] refs/pull/22173/head -> refs/pull/22173/head
* [new ref] refs/pull/22174/head -> refs/pull/22174/head
* [new ref] refs/pull/22175/head -> refs/pull/22175/head
* [new ref] refs/pull/22177/head -> refs/pull/22177/head
* [new ref] refs/pull/22178/head -> refs/pull/22178/head
* [new ref] refs/pull/22180/head -> refs/pull/22180/head
* [new ref] refs/pull/22181/head -> refs/pull/22181/head
* [new ref] refs/pull/22188/head -> refs/pull/22188/head
* [new ref] refs/pull/22189/head -> refs/pull/22189/head
* [new ref] refs/pull/22190/head -> refs/pull/22190/head
* [new ref] refs/pull/22192/head -> refs/pull/22192/head
* [new ref] refs/pull/22194/head -> refs/pull/22194/head
* [new ref] refs/pull/22196/head -> refs/pull/22196/head
* [new ref] refs/pull/22197/head -> refs/pull/22197/head
* [new ref] refs/pull/22199/head -> refs/pull/22199/head
* [new ref] refs/pull/22201/head -> refs/pull/22201/head
* [new ref] refs/pull/22202/head -> refs/pull/22202/head
* [new ref] refs/pull/22204/head -> refs/pull/22204/head
* [new ref] refs/pull/22205/head -> refs/pull/22205/head
* [new ref] refs/pull/22206/head -> refs/pull/22206/head
* [new ref] refs/pull/22207/head -> refs/pull/22207/head
* [new ref] refs/pull/22209/head -> refs/pull/22209/head
* [new ref] refs/pull/22209/merge -> refs/pull/22209/merge
* [new ref] refs/pull/22210/head -> refs/pull/22210/head
* [new ref] refs/pull/22211/head -> refs/pull/22211/head
* [new ref] refs/pull/22212/head -> refs/pull/22212/head
* [new ref] refs/pull/22212/merge -> refs/pull/22212/merge
* [new ref] refs/pull/22213/head -> refs/pull/22213/head
* [new ref] refs/pull/22214/head -> refs/pull/22214/head
* [new ref] refs/pull/22216/head -> refs/pull/22216/head
* [new ref] refs/pull/22217/head -> refs/pull/22217/head
* [new ref] refs/pull/22218/head -> refs/pull/22218/head
* [new ref] refs/pull/22220/head -> refs/pull/22220/head
* [new ref] refs/pull/22222/head -> refs/pull/22222/head
* [new ref] refs/pull/22224/head -> refs/pull/22224/head
* [new ref] refs/pull/22227/head -> refs/pull/22227/head
* [new ref] refs/pull/22229/head -> refs/pull/22229/head
* [new ref] refs/pull/22230/head -> refs/pull/22230/head
* [new ref] refs/pull/22231/head -> refs/pull/22231/head
* [new ref] refs/pull/22234/head -> refs/pull/22234/head
* [new ref] refs/pull/22235/head -> refs/pull/22235/head
* [new ref] refs/pull/22236/head -> refs/pull/22236/head
* [new ref] refs/pull/22237/head -> refs/pull/22237/head
* [new ref] refs/pull/22238/head -> refs/pull/22238/head
* [new ref] refs/pull/22239/head -> refs/pull/22239/head
* [new ref] refs/pull/22243/head -> refs/pull/22243/head
* [new ref] refs/pull/22245/head -> refs/pull/22245/head
* [new ref] refs/pull/22250/head -> refs/pull/22250/head
* [new ref] refs/pull/22251/head -> refs/pull/22251/head
* [new ref] refs/pull/22252/head -> refs/pull/22252/head
* [new ref] refs/pull/22253/head -> refs/pull/22253/head
* [new ref] refs/pull/22254/head -> refs/pull/22254/head
* [new ref] refs/pull/22255/head -> refs/pull/22255/head
* [new ref] refs/pull/22256/head -> refs/pull/22256/head
* [new ref] refs/pull/22259/head -> refs/pull/22259/head
* [new ref] refs/pull/22263/head -> refs/pull/22263/head
* [new ref] refs/pull/22264/head -> refs/pull/22264/head
* [new ref] refs/pull/22268/head -> refs/pull/22268/head
* [new ref] refs/pull/22268/merge -> refs/pull/22268/merge
* [new ref] refs/pull/22269/head -> refs/pull/22269/head
* [new ref] refs/pull/22270/head -> refs/pull/22270/head
* [new ref] refs/pull/22272/head -> refs/pull/22272/head
* [new ref] refs/pull/22275/head -> refs/pull/22275/head
* [new ref] refs/pull/22276/head -> refs/pull/22276/head
* [new ref] refs/pull/22278/head -> refs/pull/22278/head
* [new ref] refs/pull/22279/head -> refs/pull/22279/head
* [new ref] refs/pull/22279/merge -> refs/pull/22279/merge
* [new ref] refs/pull/22280/head -> refs/pull/22280/head
* [new ref] refs/pull/22281/head -> refs/pull/22281/head
* [new ref] refs/pull/22282/head -> refs/pull/22282/head
* [new ref] refs/pull/22283/head -> refs/pull/22283/head
* [new ref] refs/pull/22284/head -> refs/pull/22284/head
* [new ref] refs/pull/22285/head -> refs/pull/22285/head
* [new ref] refs/pull/22286/head -> refs/pull/22286/head
* [new ref] refs/pull/22291/head -> refs/pull/22291/head
* [new ref] refs/pull/22301/head -> refs/pull/22301/head
* [new ref] refs/pull/22301/merge -> refs/pull/22301/merge
* [new ref] refs/pull/22302/head -> refs/pull/22302/head
* [new ref] refs/pull/22305/head -> refs/pull/22305/head
* [new ref] refs/pull/22306/head -> refs/pull/22306/head
* [new ref] refs/pull/22308/head -> refs/pull/22308/head
* [new ref] refs/pull/22310/head -> refs/pull/22310/head
* [new ref] refs/pull/22313/head -> refs/pull/22313/head
* [new ref] refs/pull/22315/head -> refs/pull/22315/head
* [new ref] refs/pull/22319/head -> refs/pull/22319/head
* [new ref] refs/pull/22320/head -> refs/pull/22320/head
* [new ref] refs/pull/22322/head -> refs/pull/22322/head
* [new ref] refs/pull/22324/head -> refs/pull/22324/head
* [new ref] refs/pull/22324/merge -> refs/pull/22324/merge
* [new ref] refs/pull/22325/head -> refs/pull/22325/head
* [new ref] refs/pull/22325/merge -> refs/pull/22325/merge
* [new ref] refs/pull/22326/head -> refs/pull/22326/head
* [new ref] refs/pull/22327/head -> refs/pull/22327/head
* [new ref] refs/pull/22330/head -> refs/pull/22330/head
* [new ref] refs/pull/22331/head -> refs/pull/22331/head
* [new ref] refs/pull/22332/head -> refs/pull/22332/head
* [new ref] refs/pull/22334/head -> refs/pull/22334/head
* [new ref] refs/pull/22335/head -> refs/pull/22335/head
* [new ref] refs/pull/22337/head -> refs/pull/22337/head
* [new ref] refs/pull/22339/head -> refs/pull/22339/head
* [new ref] refs/pull/22341/head -> refs/pull/22341/head
* [new ref] refs/pull/22343/head -> refs/pull/22343/head
* [new ref] refs/pull/22345/head -> refs/pull/22345/head
* [new ref] refs/pull/22346/head -> refs/pull/22346/head
* [new ref] refs/pull/22347/head -> refs/pull/22347/head
* [new ref] refs/pull/22348/head -> refs/pull/22348/head
* [new ref] refs/pull/22350/head -> refs/pull/22350/head
* [new ref] refs/pull/22352/head -> refs/pull/22352/head
* [new ref] refs/pull/22352/merge -> refs/pull/22352/merge
* [new ref] refs/pull/22353/head -> refs/pull/22353/head
* [new ref] refs/pull/22354/head -> refs/pull/22354/head
* [new ref] refs/pull/22355/head -> refs/pull/22355/head
* [new ref] refs/pull/22356/head -> refs/pull/22356/head
* [new ref] refs/pull/22357/head -> refs/pull/22357/head
* [new ref] refs/pull/22359/head -> refs/pull/22359/head
* [new ref] refs/pull/22363/head -> refs/pull/22363/head
* [new ref] refs/pull/22364/head -> refs/pull/22364/head
* [new ref] refs/pull/22365/head -> refs/pull/22365/head
* [new ref] refs/pull/22366/head -> refs/pull/22366/head
* [new ref] refs/pull/22372/head -> refs/pull/22372/head
* [new ref] refs/pull/22373/head -> refs/pull/22373/head
* [new ref] refs/pull/22375/head -> refs/pull/22375/head
* [new ref] refs/pull/22377/head -> refs/pull/22377/head
* [new ref] refs/pull/22378/head -> refs/pull/22378/head
* [new ref] refs/pull/22379/head -> refs/pull/22379/head
* [new ref] refs/pull/22380/head -> refs/pull/22380/head
* [new ref] refs/pull/22382/head -> refs/pull/22382/head
* [new ref] refs/pull/22384/head -> refs/pull/22384/head
* [new ref] refs/pull/22385/head -> refs/pull/22385/head
* [new ref] refs/pull/22386/head -> refs/pull/22386/head
* [new ref] refs/pull/22388/head -> refs/pull/22388/head
* [new ref] refs/pull/22388/merge -> refs/pull/22388/merge
* [new ref] refs/pull/22389/head -> refs/pull/22389/head
* [new ref] refs/pull/22391/head -> refs/pull/22391/head
* [new ref] refs/pull/22393/head -> refs/pull/22393/head
* [new ref] refs/pull/22395/head -> refs/pull/22395/head
* [new ref] refs/pull/22397/head -> refs/pull/22397/head
* [new ref] refs/pull/22399/head -> refs/pull/22399/head
* [new ref] refs/pull/22402/head -> refs/pull/22402/head
* [new ref] refs/pull/22407/head -> refs/pull/22407/head
* [new ref] refs/pull/22408/head -> refs/pull/22408/head
* [new ref] refs/pull/22411/head -> refs/pull/22411/head
* [new ref] refs/pull/22412/head -> refs/pull/22412/head
* [new ref] refs/pull/22416/head -> refs/pull/22416/head
* [new ref] refs/pull/22418/head -> refs/pull/22418/head
* [new ref] refs/pull/22418/merge -> refs/pull/22418/merge
* [new ref] refs/pull/22423/head -> refs/pull/22423/head
* [new ref] refs/pull/22425/head -> refs/pull/22425/head
* [new ref] refs/pull/22427/head -> refs/pull/22427/head
* [new ref] refs/pull/22428/head -> refs/pull/22428/head
* [new ref] refs/pull/22428/merge -> refs/pull/22428/merge
* [new ref] refs/pull/22429/head -> refs/pull/22429/head
* [new ref] refs/pull/22435/head -> refs/pull/22435/head
* [new ref] refs/pull/22437/head -> refs/pull/22437/head
* [new ref] refs/pull/22438/head -> refs/pull/22438/head
* [new ref] refs/pull/22439/head -> refs/pull/22439/head
* [new ref] refs/pull/22442/head -> refs/pull/22442/head
* [new ref] refs/pull/22443/head -> refs/pull/22443/head
* [new ref] refs/pull/22444/head -> refs/pull/22444/head
* [new ref] refs/pull/22445/head -> refs/pull/22445/head
* [new ref] refs/pull/22451/head -> refs/pull/22451/head
* [new ref] refs/pull/22453/head -> refs/pull/22453/head
* [new ref] refs/pull/22455/head -> refs/pull/22455/head
* [new ref] refs/pull/22456/head -> refs/pull/22456/head
* [new ref] refs/pull/22456/merge -> refs/pull/22456/merge
* [new ref] refs/pull/22459/head -> refs/pull/22459/head
* [new ref] refs/pull/22460/head -> refs/pull/22460/head
* [new ref] refs/pull/22461/head -> refs/pull/22461/head
* [new ref] refs/pull/22461/merge -> refs/pull/22461/merge
* [new ref] refs/pull/22462/head -> refs/pull/22462/head
* [new ref] refs/pull/22462/merge -> refs/pull/22462/merge
* [new ref] refs/pull/22467/head -> refs/pull/22467/head
* [new ref] refs/pull/22468/head -> refs/pull/22468/head
* [new ref] refs/pull/22469/head -> refs/pull/22469/head
* [new ref] refs/pull/22472/head -> refs/pull/22472/head
* [new ref] refs/pull/22480/head -> refs/pull/22480/head
* [new ref] refs/pull/22481/head -> refs/pull/22481/head
* [new ref] refs/pull/22482/head -> refs/pull/22482/head
* [new ref] refs/pull/22484/head -> refs/pull/22484/head
* [new ref] refs/pull/22485/head -> refs/pull/22485/head
* [new ref] refs/pull/22488/head -> refs/pull/22488/head
* [new ref] refs/pull/22494/head -> refs/pull/22494/head
* [new ref] refs/pull/22497/head -> refs/pull/22497/head
* [new ref] refs/pull/22498/head -> refs/pull/22498/head
* [new ref] refs/pull/22500/head -> refs/pull/22500/head
* [new ref] refs/pull/22504/head -> refs/pull/22504/head
* [new ref] refs/pull/22505/head -> refs/pull/22505/head
* [new ref] refs/pull/22506/head -> refs/pull/22506/head
* [new ref] refs/pull/22509/head -> refs/pull/22509/head
* [new ref] refs/pull/22512/head -> refs/pull/22512/head
* [new ref] refs/pull/22513/head -> refs/pull/22513/head
* [new ref] refs/pull/22516/head -> refs/pull/22516/head
* [new ref] refs/pull/22517/head -> refs/pull/22517/head
* [new ref] refs/pull/22518/head -> refs/pull/22518/head
* [new ref] refs/pull/22522/head -> refs/pull/22522/head
* [new ref] refs/pull/22526/head -> refs/pull/22526/head
* [new ref] refs/pull/22527/head -> refs/pull/22527/head
* [new ref] refs/pull/22528/head -> refs/pull/22528/head
* [new ref] refs/pull/22529/head -> refs/pull/22529/head
* [new ref] refs/pull/22530/head -> refs/pull/22530/head
* [new ref] refs/pull/22532/head -> refs/pull/22532/head
* [new ref] refs/pull/22533/head -> refs/pull/22533/head
* [new ref] refs/pull/22535/head -> refs/pull/22535/head
* [new ref] refs/pull/22539/head -> refs/pull/22539/head
* [new ref] refs/pull/22542/head -> refs/pull/22542/head
* [new ref] refs/pull/22544/head -> refs/pull/22544/head
* [new ref] refs/pull/22546/head -> refs/pull/22546/head
* [new ref] refs/pull/22548/head -> refs/pull/22548/head
* [new ref] refs/pull/22550/head -> refs/pull/22550/head
* [new ref] refs/pull/22552/head -> refs/pull/22552/head
* [new ref] refs/pull/22553/head -> refs/pull/22553/head
* [new ref] refs/pull/22555/head -> refs/pull/22555/head
* [new ref] refs/pull/22558/head -> refs/pull/22558/head
* [new ref] refs/pull/22561/head -> refs/pull/22561/head
* [new ref] refs/pull/22562/head -> refs/pull/22562/head
* [new ref] refs/pull/22567/head -> refs/pull/22567/head
* [new ref] refs/pull/22567/merge -> refs/pull/22567/merge
* [new ref] refs/pull/22568/head -> refs/pull/22568/head
* [new ref] refs/pull/22569/head -> refs/pull/22569/head
* [new ref] refs/pull/22573/head -> refs/pull/22573/head
* [new ref] refs/pull/22574/head -> refs/pull/22574/head
* [new ref] refs/pull/22578/head -> refs/pull/22578/head
* [new ref] refs/pull/22579/head -> refs/pull/22579/head
* [new ref] refs/pull/22580/head -> refs/pull/22580/head
* [new ref] refs/pull/22584/head -> refs/pull/22584/head
* [new ref] refs/pull/22585/head -> refs/pull/22585/head
* [new ref] refs/pull/22585/merge -> refs/pull/22585/merge
* [new ref] refs/pull/22586/head -> refs/pull/22586/head
* [new ref] refs/pull/22586/merge -> refs/pull/22586/merge
* [new ref] refs/pull/22590/head -> refs/pull/22590/head
* [new ref] refs/pull/22590/merge -> refs/pull/22590/merge
* [new ref] refs/pull/22593/head -> refs/pull/22593/head
* [new ref] refs/pull/22594/head -> refs/pull/22594/head
* [new ref] refs/pull/22594/merge -> refs/pull/22594/merge
* [new ref] refs/pull/22595/head -> refs/pull/22595/head
* [new ref] refs/pull/22603/head -> refs/pull/22603/head
* [new ref] refs/pull/22605/head -> refs/pull/22605/head
* [new ref] refs/pull/22606/head -> refs/pull/22606/head
* [new ref] refs/pull/22618/head -> refs/pull/22618/head
* [new ref] refs/pull/22618/merge -> refs/pull/22618/merge
* [new ref] refs/pull/22619/head -> refs/pull/22619/head
* [new ref] refs/pull/22619/merge -> refs/pull/22619/merge
* [new ref] refs/pull/22620/head -> refs/pull/22620/head
* [new ref] refs/pull/22620/merge -> refs/pull/22620/merge
* [new ref] refs/pull/22621/head -> refs/pull/22621/head
* [new ref] refs/pull/22622/head -> refs/pull/22622/head
* [new ref] refs/pull/22623/head -> refs/pull/22623/head
* [new ref] refs/pull/22624/head -> refs/pull/22624/head
* [new ref] refs/pull/22625/head -> refs/pull/22625/head
* [new ref] refs/pull/22628/head -> refs/pull/22628/head
* [new ref] refs/pull/22629/head -> refs/pull/22629/head
* [new ref] refs/pull/22630/head -> refs/pull/22630/head
* [new ref] refs/pull/22632/head -> refs/pull/22632/head
* [new ref] refs/pull/22632/merge -> refs/pull/22632/merge
* [new ref] refs/pull/22640/head -> refs/pull/22640/head
* [new ref] refs/pull/22640/merge -> refs/pull/22640/merge
* [new ref] refs/pull/22642/head -> refs/pull/22642/head
* [new ref] refs/pull/22661/head -> refs/pull/22661/head
* [new ref] refs/pull/22662/head -> refs/pull/22662/head
* [new ref] refs/pull/22663/head -> refs/pull/22663/head
* [new ref] refs/pull/22664/head -> refs/pull/22664/head
* [new ref] refs/pull/22665/head -> refs/pull/22665/head
* [new ref] refs/pull/22667/head -> refs/pull/22667/head
* [new ref] refs/pull/22668/head -> refs/pull/22668/head
* [new ref] refs/pull/22670/head -> refs/pull/22670/head
* [new ref] refs/pull/22673/head -> refs/pull/22673/head
* [new ref] refs/pull/22674/head -> refs/pull/22674/head
* [new ref] refs/pull/22677/head -> refs/pull/22677/head
* [new ref] refs/pull/22677/merge -> refs/pull/22677/merge
* [new ref] refs/pull/22678/head -> refs/pull/22678/head
* [new ref] refs/pull/22679/head -> refs/pull/22679/head
* [new ref] refs/pull/22680/head -> refs/pull/22680/head
* [new ref] refs/pull/22681/head -> refs/pull/22681/head
* [new ref] refs/pull/22682/head -> refs/pull/22682/head
* [new ref] refs/pull/22694/head -> refs/pull/22694/head
* [new ref] refs/pull/22708/head -> refs/pull/22708/head
* [new ref] refs/pull/22711/head -> refs/pull/22711/head
* [new ref] refs/pull/22712/head -> refs/pull/22712/head
* [new ref] refs/pull/22713/head -> refs/pull/22713/head
* [new ref] refs/pull/22714/head -> refs/pull/22714/head
* [new ref] refs/pull/22717/head -> refs/pull/22717/head
* [new ref] refs/pull/22718/head -> refs/pull/22718/head
* [new ref] refs/pull/22719/head -> refs/pull/22719/head
* [new ref] refs/pull/22720/head -> refs/pull/22720/head
* [new ref] refs/pull/22724/head -> refs/pull/22724/head
* [new ref] refs/pull/22725/head -> refs/pull/22725/head
* [new ref] refs/pull/22726/head -> refs/pull/22726/head
* [new ref] refs/pull/22727/head -> refs/pull/22727/head
* [new ref] refs/pull/22730/head -> refs/pull/22730/head
* [new ref] refs/pull/22732/head -> refs/pull/22732/head
* [new ref] refs/pull/22734/head -> refs/pull/22734/head
* [new ref] refs/pull/22735/head -> refs/pull/22735/head
* [new ref] refs/pull/22736/head -> refs/pull/22736/head
* [new ref] refs/pull/22737/head -> refs/pull/22737/head
* [new ref] refs/pull/22739/head -> refs/pull/22739/head
* [new ref] refs/pull/22740/head -> refs/pull/22740/head
* [new ref] refs/pull/22744/head -> refs/pull/22744/head
* [new ref] refs/pull/22748/head -> refs/pull/22748/head
* [new ref] refs/pull/22748/merge -> refs/pull/22748/merge
* [new ref] refs/pull/22749/head -> refs/pull/22749/head
* [new ref] refs/pull/22752/head -> refs/pull/22752/head
* [new ref] refs/pull/22754/head -> refs/pull/22754/head
* [new ref] refs/pull/22755/head -> refs/pull/22755/head
* [new ref] refs/pull/22758/head -> refs/pull/22758/head
* [new ref] refs/pull/22759/head -> refs/pull/22759/head
* [new ref] refs/pull/22760/head -> refs/pull/22760/head
* [new ref] refs/pull/22760/merge -> refs/pull/22760/merge
* [new ref] refs/pull/22763/head -> refs/pull/22763/head
* [new ref] refs/pull/22766/head -> refs/pull/22766/head
* [new ref] refs/pull/22767/head -> refs/pull/22767/head
* [new ref] refs/pull/22772/head -> refs/pull/22772/head
* [new ref] refs/pull/22773/head -> refs/pull/22773/head
* [new ref] refs/pull/22775/head -> refs/pull/22775/head
* [new ref] refs/pull/22785/head -> refs/pull/22785/head
* [new ref] refs/pull/22788/head -> refs/pull/22788/head
* [new ref] refs/pull/22791/head -> refs/pull/22791/head
* [new ref] refs/pull/22793/head -> refs/pull/22793/head
* [new ref] refs/pull/22793/merge -> refs/pull/22793/merge
* [new ref] refs/pull/22795/head -> refs/pull/22795/head
* [new ref] refs/pull/22798/head -> refs/pull/22798/head
* [new ref] refs/pull/22800/head -> refs/pull/22800/head
* [new ref] refs/pull/22807/head -> refs/pull/22807/head
* [new ref] refs/pull/22808/head -> refs/pull/22808/head
* [new ref] refs/pull/22810/head -> refs/pull/22810/head
* [new ref] refs/pull/22811/head -> refs/pull/22811/head
* [new ref] refs/pull/22815/head -> refs/pull/22815/head
* [new ref] refs/pull/22823/head -> refs/pull/22823/head
* [new ref] refs/pull/22825/head -> refs/pull/22825/head
* [new ref] refs/pull/22828/head -> refs/pull/22828/head
* [new ref] refs/pull/22832/head -> refs/pull/22832/head
* [new ref] refs/pull/22833/head -> refs/pull/22833/head
* [new ref] refs/pull/22839/head -> refs/pull/22839/head
* [new ref] refs/pull/22840/head -> refs/pull/22840/head
* [new ref] refs/pull/22841/head -> refs/pull/22841/head
* [new ref] refs/pull/22843/head -> refs/pull/22843/head
* [new ref] refs/pull/22845/head -> refs/pull/22845/head
* [new ref] refs/pull/22846/head -> refs/pull/22846/head
* [new ref] refs/pull/22846/merge -> refs/pull/22846/merge
* [new ref] refs/pull/22848/head -> refs/pull/22848/head
* [new ref] refs/pull/22849/head -> refs/pull/22849/head
* [new ref] refs/pull/22852/head -> refs/pull/22852/head
* [new ref] refs/pull/22853/head -> refs/pull/22853/head
* [new ref] refs/pull/22854/head -> refs/pull/22854/head
* [new ref] refs/pull/22854/merge -> refs/pull/22854/merge
* [new ref] refs/pull/22856/head -> refs/pull/22856/head
* [new ref] refs/pull/22858/head -> refs/pull/22858/head
* [new ref] refs/pull/22859/head -> refs/pull/22859/head
* [new ref] refs/pull/22860/head -> refs/pull/22860/head
* [new ref] refs/pull/22861/head -> refs/pull/22861/head
* [new ref] refs/pull/22861/merge -> refs/pull/22861/merge
* [new ref] refs/pull/22864/head -> refs/pull/22864/head
* [new ref] refs/pull/22865/head -> refs/pull/22865/head
* [new ref] refs/pull/22866/head -> refs/pull/22866/head
* [new ref] refs/pull/22867/head -> refs/pull/22867/head
* [new ref] refs/pull/22868/head -> refs/pull/22868/head
* [new ref] refs/pull/22869/head -> refs/pull/22869/head
* [new ref] refs/pull/22869/merge -> refs/pull/22869/merge
* [new ref] refs/pull/22871/head -> refs/pull/22871/head
* [new ref] refs/pull/22872/head -> refs/pull/22872/head
* [new ref] refs/pull/22873/head -> refs/pull/22873/head
* [new ref] refs/pull/22874/head -> refs/pull/22874/head
* [new ref] refs/pull/22875/head -> refs/pull/22875/head
* [new ref] refs/pull/22879/head -> refs/pull/22879/head
* [new ref] refs/pull/22880/head -> refs/pull/22880/head
* [new ref] refs/pull/22885/head -> refs/pull/22885/head
* [new ref] refs/pull/22886/head -> refs/pull/22886/head
* [new ref] refs/pull/22887/head -> refs/pull/22887/head
* [new ref] refs/pull/22890/head -> refs/pull/22890/head
* [new ref] refs/pull/22891/head -> refs/pull/22891/head
* [new ref] refs/pull/22893/head -> refs/pull/22893/head
* [new ref] refs/pull/22894/head -> refs/pull/22894/head
* [new ref] refs/pull/22894/merge -> refs/pull/22894/merge
* [new ref] refs/pull/22895/head -> refs/pull/22895/head
* [new ref] refs/pull/22898/head -> refs/pull/22898/head
* [new ref] refs/pull/22899/head -> refs/pull/22899/head
* [new ref] refs/pull/22901/head -> refs/pull/22901/head
* [new ref] refs/pull/22901/merge -> refs/pull/22901/merge
* [new ref] refs/pull/22902/head -> refs/pull/22902/head
* [new ref] refs/pull/22905/head -> refs/pull/22905/head
* [new ref] refs/pull/22909/head -> refs/pull/22909/head
* [new ref] refs/pull/22914/head -> refs/pull/22914/head
* [new ref] refs/pull/22915/head -> refs/pull/22915/head
* [new ref] refs/pull/22916/head -> refs/pull/22916/head
* [new ref] refs/pull/22917/head -> refs/pull/22917/head
* [new ref] refs/pull/22924/head -> refs/pull/22924/head
* [new ref] refs/pull/22927/head -> refs/pull/22927/head
* [new ref] refs/pull/22930/head -> refs/pull/22930/head
* [new ref] refs/pull/22935/head -> refs/pull/22935/head
* [new ref] refs/pull/22938/head -> refs/pull/22938/head
* [new ref] refs/pull/22939/head -> refs/pull/22939/head
* [new ref] refs/pull/22940/head -> refs/pull/22940/head
* [new ref] refs/pull/22941/head -> refs/pull/22941/head
* [new ref] refs/pull/22943/head -> refs/pull/22943/head
* [new ref] refs/pull/22949/head -> refs/pull/22949/head
* [new ref] refs/pull/22951/head -> refs/pull/22951/head
* [new ref] refs/pull/22952/head -> refs/pull/22952/head
* [new ref] refs/pull/22955/head -> refs/pull/22955/head
* [new ref] refs/pull/22956/head -> refs/pull/22956/head
* [new ref] refs/pull/22957/head -> refs/pull/22957/head
* [new ref] refs/pull/22959/head -> refs/pull/22959/head
* [new ref] refs/pull/22961/head -> refs/pull/22961/head
* [new ref] refs/pull/22973/head -> refs/pull/22973/head
* [new ref] refs/pull/22975/head -> refs/pull/22975/head
* [new ref] refs/pull/22976/head -> refs/pull/22976/head
* [new ref] refs/pull/22977/head -> refs/pull/22977/head
* [new ref] refs/pull/22978/head -> refs/pull/22978/head
* [new ref] refs/pull/22981/head -> refs/pull/22981/head
* [new ref] refs/pull/22984/head -> refs/pull/22984/head
* [new ref] refs/pull/22985/head -> refs/pull/22985/head
* [new ref] refs/pull/22986/head -> refs/pull/22986/head
* [new ref] refs/pull/22987/head -> refs/pull/22987/head
* [new ref] refs/pull/22994/head -> refs/pull/22994/head
* [new ref] refs/pull/22997/head -> refs/pull/22997/head
* [new ref] refs/pull/23008/head -> refs/pull/23008/head
* [new ref] refs/pull/23011/head -> refs/pull/23011/head
* [new ref] refs/pull/23012/head -> refs/pull/23012/head
* [new ref] refs/pull/23014/head -> refs/pull/23014/head
* [new ref] refs/pull/23016/head -> refs/pull/23016/head
* [new ref] refs/pull/23020/head -> refs/pull/23020/head
* [new ref] refs/pull/23021/head -> refs/pull/23021/head
* [new ref] refs/pull/23023/head -> refs/pull/23023/head
* [new ref] refs/pull/23026/head -> refs/pull/23026/head
* [new ref] refs/pull/23026/merge -> refs/pull/23026/merge
* [new ref] refs/pull/23029/head -> refs/pull/23029/head
* [new ref] refs/pull/23030/head -> refs/pull/23030/head
* [new ref] refs/pull/23030/merge -> refs/pull/23030/merge
* [new ref] refs/pull/23032/head -> refs/pull/23032/head
* [new ref] refs/pull/23035/head -> refs/pull/23035/head
* [new ref] refs/pull/23036/head -> refs/pull/23036/head
* [new ref] refs/pull/23038/head -> refs/pull/23038/head
* [new ref] refs/pull/23040/head -> refs/pull/23040/head
* [new ref] refs/pull/23041/head -> refs/pull/23041/head
* [new ref] refs/pull/23041/merge -> refs/pull/23041/merge
* [new ref] refs/pull/23042/head -> refs/pull/23042/head
* [new ref] refs/pull/23044/head -> refs/pull/23044/head
* [new ref] refs/pull/23045/head -> refs/pull/23045/head
* [new ref] refs/pull/23047/head -> refs/pull/23047/head
* [new ref] refs/pull/23048/head -> refs/pull/23048/head
* [new ref] refs/pull/23050/head -> refs/pull/23050/head
* [new ref] refs/pull/23051/head -> refs/pull/23051/head
* [new ref] refs/pull/23053/head -> refs/pull/23053/head
* [new ref] refs/pull/23055/head -> refs/pull/23055/head
* [new ref] refs/pull/23057/head -> refs/pull/23057/head
* [new ref] refs/pull/23058/head -> refs/pull/23058/head
* [new ref] refs/pull/23059/head -> refs/pull/23059/head
* [new ref] refs/pull/23060/head -> refs/pull/23060/head
* [new ref] refs/pull/23060/merge -> refs/pull/23060/merge
* [new ref] refs/pull/23062/head -> refs/pull/23062/head
* [new ref] refs/pull/23064/head -> refs/pull/23064/head
* [new ref] refs/pull/23065/head -> refs/pull/23065/head
* [new ref] refs/pull/23065/merge -> refs/pull/23065/merge
* [new ref] refs/pull/23066/head -> refs/pull/23066/head
* [new ref] refs/pull/23067/head -> refs/pull/23067/head
* [new ref] refs/pull/23069/head -> refs/pull/23069/head
* [new ref] refs/pull/23069/merge -> refs/pull/23069/merge
* [new ref] refs/pull/23070/head -> refs/pull/23070/head
* [new ref] refs/pull/23073/head -> refs/pull/23073/head
* [new ref] refs/pull/23074/head -> refs/pull/23074/head
* [new ref] refs/pull/23075/head -> refs/pull/23075/head
* [new ref] refs/pull/23076/head -> refs/pull/23076/head
* [new ref] refs/pull/23077/head -> refs/pull/23077/head
* [new ref] refs/pull/23078/head -> refs/pull/23078/head
* [new ref] refs/pull/23080/head -> refs/pull/23080/head
* [new ref] refs/pull/23082/head -> refs/pull/23082/head
* [new ref] refs/pull/23083/head -> refs/pull/23083/head
* [new ref] refs/pull/23086/head -> refs/pull/23086/head
* [new ref] refs/pull/23087/head -> refs/pull/23087/head
* [new ref] refs/pull/23088/head -> refs/pull/23088/head
* [new ref] refs/pull/23090/head -> refs/pull/23090/head
* [new ref] refs/pull/23092/head -> refs/pull/23092/head
* [new ref] refs/pull/23101/head -> refs/pull/23101/head
* [new ref] refs/pull/23104/head -> refs/pull/23104/head
* [new ref] refs/pull/23105/head -> refs/pull/23105/head
* [new ref] refs/pull/23105/merge -> refs/pull/23105/merge
* [new ref] refs/pull/23109/head -> refs/pull/23109/head
* [new ref] refs/pull/23110/head -> refs/pull/23110/head
* [new ref] refs/pull/23111/head -> refs/pull/23111/head
* [new ref] refs/pull/23113/head -> refs/pull/23113/head
* [new ref] refs/pull/23113/merge -> refs/pull/23113/merge
* [new ref] refs/pull/23115/head -> refs/pull/23115/head
* [new ref] refs/pull/23118/head -> refs/pull/23118/head
* [new ref] refs/pull/23121/head -> refs/pull/23121/head
* [new ref] refs/pull/23124/head -> refs/pull/23124/head
* [new ref] refs/pull/23132/head -> refs/pull/23132/head
* [new ref] refs/pull/23134/head -> refs/pull/23134/head
* [new ref] refs/pull/23135/head -> refs/pull/23135/head
* [new ref] refs/pull/23137/head -> refs/pull/23137/head
* [new ref] refs/pull/23139/head -> refs/pull/23139/head
* [new ref] refs/pull/23140/head -> refs/pull/23140/head
* [new ref] refs/pull/23140/merge -> refs/pull/23140/merge
* [new ref] refs/pull/23141/head -> refs/pull/23141/head
* [new ref] refs/pull/23142/head -> refs/pull/23142/head
* [new ref] refs/pull/23145/head -> refs/pull/23145/head
* [new ref] refs/pull/23147/head -> refs/pull/23147/head
* [new ref] refs/pull/23148/head -> refs/pull/23148/head
* [new ref] refs/pull/23149/head -> refs/pull/23149/head
* [new ref] refs/pull/23150/head -> refs/pull/23150/head
* [new ref] refs/pull/23153/head -> refs/pull/23153/head
* [new ref] refs/pull/23155/head -> refs/pull/23155/head
* [new ref] refs/pull/23157/head -> refs/pull/23157/head
* [new ref] refs/pull/23158/head -> refs/pull/23158/head
* [new ref] refs/pull/23159/head -> refs/pull/23159/head
* [new ref] refs/pull/23161/head -> refs/pull/23161/head
* [new ref] refs/pull/23162/head -> refs/pull/23162/head
* [new ref] refs/pull/23163/head -> refs/pull/23163/head
* [new ref] refs/pull/23164/head -> refs/pull/23164/head
* [new ref] refs/pull/23170/head -> refs/pull/23170/head
* [new ref] refs/pull/23176/head -> refs/pull/23176/head
* [new ref] refs/pull/23176/merge -> refs/pull/23176/merge
* [new ref] refs/pull/23177/head -> refs/pull/23177/head
* [new ref] refs/pull/23178/head -> refs/pull/23178/head
* [new ref] refs/pull/23179/head -> refs/pull/23179/head
* [new ref] refs/pull/23180/head -> refs/pull/23180/head
* [new ref] refs/pull/23181/head -> refs/pull/23181/head
* [new ref] refs/pull/23184/head -> refs/pull/23184/head
* [new ref] refs/pull/23185/head -> refs/pull/23185/head
* [new ref] refs/pull/23187/head -> refs/pull/23187/head
* [new ref] refs/pull/23189/head -> refs/pull/23189/head
* [new ref] refs/pull/23189/merge -> refs/pull/23189/merge
* [new ref] refs/pull/23190/head -> refs/pull/23190/head
* [new ref] refs/pull/23190/merge -> refs/pull/23190/merge
* [new ref] refs/pull/23193/head -> refs/pull/23193/head
* [new ref] refs/pull/23194/head -> refs/pull/23194/head
* [new ref] refs/pull/23199/head -> refs/pull/23199/head
* [new ref] refs/pull/23200/head -> refs/pull/23200/head
* [new ref] refs/pull/23203/head -> refs/pull/23203/head
* [new ref] refs/pull/23206/head -> refs/pull/23206/head
* [new ref] refs/pull/23207/head -> refs/pull/23207/head
* [new ref] refs/pull/23208/head -> refs/pull/23208/head
* [new ref] refs/pull/23209/head -> refs/pull/23209/head
* [new ref] refs/pull/23211/head -> refs/pull/23211/head
* [new ref] refs/pull/23212/head -> refs/pull/23212/head
* [new ref] refs/pull/23212/merge -> refs/pull/23212/merge
* [new ref] refs/pull/23213/head -> refs/pull/23213/head
* [new ref] refs/pull/23214/head -> refs/pull/23214/head
* [new ref] refs/pull/23215/head -> refs/pull/23215/head
* [new ref] refs/pull/23215/merge -> refs/pull/23215/merge
* [new ref] refs/pull/23216/head -> refs/pull/23216/head
* [new ref] refs/pull/23217/head -> refs/pull/23217/head
* [new ref] refs/pull/23218/head -> refs/pull/23218/head
* [new ref] refs/pull/23221/head -> refs/pull/23221/head
* [new ref] refs/pull/23225/head -> refs/pull/23225/head
* [new ref] refs/pull/23228/head -> refs/pull/23228/head
* [new ref] refs/pull/23229/head -> refs/pull/23229/head
* [new ref] refs/pull/23232/head -> refs/pull/23232/head
* [new ref] refs/pull/23234/head -> refs/pull/23234/head
* [new ref] refs/pull/23235/head -> refs/pull/23235/head
* [new ref] refs/pull/23236/head -> refs/pull/23236/head
* [new ref] refs/pull/23236/merge -> refs/pull/23236/merge
* [new ref] refs/pull/23241/head -> refs/pull/23241/head
* [new ref] refs/pull/23251/head -> refs/pull/23251/head
* [new ref] refs/pull/23252/head -> refs/pull/23252/head
* [new ref] refs/pull/23255/head -> refs/pull/23255/head
* [new ref] refs/pull/23256/head -> refs/pull/23256/head
* [new ref] refs/pull/23257/head -> refs/pull/23257/head
* [new ref] refs/pull/23258/head -> refs/pull/23258/head
* [new ref] refs/pull/23259/head -> refs/pull/23259/head
* [new ref] refs/pull/23265/head -> refs/pull/23265/head
* [new ref] refs/pull/23268/head -> refs/pull/23268/head
* [new ref] refs/pull/23270/head -> refs/pull/23270/head
* [new ref] refs/pull/23272/head -> refs/pull/23272/head
* [new ref] refs/pull/23273/head -> refs/pull/23273/head
* [new ref] refs/pull/23274/head -> refs/pull/23274/head
* [new ref] refs/pull/23275/head -> refs/pull/23275/head
* [new ref] refs/pull/23276/head -> refs/pull/23276/head
* [new ref] refs/pull/23277/head -> refs/pull/23277/head
* [new ref] refs/pull/23278/head -> refs/pull/23278/head
* [new ref] refs/pull/23280/head -> refs/pull/23280/head
* [new ref] refs/pull/23281/head -> refs/pull/23281/head
* [new ref] refs/pull/23282/head -> refs/pull/23282/head
* [new ref] refs/pull/23283/head -> refs/pull/23283/head
* [new ref] refs/pull/23283/merge -> refs/pull/23283/merge
* [new ref] refs/pull/23284/head -> refs/pull/23284/head
* [new ref] refs/pull/23286/head -> refs/pull/23286/head
* [new ref] refs/pull/23288/head -> refs/pull/23288/head
* [new ref] refs/pull/23289/head -> refs/pull/23289/head
* [new ref] refs/pull/23294/head -> refs/pull/23294/head
* [new ref] refs/pull/23295/head -> refs/pull/23295/head
* [new ref] refs/pull/23298/head -> refs/pull/23298/head
* [new ref] refs/pull/23299/head -> refs/pull/23299/head
* [new ref] refs/pull/23300/head -> refs/pull/23300/head
* [new ref] refs/pull/23301/head -> refs/pull/23301/head
* [new ref] refs/pull/23302/head -> refs/pull/23302/head
* [new ref] refs/pull/23303/head -> refs/pull/23303/head
* [new ref] refs/pull/23304/head -> refs/pull/23304/head
* [new ref] refs/pull/23305/head -> refs/pull/23305/head
* [new ref] refs/pull/23306/head -> refs/pull/23306/head
* [new ref] refs/pull/23307/head -> refs/pull/23307/head
* [new ref] refs/pull/23307/merge -> refs/pull/23307/merge
* [new ref] refs/pull/23308/head -> refs/pull/23308/head
* [new ref] refs/pull/23310/head -> refs/pull/23310/head
* [new ref] refs/pull/23311/head -> refs/pull/23311/head
* [new ref] refs/pull/23312/head -> refs/pull/23312/head
* [new ref] refs/pull/23314/head -> refs/pull/23314/head
* [new ref] refs/pull/23315/head -> refs/pull/23315/head
* [new ref] refs/pull/23317/head -> refs/pull/23317/head
* [new ref] refs/pull/23319/head -> refs/pull/23319/head
* [new ref] refs/pull/23321/head -> refs/pull/23321/head
* [new ref] refs/pull/23322/head -> refs/pull/23322/head
* [new ref] refs/pull/23324/head -> refs/pull/23324/head
* [new ref] refs/pull/23324/merge -> refs/pull/23324/merge
* [new ref] refs/pull/23325/head -> refs/pull/23325/head
* [new ref] refs/pull/23326/head -> refs/pull/23326/head
* [new ref] refs/pull/23327/head -> refs/pull/23327/head
* [new ref] refs/pull/23330/head -> refs/pull/23330/head
* [new ref] refs/pull/23333/head -> refs/pull/23333/head
* [new ref] refs/pull/23334/head -> refs/pull/23334/head
* [new ref] refs/pull/23335/head -> refs/pull/23335/head
* [new ref] refs/pull/23337/head -> refs/pull/23337/head
* [new ref] refs/pull/23340/head -> refs/pull/23340/head
* [new ref] refs/pull/23341/head -> refs/pull/23341/head
* [new ref] refs/pull/23342/head -> refs/pull/23342/head
* [new ref] refs/pull/23343/head -> refs/pull/23343/head
* [new ref] refs/pull/23343/merge -> refs/pull/23343/merge
* [new ref] refs/pull/23345/head -> refs/pull/23345/head
* [new ref] refs/pull/23347/head -> refs/pull/23347/head
* [new ref] refs/pull/23347/merge -> refs/pull/23347/merge
* [new ref] refs/pull/23348/head -> refs/pull/23348/head
* [new ref] refs/pull/23349/head -> refs/pull/23349/head
* [new ref] refs/pull/23353/head -> refs/pull/23353/head
* [new ref] refs/pull/23354/head -> refs/pull/23354/head
* [new ref] refs/pull/23355/head -> refs/pull/23355/head
* [new ref] refs/pull/23358/head -> refs/pull/23358/head
* [new ref] refs/pull/23359/head -> refs/pull/23359/head
* [new ref] refs/pull/23360/head -> refs/pull/23360/head
* [new ref] refs/pull/23361/head -> refs/pull/23361/head
* [new ref] refs/pull/23363/head -> refs/pull/23363/head
* [new ref] refs/pull/23364/head -> refs/pull/23364/head
* [new ref] refs/pull/23366/head -> refs/pull/23366/head
* [new ref] refs/pull/23367/head -> refs/pull/23367/head
* [new ref] refs/pull/23368/head -> refs/pull/23368/head
* [new ref] refs/pull/23370/head -> refs/pull/23370/head
* [new ref] refs/pull/23377/head -> refs/pull/23377/head
* [new ref] refs/pull/23379/head -> refs/pull/23379/head
* [new ref] refs/pull/23380/head -> refs/pull/23380/head
* [new ref] refs/pull/23383/head -> refs/pull/23383/head
* [new ref] refs/pull/23386/head -> refs/pull/23386/head
* [new ref] refs/pull/23390/head -> refs/pull/23390/head
* [new ref] refs/pull/23393/head -> refs/pull/23393/head
* [new ref] refs/pull/23394/head -> refs/pull/23394/head
* [new ref] refs/pull/23395/head -> refs/pull/23395/head
* [new ref] refs/pull/23399/head -> refs/pull/23399/head
* [new ref] refs/pull/23400/head -> refs/pull/23400/head
* [new ref] refs/pull/23401/head -> refs/pull/23401/head
* [new ref] refs/pull/23403/head -> refs/pull/23403/head
* [new ref] refs/pull/23405/head -> refs/pull/23405/head
* [new ref] refs/pull/23408/head -> refs/pull/23408/head
* [new ref] refs/pull/23409/head -> refs/pull/23409/head
* [new ref] refs/pull/23414/head -> refs/pull/23414/head
* [new ref] refs/pull/23414/merge -> refs/pull/23414/merge
* [new ref] refs/pull/23415/head -> refs/pull/23415/head
* [new ref] refs/pull/23415/merge -> refs/pull/23415/merge
* [new ref] refs/pull/23416/head -> refs/pull/23416/head
* [new ref] refs/pull/23416/merge -> refs/pull/23416/merge
* [new ref] refs/pull/23418/head -> refs/pull/23418/head
* [new ref] refs/pull/23418/merge -> refs/pull/23418/merge
* [new ref] refs/pull/23419/head -> refs/pull/23419/head
* [new ref] refs/pull/23420/head -> refs/pull/23420/head
* [new ref] refs/pull/23421/head -> refs/pull/23421/head
* [new ref] refs/pull/23423/head -> refs/pull/23423/head
* [new ref] refs/pull/23426/head -> refs/pull/23426/head
* [new ref] refs/pull/23429/head -> refs/pull/23429/head
* [new ref] refs/pull/23431/head -> refs/pull/23431/head
* [new ref] refs/pull/23432/head -> refs/pull/23432/head
* [new ref] refs/pull/23435/head -> refs/pull/23435/head
* [new ref] refs/pull/23437/head -> refs/pull/23437/head
* [new ref] refs/pull/23442/head -> refs/pull/23442/head
* [new ref] refs/pull/23443/head -> refs/pull/23443/head
* [new ref] refs/pull/23446/head -> refs/pull/23446/head
* [new ref] refs/pull/23446/merge -> refs/pull/23446/merge
* [new ref] refs/pull/23448/head -> refs/pull/23448/head
* [new ref] refs/pull/23449/head -> refs/pull/23449/head
* [new ref] refs/pull/23450/head -> refs/pull/23450/head
* [new ref] refs/pull/23457/head -> refs/pull/23457/head
* [new ref] refs/pull/23458/head -> refs/pull/23458/head
* [new ref] refs/pull/23459/head -> refs/pull/23459/head
* [new ref] refs/pull/23461/head -> refs/pull/23461/head
* [new ref] refs/pull/23462/head -> refs/pull/23462/head
* [new ref] refs/pull/23464/head -> refs/pull/23464/head
* [new ref] refs/pull/23465/head -> refs/pull/23465/head
* [new ref] refs/pull/23465/merge -> refs/pull/23465/merge
* [new ref] refs/pull/23466/head -> refs/pull/23466/head
* [new ref] refs/pull/23468/head -> refs/pull/23468/head
* [new ref] refs/pull/23469/head -> refs/pull/23469/head
* [new ref] refs/pull/23469/merge -> refs/pull/23469/merge
* [new ref] refs/pull/23470/head -> refs/pull/23470/head
* [new ref] refs/pull/23470/merge -> refs/pull/23470/merge
* [new ref] refs/pull/23472/head -> refs/pull/23472/head
* [new ref] refs/pull/23474/head -> refs/pull/23474/head
* [new ref] refs/pull/23474/merge -> refs/pull/23474/merge
* [new ref] refs/pull/23475/head -> refs/pull/23475/head
* [new ref] refs/pull/23475/merge -> refs/pull/23475/merge
* [new ref] refs/pull/23476/head -> refs/pull/23476/head
* [new ref] refs/pull/23477/head -> refs/pull/23477/head
* [new ref] refs/pull/23477/merge -> refs/pull/23477/merge
* [new ref] refs/pull/23478/head -> refs/pull/23478/head
* [new ref] refs/pull/23478/merge -> refs/pull/23478/merge
* [new ref] refs/pull/23482/head -> refs/pull/23482/head
* [new ref] refs/pull/23482/merge -> refs/pull/23482/merge
* [new ref] refs/pull/23487/head -> refs/pull/23487/head
* [new ref] refs/pull/23488/head -> refs/pull/23488/head
* [new ref] refs/pull/23490/head -> refs/pull/23490/head
* [new ref] refs/pull/23490/merge -> refs/pull/23490/merge
* [new ref] refs/pull/23491/head -> refs/pull/23491/head
* [new ref] refs/pull/23493/head -> refs/pull/23493/head
* [new ref] refs/pull/23493/merge -> refs/pull/23493/merge
* [new ref] refs/pull/23494/head -> refs/pull/23494/head
* [new ref] refs/pull/23496/head -> refs/pull/23496/head
* [new ref] refs/pull/23498/head -> refs/pull/23498/head
* [new ref] refs/pull/23499/head -> refs/pull/23499/head
* [new ref] refs/pull/23502/head -> refs/pull/23502/head
* [new ref] refs/pull/23503/head -> refs/pull/23503/head
* [new ref] refs/pull/23505/head -> refs/pull/23505/head
* [new ref] refs/pull/23505/merge -> refs/pull/23505/merge
* [new ref] refs/pull/23508/head -> refs/pull/23508/head
* [new ref] refs/pull/23512/head -> refs/pull/23512/head
* [new ref] refs/pull/23515/head -> refs/pull/23515/head
* [new ref] refs/pull/23516/head -> refs/pull/23516/head
* [new ref] refs/pull/23517/head -> refs/pull/23517/head
* [new ref] refs/pull/23519/head -> refs/pull/23519/head
* [new ref] refs/pull/23523/head -> refs/pull/23523/head
* [new ref] refs/pull/23524/head -> refs/pull/23524/head
* [new ref] refs/pull/23526/head -> refs/pull/23526/head
* [new ref] refs/pull/23530/head -> refs/pull/23530/head
* [new ref] refs/pull/23531/head -> refs/pull/23531/head
* [new ref] refs/pull/23533/head -> refs/pull/23533/head
* [new ref] refs/pull/23536/head -> refs/pull/23536/head
* [new ref] refs/pull/23543/head -> refs/pull/23543/head
* [new ref] refs/pull/23543/merge -> refs/pull/23543/merge
* [new ref] refs/pull/23544/head -> refs/pull/23544/head
* [new ref] refs/pull/23545/head -> refs/pull/23545/head
* [new ref] refs/pull/23546/head -> refs/pull/23546/head
* [new ref] refs/pull/23548/head -> refs/pull/23548/head
* [new ref] refs/pull/23552/head -> refs/pull/23552/head
* [new ref] refs/pull/23553/head -> refs/pull/23553/head
* [new ref] refs/pull/23554/head -> refs/pull/23554/head
* [new ref] refs/pull/23557/head -> refs/pull/23557/head
* [new ref] refs/pull/23557/merge -> refs/pull/23557/merge
* [new ref] refs/pull/23558/head -> refs/pull/23558/head
* [new ref] refs/pull/23560/head -> refs/pull/23560/head
* [new ref] refs/pull/23562/head -> refs/pull/23562/head
* [new ref] refs/pull/23562/merge -> refs/pull/23562/merge
* [new ref] refs/pull/23563/head -> refs/pull/23563/head
* [new ref] refs/pull/23564/head -> refs/pull/23564/head
* [new ref] refs/pull/23565/head -> refs/pull/23565/head
* [new ref] refs/pull/23566/head -> refs/pull/23566/head
* [new ref] refs/pull/23569/head -> refs/pull/23569/head
* [new ref] refs/pull/23570/head -> refs/pull/23570/head
* [new ref] refs/pull/23570/merge -> refs/pull/23570/merge
* [new ref] refs/pull/23572/head -> refs/pull/23572/head
* [new ref] refs/pull/23574/head -> refs/pull/23574/head
* [new ref] refs/pull/23576/head -> refs/pull/23576/head
* [new ref] refs/pull/23578/head -> refs/pull/23578/head
* [new ref] refs/pull/23578/merge -> refs/pull/23578/merge
* [new ref] refs/pull/23579/head -> refs/pull/23579/head
* [new ref] refs/pull/23581/head -> refs/pull/23581/head
* [new ref] refs/pull/23583/head -> refs/pull/23583/head
* [new ref] refs/pull/23584/head -> refs/pull/23584/head
* [new ref] refs/pull/23585/head -> refs/pull/23585/head
* [new ref] refs/pull/23587/head -> refs/pull/23587/head
* [new ref] refs/pull/23588/head -> refs/pull/23588/head
* [new ref] refs/pull/23592/head -> refs/pull/23592/head
* [new ref] refs/pull/23594/head -> refs/pull/23594/head
* [new ref] refs/pull/23594/merge -> refs/pull/23594/merge
* [new ref] refs/pull/23597/head -> refs/pull/23597/head
* [new ref] refs/pull/23599/head -> refs/pull/23599/head
* [new ref] refs/pull/23600/head -> refs/pull/23600/head
* [new ref] refs/pull/23601/head -> refs/pull/23601/head
* [new ref] refs/pull/23601/merge -> refs/pull/23601/merge
* [new ref] refs/pull/23602/head -> refs/pull/23602/head
* [new ref] refs/pull/23603/head -> refs/pull/23603/head
* [new ref] refs/pull/23605/head -> refs/pull/23605/head
* [new ref] refs/pull/23605/merge -> refs/pull/23605/merge
* [new ref] refs/pull/23606/head -> refs/pull/23606/head
* [new ref] refs/pull/23607/head -> refs/pull/23607/head
* [new ref] refs/pull/23608/head -> refs/pull/23608/head
* [new ref] refs/pull/23608/merge -> refs/pull/23608/merge
* [new ref] refs/pull/23609/head -> refs/pull/23609/head
* [new ref] refs/pull/23609/merge -> refs/pull/23609/merge
* [new ref] refs/pull/23610/head -> refs/pull/23610/head
* [new ref] refs/pull/23610/merge -> refs/pull/23610/merge
* [new ref] refs/pull/23611/head -> refs/pull/23611/head
* [new ref] refs/pull/23612/head -> refs/pull/23612/head
* [new ref] refs/pull/23613/head -> refs/pull/23613/head
* [new ref] refs/pull/23613/merge -> refs/pull/23613/merge
* [new ref] refs/pull/23614/head -> refs/pull/23614/head
* [new ref] refs/pull/23615/head -> refs/pull/23615/head
* [new ref] refs/pull/23616/head -> refs/pull/23616/head
* [new ref] refs/pull/23618/head -> refs/pull/23618/head
* [new ref] refs/pull/23619/head -> refs/pull/23619/head
* [new ref] refs/pull/23619/merge -> refs/pull/23619/merge
* [new ref] refs/pull/23623/head -> refs/pull/23623/head
* [new ref] refs/pull/23625/head -> refs/pull/23625/head
* [new ref] refs/pull/23626/head -> refs/pull/23626/head
* [new ref] refs/pull/23628/head -> refs/pull/23628/head
* [new ref] refs/pull/23628/merge -> refs/pull/23628/merge
* [new ref] refs/pull/23630/head -> refs/pull/23630/head
* [new ref] refs/pull/23630/merge -> refs/pull/23630/merge
* [new ref] refs/pull/23631/head -> refs/pull/23631/head
* [new ref] refs/pull/23633/head -> refs/pull/23633/head
* [new ref] refs/pull/23634/head -> refs/pull/23634/head
* [new ref] refs/pull/23636/head -> refs/pull/23636/head
* [new ref] refs/pull/23637/head -> refs/pull/23637/head
* [new ref] refs/pull/23638/head -> refs/pull/23638/head
* [new ref] refs/pull/23639/head -> refs/pull/23639/head
* [new ref] refs/pull/23640/head -> refs/pull/23640/head
* [new ref] refs/pull/23641/head -> refs/pull/23641/head
* [new ref] refs/pull/23642/head -> refs/pull/23642/head
* [new ref] refs/pull/23645/head -> refs/pull/23645/head
* [new ref] refs/pull/23647/head -> refs/pull/23647/head
* [new ref] refs/pull/23647/merge -> refs/pull/23647/merge
* [new ref] refs/pull/23649/head -> refs/pull/23649/head
* [new ref] refs/pull/23651/head -> refs/pull/23651/head
* [new ref] refs/pull/23652/head -> refs/pull/23652/head
* [new ref] refs/pull/23653/head -> refs/pull/23653/head
* [new ref] refs/pull/23658/head -> refs/pull/23658/head
* [new ref] refs/pull/23660/head -> refs/pull/23660/head
* [new ref] refs/pull/23660/merge -> refs/pull/23660/merge
* [new ref] refs/pull/23661/head -> refs/pull/23661/head
* [new ref] refs/pull/23662/head -> refs/pull/23662/head
* [new ref] refs/pull/23664/head -> refs/pull/23664/head
* [new ref] refs/pull/23666/head -> refs/pull/23666/head
* [new ref] refs/pull/23668/head -> refs/pull/23668/head
* [new ref] refs/pull/23669/head -> refs/pull/23669/head
* [new ref] refs/pull/23671/head -> refs/pull/23671/head
* [new ref] refs/pull/23672/head -> refs/pull/23672/head
* [new ref] refs/pull/23673/head -> refs/pull/23673/head
* [new ref] refs/pull/23676/head -> refs/pull/23676/head
* [new ref] refs/pull/23678/head -> refs/pull/23678/head
* [new ref] refs/pull/23679/head -> refs/pull/23679/head
* [new ref] refs/pull/23680/head -> refs/pull/23680/head
* [new ref] refs/pull/23681/head -> refs/pull/23681/head
* [new ref] refs/pull/23682/head -> refs/pull/23682/head
* [new ref] refs/pull/23684/head -> refs/pull/23684/head
* [new ref] refs/pull/23685/head -> refs/pull/23685/head
* [new ref] refs/pull/23686/head -> refs/pull/23686/head
* [new ref] refs/pull/23687/head -> refs/pull/23687/head
* [new ref] refs/pull/23689/head -> refs/pull/23689/head
* [new ref] refs/pull/23690/head -> refs/pull/23690/head
* [new ref] refs/pull/23691/head -> refs/pull/23691/head
* [new ref] refs/pull/23692/head -> refs/pull/23692/head
* [new ref] refs/pull/23693/head -> refs/pull/23693/head
* [new ref] refs/pull/23694/head -> refs/pull/23694/head
* [new ref] refs/pull/23695/head -> refs/pull/23695/head
* [new ref] refs/pull/23697/head -> refs/pull/23697/head
* [new ref] refs/pull/23697/merge -> refs/pull/23697/merge
* [new ref] refs/pull/23699/head -> refs/pull/23699/head
* [new ref] refs/pull/23699/merge -> refs/pull/23699/merge
* [new ref] refs/pull/23700/head -> refs/pull/23700/head
* [new ref] refs/pull/23702/head -> refs/pull/23702/head
* [new ref] refs/pull/23703/head -> refs/pull/23703/head
* [new ref] refs/pull/23704/head -> refs/pull/23704/head
* [new ref] refs/pull/23705/head -> refs/pull/23705/head
* [new ref] refs/pull/23705/merge -> refs/pull/23705/merge
* [new ref] refs/pull/23707/head -> refs/pull/23707/head
* [new ref] refs/pull/23707/merge -> refs/pull/23707/merge
* [new ref] refs/pull/23709/head -> refs/pull/23709/head
* [new ref] refs/pull/23712/head -> refs/pull/23712/head
* [new ref] refs/pull/23714/head -> refs/pull/23714/head
* [new ref] refs/pull/23715/head -> refs/pull/23715/head
* [new ref] refs/pull/23716/head -> refs/pull/23716/head
* [new ref] refs/pull/23719/head -> refs/pull/23719/head
* [new ref] refs/pull/23719/merge -> refs/pull/23719/merge
* [new ref] refs/pull/23720/head -> refs/pull/23720/head
* [new ref] refs/pull/23722/head -> refs/pull/23722/head
* [new ref] refs/pull/23722/merge -> refs/pull/23722/merge
* [new ref] refs/pull/23723/head -> refs/pull/23723/head
* [new ref] refs/pull/23725/head -> refs/pull/23725/head
* [new ref] refs/pull/23727/head -> refs/pull/23727/head
* [new ref] refs/pull/23727/merge -> refs/pull/23727/merge
* [new ref] refs/pull/23729/head -> refs/pull/23729/head
* [new ref] refs/pull/23731/head -> refs/pull/23731/head
* [new ref] refs/pull/23732/head -> refs/pull/23732/head
* [new ref] refs/pull/23739/head -> refs/pull/23739/head
* [new ref] refs/pull/23743/head -> refs/pull/23743/head
* [new ref] refs/pull/23746/head -> refs/pull/23746/head
* [new ref] refs/pull/23747/head -> refs/pull/23747/head
* [new ref] refs/pull/23747/merge -> refs/pull/23747/merge
* [new ref] refs/pull/23749/head -> refs/pull/23749/head
* [new ref] refs/pull/23751/head -> refs/pull/23751/head
* [new ref] refs/pull/23753/head -> refs/pull/23753/head
* [new ref] refs/pull/23754/head -> refs/pull/23754/head
* [new ref] refs/pull/23755/head -> refs/pull/23755/head
* [new ref] refs/pull/23757/head -> refs/pull/23757/head
* [new ref] refs/pull/23758/head -> refs/pull/23758/head
* [new ref] refs/pull/23759/head -> refs/pull/23759/head
* [new ref] refs/pull/23759/merge -> refs/pull/23759/merge
* [new ref] refs/pull/23761/head -> refs/pull/23761/head
* [new ref] refs/pull/23763/head -> refs/pull/23763/head
* [new ref] refs/pull/23764/head -> refs/pull/23764/head
* [new ref] refs/pull/23765/head -> refs/pull/23765/head
* [new ref] refs/pull/23766/head -> refs/pull/23766/head
* [new ref] refs/pull/23767/head -> refs/pull/23767/head
* [new ref] refs/pull/23768/head -> refs/pull/23768/head
* [new ref] refs/pull/23771/head -> refs/pull/23771/head
* [new ref] refs/pull/23772/head -> refs/pull/23772/head
* [new ref] refs/pull/23773/head -> refs/pull/23773/head
* [new ref] refs/pull/23774/head -> refs/pull/23774/head
* [new ref] refs/pull/23775/head -> refs/pull/23775/head
* [new ref] refs/pull/23781/head -> refs/pull/23781/head
* [new ref] refs/pull/23783/head -> refs/pull/23783/head
* [new ref] refs/pull/23784/head -> refs/pull/23784/head
* [new ref] refs/pull/23785/head -> refs/pull/23785/head
* [new ref] refs/pull/23788/head -> refs/pull/23788/head
* [new ref] refs/pull/23790/head -> refs/pull/23790/head
* [new ref] refs/pull/23794/head -> refs/pull/23794/head
* [new ref] refs/pull/23797/head -> refs/pull/23797/head
* [new ref] refs/pull/23799/head -> refs/pull/23799/head
* [new ref] refs/pull/23801/head -> refs/pull/23801/head
* [new ref] refs/pull/23805/head -> refs/pull/23805/head
* [new ref] refs/pull/23807/head -> refs/pull/23807/head
* [new ref] refs/pull/23807/merge -> refs/pull/23807/merge
* [new ref] refs/pull/23808/head -> refs/pull/23808/head
* [new ref] refs/pull/23809/head -> refs/pull/23809/head
* [new ref] refs/pull/23809/merge -> refs/pull/23809/merge
* [new ref] refs/pull/23812/head -> refs/pull/23812/head
* [new ref] refs/pull/23813/head -> refs/pull/23813/head
* [new ref] refs/pull/23814/head -> refs/pull/23814/head
* [new ref] refs/pull/23816/head -> refs/pull/23816/head
* [new ref] refs/pull/23817/head -> refs/pull/23817/head
* [new ref] refs/pull/23818/head -> refs/pull/23818/head
* [new ref] refs/pull/23819/head -> refs/pull/23819/head
* [new ref] refs/pull/23820/head -> refs/pull/23820/head
* [new ref] refs/pull/23821/head -> refs/pull/23821/head
* [new ref] refs/pull/23822/head -> refs/pull/23822/head
* [new ref] refs/pull/23824/head -> refs/pull/23824/head
* [new ref] refs/pull/23827/head -> refs/pull/23827/head
* [new ref] refs/pull/23828/head -> refs/pull/23828/head
* [new ref] refs/pull/23828/merge -> refs/pull/23828/merge
* [new ref] refs/pull/23830/head -> refs/pull/23830/head
* [new ref] refs/pull/23831/head -> refs/pull/23831/head
* [new ref] refs/pull/23832/head -> refs/pull/23832/head
* [new ref] refs/pull/23834/head -> refs/pull/23834/head
* [new ref] refs/pull/23835/head -> refs/pull/23835/head
* [new ref] refs/pull/23836/head -> refs/pull/23836/head
* [new ref] refs/pull/23840/head -> refs/pull/23840/head
* [new ref] refs/pull/23842/head -> refs/pull/23842/head
* [new ref] refs/pull/23843/head -> refs/pull/23843/head
* [new ref] refs/pull/23844/head -> refs/pull/23844/head
* [new ref] refs/pull/23845/head -> refs/pull/23845/head
* [new ref] refs/pull/23850/head -> refs/pull/23850/head
* [new ref] refs/pull/23851/head -> refs/pull/23851/head
* [new ref] refs/pull/23853/head -> refs/pull/23853/head
* [new ref] refs/pull/23853/merge -> refs/pull/23853/merge
* [new ref] refs/pull/23860/head -> refs/pull/23860/head
* [new ref] refs/pull/23869/head -> refs/pull/23869/head
* [new ref] refs/pull/23872/head -> refs/pull/23872/head
* [new ref] refs/pull/23872/merge -> refs/pull/23872/merge
* [new ref] refs/pull/23877/head -> refs/pull/23877/head
* [new ref] refs/pull/23878/head -> refs/pull/23878/head
* [new ref] refs/pull/23879/head -> refs/pull/23879/head
* [new ref] refs/pull/23879/merge -> refs/pull/23879/merge
* [new ref] refs/pull/23882/head -> refs/pull/23882/head
* [new ref] refs/pull/23885/head -> refs/pull/23885/head
* [new ref] refs/pull/23886/head -> refs/pull/23886/head
* [new ref] refs/pull/23886/merge -> refs/pull/23886/merge
* [new ref] refs/pull/23893/head -> refs/pull/23893/head
* [new ref] refs/pull/23894/head -> refs/pull/23894/head
* [new ref] refs/pull/23895/head -> refs/pull/23895/head
* [new ref] refs/pull/23902/head -> refs/pull/23902/head
* [new ref] refs/pull/23903/head -> refs/pull/23903/head
* [new ref] refs/pull/23904/head -> refs/pull/23904/head
* [new ref] refs/pull/23913/head -> refs/pull/23913/head
* [new ref] refs/pull/23914/head -> refs/pull/23914/head
* [new ref] refs/pull/23916/head -> refs/pull/23916/head
* [new ref] refs/pull/23917/head -> refs/pull/23917/head
* [new ref] refs/pull/23917/merge -> refs/pull/23917/merge
* [new ref] refs/pull/23918/head -> refs/pull/23918/head
* [new ref] refs/pull/23918/merge -> refs/pull/23918/merge
* [new ref] refs/pull/23923/head -> refs/pull/23923/head
* [new ref] refs/pull/23927/head -> refs/pull/23927/head
* [new ref] refs/pull/23928/head -> refs/pull/23928/head
* [new ref] refs/pull/23930/head -> refs/pull/23930/head
* [new ref] refs/pull/23932/head -> refs/pull/23932/head
* [new ref] refs/pull/23933/head -> refs/pull/23933/head
* [new ref] refs/pull/23935/head -> refs/pull/23935/head
* [new ref] refs/pull/23936/head -> refs/pull/23936/head
* [new ref] refs/pull/23937/head -> refs/pull/23937/head
* [new ref] refs/pull/23938/head -> refs/pull/23938/head
* [new ref] refs/pull/23940/head -> refs/pull/23940/head
* [new ref] refs/pull/23941/head -> refs/pull/23941/head
* [new ref] refs/pull/23942/head -> refs/pull/23942/head
* [new ref] refs/pull/23946/head -> refs/pull/23946/head
* [new ref] refs/pull/23946/merge -> refs/pull/23946/merge
* [new ref] refs/pull/23948/head -> refs/pull/23948/head
* [new ref] refs/pull/23948/merge -> refs/pull/23948/merge
* [new ref] refs/pull/23952/head -> refs/pull/23952/head
* [new ref] refs/pull/23953/head -> refs/pull/23953/head
* [new ref] refs/pull/23956/head -> refs/pull/23956/head
* [new ref] refs/pull/23956/merge -> refs/pull/23956/merge
* [new ref] refs/pull/23957/head -> refs/pull/23957/head
* [new ref] refs/pull/23960/head -> refs/pull/23960/head
* [new ref] refs/pull/23961/head -> refs/pull/23961/head
* [new ref] refs/pull/23963/head -> refs/pull/23963/head
* [new ref] refs/pull/23964/head -> refs/pull/23964/head
* [new ref] refs/pull/23965/head -> refs/pull/23965/head
* [new ref] refs/pull/23967/head -> refs/pull/23967/head
* [new ref] refs/pull/23976/head -> refs/pull/23976/head
* [new ref] refs/pull/23978/head -> refs/pull/23978/head
* [new ref] refs/pull/23992/head -> refs/pull/23992/head
* [new ref] refs/pull/23993/head -> refs/pull/23993/head
* [new ref] refs/pull/23994/head -> refs/pull/23994/head
* [new ref] refs/pull/23994/merge -> refs/pull/23994/merge
* [new ref] refs/pull/23996/head -> refs/pull/23996/head
* [new ref] refs/pull/23996/merge -> refs/pull/23996/merge
* [new ref] refs/pull/23997/head -> refs/pull/23997/head
* [new ref] refs/pull/24003/head -> refs/pull/24003/head
* [new ref] refs/pull/24007/head -> refs/pull/24007/head
* [new ref] refs/pull/24015/head -> refs/pull/24015/head
* [new ref] refs/pull/24015/merge -> refs/pull/24015/merge
* [new ref] refs/pull/24018/head -> refs/pull/24018/head
* [new ref] refs/pull/24019/head -> refs/pull/24019/head
* [new ref] refs/pull/24020/head -> refs/pull/24020/head
* [new ref] refs/pull/24022/head -> refs/pull/24022/head
* [new ref] refs/pull/24024/head -> refs/pull/24024/head
* [new ref] refs/pull/24027/head -> refs/pull/24027/head
* [new ref] refs/pull/24029/head -> refs/pull/24029/head
* [new ref] refs/pull/24029/merge -> refs/pull/24029/merge
* [new ref] refs/pull/24031/head -> refs/pull/24031/head
* [new ref] refs/pull/24032/head -> refs/pull/24032/head
* [new ref] refs/pull/24034/head -> refs/pull/24034/head
* [new ref] refs/pull/24035/head -> refs/pull/24035/head
* [new ref] refs/pull/24038/head -> refs/pull/24038/head
* [new ref] refs/pull/24040/head -> refs/pull/24040/head
* [new ref] refs/pull/24042/head -> refs/pull/24042/head
* [new ref] refs/pull/24043/head -> refs/pull/24043/head
* [new ref] refs/pull/24044/head -> refs/pull/24044/head
* [new ref] refs/pull/24046/head -> refs/pull/24046/head
* [new ref] refs/pull/24047/head -> refs/pull/24047/head
* [new ref] refs/pull/24052/head -> refs/pull/24052/head
* [new ref] refs/pull/24054/head -> refs/pull/24054/head
* [new ref] refs/pull/24055/head -> refs/pull/24055/head
* [new ref] refs/pull/24057/head -> refs/pull/24057/head
* [new ref] refs/pull/24060/head -> refs/pull/24060/head
* [new ref] refs/pull/24061/head -> refs/pull/24061/head
* [new ref] refs/pull/24063/head -> refs/pull/24063/head
* [new ref] refs/pull/24065/head -> refs/pull/24065/head
* [new ref] refs/pull/24067/head -> refs/pull/24067/head
* [new ref] refs/pull/24068/head -> refs/pull/24068/head
* [new ref] refs/pull/24069/head -> refs/pull/24069/head
* [new ref] refs/pull/24070/head -> refs/pull/24070/head
* [new ref] refs/pull/24072/head -> refs/pull/24072/head
* [new ref] refs/pull/24074/head -> refs/pull/24074/head
* [new ref] refs/pull/24078/head -> refs/pull/24078/head
* [new ref] refs/pull/24079/head -> refs/pull/24079/head
* [new ref] refs/pull/24080/head -> refs/pull/24080/head
* [new ref] refs/pull/24080/merge -> refs/pull/24080/merge
* [new ref] refs/pull/24081/head -> refs/pull/24081/head
* [new ref] refs/pull/24082/head -> refs/pull/24082/head
* [new ref] refs/pull/24083/head -> refs/pull/24083/head
* [new ref] refs/pull/24089/head -> refs/pull/24089/head
* [new ref] refs/pull/24091/head -> refs/pull/24091/head
* [new ref] refs/pull/24092/head -> refs/pull/24092/head
* [new ref] refs/pull/24100/head -> refs/pull/24100/head
* [new ref] refs/pull/24100/merge -> refs/pull/24100/merge
* [new ref] refs/pull/24104/head -> refs/pull/24104/head
* [new ref] refs/pull/24104/merge -> refs/pull/24104/merge
* [new ref] refs/pull/24106/head -> refs/pull/24106/head
* [new ref] refs/pull/24111/head -> refs/pull/24111/head
* [new ref] refs/pull/24113/head -> refs/pull/24113/head
* [new ref] refs/pull/24113/merge -> refs/pull/24113/merge
* [new ref] refs/pull/24114/head -> refs/pull/24114/head
* [new ref] refs/pull/24116/head -> refs/pull/24116/head
* [new ref] refs/pull/24119/head -> refs/pull/24119/head
* [new ref] refs/pull/24120/head -> refs/pull/24120/head
* [new ref] refs/pull/24121/head -> refs/pull/24121/head
* [new ref] refs/pull/24121/merge -> refs/pull/24121/merge
* [new ref] refs/pull/24123/head -> refs/pull/24123/head
* [new ref] refs/pull/24124/head -> refs/pull/24124/head
* [new ref] refs/pull/24125/head -> refs/pull/24125/head
* [new ref] refs/pull/24126/head -> refs/pull/24126/head
* [new ref] refs/pull/24126/merge -> refs/pull/24126/merge
* [new ref] refs/pull/24127/head -> refs/pull/24127/head
* [new ref] refs/pull/24128/head -> refs/pull/24128/head
* [new ref] refs/pull/24128/merge -> refs/pull/24128/merge
* [new ref] refs/pull/24129/head -> refs/pull/24129/head
* [new ref] refs/pull/24132/head -> refs/pull/24132/head
* [new ref] refs/pull/24133/head -> refs/pull/24133/head
* [new ref] refs/pull/24134/head -> refs/pull/24134/head
* [new ref] refs/pull/24135/head -> refs/pull/24135/head
* [new ref] refs/pull/24136/head -> refs/pull/24136/head
* [new ref] refs/pull/24136/merge -> refs/pull/24136/merge
* [new ref] refs/pull/24138/head -> refs/pull/24138/head
* [new ref] refs/pull/24140/head -> refs/pull/24140/head
* [new ref] refs/pull/24141/head -> refs/pull/24141/head
* [new ref] refs/pull/24141/merge -> refs/pull/24141/merge
* [new ref] refs/pull/24144/head -> refs/pull/24144/head
* [new ref] refs/pull/24145/head -> refs/pull/24145/head
* [new ref] refs/pull/24146/head -> refs/pull/24146/head
* [new ref] refs/pull/24147/head -> refs/pull/24147/head
* [new ref] refs/pull/24148/head -> refs/pull/24148/head
* [new ref] refs/pull/24149/head -> refs/pull/24149/head
* [new ref] refs/pull/24150/head -> refs/pull/24150/head
* [new ref] refs/pull/24152/head -> refs/pull/24152/head
* [new ref] refs/pull/24153/head -> refs/pull/24153/head
* [new ref] refs/pull/24153/merge -> refs/pull/24153/merge
* [new ref] refs/pull/24155/head -> refs/pull/24155/head
* [new ref] refs/pull/24157/head -> refs/pull/24157/head
* [new ref] refs/pull/24158/head -> refs/pull/24158/head
* [new ref] refs/pull/24160/head -> refs/pull/24160/head
* [new ref] refs/pull/24161/head -> refs/pull/24161/head
* [new ref] refs/pull/24162/head -> refs/pull/24162/head
* [new ref] refs/pull/24164/head -> refs/pull/24164/head
* [new ref] refs/pull/24167/head -> refs/pull/24167/head
* [new ref] refs/pull/24167/merge -> refs/pull/24167/merge
* [new ref] refs/pull/24168/head -> refs/pull/24168/head
* [new ref] refs/pull/24170/head -> refs/pull/24170/head
* [new ref] refs/pull/24170/merge -> refs/pull/24170/merge
* [new ref] refs/pull/24171/head -> refs/pull/24171/head
* [new ref] refs/pull/24172/head -> refs/pull/24172/head
* [new ref] refs/pull/24174/head -> refs/pull/24174/head
* [new ref] refs/pull/24177/head -> refs/pull/24177/head
* [new ref] refs/pull/24179/head -> refs/pull/24179/head
* [new ref] refs/pull/24182/head -> refs/pull/24182/head
* [new ref] refs/pull/24187/head -> refs/pull/24187/head
* [new ref] refs/pull/24187/merge -> refs/pull/24187/merge
* [new ref] refs/pull/24190/head -> refs/pull/24190/head
* [new ref] refs/pull/24190/merge -> refs/pull/24190/merge
* [new ref] refs/pull/24192/head -> refs/pull/24192/head
* [new ref] refs/pull/24192/merge -> refs/pull/24192/merge
* [new ref] refs/pull/24195/head -> refs/pull/24195/head
* [new ref] refs/pull/24206/head -> refs/pull/24206/head
* [new ref] refs/pull/24209/head -> refs/pull/24209/head
* [new ref] refs/pull/24210/head -> refs/pull/24210/head
* [new ref] refs/pull/24212/head -> refs/pull/24212/head
* [new ref] refs/pull/24215/head -> refs/pull/24215/head
* [new ref] refs/pull/24215/merge -> refs/pull/24215/merge
* [new ref] refs/pull/24217/head -> refs/pull/24217/head
* [new ref] refs/pull/24218/head -> refs/pull/24218/head
* [new ref] refs/pull/24218/merge -> refs/pull/24218/merge
* [new ref] refs/pull/24223/head -> refs/pull/24223/head
* [new ref] refs/pull/24224/head -> refs/pull/24224/head
* [new ref] refs/pull/24226/head -> refs/pull/24226/head
* [new ref] refs/pull/24226/merge -> refs/pull/24226/merge
* [new ref] refs/pull/24228/head -> refs/pull/24228/head
* [new ref] refs/pull/24229/head -> refs/pull/24229/head
* [new ref] refs/pull/24231/head -> refs/pull/24231/head
* [new ref] refs/pull/24233/head -> refs/pull/24233/head
* [new ref] refs/pull/24235/head -> refs/pull/24235/head
* [new ref] refs/pull/24238/head -> refs/pull/24238/head
* [new ref] refs/pull/24241/head -> refs/pull/24241/head
* [new ref] refs/pull/24243/head -> refs/pull/24243/head
* [new ref] refs/pull/24245/head -> refs/pull/24245/head
* [new ref] refs/pull/24245/merge -> refs/pull/24245/merge
* [new ref] refs/pull/24248/head -> refs/pull/24248/head
* [new ref] refs/pull/24249/head -> refs/pull/24249/head
* [new ref] refs/pull/24255/head -> refs/pull/24255/head
* [new ref] refs/pull/24256/head -> refs/pull/24256/head
* [new ref] refs/pull/24257/head -> refs/pull/24257/head
* [new ref] refs/pull/24259/head -> refs/pull/24259/head
* [new ref] refs/pull/24260/head -> refs/pull/24260/head
* [new ref] refs/pull/24260/merge -> refs/pull/24260/merge
* [new ref] refs/pull/24261/head -> refs/pull/24261/head
* [new ref] refs/pull/24265/head -> refs/pull/24265/head
* [new ref] refs/pull/24265/merge -> refs/pull/24265/merge
* [new ref] refs/pull/24266/head -> refs/pull/24266/head
* [new ref] refs/pull/24267/head -> refs/pull/24267/head
* [new ref] refs/pull/24268/head -> refs/pull/24268/head
* [new ref] refs/pull/24269/head -> refs/pull/24269/head
* [new ref] refs/pull/24270/head -> refs/pull/24270/head
* [new ref] refs/pull/24273/head -> refs/pull/24273/head
* [new ref] refs/pull/24274/head -> refs/pull/24274/head
* [new ref] refs/pull/24275/head -> refs/pull/24275/head
* [new ref] refs/pull/24276/head -> refs/pull/24276/head
* [new ref] refs/pull/24277/head -> refs/pull/24277/head
* [new ref] refs/pull/24277/merge -> refs/pull/24277/merge
* [new ref] refs/pull/24278/head -> refs/pull/24278/head
* [new ref] refs/pull/24278/merge -> refs/pull/24278/merge
* [new ref] refs/pull/24279/head -> refs/pull/24279/head
* [new ref] refs/pull/24282/head -> refs/pull/24282/head
* [new ref] refs/pull/24283/head -> refs/pull/24283/head
* [new ref] refs/pull/24284/head -> refs/pull/24284/head
* [new ref] refs/pull/24286/head -> refs/pull/24286/head
* [new ref] refs/pull/24287/head -> refs/pull/24287/head
* [new ref] refs/pull/24288/head -> refs/pull/24288/head
* [new ref] refs/pull/24291/head -> refs/pull/24291/head
* [new ref] refs/pull/24292/head -> refs/pull/24292/head
* [new ref] refs/pull/24293/head -> refs/pull/24293/head
* [new ref] refs/pull/24293/merge -> refs/pull/24293/merge
* [new ref] refs/pull/24297/head -> refs/pull/24297/head
* [new ref] refs/pull/24299/head -> refs/pull/24299/head
* [new ref] refs/pull/24302/head -> refs/pull/24302/head
* [new ref] refs/pull/24303/head -> refs/pull/24303/head
* [new ref] refs/pull/24303/merge -> refs/pull/24303/merge
* [new ref] refs/pull/24305/head -> refs/pull/24305/head
* [new ref] refs/pull/24307/head -> refs/pull/24307/head
* [new ref] refs/pull/24311/head -> refs/pull/24311/head
* [new ref] refs/pull/24312/head -> refs/pull/24312/head
* [new ref] refs/pull/24313/head -> refs/pull/24313/head
* [new ref] refs/pull/24320/head -> refs/pull/24320/head
* [new ref] refs/pull/24320/merge -> refs/pull/24320/merge
* [new ref] refs/pull/24321/head -> refs/pull/24321/head
* [new ref] refs/pull/24321/merge -> refs/pull/24321/merge
* [new ref] refs/pull/24326/head -> refs/pull/24326/head
* [new ref] refs/pull/24329/head -> refs/pull/24329/head
* [new ref] refs/pull/24330/head -> refs/pull/24330/head
* [new ref] refs/pull/24330/merge -> refs/pull/24330/merge
* [new ref] refs/pull/24331/head -> refs/pull/24331/head
* [new ref] refs/pull/24335/head -> refs/pull/24335/head
* [new ref] refs/pull/24338/head -> refs/pull/24338/head
* [new ref] refs/pull/24339/head -> refs/pull/24339/head
* [new ref] refs/pull/24340/head -> refs/pull/24340/head
* [new ref] refs/pull/24342/head -> refs/pull/24342/head
* [new ref] refs/pull/24343/head -> refs/pull/24343/head
* [new ref] refs/pull/24345/head -> refs/pull/24345/head
* [new ref] refs/pull/24345/merge -> refs/pull/24345/merge
* [new ref] refs/pull/24346/head -> refs/pull/24346/head
* [new ref] refs/pull/24347/head -> refs/pull/24347/head
* [new ref] refs/pull/24348/head -> refs/pull/24348/head
* [new ref] refs/pull/24354/head -> refs/pull/24354/head
* [new ref] refs/pull/24356/head -> refs/pull/24356/head
* [new ref] refs/pull/24357/head -> refs/pull/24357/head
* [new ref] refs/pull/24358/head -> refs/pull/24358/head
* [new ref] refs/pull/24359/head -> refs/pull/24359/head
* [new ref] refs/pull/24361/head -> refs/pull/24361/head
* [new ref] refs/pull/24362/head -> refs/pull/24362/head
* [new ref] refs/pull/24364/head -> refs/pull/24364/head
* [new ref] refs/pull/24366/head -> refs/pull/24366/head
* [new ref] refs/pull/24367/head -> refs/pull/24367/head
* [new ref] refs/pull/24368/head -> refs/pull/24368/head
* [new ref] refs/pull/24369/head -> refs/pull/24369/head
* [new ref] refs/pull/24372/head -> refs/pull/24372/head
* [new ref] refs/pull/24373/head -> refs/pull/24373/head
* [new ref] refs/pull/24374/head -> refs/pull/24374/head
* [new ref] refs/pull/24375/head -> refs/pull/24375/head
* [new ref] refs/pull/24376/head -> refs/pull/24376/head
* [new ref] refs/pull/24377/head -> refs/pull/24377/head
* [new ref] refs/pull/24377/merge -> refs/pull/24377/merge
* [new ref] refs/pull/24378/head -> refs/pull/24378/head
* [new ref] refs/pull/24380/head -> refs/pull/24380/head
* [new ref] refs/pull/24381/head -> refs/pull/24381/head
* [new ref] refs/pull/24385/head -> refs/pull/24385/head
* [new ref] refs/pull/24386/head -> refs/pull/24386/head
* [new ref] refs/pull/24389/head -> refs/pull/24389/head
* [new ref] refs/pull/24391/head -> refs/pull/24391/head
* [new ref] refs/pull/24392/head -> refs/pull/24392/head
* [new ref] refs/pull/24393/head -> refs/pull/24393/head
* [new ref] refs/pull/24397/head -> refs/pull/24397/head
* [new ref] refs/pull/24398/head -> refs/pull/24398/head
* [new ref] refs/pull/24399/head -> refs/pull/24399/head
* [new ref] refs/pull/24400/head -> refs/pull/24400/head
* [new ref] refs/pull/24401/head -> refs/pull/24401/head
* [new ref] refs/pull/24403/head -> refs/pull/24403/head
* [new ref] refs/pull/24408/head -> refs/pull/24408/head
* [new ref] refs/pull/24411/head -> refs/pull/24411/head
* [new ref] refs/pull/24414/head -> refs/pull/24414/head
* [new ref] refs/pull/24416/head -> refs/pull/24416/head
* [new ref] refs/pull/24418/head -> refs/pull/24418/head
* [new ref] refs/pull/24419/head -> refs/pull/24419/head
* [new ref] refs/pull/24421/head -> refs/pull/24421/head
* [new ref] refs/pull/24423/head -> refs/pull/24423/head
* [new ref] refs/pull/24424/head -> refs/pull/24424/head
* [new ref] refs/pull/24426/head -> refs/pull/24426/head
* [new ref] refs/pull/24428/head -> refs/pull/24428/head
* [new ref] refs/pull/24429/head -> refs/pull/24429/head
* [new ref] refs/pull/24429/merge -> refs/pull/24429/merge
* [new ref] refs/pull/24431/head -> refs/pull/24431/head
* [new ref] refs/pull/24433/head -> refs/pull/24433/head
* [new ref] refs/pull/24435/head -> refs/pull/24435/head
* [new ref] refs/pull/24436/head -> refs/pull/24436/head
* [new ref] refs/pull/24437/head -> refs/pull/24437/head
* [new ref] refs/pull/24439/head -> refs/pull/24439/head
* [new ref] refs/pull/24440/head -> refs/pull/24440/head
* [new ref] refs/pull/24442/head -> refs/pull/24442/head
* [new ref] refs/pull/24444/head -> refs/pull/24444/head
* [new ref] refs/pull/24445/head -> refs/pull/24445/head
* [new ref] refs/pull/24447/head -> refs/pull/24447/head
* [new ref] refs/pull/24449/head -> refs/pull/24449/head
* [new ref] refs/pull/24453/head -> refs/pull/24453/head
* [new ref] refs/pull/24454/head -> refs/pull/24454/head
* [new ref] refs/pull/24455/head -> refs/pull/24455/head
* [new ref] refs/pull/24455/merge -> refs/pull/24455/merge
* [new ref] refs/pull/24456/head -> refs/pull/24456/head
* [new ref] refs/pull/24457/head -> refs/pull/24457/head
* [new ref] refs/pull/24458/head -> refs/pull/24458/head
* [new ref] refs/pull/24459/head -> refs/pull/24459/head
* [new ref] refs/pull/24460/head -> refs/pull/24460/head
* [new ref] refs/pull/24461/head -> refs/pull/24461/head
* [new ref] refs/pull/24463/head -> refs/pull/24463/head
* [new ref] refs/pull/24464/head -> refs/pull/24464/head
* [new ref] refs/pull/24465/head -> refs/pull/24465/head
* [new ref] refs/pull/24466/head -> refs/pull/24466/head
* [new ref] refs/pull/24466/merge -> refs/pull/24466/merge
* [new ref] refs/pull/24468/head -> refs/pull/24468/head
* [new ref] refs/pull/24469/head -> refs/pull/24469/head
* [new ref] refs/pull/24472/head -> refs/pull/24472/head
* [new ref] refs/pull/24472/merge -> refs/pull/24472/merge
* [new ref] refs/pull/24473/head -> refs/pull/24473/head
* [new ref] refs/pull/24474/head -> refs/pull/24474/head
* [new ref] refs/pull/24475/head -> refs/pull/24475/head
* [new ref] refs/pull/24476/head -> refs/pull/24476/head
* [new ref] refs/pull/24477/head -> refs/pull/24477/head
* [new ref] refs/pull/24477/merge -> refs/pull/24477/merge
* [new ref] refs/pull/24478/head -> refs/pull/24478/head
* [new ref] refs/pull/24478/merge -> refs/pull/24478/merge
* [new ref] refs/pull/24479/head -> refs/pull/24479/head
* [new ref] refs/pull/24480/head -> refs/pull/24480/head
* [new ref] refs/pull/24481/head -> refs/pull/24481/head
* [new ref] refs/pull/24481/merge -> refs/pull/24481/merge
* [new ref] refs/pull/24483/head -> refs/pull/24483/head
* [new ref] refs/pull/24485/head -> refs/pull/24485/head
* [new ref] refs/pull/24487/head -> refs/pull/24487/head
* [new ref] refs/pull/24489/head -> refs/pull/24489/head
* [new ref] refs/pull/24490/head -> refs/pull/24490/head
* [new ref] refs/pull/24491/head -> refs/pull/24491/head
* [new ref] refs/pull/24491/merge -> refs/pull/24491/merge
* [new ref] refs/pull/24492/head -> refs/pull/24492/head
* [new ref] refs/pull/24492/merge -> refs/pull/24492/merge
* [new ref] refs/pull/24495/head -> refs/pull/24495/head
* [new ref] refs/pull/24496/head -> refs/pull/24496/head
* [new ref] refs/pull/24496/merge -> refs/pull/24496/merge
* [new ref] refs/pull/24498/head -> refs/pull/24498/head
* [new ref] refs/pull/24499/head -> refs/pull/24499/head
* [new ref] refs/pull/24502/head -> refs/pull/24502/head
* [new ref] refs/pull/24504/head -> refs/pull/24504/head
* [new ref] refs/pull/24506/head -> refs/pull/24506/head
* [new ref] refs/pull/24510/head -> refs/pull/24510/head
* [new ref] refs/pull/24512/head -> refs/pull/24512/head
* [new ref] refs/pull/24514/head -> refs/pull/24514/head
* [new ref] refs/pull/24519/head -> refs/pull/24519/head
* [new ref] refs/pull/24522/head -> refs/pull/24522/head
* [new ref] refs/pull/24523/head -> refs/pull/24523/head
* [new ref] refs/pull/24526/head -> refs/pull/24526/head
* [new ref] refs/pull/24528/head -> refs/pull/24528/head
* [new ref] refs/pull/24528/merge -> refs/pull/24528/merge
* [new ref] refs/pull/24531/head -> refs/pull/24531/head
* [new ref] refs/pull/24537/head -> refs/pull/24537/head
* [new ref] refs/pull/24537/merge -> refs/pull/24537/merge
* [new ref] refs/pull/24538/head -> refs/pull/24538/head
* [new ref] refs/pull/24540/head -> refs/pull/24540/head
* [new ref] refs/pull/24542/head -> refs/pull/24542/head
* [new ref] refs/pull/24544/head -> refs/pull/24544/head
* [new ref] refs/pull/24545/head -> refs/pull/24545/head
* [new ref] refs/pull/24550/head -> refs/pull/24550/head
* [new ref] refs/pull/24554/head -> refs/pull/24554/head
* [new ref] refs/pull/24556/head -> refs/pull/24556/head
* [new ref] refs/pull/24556/merge -> refs/pull/24556/merge
* [new ref] refs/pull/24558/head -> refs/pull/24558/head
* [new ref] refs/pull/24559/head -> refs/pull/24559/head
* [new ref] refs/pull/24561/head -> refs/pull/24561/head
* [new ref] refs/pull/24565/head -> refs/pull/24565/head
* [new ref] refs/pull/24566/head -> refs/pull/24566/head
* [new ref] refs/pull/24567/head -> refs/pull/24567/head
* [new ref] refs/pull/24568/head -> refs/pull/24568/head
* [new ref] refs/pull/24569/head -> refs/pull/24569/head
* [new ref] refs/pull/24571/head -> refs/pull/24571/head
* [new ref] refs/pull/24573/head -> refs/pull/24573/head
* [new ref] refs/pull/24575/head -> refs/pull/24575/head
* [new ref] refs/pull/24577/head -> refs/pull/24577/head
* [new ref] refs/pull/24578/head -> refs/pull/24578/head
* [new ref] refs/pull/24579/head -> refs/pull/24579/head
* [new ref] refs/pull/24582/head -> refs/pull/24582/head
* [new ref] refs/pull/24590/head -> refs/pull/24590/head
* [new ref] refs/pull/24596/head -> refs/pull/24596/head
* [new ref] refs/pull/24596/merge -> refs/pull/24596/merge
* [new ref] refs/pull/24598/head -> refs/pull/24598/head
* [new ref] refs/pull/24599/head -> refs/pull/24599/head
* [new ref] refs/pull/24606/head -> refs/pull/24606/head
* [new ref] refs/pull/24609/head -> refs/pull/24609/head
* [new ref] refs/pull/24611/head -> refs/pull/24611/head
* [new ref] refs/pull/24613/head -> refs/pull/24613/head
* [new ref] refs/pull/24616/head -> refs/pull/24616/head
* [new ref] refs/pull/24617/head -> refs/pull/24617/head
* [new ref] refs/pull/24619/head -> refs/pull/24619/head
* [new ref] refs/pull/24620/head -> refs/pull/24620/head
* [new ref] refs/pull/24621/head -> refs/pull/24621/head
* [new ref] refs/pull/24623/head -> refs/pull/24623/head
* [new ref] refs/pull/24626/head -> refs/pull/24626/head
* [new ref] refs/pull/24630/head -> refs/pull/24630/head
* [new ref] refs/pull/24632/head -> refs/pull/24632/head
* [new ref] refs/pull/24632/merge -> refs/pull/24632/merge
* [new ref] refs/pull/24635/head -> refs/pull/24635/head
* [new ref] refs/pull/24638/head -> refs/pull/24638/head
* [new ref] refs/pull/24640/head -> refs/pull/24640/head
* [new ref] refs/pull/24643/head -> refs/pull/24643/head
* [new ref] refs/pull/24645/head -> refs/pull/24645/head
* [new ref] refs/pull/24646/head -> refs/pull/24646/head
* [new ref] refs/pull/24649/head -> refs/pull/24649/head
* [new ref] refs/pull/24650/head -> refs/pull/24650/head
* [new ref] refs/pull/24652/head -> refs/pull/24652/head
* [new ref] refs/pull/24653/head -> refs/pull/24653/head
* [new ref] refs/pull/24655/head -> refs/pull/24655/head
* [new ref] refs/pull/24659/head -> refs/pull/24659/head
* [new ref] refs/pull/24661/head -> refs/pull/24661/head
* [new ref] refs/pull/24662/head -> refs/pull/24662/head
* [new ref] refs/pull/24664/head -> refs/pull/24664/head
* [new ref] refs/pull/24665/head -> refs/pull/24665/head
* [new ref] refs/pull/24667/head -> refs/pull/24667/head
* [new ref] refs/pull/24669/head -> refs/pull/24669/head
* [new ref] refs/pull/24671/head -> refs/pull/24671/head
* [new ref] refs/pull/24677/head -> refs/pull/24677/head
* [new ref] refs/pull/24685/head -> refs/pull/24685/head
* [new ref] refs/pull/24688/head -> refs/pull/24688/head
* [new ref] refs/pull/24694/head -> refs/pull/24694/head
* [new ref] refs/pull/24696/head -> refs/pull/24696/head
* [new ref] refs/pull/24706/head -> refs/pull/24706/head
* [new ref] refs/pull/24711/head -> refs/pull/24711/head
* [new ref] refs/pull/24711/merge -> refs/pull/24711/merge
* [new ref] refs/pull/24715/head -> refs/pull/24715/head
* [new ref] refs/pull/24716/head -> refs/pull/24716/head
* [new ref] refs/pull/24717/head -> refs/pull/24717/head
* [new ref] refs/pull/24718/head -> refs/pull/24718/head
* [new ref] refs/pull/24720/head -> refs/pull/24720/head
* [new ref] refs/pull/24722/head -> refs/pull/24722/head
* [new ref] refs/pull/24722/merge -> refs/pull/24722/merge
* [new ref] refs/pull/24723/head -> refs/pull/24723/head
* [new ref] refs/pull/24723/merge -> refs/pull/24723/merge
* [new ref] refs/pull/24727/head -> refs/pull/24727/head
* [new ref] refs/pull/24728/head -> refs/pull/24728/head
* [new ref] refs/pull/24728/merge -> refs/pull/24728/merge
* [new ref] refs/pull/24736/head -> refs/pull/24736/head
* [new ref] refs/pull/24736/merge -> refs/pull/24736/merge
* [new ref] refs/pull/24744/head -> refs/pull/24744/head
* [new ref] refs/pull/24744/merge -> refs/pull/24744/merge
* [new ref] refs/pull/24752/head -> refs/pull/24752/head
* [new ref] refs/pull/24753/head -> refs/pull/24753/head
* [new ref] refs/pull/24754/head -> refs/pull/24754/head
* [new ref] refs/pull/24754/merge -> refs/pull/24754/merge
* [new ref] refs/pull/24755/head -> refs/pull/24755/head
* [new ref] refs/pull/24756/head -> refs/pull/24756/head
* [new ref] refs/pull/24757/head -> refs/pull/24757/head
* [new ref] refs/pull/24758/head -> refs/pull/24758/head
* [new ref] refs/pull/24758/merge -> refs/pull/24758/merge
* [new ref] refs/pull/24759/head -> refs/pull/24759/head
* [new ref] refs/pull/24760/head -> refs/pull/24760/head
* [new ref] refs/pull/24760/merge -> refs/pull/24760/merge
* [new ref] refs/pull/24761/head -> refs/pull/24761/head
* [new ref] refs/pull/24761/merge -> refs/pull/24761/merge
* [new ref] refs/pull/24762/head -> refs/pull/24762/head
* [new ref] refs/pull/24763/head -> refs/pull/24763/head
* [new ref] refs/pull/24764/head -> refs/pull/24764/head
* [new ref] refs/pull/24765/head -> refs/pull/24765/head
* [new ref] refs/pull/24766/head -> refs/pull/24766/head
* [new ref] refs/pull/24767/head -> refs/pull/24767/head
* [new ref] refs/pull/24770/head -> refs/pull/24770/head
* [new ref] refs/pull/24771/head -> refs/pull/24771/head
* [new ref] refs/pull/24773/head -> refs/pull/24773/head
* [new ref] refs/pull/24774/head -> refs/pull/24774/head
* [new ref] refs/pull/24777/head -> refs/pull/24777/head
* [new ref] refs/pull/24778/head -> refs/pull/24778/head
* [new ref] refs/pull/24782/head -> refs/pull/24782/head
* [new ref] refs/pull/24782/merge -> refs/pull/24782/merge
* [new ref] refs/pull/24783/head -> refs/pull/24783/head
* [new ref] refs/pull/24784/head -> refs/pull/24784/head
* [new ref] refs/pull/24786/head -> refs/pull/24786/head
* [new ref] refs/pull/24789/head -> refs/pull/24789/head
* [new ref] refs/pull/24789/merge -> refs/pull/24789/merge
* [new ref] refs/pull/24793/head -> refs/pull/24793/head
* [new ref] refs/pull/24794/head -> refs/pull/24794/head
* [new ref] refs/pull/24795/head -> refs/pull/24795/head
* [new ref] refs/pull/24795/merge -> refs/pull/24795/merge
* [new ref] refs/pull/24801/head -> refs/pull/24801/head
* [new ref] refs/pull/24804/head -> refs/pull/24804/head
* [new ref] refs/pull/24804/merge -> refs/pull/24804/merge
* [new ref] refs/pull/24813/head -> refs/pull/24813/head
* [new ref] refs/pull/24813/merge -> refs/pull/24813/merge
* [new ref] refs/pull/24819/head -> refs/pull/24819/head
* [new ref] refs/pull/24819/merge -> refs/pull/24819/merge
* [new ref] refs/pull/24822/head -> refs/pull/24822/head
* [new ref] refs/pull/24822/merge -> refs/pull/24822/merge
* [new ref] refs/pull/24823/head -> refs/pull/24823/head
* [new ref] refs/pull/24824/head -> refs/pull/24824/head
* [new ref] refs/pull/24825/head -> refs/pull/24825/head
* [new ref] refs/pull/24825/merge -> refs/pull/24825/merge
* [new ref] refs/pull/24826/head -> refs/pull/24826/head
* [new ref] refs/pull/24826/merge -> refs/pull/24826/merge
* [new ref] refs/pull/24834/head -> refs/pull/24834/head
* [new ref] refs/pull/24837/head -> refs/pull/24837/head
* [new ref] refs/pull/24839/head -> refs/pull/24839/head
* [new ref] refs/pull/24840/head -> refs/pull/24840/head
* [new ref] refs/pull/24841/head -> refs/pull/24841/head
* [new ref] refs/pull/24841/merge -> refs/pull/24841/merge
* [new ref] refs/pull/24842/head -> refs/pull/24842/head
* [new ref] refs/pull/24843/head -> refs/pull/24843/head
* [new ref] refs/pull/24844/head -> refs/pull/24844/head
* [new ref] refs/pull/24846/head -> refs/pull/24846/head
* [new ref] refs/pull/24847/head -> refs/pull/24847/head
* [new ref] refs/pull/24847/merge -> refs/pull/24847/merge
* [new ref] refs/pull/24848/head -> refs/pull/24848/head
* [new ref] refs/pull/24849/head -> refs/pull/24849/head
* [new ref] refs/pull/24851/head -> refs/pull/24851/head
* [new ref] refs/pull/24851/merge -> refs/pull/24851/merge
* [new ref] refs/pull/24852/head -> refs/pull/24852/head
* [new ref] refs/pull/24853/head -> refs/pull/24853/head
* [new ref] refs/pull/24853/merge -> refs/pull/24853/merge
* [new ref] refs/pull/24854/head -> refs/pull/24854/head
* [new ref] refs/pull/24857/head -> refs/pull/24857/head
* [new ref] refs/pull/24858/head -> refs/pull/24858/head
* [new ref] refs/pull/24859/head -> refs/pull/24859/head
* [new ref] refs/pull/24861/head -> refs/pull/24861/head
* [new ref] refs/pull/24862/head -> refs/pull/24862/head
* [new ref] refs/pull/24862/merge -> refs/pull/24862/merge
* [new ref] refs/pull/24870/head -> refs/pull/24870/head
* [new ref] refs/pull/24873/head -> refs/pull/24873/head
* [new ref] refs/pull/24875/head -> refs/pull/24875/head
* [new ref] refs/pull/24876/head -> refs/pull/24876/head
* [new ref] refs/pull/24877/head -> refs/pull/24877/head
* [new ref] refs/pull/24877/merge -> refs/pull/24877/merge
* [new ref] refs/pull/24881/head -> refs/pull/24881/head
* [new ref] refs/pull/24882/head -> refs/pull/24882/head
* [new ref] refs/pull/24883/head -> refs/pull/24883/head
* [new ref] refs/pull/24884/head -> refs/pull/24884/head
* [new ref] refs/pull/24885/head -> refs/pull/24885/head
* [new ref] refs/pull/24886/head -> refs/pull/24886/head
* [new ref] refs/pull/24887/head -> refs/pull/24887/head
* [new ref] refs/pull/24889/head -> refs/pull/24889/head
* [new ref] refs/pull/24890/head -> refs/pull/24890/head
* [new ref] refs/pull/24892/head -> refs/pull/24892/head
* [new ref] refs/pull/24892/merge -> refs/pull/24892/merge
* [new ref] refs/pull/24896/head -> refs/pull/24896/head
* [new ref] refs/pull/24897/head -> refs/pull/24897/head
* [new ref] refs/pull/24897/merge -> refs/pull/24897/merge
* [new ref] refs/pull/24899/head -> refs/pull/24899/head
* [new ref] refs/pull/24900/head -> refs/pull/24900/head
* [new ref] refs/pull/24900/merge -> refs/pull/24900/merge
* [new ref] refs/pull/24903/head -> refs/pull/24903/head
* [new ref] refs/pull/24905/head -> refs/pull/24905/head
* [new ref] refs/pull/24905/merge -> refs/pull/24905/merge
* [new ref] refs/pull/24908/head -> refs/pull/24908/head
* [new ref] refs/pull/24908/merge -> refs/pull/24908/merge
* [new ref] refs/pull/24910/head -> refs/pull/24910/head
* [new ref] refs/pull/24911/head -> refs/pull/24911/head
* [new ref] refs/pull/24913/head -> refs/pull/24913/head
* [new ref] refs/pull/24913/merge -> refs/pull/24913/merge
* [new ref] refs/pull/24914/head -> refs/pull/24914/head
* [new ref] refs/pull/24930/head -> refs/pull/24930/head
* [new ref] refs/pull/24930/merge -> refs/pull/24930/merge
* [new ref] refs/pull/24934/head -> refs/pull/24934/head
* [new ref] refs/pull/24938/head -> refs/pull/24938/head
* [new ref] refs/pull/24939/head -> refs/pull/24939/head
* [new ref] refs/pull/24940/head -> refs/pull/24940/head
* [new ref] refs/pull/24941/head -> refs/pull/24941/head
* [new ref] refs/pull/24945/head -> refs/pull/24945/head
* [new ref] refs/pull/24946/head -> refs/pull/24946/head
* [new ref] refs/pull/24951/head -> refs/pull/24951/head
* [new ref] refs/pull/24953/head -> refs/pull/24953/head
* [new ref] refs/pull/24956/head -> refs/pull/24956/head
* [new ref] refs/pull/24956/merge -> refs/pull/24956/merge
* [new ref] refs/pull/24958/head -> refs/pull/24958/head
* [new ref] refs/pull/24958/merge -> refs/pull/24958/merge
* [new ref] refs/pull/24959/head -> refs/pull/24959/head
* [new ref] refs/pull/24963/head -> refs/pull/24963/head
* [new ref] refs/pull/24964/head -> refs/pull/24964/head
* [new ref] refs/pull/24964/merge -> refs/pull/24964/merge
* [new ref] refs/pull/24967/head -> refs/pull/24967/head
* [new ref] refs/pull/24968/head -> refs/pull/24968/head
* [new ref] refs/pull/24969/head -> refs/pull/24969/head
* [new ref] refs/pull/24969/merge -> refs/pull/24969/merge
* [new ref] refs/pull/24970/head -> refs/pull/24970/head
* [new ref] refs/pull/24971/head -> refs/pull/24971/head
* [new ref] refs/pull/24972/head -> refs/pull/24972/head
* [new ref] refs/pull/24973/head -> refs/pull/24973/head
* [new ref] refs/pull/24973/merge -> refs/pull/24973/merge
* [new ref] refs/pull/24974/head -> refs/pull/24974/head
* [new ref] refs/pull/24976/head -> refs/pull/24976/head
* [new ref] refs/pull/24976/merge -> refs/pull/24976/merge
* [new ref] refs/pull/24978/head -> refs/pull/24978/head
* [new ref] refs/pull/24978/merge -> refs/pull/24978/merge
* [new ref] refs/pull/24980/head -> refs/pull/24980/head
* [new ref] refs/pull/24983/head -> refs/pull/24983/head
* [new ref] refs/pull/24984/head -> refs/pull/24984/head
* [new ref] refs/pull/24985/head -> refs/pull/24985/head
* [new ref] refs/pull/24990/head -> refs/pull/24990/head
* [new ref] refs/pull/24990/merge -> refs/pull/24990/merge
* [new ref] refs/pull/24995/head -> refs/pull/24995/head
* [new ref] refs/pull/24995/merge -> refs/pull/24995/merge
* [new ref] refs/pull/25000/head -> refs/pull/25000/head
* [new ref] refs/pull/25002/head -> refs/pull/25002/head
* [new ref] refs/pull/25002/merge -> refs/pull/25002/merge
* [new ref] refs/pull/25005/head -> refs/pull/25005/head
* [new ref] refs/pull/25008/head -> refs/pull/25008/head
* [new ref] refs/pull/25008/merge -> refs/pull/25008/merge
* [new ref] refs/pull/25009/head -> refs/pull/25009/head
* [new ref] refs/pull/25010/head -> refs/pull/25010/head
* [new ref] refs/pull/25010/merge -> refs/pull/25010/merge
* [new ref] refs/pull/25013/head -> refs/pull/25013/head
* [new ref] refs/pull/25022/head -> refs/pull/25022/head
* [new ref] refs/pull/25022/merge -> refs/pull/25022/merge
* [new ref] refs/pull/25024/head -> refs/pull/25024/head
* [new ref] refs/pull/25026/head -> refs/pull/25026/head
* [new ref] refs/pull/25026/merge -> refs/pull/25026/merge
* [new ref] refs/pull/25028/head -> refs/pull/25028/head
* [new ref] refs/pull/25028/merge -> refs/pull/25028/merge
* [new ref] refs/pull/25030/head -> refs/pull/25030/head
* [new ref] refs/pull/25030/merge -> refs/pull/25030/merge
* [new ref] refs/pull/25033/head -> refs/pull/25033/head
* [new ref] refs/pull/25033/merge -> refs/pull/25033/merge
* [new ref] refs/pull/25035/head -> refs/pull/25035/head
* [new ref] refs/pull/25036/head -> refs/pull/25036/head
* [new ref] refs/pull/25037/head -> refs/pull/25037/head
* [new ref] refs/pull/25040/head -> refs/pull/25040/head
* [new ref] refs/pull/25043/head -> refs/pull/25043/head
* [new ref] refs/pull/25043/merge -> refs/pull/25043/merge
* [new ref] refs/pull/25048/head -> refs/pull/25048/head
* [new ref] refs/pull/25049/head -> refs/pull/25049/head
* [new ref] refs/pull/25050/head -> refs/pull/25050/head
* [new ref] refs/pull/25050/merge -> refs/pull/25050/merge
* [new ref] refs/pull/25051/head -> refs/pull/25051/head
* [new ref] refs/pull/25051/merge -> refs/pull/25051/merge
* [new ref] refs/pull/25053/head -> refs/pull/25053/head
* [new ref] refs/pull/25055/head -> refs/pull/25055/head
* [new ref] refs/pull/25057/head -> refs/pull/25057/head
* [new ref] refs/pull/25058/head -> refs/pull/25058/head
* [new ref] refs/pull/25059/head -> refs/pull/25059/head
* [new ref] refs/pull/25060/head -> refs/pull/25060/head
* [new ref] refs/pull/25060/merge -> refs/pull/25060/merge
* [new ref] refs/pull/25061/head -> refs/pull/25061/head
* [new ref] refs/pull/25062/head -> refs/pull/25062/head
* [new ref] refs/pull/25063/head -> refs/pull/25063/head
* [new ref] refs/pull/25063/merge -> refs/pull/25063/merge
* [new ref] refs/pull/25066/head -> refs/pull/25066/head
* [new ref] refs/pull/25067/head -> refs/pull/25067/head
* [new ref] refs/pull/25067/merge -> refs/pull/25067/merge
* [new ref] refs/pull/25068/head -> refs/pull/25068/head
* [new ref] refs/pull/25069/head -> refs/pull/25069/head
* [new ref] refs/pull/25069/merge -> refs/pull/25069/merge
* [new ref] refs/pull/25071/head -> refs/pull/25071/head
* [new ref] refs/pull/25071/merge -> refs/pull/25071/merge
* [new ref] refs/pull/25072/head -> refs/pull/25072/head
* [new ref] refs/pull/25072/merge -> refs/pull/25072/merge
* [new ref] refs/pull/25073/head -> refs/pull/25073/head
* [new ref] refs/pull/25075/head -> refs/pull/25075/head
* [new ref] refs/pull/25075/merge -> refs/pull/25075/merge
* [new ref] refs/pull/25076/head -> refs/pull/25076/head
* [new ref] refs/pull/25076/merge -> refs/pull/25076/merge
* [new ref] refs/pull/25077/head -> refs/pull/25077/head
* [new ref] refs/pull/25079/head -> refs/pull/25079/head
* [new ref] refs/pull/25080/head -> refs/pull/25080/head
* [new ref] refs/pull/25082/head -> refs/pull/25082/head
* [new ref] refs/pull/25082/merge -> refs/pull/25082/merge
* [new ref] refs/pull/25083/head -> refs/pull/25083/head
* [new ref] refs/pull/25086/head -> refs/pull/25086/head
* [new ref] refs/pull/25086/merge -> refs/pull/25086/merge
* [new ref] refs/pull/25087/head -> refs/pull/25087/head
* [new ref] refs/pull/25087/merge -> refs/pull/25087/merge
* [new ref] refs/pull/25088/head -> refs/pull/25088/head
* [new ref] refs/pull/25089/head -> refs/pull/25089/head
* [new ref] refs/pull/25090/head -> refs/pull/25090/head
* [new ref] refs/pull/25091/head -> refs/pull/25091/head
* [new ref] refs/pull/25091/merge -> refs/pull/25091/merge
* [new ref] refs/pull/25092/head -> refs/pull/25092/head
* [new ref] refs/pull/25093/head -> refs/pull/25093/head
* [new ref] refs/pull/25093/merge -> refs/pull/25093/merge
* [new ref] refs/pull/25094/head -> refs/pull/25094/head
* [new ref] refs/pull/25095/head -> refs/pull/25095/head
* [new ref] refs/pull/25095/merge -> refs/pull/25095/merge
* [new ref] refs/pull/25096/head -> refs/pull/25096/head
* [new ref] refs/pull/25097/head -> refs/pull/25097/head
* [new ref] refs/pull/25097/merge -> refs/pull/25097/merge
* [new ref] refs/pull/25098/head -> refs/pull/25098/head
* [new ref] refs/pull/25098/merge -> refs/pull/25098/merge
* [new ref] refs/pull/25100/head -> refs/pull/25100/head
* [new ref] refs/pull/25100/merge -> refs/pull/25100/merge
* [new ref] refs/pull/25101/head -> refs/pull/25101/head
* [new ref] refs/pull/25102/head -> refs/pull/25102/head
* [new ref] refs/pull/25102/merge -> refs/pull/25102/merge
* [new ref] refs/pull/25109/head -> refs/pull/25109/head
* [new ref] refs/pull/25109/merge -> refs/pull/25109/merge
* [new ref] refs/pull/25113/head -> refs/pull/25113/head
* [new ref] refs/pull/25114/head -> refs/pull/25114/head
* [new ref] refs/pull/25115/head -> refs/pull/25115/head
* [new ref] refs/pull/25115/merge -> refs/pull/25115/merge
* [new ref] refs/pull/25116/head -> refs/pull/25116/head
* [new ref] refs/pull/25117/head -> refs/pull/25117/head
* [new ref] refs/pull/25118/head -> refs/pull/25118/head
* [new ref] refs/pull/25121/head -> refs/pull/25121/head
* [new ref] refs/pull/25124/head -> refs/pull/25124/head
* [new ref] refs/pull/25125/head -> refs/pull/25125/head
* [new ref] refs/pull/25128/head -> refs/pull/25128/head
* [new ref] refs/pull/25130/head -> refs/pull/25130/head
* [new ref] refs/pull/25132/head -> refs/pull/25132/head
* [new ref] refs/pull/25134/head -> refs/pull/25134/head
* [new ref] refs/pull/25135/head -> refs/pull/25135/head
* [new ref] refs/pull/25135/merge -> refs/pull/25135/merge
* [new ref] refs/pull/25136/head -> refs/pull/25136/head
* [new ref] refs/pull/25138/head -> refs/pull/25138/head
* [new ref] refs/pull/25138/merge -> refs/pull/25138/merge
* [new ref] refs/pull/25139/head -> refs/pull/25139/head
* [new ref] refs/pull/25139/merge -> refs/pull/25139/merge
* [new ref] refs/pull/25140/head -> refs/pull/25140/head
* [new ref] refs/pull/25142/head -> refs/pull/25142/head
* [new ref] refs/pull/25143/head -> refs/pull/25143/head
* [new ref] refs/pull/25144/head -> refs/pull/25144/head
* [new ref] refs/pull/25147/head -> refs/pull/25147/head
* [new ref] refs/pull/25148/head -> refs/pull/25148/head
* [new ref] refs/pull/25149/head -> refs/pull/25149/head
* [new ref] refs/pull/25149/merge -> refs/pull/25149/merge
* [new ref] refs/pull/25150/head -> refs/pull/25150/head
* [new ref] refs/pull/25150/merge -> refs/pull/25150/merge
* [new ref] refs/pull/25151/head -> refs/pull/25151/head
* [new ref] refs/pull/25151/merge -> refs/pull/25151/merge
* [new ref] refs/pull/25153/head -> refs/pull/25153/head
* [new ref] refs/pull/25154/head -> refs/pull/25154/head
* [new ref] refs/pull/25154/merge -> refs/pull/25154/merge
* [new ref] refs/pull/25155/head -> refs/pull/25155/head
* [new ref] refs/pull/25157/head -> refs/pull/25157/head
* [new ref] refs/pull/25158/head -> refs/pull/25158/head
* [new ref] refs/pull/25158/merge -> refs/pull/25158/merge
* [new ref] refs/pull/25159/head -> refs/pull/25159/head
* [new ref] refs/pull/25159/merge -> refs/pull/25159/merge
* [new ref] refs/pull/25160/head -> refs/pull/25160/head
* [new ref] refs/pull/25160/merge -> refs/pull/25160/merge
* [new ref] refs/pull/25161/head -> refs/pull/25161/head
* [new ref] refs/pull/25161/merge -> refs/pull/25161/merge
* [new ref] refs/pull/25163/head -> refs/pull/25163/head
* [new ref] refs/pull/25163/merge -> refs/pull/25163/merge
* [new ref] refs/pull/25170/head -> refs/pull/25170/head
* [new ref] refs/pull/25170/merge -> refs/pull/25170/merge
* [new ref] refs/pull/25174/head -> refs/pull/25174/head
* [new ref] refs/pull/25175/head -> refs/pull/25175/head
* [new ref] refs/pull/25175/merge -> refs/pull/25175/merge
* [new ref] refs/pull/25176/head -> refs/pull/25176/head
* [new ref] refs/pull/25176/merge -> refs/pull/25176/merge
* [new ref] refs/pull/25178/head -> refs/pull/25178/head
* [new ref] refs/pull/25178/merge -> refs/pull/25178/merge
* [new ref] refs/pull/25181/head -> refs/pull/25181/head
* [new ref] refs/pull/25185/head -> refs/pull/25185/head
* [new ref] refs/pull/25185/merge -> refs/pull/25185/merge
* [new ref] refs/pull/25186/head -> refs/pull/25186/head
* [new ref] refs/pull/25186/merge -> refs/pull/25186/merge
* [new ref] refs/pull/25187/head -> refs/pull/25187/head
* [new ref] refs/pull/25190/head -> refs/pull/25190/head
* [new ref] refs/pull/25190/merge -> refs/pull/25190/merge
* [new ref] refs/pull/25191/head -> refs/pull/25191/head
* [new ref] refs/pull/25191/merge -> refs/pull/25191/merge
* [new ref] refs/pull/25196/head -> refs/pull/25196/head
* [new ref] refs/pull/25196/merge -> refs/pull/25196/merge
* [new ref] refs/pull/25197/head -> refs/pull/25197/head
* [new ref] refs/pull/25200/head -> refs/pull/25200/head
* [new ref] refs/pull/25200/merge -> refs/pull/25200/merge
* [new ref] refs/pull/25201/head -> refs/pull/25201/head
* [new ref] refs/pull/25204/head -> refs/pull/25204/head
* [new ref] refs/pull/25209/head -> refs/pull/25209/head
* [new ref] refs/pull/25212/head -> refs/pull/25212/head
* [new ref] refs/pull/25212/merge -> refs/pull/25212/merge
* [new ref] refs/pull/25220/head -> refs/pull/25220/head
* [new ref] refs/pull/25220/merge -> refs/pull/25220/merge
* [new ref] refs/pull/25222/head -> refs/pull/25222/head
* [new ref] refs/pull/25222/merge -> refs/pull/25222/merge
* [new ref] refs/pull/25223/head -> refs/pull/25223/head
* [new ref] refs/pull/25223/merge -> refs/pull/25223/merge
* [new ref] refs/pull/25225/head -> refs/pull/25225/head
* [new ref] refs/pull/25225/merge -> refs/pull/25225/merge
* [new ref] refs/pull/25227/head -> refs/pull/25227/head
* [new ref] refs/pull/25227/merge -> refs/pull/25227/merge
* [new ref] refs/pull/25230/head -> refs/pull/25230/head
* [new ref] refs/pull/25230/merge -> refs/pull/25230/merge
* [new ref] refs/pull/25231/head -> refs/pull/25231/head
* [new ref] refs/pull/25231/merge -> refs/pull/25231/merge
* [new ref] refs/pull/25234/head -> refs/pull/25234/head
* [new ref] refs/pull/25234/merge -> refs/pull/25234/merge
* [new ref] refs/pull/25235/head -> refs/pull/25235/head
* [new ref] refs/pull/25235/merge -> refs/pull/25235/merge
* [new ref] refs/pull/25237/head -> refs/pull/25237/head
* [new ref] refs/pull/25237/merge -> refs/pull/25237/merge
* [new ref] refs/pull/25239/head -> refs/pull/25239/head
* [new ref] refs/pull/25239/merge -> refs/pull/25239/merge
* [new ref] refs/pull/25240/head -> refs/pull/25240/head
* [new ref] refs/pull/25240/merge -> refs/pull/25240/merge
* [new ref] refs/pull/25241/head -> refs/pull/25241/head
* [new ref] refs/pull/25241/merge -> refs/pull/25241/merge
* [new ref] refs/pull/25242/head -> refs/pull/25242/head
* [new ref] refs/pull/25242/merge -> refs/pull/25242/merge
* [new ref] refs/pull/25243/head -> refs/pull/25243/head
* [new ref] refs/pull/25243/merge -> refs/pull/25243/merge
* [new ref] refs/pull/25247/head -> refs/pull/25247/head
* [new ref] refs/pull/25247/merge -> refs/pull/25247/merge
* [new ref] refs/pull/25251/head -> refs/pull/25251/head
* [new ref] refs/pull/25251/merge -> refs/pull/25251/merge
* [new ref] refs/pull/25256/head -> refs/pull/25256/head
* [new ref] refs/pull/25256/merge -> refs/pull/25256/merge
* [new ref] refs/pull/25257/head -> refs/pull/25257/head
* [new ref] refs/pull/25257/merge -> refs/pull/25257/merge
* [new ref] refs/pull/25258/head -> refs/pull/25258/head
* [new ref] refs/pull/25258/merge -> refs/pull/25258/merge
* [new ref] refs/pull/25259/head -> refs/pull/25259/head
* [new ref] refs/pull/25260/head -> refs/pull/25260/head
* [new ref] refs/pull/25260/merge -> refs/pull/25260/merge
* [new ref] refs/pull/25261/head -> refs/pull/25261/head
* [new ref] refs/pull/25262/head -> refs/pull/25262/head
* [new ref] refs/pull/25262/merge -> refs/pull/25262/merge
* [new ref] refs/pull/25263/head -> refs/pull/25263/head
* [new ref] refs/pull/25265/head -> refs/pull/25265/head
* [new ref] refs/pull/25266/head -> refs/pull/25266/head
* [new ref] refs/pull/25273/head -> refs/pull/25273/head
* [new ref] refs/pull/25273/merge -> refs/pull/25273/merge
* [new ref] refs/pull/25274/head -> refs/pull/25274/head
* [new ref] refs/pull/25274/merge -> refs/pull/25274/merge
* [new ref] refs/pull/25277/head -> refs/pull/25277/head
* [new ref] refs/pull/25277/merge -> refs/pull/25277/merge
* [new ref] refs/pull/25278/head -> refs/pull/25278/head
* [new ref] refs/pull/25278/merge -> refs/pull/25278/merge
* [new ref] refs/pull/25279/head -> refs/pull/25279/head
* [new ref] refs/pull/25279/merge -> refs/pull/25279/merge
* [new ref] refs/pull/25280/head -> refs/pull/25280/head
* [new ref] refs/pull/25282/head -> refs/pull/25282/head
* [new ref] refs/pull/25286/head -> refs/pull/25286/head
* [new ref] refs/pull/25286/merge -> refs/pull/25286/merge
* [new ref] refs/pull/25287/head -> refs/pull/25287/head
* [new ref] refs/pull/25287/merge -> refs/pull/25287/merge
* [new ref] refs/pull/25289/head -> refs/pull/25289/head
* [new ref] refs/pull/25289/merge -> refs/pull/25289/merge
* [new ref] refs/pull/25290/head -> refs/pull/25290/head
* [new ref] refs/pull/25290/merge -> refs/pull/25290/merge
* [new ref] refs/pull/25291/head -> refs/pull/25291/head
* [new ref] refs/pull/25291/merge -> refs/pull/25291/merge
* [new ref] refs/pull/25292/head -> refs/pull/25292/head
* [new ref] refs/pull/25292/merge -> refs/pull/25292/merge
* [new ref] refs/pull/25295/head -> refs/pull/25295/head
* [new ref] refs/pull/25295/merge -> refs/pull/25295/merge
* [new ref] refs/pull/25296/head -> refs/pull/25296/head
* [new ref] refs/pull/25297/head -> refs/pull/25297/head
* [new ref] refs/pull/25298/head -> refs/pull/25298/head
* [new ref] refs/pull/25300/head -> refs/pull/25300/head
* [new ref] refs/pull/25302/head -> refs/pull/25302/head
* [new ref] refs/pull/25302/merge -> refs/pull/25302/merge
* [new ref] refs/pull/25303/head -> refs/pull/25303/head
* [new ref] refs/pull/25303/merge -> refs/pull/25303/merge
* [new ref] refs/pull/25304/head -> refs/pull/25304/head
* [new ref] refs/pull/25305/head -> refs/pull/25305/head
* [new ref] refs/pull/25307/head -> refs/pull/25307/head
* [new ref] refs/pull/25308/head -> refs/pull/25308/head
* [new ref] refs/pull/25308/merge -> refs/pull/25308/merge
* [new ref] refs/pull/25310/head -> refs/pull/25310/head
* [new ref] refs/pull/25310/merge -> refs/pull/25310/merge
* [new ref] refs/pull/25311/head -> refs/pull/25311/head
* [new ref] refs/pull/25312/head -> refs/pull/25312/head
* [new ref] refs/pull/25313/head -> refs/pull/25313/head
* [new ref] refs/pull/25313/merge -> refs/pull/25313/merge
* [new ref] refs/pull/25317/head -> refs/pull/25317/head
* [new ref] refs/pull/25319/head -> refs/pull/25319/head
* [new ref] refs/pull/25320/head -> refs/pull/25320/head
* [new ref] refs/pull/25322/head -> refs/pull/25322/head
* [new ref] refs/pull/25324/head -> refs/pull/25324/head
* [new ref] refs/pull/25324/merge -> refs/pull/25324/merge
* [new ref] refs/pull/25325/head -> refs/pull/25325/head
* [new ref] refs/pull/25326/head -> refs/pull/25326/head
* [new ref] refs/pull/25327/head -> refs/pull/25327/head
* [new ref] refs/pull/25328/head -> refs/pull/25328/head
* [new ref] refs/pull/25329/head -> refs/pull/25329/head
* [new ref] refs/pull/25330/head -> refs/pull/25330/head
* [new ref] refs/pull/25331/head -> refs/pull/25331/head
* [new ref] refs/pull/25332/head -> refs/pull/25332/head
* [new ref] refs/pull/25333/head -> refs/pull/25333/head
* [new ref] refs/pull/25334/head -> refs/pull/25334/head
* [new ref] refs/pull/25336/head -> refs/pull/25336/head
* [new ref] refs/pull/25338/head -> refs/pull/25338/head
* [new ref] refs/pull/25339/head -> refs/pull/25339/head
* [new ref] refs/pull/25339/merge -> refs/pull/25339/merge
* [new ref] refs/pull/25340/head -> refs/pull/25340/head
* [new ref] refs/pull/25341/head -> refs/pull/25341/head
* [new ref] refs/pull/25342/head -> refs/pull/25342/head
* [new ref] refs/pull/25343/head -> refs/pull/25343/head
* [new ref] refs/pull/25343/merge -> refs/pull/25343/merge
* [new ref] refs/pull/25344/head -> refs/pull/25344/head
* [new ref] refs/pull/25344/merge -> refs/pull/25344/merge
* [new ref] refs/pull/25346/head -> refs/pull/25346/head
* [new ref] refs/pull/25347/head -> refs/pull/25347/head
* [new ref] refs/pull/25349/head -> refs/pull/25349/head
* [new ref] refs/pull/25351/head -> refs/pull/25351/head
* [new ref] refs/pull/25351/merge -> refs/pull/25351/merge
* [new ref] refs/pull/25352/head -> refs/pull/25352/head
* [new ref] refs/pull/25352/merge -> refs/pull/25352/merge
* [new ref] refs/pull/25353/head -> refs/pull/25353/head
* [new ref] refs/pull/25353/merge -> refs/pull/25353/merge
* [new ref] refs/pull/25354/head -> refs/pull/25354/head
* [new ref] refs/pull/25356/head -> refs/pull/25356/head
* [new ref] refs/pull/25357/head -> refs/pull/25357/head
* [new ref] refs/pull/25360/head -> refs/pull/25360/head
* [new ref] refs/pull/25360/merge -> refs/pull/25360/merge
* [new ref] refs/pull/25361/head -> refs/pull/25361/head
* [new ref] refs/pull/25361/merge -> refs/pull/25361/merge
* [new ref] refs/pull/25362/head -> refs/pull/25362/head
* [new ref] refs/pull/25362/merge -> refs/pull/25362/merge
* [new ref] refs/pull/25363/head -> refs/pull/25363/head
* [new ref] refs/pull/25364/head -> refs/pull/25364/head
* [new ref] refs/pull/25364/merge -> refs/pull/25364/merge
* [new ref] refs/pull/25368/head -> refs/pull/25368/head
* [new ref] refs/pull/25368/merge -> refs/pull/25368/merge
* [new ref] refs/pull/25371/head -> refs/pull/25371/head
* [new ref] refs/pull/25372/head -> refs/pull/25372/head
* [new ref] refs/pull/25373/head -> refs/pull/25373/head
* [new ref] refs/pull/25373/merge -> refs/pull/25373/merge
* [new ref] refs/pull/25375/head -> refs/pull/25375/head
* [new ref] refs/pull/25375/merge -> refs/pull/25375/merge
* [new ref] refs/pull/25376/head -> refs/pull/25376/head
* [new ref] refs/pull/25376/merge -> refs/pull/25376/merge
* [new ref] refs/pull/25378/head -> refs/pull/25378/head
* [new ref] refs/pull/25378/merge -> refs/pull/25378/merge
* [new ref] refs/pull/25381/head -> refs/pull/25381/head
* [new ref] refs/pull/25382/head -> refs/pull/25382/head
* [new ref] refs/pull/25383/head -> refs/pull/25383/head
* [new ref] refs/pull/25383/merge -> refs/pull/25383/merge
* [new ref] refs/pull/25384/head -> refs/pull/25384/head
* [new ref] refs/pull/25384/merge -> refs/pull/25384/merge
* [new ref] refs/pull/25385/head -> refs/pull/25385/head
* [new ref] refs/pull/25385/merge -> refs/pull/25385/merge
* [new ref] refs/pull/25388/head -> refs/pull/25388/head
* [new ref] refs/pull/25388/merge -> refs/pull/25388/merge
* [new ref] refs/pull/25389/head -> refs/pull/25389/head
* [new ref] refs/pull/25392/head -> refs/pull/25392/head
* [new ref] refs/pull/25394/head -> refs/pull/25394/head
* [new ref] refs/pull/25395/head -> refs/pull/25395/head
* [new ref] refs/pull/25396/head -> refs/pull/25396/head
* [new ref] refs/pull/25396/merge -> refs/pull/25396/merge
* [new ref] refs/pull/25398/head -> refs/pull/25398/head
* [new ref] refs/pull/25400/head -> refs/pull/25400/head
* [new ref] refs/pull/25400/merge -> refs/pull/25400/merge
* [new ref] refs/pull/25404/head -> refs/pull/25404/head
* [new ref] refs/pull/25404/merge -> refs/pull/25404/merge
* [new ref] refs/pull/25405/head -> refs/pull/25405/head
* [new ref] refs/pull/25409/head -> refs/pull/25409/head
* [new ref] refs/pull/25409/merge -> refs/pull/25409/merge
* [new ref] refs/pull/25410/head -> refs/pull/25410/head
* [new ref] refs/pull/25410/merge -> refs/pull/25410/merge
* [new ref] refs/pull/25412/head -> refs/pull/25412/head
* [new ref] refs/pull/25412/merge -> refs/pull/25412/merge
* [new ref] refs/pull/25413/head -> refs/pull/25413/head
* [new ref] refs/pull/25414/head -> refs/pull/25414/head
* [new ref] refs/pull/25414/merge -> refs/pull/25414/merge
* [new ref] refs/pull/25417/head -> refs/pull/25417/head
* [new ref] refs/pull/25419/head -> refs/pull/25419/head
* [new ref] refs/pull/25420/head -> refs/pull/25420/head
* [new ref] refs/pull/25421/head -> refs/pull/25421/head
* [new ref] refs/pull/25426/head -> refs/pull/25426/head
* [new ref] refs/pull/25426/merge -> refs/pull/25426/merge
* [new ref] refs/pull/25427/head -> refs/pull/25427/head
* [new ref] refs/pull/25432/head -> refs/pull/25432/head
* [new ref] refs/pull/25432/merge -> refs/pull/25432/merge
* [new ref] refs/pull/25433/head -> refs/pull/25433/head
* [new ref] refs/pull/25433/merge -> refs/pull/25433/merge
* [new ref] refs/pull/25435/head -> refs/pull/25435/head
* [new ref] refs/pull/25435/merge -> refs/pull/25435/merge
* [new ref] refs/pull/25437/head -> refs/pull/25437/head
* [new ref] refs/pull/25437/merge -> refs/pull/25437/merge
* [new ref] refs/pull/25442/head -> refs/pull/25442/head
* [new ref] refs/pull/25444/head -> refs/pull/25444/head
* [new ref] refs/pull/25444/merge -> refs/pull/25444/merge
* [new ref] refs/pull/25450/head -> refs/pull/25450/head
* [new ref] refs/pull/25450/merge -> refs/pull/25450/merge
* [new ref] refs/pull/25452/head -> refs/pull/25452/head
* [new ref] refs/pull/25453/head -> refs/pull/25453/head
* [new ref] refs/pull/25453/merge -> refs/pull/25453/merge
* [new ref] refs/pull/25454/head -> refs/pull/25454/head
* [new ref] refs/pull/25454/merge -> refs/pull/25454/merge
* [new ref] refs/pull/25455/head -> refs/pull/25455/head
* [new ref] refs/pull/25455/merge -> refs/pull/25455/merge
* [new ref] refs/pull/25461/head -> refs/pull/25461/head
* [new ref] refs/pull/25461/merge -> refs/pull/25461/merge
* [new ref] refs/pull/25462/head -> refs/pull/25462/head
* [new ref] refs/pull/25462/merge -> refs/pull/25462/merge
* [new ref] refs/pull/25463/head -> refs/pull/25463/head
* [new ref] refs/pull/25463/merge -> refs/pull/25463/merge
* [new ref] refs/pull/25464/head -> refs/pull/25464/head
* [new ref] refs/pull/25464/merge -> refs/pull/25464/merge
* [new ref] refs/pull/25466/head -> refs/pull/25466/head
* [new ref] refs/pull/25468/head -> refs/pull/25468/head
* [new ref] refs/pull/25468/merge -> refs/pull/25468/merge
* [new ref] refs/pull/25469/head -> refs/pull/25469/head
* [new ref] refs/pull/25469/merge -> refs/pull/25469/merge
* [new ref] refs/pull/25470/head -> refs/pull/25470/head
* [new ref] refs/pull/25472/head -> refs/pull/25472/head
* [new ref] refs/pull/25475/head -> refs/pull/25475/head
* [new ref] refs/pull/25476/head -> refs/pull/25476/head
* [new ref] refs/pull/25480/head -> refs/pull/25480/head
* [new ref] refs/pull/25482/head -> refs/pull/25482/head
* [new ref] refs/pull/25485/head -> refs/pull/25485/head
* [new ref] refs/pull/25485/merge -> refs/pull/25485/merge
* [new ref] refs/pull/25489/head -> refs/pull/25489/head
* [new ref] refs/pull/25489/merge -> refs/pull/25489/merge
* [new ref] refs/pull/25497/head -> refs/pull/25497/head
* [new ref] refs/pull/25497/merge -> refs/pull/25497/merge
* [new ref] refs/pull/25498/head -> refs/pull/25498/head
* [new ref] refs/pull/25498/merge -> refs/pull/25498/merge
* [new ref] refs/pull/25499/head -> refs/pull/25499/head
* [new ref] refs/pull/25499/merge -> refs/pull/25499/merge
* [new ref] refs/pull/25502/head -> refs/pull/25502/head
* [new ref] refs/pull/25511/head -> refs/pull/25511/head
* [new ref] refs/pull/25511/merge -> refs/pull/25511/merge
* [new ref] refs/pull/25513/head -> refs/pull/25513/head
* [new ref] refs/pull/25513/merge -> refs/pull/25513/merge
* [new ref] refs/pull/25514/head -> refs/pull/25514/head
* [new ref] refs/pull/25514/merge -> refs/pull/25514/merge
* [new ref] refs/pull/25515/head -> refs/pull/25515/head
* [new ref] refs/pull/25516/head -> refs/pull/25516/head
* [new ref] refs/pull/25516/merge -> refs/pull/25516/merge
* [new ref] refs/pull/25519/head -> refs/pull/25519/head
* [new ref] refs/pull/25519/merge -> refs/pull/25519/merge
* [new ref] refs/pull/25522/head -> refs/pull/25522/head
* [new ref] refs/pull/25524/head -> refs/pull/25524/head
* [new ref] refs/pull/25524/merge -> refs/pull/25524/merge
* [new ref] refs/pull/25528/head -> refs/pull/25528/head
* [new ref] refs/pull/25528/merge -> refs/pull/25528/merge
* [new ref] refs/pull/25537/head -> refs/pull/25537/head
* [new ref] refs/pull/25537/merge -> refs/pull/25537/merge
* [new ref] refs/pull/25540/head -> refs/pull/25540/head
* [new ref] refs/pull/25540/merge -> refs/pull/25540/merge
* [new ref] refs/pull/25542/head -> refs/pull/25542/head
* [new ref] refs/pull/25544/head -> refs/pull/25544/head
* [new ref] refs/pull/25545/head -> refs/pull/25545/head
* [new ref] refs/pull/25545/merge -> refs/pull/25545/merge
* [new ref] refs/pull/25546/head -> refs/pull/25546/head
* [new ref] refs/pull/25546/merge -> refs/pull/25546/merge
* [new ref] refs/pull/25550/head -> refs/pull/25550/head
* [new ref] refs/pull/25550/merge -> refs/pull/25550/merge
* [new ref] refs/pull/25554/head -> refs/pull/25554/head
* [new ref] refs/pull/25554/merge -> refs/pull/25554/merge
* [new ref] refs/pull/25555/head -> refs/pull/25555/head
* [new ref] refs/pull/25555/merge -> refs/pull/25555/merge
* [new ref] refs/pull/25560/head -> refs/pull/25560/head
* [new ref] refs/pull/25563/head -> refs/pull/25563/head
* [new ref] refs/pull/25567/head -> refs/pull/25567/head
* [new ref] refs/pull/25570/head -> refs/pull/25570/head
* [new ref] refs/pull/25572/head -> refs/pull/25572/head
* [new ref] refs/pull/25572/merge -> refs/pull/25572/merge
* [new ref] refs/pull/25576/head -> refs/pull/25576/head
* [new ref] refs/pull/25576/merge -> refs/pull/25576/merge
* [new ref] refs/pull/25578/head -> refs/pull/25578/head
* [new ref] refs/pull/25578/merge -> refs/pull/25578/merge
* [new ref] refs/pull/25580/head -> refs/pull/25580/head
* [new ref] refs/pull/25585/head -> refs/pull/25585/head
* [new ref] refs/pull/25586/head -> refs/pull/25586/head
* [new ref] refs/pull/25587/head -> refs/pull/25587/head
* [new ref] refs/pull/25589/head -> refs/pull/25589/head
* [new ref] refs/pull/25589/merge -> refs/pull/25589/merge
* [new ref] refs/pull/25591/head -> refs/pull/25591/head
* [new ref] refs/pull/25591/merge -> refs/pull/25591/merge
* [new ref] refs/pull/25593/head -> refs/pull/25593/head
* [new ref] refs/pull/25593/merge -> refs/pull/25593/merge
* [new ref] refs/pull/25594/head -> refs/pull/25594/head
* [new ref] refs/pull/25601/head -> refs/pull/25601/head
* [new ref] refs/pull/25604/head -> refs/pull/25604/head
* [new ref] refs/pull/25604/merge -> refs/pull/25604/merge
* [new ref] refs/pull/25605/head -> refs/pull/25605/head
* [new ref] refs/pull/25605/merge -> refs/pull/25605/merge
* [new ref] refs/pull/25606/head -> refs/pull/25606/head
* [new ref] refs/pull/25608/head -> refs/pull/25608/head
* [new ref] refs/pull/25608/merge -> refs/pull/25608/merge
* [new ref] refs/pull/25611/head -> refs/pull/25611/head
* [new ref] refs/pull/25612/head -> refs/pull/25612/head
* [new ref] refs/pull/25613/head -> refs/pull/25613/head
* [new ref] refs/pull/25613/merge -> refs/pull/25613/merge
* [new ref] refs/pull/25619/head -> refs/pull/25619/head
* [new ref] refs/pull/25619/merge -> refs/pull/25619/merge
* [new ref] refs/pull/25625/head -> refs/pull/25625/head
* [new ref] refs/pull/25625/merge -> refs/pull/25625/merge
* [new ref] refs/pull/25626/head -> refs/pull/25626/head
* [new ref] refs/pull/25626/merge -> refs/pull/25626/merge
* [new ref] refs/pull/25633/head -> refs/pull/25633/head
* [new ref] refs/pull/25633/merge -> refs/pull/25633/merge
* [new ref] refs/pull/25634/head -> refs/pull/25634/head
* [new ref] refs/pull/25634/merge -> refs/pull/25634/merge
* [new ref] refs/pull/25637/head -> refs/pull/25637/head
* [new ref] refs/pull/25637/merge -> refs/pull/25637/merge
* [new ref] refs/pull/25639/head -> refs/pull/25639/head
* [new ref] refs/pull/25639/merge -> refs/pull/25639/merge
* [new ref] refs/pull/25641/head -> refs/pull/25641/head
* [new ref] refs/pull/25641/merge -> refs/pull/25641/merge
* [new ref] refs/pull/25642/head -> refs/pull/25642/head
* [new ref] refs/pull/25642/merge -> refs/pull/25642/merge
* [new ref] refs/pull/25643/head -> refs/pull/25643/head
* [new ref] refs/pull/25643/merge -> refs/pull/25643/merge
* [new ref] refs/pull/25649/head -> refs/pull/25649/head
* [new ref] refs/pull/25649/merge -> refs/pull/25649/merge
* [new ref] refs/pull/25653/head -> refs/pull/25653/head
* [new ref] refs/pull/25653/merge -> refs/pull/25653/merge
* [new ref] refs/pull/25654/head -> refs/pull/25654/head
* [new ref] refs/pull/25654/merge -> refs/pull/25654/merge
* [new ref] refs/pull/25657/head -> refs/pull/25657/head
* [new ref] refs/pull/25657/merge -> refs/pull/25657/merge
a0d7f76ef3..79e6916602 refs/pull/4924/head -> refs/pull/4924/head
748e9be289..d1e2585d81 refs/pull/5558/head -> refs/pull/5558/head
+ faacbe1ecd...eccdb022cf refs/pull/6468/merge -> refs/pull/6468/merge (forced update)
+ e6b8fd6825...d2c60c5b34 refs/pull/7712/merge -> refs/pull/7712/merge (forced update)
+ d7f2f046ae...ce78d8a7ba refs/pull/7994/merge -> refs/pull/7994/merge (forced update)
9ef92f4b4f..634c0500ad refs/pull/8252/head -> refs/pull/8252/head
87dc338a6a..380e1ca23d refs/pull/8257/head -> refs/pull/8257/head
9431fc88e2..0eec96e2a7 refs/pull/9069/head -> refs/pull/9069/head
cacb24f39e..7d177adc1a refs/pull/9104/head -> refs/pull/9104/head
a39eaf6f3f..2257c16a10 refs/pull/9385/head -> refs/pull/9385/head
+ 2cab269c60...973fb45e9a refs/pull/9767/head -> refs/pull/9767/head (forced update)
* [new ref] origin/branch_terminal_buffer_LAND2 -> origin/branch_terminal_buffer_LAND2
* [new ref] origin/feat/thinking-ux-improvements -> origin/feat/thinking-ux-improvements
* [new ref] origin/keyboard -> origin/keyboard
* [new ref] origin/release/v0.29.3 -> origin/release/v0.29.3
* [new ref] origin/shell_format -> origin/shell_format
* [new ref] origin/sripas_1331mgc_10955_gc -> origin/sripas_1331mgc_10955_gc
* [new tag] v0.21.0-nightly.20251226.546baf993 -> v0.21.0-nightly.20251226.546baf993
* [new tag] v0.22.0 -> v0.22.0
* [new tag] v0.22.1 -> v0.22.1
* [new tag] v0.22.2 -> v0.22.2
* [new tag] v0.22.3 -> v0.22.3
* [new tag] v0.22.4 -> v0.22.4
* [new tag] v0.22.5 -> v0.22.5
* [new tag] v0.23.0 -> v0.23.0
* [new tag] v0.23.0-preview.0 -> v0.23.0-preview.0
* [new tag] v0.23.0-preview.1 -> v0.23.0-preview.1
* [new tag] v0.23.0-preview.2 -> v0.23.0-preview.2
* [new tag] v0.23.0-preview.3 -> v0.23.0-preview.3
* [new tag] v0.23.0-preview.4 -> v0.23.0-preview.4
* [new tag] v0.23.0-preview.5 -> v0.23.0-preview.5
* [new tag] v0.23.0-preview.6 -> v0.23.0-preview.6
* [new tag] v0.24.0 -> v0.24.0
* [new tag] v0.24.0-nightly.20251227.37be16243 -> v0.24.0-nightly.20251227.37be16243
* [new tag] v0.24.0-nightly.20251231.05049b5ab -> v0.24.0-nightly.20251231.05049b5ab
* [new tag] v0.24.0-nightly.20260103.30f5c4af4 -> v0.24.0-nightly.20260103.30f5c4af4
* [new tag] v0.24.0-nightly.20260115.c9d6f9b22 -> v0.24.0-nightly.20260115.c9d6f9b22
* [new tag] v0.24.0-preview.0 -> v0.24.0-preview.0
* [new tag] v0.24.0-preview.1 -> v0.24.0-preview.1
* [new tag] v0.24.0-preview.2 -> v0.24.0-preview.2
* [new tag] v0.24.0-preview.3 -> v0.24.0-preview.3
* [new tag] v0.24.4 -> v0.24.4
* [new tag] v0.24.5 -> v0.24.5
* [new tag] v0.25.0 -> v0.25.0
* [new tag] v0.25.0-nightly.20260112.15891721a -> v0.25.0-nightly.20260112.15891721a
* [new tag] v0.25.0-preview.0 -> v0.25.0-preview.0
* [new tag] v0.25.0-preview.1 -> v0.25.0-preview.1
* [new tag] v0.25.0-preview.2 -> v0.25.0-preview.2
* [new tag] v0.25.0-preview.3 -> v0.25.0-preview.3
* [new tag] v0.25.0-preview.4 -> v0.25.0-preview.4
* [new tag] v0.25.1 -> v0.25.1
* [new tag] v0.25.2 -> v0.25.2
* [new tag] v0.26.0 -> v0.26.0
* [new tag] v0.26.0-nightly.20260115.6cb3ae4e0 -> v0.26.0-nightly.20260115.6cb3ae4e0
* [new tag] v0.26.0-nightly.20260119.20580d754 -> v0.26.0-nightly.20260119.20580d754
* [new tag] v0.26.0-nightly.20260120.a90bcf749 -> v0.26.0-nightly.20260120.a90bcf749
* [new tag] v0.26.0-nightly.20260121.211d2c5fd -> v0.26.0-nightly.20260121.211d2c5fd
* [new tag] v0.26.0-preview.0 -> v0.26.0-preview.0
* [new tag] v0.26.0-preview.1 -> v0.26.0-preview.1
* [new tag] v0.26.0-preview.2 -> v0.26.0-preview.2
* [new tag] v0.26.0-preview.3 -> v0.26.0-preview.3
* [new tag] v0.26.0-preview.4 -> v0.26.0-preview.4
* [new tag] v0.26.0-preview.5 -> v0.26.0-preview.5
* [new tag] v0.27.0 -> v0.27.0
* [new tag] v0.27.0-nightly.20260122.61040d0eb -> v0.27.0-nightly.20260122.61040d0eb
* [new tag] v0.27.0-nightly.20260126.cb772a5b7 -> v0.27.0-nightly.20260126.cb772a5b7
* [new tag] v0.27.0-nightly.20260127.00f60ef53 -> v0.27.0-nightly.20260127.00f60ef53
* [new tag] v0.27.0-nightly.20260128.830e21275 -> v0.27.0-nightly.20260128.830e21275
* [new tag] v0.27.0-preview.0 -> v0.27.0-preview.0
* [new tag] v0.27.0-preview.1 -> v0.27.0-preview.1
* [new tag] v0.27.0-preview.2 -> v0.27.0-preview.2
* [new tag] v0.27.0-preview.3 -> v0.27.0-preview.3
* [new tag] v0.27.0-preview.4 -> v0.27.0-preview.4
* [new tag] v0.27.0-preview.5 -> v0.27.0-preview.5
* [new tag] v0.27.0-preview.6 -> v0.27.0-preview.6
* [new tag] v0.27.0-preview.7 -> v0.27.0-preview.7
* [new tag] v0.27.0-preview.8 -> v0.27.0-preview.8
* [new tag] v0.27.1 -> v0.27.1
* [new tag] v0.27.2 -> v0.27.2
* [new tag] v0.27.3 -> v0.27.3
* [new tag] v0.27.4 -> v0.27.4
* [new tag] v0.28.0 -> v0.28.0
* [new tag] v0.28.0-nightly.20260129.9bb175a50 -> v0.28.0-nightly.20260129.9bb175a50
* [new tag] v0.28.0-nightly.20260130.d43d772e6 -> v0.28.0-nightly.20260130.d43d772e6
* [new tag] v0.28.0-nightly.20260201.b0f38104d -> v0.28.0-nightly.20260201.b0f38104d
* [new tag] v0.28.0-nightly.20260202.707b3e85d -> v0.28.0-nightly.20260202.707b3e85d
* [new tag] v0.28.0-preview.0 -> v0.28.0-preview.0
* [new tag] v0.28.0-preview.1 -> v0.28.0-preview.1
* [new tag] v0.28.0-preview.2 -> v0.28.0-preview.2
* [new tag] v0.28.0-preview.3 -> v0.28.0-preview.3
* [new tag] v0.28.0-preview.4 -> v0.28.0-preview.4
* [new tag] v0.28.0-preview.5 -> v0.28.0-preview.5
* [new tag] v0.28.0-preview.6 -> v0.28.0-preview.6
* [new tag] v0.28.0-preview.7 -> v0.28.0-preview.7
* [new tag] v0.28.0-preview.8 -> v0.28.0-preview.8
* [new tag] v0.28.1 -> v0.28.1
* [new tag] v0.28.2 -> v0.28.2
* [new tag] v0.29.0 -> v0.29.0
* [new tag] v0.29.0-nightly.20260205.a3af4a8ca -> v0.29.0-nightly.20260205.a3af4a8ca
* [new tag] v0.29.0-nightly.20260206.4ffc349c1 -> v0.29.0-nightly.20260206.4ffc349c1
* [new tag] v0.29.0-preview.0 -> v0.29.0-preview.0
* [new tag] v0.29.0-preview.1 -> v0.29.0-preview.1
* [new tag] v0.29.0-preview.2 -> v0.29.0-preview.2
* [new tag] v0.29.0-preview.3 -> v0.29.0-preview.3
* [new tag] v0.29.0-preview.4 -> v0.29.0-preview.4
* [new tag] v0.29.0-preview.5 -> v0.29.0-preview.5
* [new tag] v0.29.1 -> v0.29.1
* [new tag] v0.29.2 -> v0.29.2
* [new tag] v0.29.3 -> v0.29.3
* [new tag] v0.29.4 -> v0.29.4
* [new tag] v0.29.5 -> v0.29.5
* [new tag] v0.29.6 -> v0.29.6
* [new tag] v0.29.7 -> v0.29.7
* [new tag] v0.30.0 -> v0.30.0
* [new tag] v0.30.0-nightly.20260210.8257ec447 -> v0.30.0-nightly.20260210.8257ec447
* [new tag] v0.30.0-nightly.20260211.0d034b8c1 -> v0.30.0-nightly.20260211.0d034b8c1
* [new tag] v0.30.0-nightly.20260211.f5dd1068f -> v0.30.0-nightly.20260211.f5dd1068f
* [new tag] v0.30.0-nightly.20260212.099aa9621 -> v0.30.0-nightly.20260212.099aa9621
* [new tag] v0.30.0-nightly.20260212.207ac6f2d -> v0.30.0-nightly.20260212.207ac6f2d
* [new tag] v0.30.0-nightly.20260218.ce84b3cb5 -> v0.30.0-nightly.20260218.ce84b3cb5
* [new tag] v0.30.0-nightly.20260223.c537fd5ae -> v0.30.0-nightly.20260223.c537fd5ae
* [new tag] v0.30.0-nightly.20260224.544df749a -> v0.30.0-nightly.20260224.544df749a
* [new tag] v0.30.0-nightly.20260226.f9f916e1d -> v0.30.0-nightly.20260226.f9f916e1d
* [new tag] v0.30.0-nightly.20260227.9b7852f11 -> v0.30.0-nightly.20260227.9b7852f11
* [new tag] v0.30.0-preview.0 -> v0.30.0-preview.0
* [new tag] v0.30.0-preview.1 -> v0.30.0-preview.1
* [new tag] v0.30.0-preview.2 -> v0.30.0-preview.2
* [new tag] v0.30.0-preview.3 -> v0.30.0-preview.3
* [new tag] v0.30.0-preview.4 -> v0.30.0-preview.4
* [new tag] v0.30.0-preview.5 -> v0.30.0-preview.5
* [new tag] v0.30.0-preview.6 -> v0.30.0-preview.6
* [new tag] v0.30.1 -> v0.30.1
* [new tag] v0.31.0 -> v0.31.0
* [new tag] v0.31.0-preview.0 -> v0.31.0-preview.0
* [new tag] v0.31.0-preview.1 -> v0.31.0-preview.1
* [new tag] v0.31.0-preview.2 -> v0.31.0-preview.2
* [new tag] v0.31.0-preview.3 -> v0.31.0-preview.3
* [new tag] v0.32.0 -> v0.32.0
* [new tag] v0.32.0-preview.0 -> v0.32.0-preview.0
* [new tag] v0.32.1 -> v0.32.1
* [new tag] v0.33.0 -> v0.33.0
* [new tag] v0.33.0-nightly.20260228.1ca5c05d0 -> v0.33.0-nightly.20260228.1ca5c05d0
* [new tag] v0.33.0-preview.0 -> v0.33.0-preview.0
* [new tag] v0.33.0-preview.1 -> v0.33.0-preview.1
* [new tag] v0.33.0-preview.10 -> v0.33.0-preview.10
* [new tag] v0.33.0-preview.11 -> v0.33.0-preview.11
* [new tag] v0.33.0-preview.12 -> v0.33.0-preview.12
* [new tag] v0.33.0-preview.13 -> v0.33.0-preview.13
* [new tag] v0.33.0-preview.14 -> v0.33.0-preview.14
* [new tag] v0.33.0-preview.15 -> v0.33.0-preview.15
* [new tag] v0.33.0-preview.2 -> v0.33.0-preview.2
* [new tag] v0.33.0-preview.3 -> v0.33.0-preview.3
* [new tag] v0.33.0-preview.4 -> v0.33.0-preview.4
* [new tag] v0.33.0-preview.5 -> v0.33.0-preview.5
* [new tag] v0.33.0-preview.6 -> v0.33.0-preview.6
* [new tag] v0.33.0-preview.7 -> v0.33.0-preview.7
* [new tag] v0.33.0-preview.8 -> v0.33.0-preview.8
* [new tag] v0.33.0-preview.9 -> v0.33.0-preview.9
* [new tag] v0.33.1 -> v0.33.1
* [new tag] v0.33.2 -> v0.33.2
* [new tag] v0.34.0 -> v0.34.0
* [new tag] v0.34.0-nightly.20260304.28af4e127 -> v0.34.0-nightly.20260304.28af4e127
* [new tag] v0.34.0-nightly.20260305.348103298 -> v0.34.0-nightly.20260305.348103298
* [new tag] v0.34.0-nightly.20260306.a8f507352 -> v0.34.0-nightly.20260306.a8f507352
* [new tag] v0.34.0-nightly.20260307.6c3a90645 -> v0.34.0-nightly.20260307.6c3a90645
* [new tag] v0.34.0-nightly.20260310.4653b126f -> v0.34.0-nightly.20260310.4653b126f
* [new tag] v0.34.0-preview.0 -> v0.34.0-preview.0
* [new tag] v0.34.0-preview.1 -> v0.34.0-preview.1
* [new tag] v0.34.0-preview.2 -> v0.34.0-preview.2
* [new tag] v0.34.0-preview.3 -> v0.34.0-preview.3
* [new tag] v0.34.0-preview.4 -> v0.34.0-preview.4
* [new tag] v0.35.0 -> v0.35.0
* [new tag] v0.35.0-nightly.20260313.bb060d7a9 -> v0.35.0-nightly.20260313.bb060d7a9
* [new tag] v0.35.0-nightly.20260314.3038fdce2 -> v0.35.0-nightly.20260314.3038fdce2
* [new tag] v0.35.0-preview.1 -> v0.35.0-preview.1
* [new tag] v0.35.0-preview.2 -> v0.35.0-preview.2
* [new tag] v0.35.0-preview.3 -> v0.35.0-preview.3
* [new tag] v0.35.0-preview.4 -> v0.35.0-preview.4
* [new tag] v0.35.0-preview.5 -> v0.35.0-preview.5
* [new tag] v0.35.1 -> v0.35.1
* [new tag] v0.35.2 -> v0.35.2
* [new tag] v0.35.3 -> v0.35.3
* [new tag] v0.36.0 -> v0.36.0
* [new tag] v0.36.0-nightly.20260318.e2658ccda -> v0.36.0-nightly.20260318.e2658ccda
* [new tag] v0.36.0-nightly.20260321.fc03891a1 -> v0.36.0-nightly.20260321.fc03891a1
* [new tag] v0.36.0-nightly.20260323.6055c4707 -> v0.36.0-nightly.20260323.6055c4707
* [new tag] v0.36.0-nightly.20260402.13ccc1645 -> v0.36.0-nightly.20260402.13ccc1645
* [new tag] v0.36.0-nightly.20260406.15298b28c -> v0.36.0-nightly.20260406.15298b28c
* [new tag] v0.36.0-nightly.20260407.1c22c5b37 -> v0.36.0-nightly.20260407.1c22c5b37
* [new tag] v0.36.0-preview.0 -> v0.36.0-preview.0
* [new tag] v0.36.0-preview.3 -> v0.36.0-preview.3
* [new tag] v0.36.0-preview.4 -> v0.36.0-preview.4
* [new tag] v0.36.0-preview.5 -> v0.36.0-preview.5
* [new tag] v0.36.0-preview.6 -> v0.36.0-preview.6
* [new tag] v0.36.0-preview.7 -> v0.36.0-preview.7
* [new tag] v0.36.0-preview.8 -> v0.36.0-preview.8
* [new tag] v0.37.0 -> v0.37.0
* [new tag] v0.37.0-preview.0 -> v0.37.0-preview.0
* [new tag] v0.37.0-preview.1 -> v0.37.0-preview.1
* [new tag] v0.37.0-preview.2 -> v0.37.0-preview.2
* [new tag] v0.37.1 -> v0.37.1
* [new tag] v0.37.2 -> v0.37.2
* [new tag] v0.38.0 -> v0.38.0
* [new tag] v0.38.0-preview.0 -> v0.38.0-preview.0
* [new tag] v0.38.1 -> v0.38.1
* [new tag] v0.38.2 -> v0.38.2
* [new tag] v0.39.0-nightly.20260408.a39461718 -> v0.39.0-nightly.20260408.a39461718
* [new tag] v0.39.0-nightly.20260409.615e07834 -> v0.39.0-nightly.20260409.615e07834
* [new tag] v0.39.0-nightly.20260410.96cc8a0da -> v0.39.0-nightly.20260410.96cc8a0da
* [new tag] v0.39.0-nightly.20260411.0957f7d3e -> v0.39.0-nightly.20260411.0957f7d3e
* [new tag] v0.39.0-nightly.20260414.gdaf500623 -> v0.39.0-nightly.20260414.gdaf500623
* [new tag] v0.39.0-preview.0 -> v0.39.0-preview.0
* [new tag] v0.40.0-nightly.20260415.g06e7621b2 -> v0.40.0-nightly.20260415.g06e7621b2
[1m[32m==>[m[1m Validating source files with b2sums...[m
gemini-cli ... Passed
]3008;start=3e5928296f7449c8b655bbe2d90ad736;user=root;hostname=aurorus.felixc.at;machineid=01ca1404c26b4b3a80152fb4f25f4ca7;bootid=1ee86ff79c6840889d464954b77b1fe7;pid=2649549;comm=systemd-nspawn;container=arch-nspawn-2649549;type=container\]11;?\[22;2t]2;🔵 Container arch-nspawn-2649549 on aurorus.felixc.at\[1m[32m==>[m[1m Making package: gemini-cli 1:0.38.2-1 (Sun Apr 19 14:20:43 2026)[m
[1m[32m==>[m[1m Checking runtime dependencies...[m
[1m[32m==>[m[1m Installing missing dependencies...[m
[?25lresolving dependencies...
looking for conflicting packages...
Package (5) New Version Net Change
extra/ada 3.4.4-1 0.99 MiB
extra/c-ares 1.34.6-1 0.51 MiB
extra/libuv 1.52.1-1 0.62 MiB
extra/simdjson 1:4.6.1-1 7.43 MiB
extra/nodejs 25.9.0-1 55.46 MiB
Total Installed Size: 65.01 MiB
:: Proceed with installation? [Y/n]
checking keyring...
checking package integrity...
loading package files...
checking for file conflicts...
:: Processing package changes...
installing ada...
installing c-ares...
installing libuv...
installing simdjson...
installing nodejs...
Optional dependencies for nodejs
npm: nodejs package manager
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
[?25h[1m[32m==>[m[1m Checking buildtime dependencies...[m
[1m[32m==>[m[1m Installing missing dependencies...[m
[?25lresolving dependencies...
looking for conflicting packages...
Package (18) New Version Net Change Download Size
core/gpm 1.20.7.r38.ge82d1a6-6 0.35 MiB
core/mpdecimal 4.0.1-3 0.31 MiB
extra/nodejs-nopt 9.0.0-1 0.03 MiB
extra/oniguruma 6.9.10-1 0.88 MiB
extra/perl-error 0.17030-3 0.04 MiB
extra/perl-mailtools 2.22-3 0.10 MiB
extra/perl-timedate 2.35-1 0.15 MiB
core/procps-ng 4.0.6-1 2.56 MiB
extra/semver 7.7.3-1 0.09 MiB
extra/vim-runtime 9.2.0357-1 38.35 MiB
extra/zlib-ng 2.3.3-1 0.23 MiB
extra/bubblewrap 0.11.1-1 0.09 MiB
extra/git 2.53.0-1 28.84 MiB
extra/jq 1.8.1-2 0.46 MiB 0.21 MiB
extra/node-gyp 12.2.0-1 7.84 MiB
extra/npm 11.12.1-1 7.47 MiB
core/python 3.14.3-1 132.79 MiB
extra/vim 9.2.0357-1 4.99 MiB
Total Download Size: 0.21 MiB
Total Installed Size: 225.59 MiB
:: Proceed with installation? [Y/n]
:: Retrieving packages...
jq-1.8.1-2-riscv64 downloading...
checking keyring...
checking package integrity...
loading package files...
checking for file conflicts...
:: Processing package changes...
installing perl-error...
installing perl-timedate...
installing perl-mailtools...
installing zlib-ng...
installing git...
Optional dependencies for git
git-zsh-completion: upstream zsh completion
tk: gitk and git gui
openssh: ssh transport and crypto
man: show help with `git command --help`
perl-libwww: git svn
perl-term-readkey: git svn and interactive.singlekey setting
perl-io-socket-ssl: git send-email TLS support
perl-authen-sasl: git send-email TLS support
perl-cgi: gitweb (web interface) support
python: git svn & git p4 [pending]
subversion: git svn
org.freedesktop.secrets: keyring credential helper
libsecret: libsecret credential helper [installed]
less: the default pager for git
installing oniguruma...
installing jq...
installing nodejs-nopt...
installing semver...
installing node-gyp...
Optional dependencies for node-gyp
gcc: to build C++ modules [installed]
make: to build C++ modules [installed]
python: to build C++ modules [pending]
installing npm...
Optional dependencies for npm
git: for dependencies using Git URL's [installed]
installing mpdecimal...
installing python...
Optional dependencies for python
python-setuptools: for building Python packages using tooling that is usually bundled with Python
python-pip: for installing Python packages using tooling that is usually bundled with Python
python-pipx: for installing Python software not packaged on Arch Linux
sqlite: for a default database integration [installed]
xz: for lzma [installed]
tk: for tkinter
installing bubblewrap...
installing vim-runtime...
Optional dependencies for vim-runtime
sh: support for some tools and macros [installed]
python: demoserver example tool [installed]
gawk: mve tools upport [installed]
installing procps-ng...
installing gpm...
installing vim...
Optional dependencies for vim
python: Python language support [installed]
ruby: Ruby language support
lua: Lua language support
perl: Perl language support [installed]
tcl: Tcl language support
:: Running post-transaction hooks...
(1/5) Creating system user accounts...
Creating group 'git' with GID 969.
Creating user 'git' (git daemon user) with UID 969 and GID 969.
(2/5) Reloading system manager configuration...
Skipped: Current root is not booted.
(3/5) Arming ConditionNeedsUpdate...
(4/5) Checking for old perl modules...
(5/5) Updating the info directory file...
[?25h[1m[32m==>[m[1m Retrieving sources...[m
[1m[33m==> WARNING:[m[1m Skipping all source file integrity checks.[m
[1m[32m==>[m[1m Extracting sources...[m
[1m[34m ->[m[1m Creating working copy of gemini-cli git repo...[m
Cloning into 'gemini-cli'...
done.
Updating files: 15% (418/2696)
Updating files: 16% (432/2696)
Updating files: 17% (459/2696)
Updating files: 18% (486/2696)
Updating files: 19% (513/2696)
Updating files: 20% (540/2696)
Updating files: 21% (567/2696)
Updating files: 22% (594/2696)
Updating files: 23% (621/2696)
Updating files: 24% (648/2696)
Updating files: 25% (674/2696)
Updating files: 26% (701/2696)
Updating files: 27% (728/2696)
Updating files: 28% (755/2696)
Updating files: 29% (782/2696)
Updating files: 30% (809/2696)
Updating files: 31% (836/2696)
Updating files: 32% (863/2696)
Updating files: 33% (890/2696)
Updating files: 34% (917/2696)
Updating files: 35% (944/2696)
Updating files: 36% (971/2696)
Updating files: 37% (998/2696)
Updating files: 38% (1025/2696)
Updating files: 39% (1052/2696)
Updating files: 40% (1079/2696)
Updating files: 41% (1106/2696)
Updating files: 42% (1133/2696)
Updating files: 43% (1160/2696)
Updating files: 44% (1187/2696)
Updating files: 45% (1214/2696)
Updating files: 46% (1241/2696)
Updating files: 47% (1268/2696)
Updating files: 48% (1295/2696)
Updating files: 49% (1322/2696)
Updating files: 50% (1348/2696)
Updating files: 51% (1375/2696)
Updating files: 52% (1402/2696)
Updating files: 53% (1429/2696)
Updating files: 54% (1456/2696)
Updating files: 55% (1483/2696)
Updating files: 56% (1510/2696)
Updating files: 57% (1537/2696)
Updating files: 58% (1564/2696)
Updating files: 59% (1591/2696)
Updating files: 60% (1618/2696)
Updating files: 61% (1645/2696)
Updating files: 62% (1672/2696)
Updating files: 63% (1699/2696)
Updating files: 64% (1726/2696)
Updating files: 65% (1753/2696)
Updating files: 66% (1780/2696)
Updating files: 67% (1807/2696)
Updating files: 68% (1834/2696)
Updating files: 69% (1861/2696)
Updating files: 69% (1864/2696)
Updating files: 70% (1888/2696)
Updating files: 71% (1915/2696)
Updating files: 72% (1942/2696)
Updating files: 73% (1969/2696)
Updating files: 74% (1996/2696)
Updating files: 75% (2022/2696)
Updating files: 76% (2049/2696)
Updating files: 77% (2076/2696)
Updating files: 78% (2103/2696)
Updating files: 79% (2130/2696)
Updating files: 80% (2157/2696)
Updating files: 81% (2184/2696)
Updating files: 82% (2211/2696)
Updating files: 83% (2238/2696)
Updating files: 84% (2265/2696)
Updating files: 85% (2292/2696)
Updating files: 86% (2319/2696)
Updating files: 87% (2346/2696)
Updating files: 88% (2373/2696)
Updating files: 89% (2400/2696)
Updating files: 90% (2427/2696)
Updating files: 91% (2454/2696)
Updating files: 92% (2481/2696)
Updating files: 93% (2508/2696)
Updating files: 94% (2535/2696)
Updating files: 95% (2562/2696)
Updating files: 96% (2589/2696)
Updating files: 97% (2616/2696)
Updating files: 98% (2643/2696)
Updating files: 99% (2670/2696)
Updating files: 100% (2696/2696)
Updating files: 100% (2696/2696), done.
Switched to a new branch 'makepkg'
[1m[32m==>[m[1m Starting prepare()...[m
npm warn deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm warn deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
added 1294 packages, and audited 1302 packages in 4m
362 packages are looking for funding
run `npm fund` for details
31 vulnerabilities (8 low, 4 moderate, 5 high, 14 critical)
To address issues that do not require attention, run:
npm audit fix
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.
[1m[32m==>[m[1m Starting build()...[m
> @google/gemini-cli@0.38.2 bundle
> npm run generate && npm run build --workspace=@google/gemini-cli-devtools && npm run bundle:browser-mcp -w @google/gemini-cli-core && node esbuild.config.js && node scripts/copy_bundle_assets.js
> @google/gemini-cli@0.38.2 generate
> node scripts/generate-git-commit-info.js
> @google/gemini-cli-devtools@0.38.2 build
> npm run build:client && tsc -p tsconfig.build.json
> @google/gemini-cli-devtools@0.38.2 build:client
> node esbuild.client.js
> @google/gemini-cli-core@0.38.2 bundle:browser-mcp
> node scripts/bundle-browser-mcp.mjs
Copied 10 policy files to bundle/policies/
Copied docs to bundle/docs/
Copied built-in skills to bundle/builtin/
Copied devtools package to bundle/node_modules/
Copied bundled chrome-devtools-mcp to bundle/bundled/
Assets copied to bundle/
gyp info it worked if it ends with ok
gyp info using node-gyp@12.2.0
gyp info using node@25.9.0 | linux | riscv64
gyp info find Python using Python version 3.14.3 found at "/usr/bin/python3"
gyp http GET https://nodejs.org/download/release/v25.9.0/node-v25.9.0-headers.tar.gz
gyp http 200 https://nodejs.org/download/release/v25.9.0/node-v25.9.0-headers.tar.gz
gyp http GET https://nodejs.org/download/release/v25.9.0/SHASUMS256.txt
gyp http 200 https://nodejs.org/download/release/v25.9.0/SHASUMS256.txt
gyp info spawn /usr/bin/python3
gyp info spawn args [
gyp info spawn args '/usr/lib/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'make',
gyp info spawn args '-I',
gyp info spawn args '/build/gemini-cli/src/gemini-cli/node_modules/keytar/build/config.gypi',
gyp info spawn args '-I',
gyp info spawn args '/usr/lib/node_modules/node-gyp/addon.gypi',
gyp info spawn args '-I',
gyp info spawn args '/build/.cache/node-gyp/25.9.0/include/node/common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=/build/.cache/node-gyp/25.9.0',
gyp info spawn args '-Dnode_gyp_dir=/usr/lib/node_modules/node-gyp',
gyp info spawn args '-Dnode_lib_file=/build/.cache/node-gyp/25.9.0/<(target_arch)/node.lib',
gyp info spawn args '-Dmodule_root_dir=/build/gemini-cli/src/gemini-cli/node_modules/keytar',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'build',
gyp info spawn args '-Goutput_dir=.'
gyp info spawn args ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
make: Entering directory '/build/gemini-cli/src/gemini-cli/node_modules/keytar/build'
CXX(target) Release/obj.target/keytar/src/async.o
CXX(target) Release/obj.target/keytar/src/main.o
CXX(target) Release/obj.target/keytar/src/keytar_posix.o
SOLINK_MODULE(target) Release/obj.target/keytar.node
COPY Release/keytar.node
make: Leaving directory '/build/gemini-cli/src/gemini-cli/node_modules/keytar/build'
gyp info ok
> @google/gemini-cli@0.38.2 prepare
> husky && npm run bundle
> @google/gemini-cli@0.38.2 bundle
> npm run generate && npm run build --workspace=@google/gemini-cli-devtools && npm run bundle:browser-mcp -w @google/gemini-cli-core && node esbuild.config.js && node scripts/copy_bundle_assets.js
> @google/gemini-cli@0.38.2 generate
> node scripts/generate-git-commit-info.js
> @google/gemini-cli-devtools@0.38.2 build
> npm run build:client && tsc -p tsconfig.build.json
> @google/gemini-cli-devtools@0.38.2 build:client
> node esbuild.client.js
> @google/gemini-cli-core@0.38.2 bundle:browser-mcp
> node scripts/bundle-browser-mcp.mjs
Copied 10 policy files to bundle/policies/
Copied docs to bundle/docs/
Copied built-in skills to bundle/builtin/
Copied devtools package to bundle/node_modules/
Copied bundled chrome-devtools-mcp to bundle/bundled/
Assets copied to bundle/
npm notice
npm notice 📦 @google/gemini-cli@0.38.2
npm notice Tarball Contents
npm notice 11.4kB LICENSE
npm notice 12.9kB README.md
npm notice 8.0kB bundle/builtin/skill-creator/scripts/init_skill.cjs
npm notice 3.9kB bundle/builtin/skill-creator/scripts/package_skill.cjs
npm notice 3.5kB bundle/builtin/skill-creator/scripts/validate_skill.cjs
npm notice 20.1kB bundle/builtin/skill-creator/SKILL.md
npm notice 11.6MB bundle/bundled/chrome-devtools-mcp.mjs
npm notice 209B bundle/bundled/third_party/bundled-packages.json
npm notice 8.0MB bundle/bundled/third_party/index.js
npm notice 304B bundle/bundled/third_party/issue-descriptions/arInsecureContext.md
npm notice 228B bundle/bundled/third_party/issue-descriptions/arInvalidInfoHeader.md
npm notice 249B bundle/bundled/third_party/issue-descriptions/arInvalidRegisterOsSourceHeader.md
npm notice 252B bundle/bundled/third_party/issue-descriptions/arInvalidRegisterOsTriggerHeader.md
npm notice 239B bundle/bundled/third_party/issue-descriptions/arInvalidRegisterSourceHeader.md
npm notice 242B bundle/bundled/third_party/issue-descriptions/arInvalidRegisterTriggerHeader.md
npm notice 325B bundle/bundled/third_party/issue-descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md
npm notice 383B bundle/bundled/third_party/issue-descriptions/arNavigationRegistrationWithoutTransientUserActivation.md
npm notice 298B bundle/bundled/third_party/issue-descriptions/arNoRegisterOsSourceHeader.md
npm notice 301B bundle/bundled/third_party/issue-descriptions/arNoRegisterOsTriggerHeader.md
npm notice 296B bundle/bundled/third_party/issue-descriptions/arNoRegisterSourceHeader.md
npm notice 299B bundle/bundled/third_party/issue-descriptions/arNoRegisterTriggerHeader.md
npm notice 204B bundle/bundled/third_party/issue-descriptions/arNoWebOrOsSupport.md
npm notice 801B bundle/bundled/third_party/issue-descriptions/arOsSourceIgnored.md
npm notice 826B bundle/bundled/third_party/issue-descriptions/arOsTriggerIgnored.md
npm notice 472B bundle/bundled/third_party/issue-descriptions/arPermissionPolicyDisabled.md
npm notice 451B bundle/bundled/third_party/issue-descriptions/arSourceAndTriggerHeaders.md
npm notice 698B bundle/bundled/third_party/issue-descriptions/arSourceIgnored.md
npm notice 651B bundle/bundled/third_party/issue-descriptions/arTriggerIgnored.md
npm notice 448B bundle/bundled/third_party/issue-descriptions/arUntrustworthyReportingOrigin.md
npm notice 429B bundle/bundled/third_party/issue-descriptions/arWebAndOsHeaders.md
npm notice 269B bundle/bundled/third_party/issue-descriptions/bounceTrackingMitigations.md
npm notice 175B bundle/bundled/third_party/issue-descriptions/clientHintMetaTagAllowListInvalidOrigin.md
npm notice 189B bundle/bundled/third_party/issue-descriptions/clientHintMetaTagModifiedHTML.md
npm notice 306B bundle/bundled/third_party/issue-descriptions/CoepCoopSandboxedIframeCannotNavigateToCoopPage.md
npm notice 677B bundle/bundled/third_party/issue-descriptions/CoepCorpNotSameOrigin.md
npm notice 969B bundle/bundled/third_party/issue-descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md
npm notice 499B bundle/bundled/third_party/issue-descriptions/CoepCorpNotSameSite.md
npm notice 488B bundle/bundled/third_party/issue-descriptions/CoepFrameResourceNeedsCoepHeader.md
npm notice 424B bundle/bundled/third_party/issue-descriptions/CompatibilityModeQuirks.md
npm notice 467B bundle/bundled/third_party/issue-descriptions/connectionAllowlistInvalidAllowlistItemType.md
npm notice 437B bundle/bundled/third_party/issue-descriptions/connectionAllowlistInvalidHeader.md
npm notice 333B bundle/bundled/third_party/issue-descriptions/connectionAllowlistInvalidUrlPattern.md
npm notice 425B bundle/bundled/third_party/issue-descriptions/connectionAllowlistItemNotInnerList.md
npm notice 361B bundle/bundled/third_party/issue-descriptions/connectionAllowlistMoreThanOneList.md
npm notice 265B bundle/bundled/third_party/issue-descriptions/connectionAllowlistReportingEndpointNotToken.md
npm notice 404B bundle/bundled/third_party/issue-descriptions/CookieAttributeValueExceedsMaxSize.md
npm notice 515B bundle/bundled/third_party/issue-descriptions/cookieCrossSiteRedirectDowngrade.md
npm notice 182B bundle/bundled/third_party/issue-descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md
npm notice 530B bundle/bundled/third_party/issue-descriptions/cookieExcludeDomainNonAscii.md
npm notice 387B bundle/bundled/third_party/issue-descriptions/cookieExcludePortMismatch.md
npm notice 279B bundle/bundled/third_party/issue-descriptions/cookieExcludeSchemeMismatch.md
npm notice 388B bundle/bundled/third_party/issue-descriptions/cookieExcludeThirdPartyPhaseoutRead.md
npm notice 387B bundle/bundled/third_party/issue-descriptions/cookieExcludeThirdPartyPhaseoutSet.md
npm notice 544B bundle/bundled/third_party/issue-descriptions/cookieWarnDomainNonAscii.md
npm notice 378B bundle/bundled/third_party/issue-descriptions/cookieWarnMetadataGrantRead.md
npm notice 375B bundle/bundled/third_party/issue-descriptions/cookieWarnMetadataGrantSet.md
npm notice 400B bundle/bundled/third_party/issue-descriptions/cookieWarnThirdPartyPhaseoutRead.md
npm notice 400B bundle/bundled/third_party/issue-descriptions/cookieWarnThirdPartyPhaseoutSet.md
npm notice 536B bundle/bundled/third_party/issue-descriptions/corsAllowCredentialsRequired.md
npm notice 537B bundle/bundled/third_party/issue-descriptions/corsDisabledScheme.md
npm notice 628B bundle/bundled/third_party/issue-descriptions/corsDisallowedByMode.md
npm notice 518B bundle/bundled/third_party/issue-descriptions/corsHeaderDisallowedByPreflightResponse.md
npm notice 640B bundle/bundled/third_party/issue-descriptions/corsInvalidHeaderValues.md
npm notice 1.1kB bundle/bundled/third_party/issue-descriptions/corsLocalNetworkAccessPermissionDenied.md
npm notice 480B bundle/bundled/third_party/issue-descriptions/corsMethodDisallowedByPreflightResponse.md
npm notice 335B bundle/bundled/third_party/issue-descriptions/corsNoCorsRedirectModeNotFollow.md
npm notice 645B bundle/bundled/third_party/issue-descriptions/corsOriginMismatch.md
npm notice 394B bundle/bundled/third_party/issue-descriptions/corsPreflightResponseInvalid.md
npm notice 377B bundle/bundled/third_party/issue-descriptions/corsRedirectContainsCredentials.md
npm notice 914B bundle/bundled/third_party/issue-descriptions/corsWildcardOriginNotAllowed.md
npm notice 615B bundle/bundled/third_party/issue-descriptions/cspEvalViolation.md
npm notice 608B bundle/bundled/third_party/issue-descriptions/cspInlineViolation.md
npm notice 616B bundle/bundled/third_party/issue-descriptions/cspTrustedTypesPolicyViolation.md
npm notice 544B bundle/bundled/third_party/issue-descriptions/cspTrustedTypesSinkViolation.md
npm notice 961B bundle/bundled/third_party/issue-descriptions/cspURLViolation.md
npm notice 45B bundle/bundled/third_party/issue-descriptions/deprecation.md
npm notice 57B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestAccountsHttpNotFound.md
npm notice 39B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestAccountsInvalidResponse.md
npm notice 73B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestAccountsNoResponse.md
npm notice 37B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestApprovalDeclined.md
npm notice 32B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestCanceled.md
npm notice 61B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestErrorFetchingSignin.md
npm notice 28B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestErrorIdToken.md
npm notice 52B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestIdTokenHttpNotFound.md
npm notice 41B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestIdTokenInvalidRequest.md
npm notice 31B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestIdTokenInvalidResponse.md
npm notice 65B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestIdTokenNoResponse.md
npm notice 42B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestInvalidSigninResponse.md
npm notice 63B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestManifestHttpNotFound.md
npm notice 54B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestManifestInvalidResponse.md
npm notice 88B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestManifestNoResponse.md
npm notice 77B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestTooManyRequests.md
npm notice 64B bundle/bundled/third_party/issue-descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md
npm notice 77B bundle/bundled/third_party/issue-descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md
npm notice 99B bundle/bundled/third_party/issue-descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md
npm notice 55B bundle/bundled/third_party/issue-descriptions/federatedAuthUserInfoRequestNoApiPermission.md
npm notice 76B bundle/bundled/third_party/issue-descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md
npm notice 41B bundle/bundled/third_party/issue-descriptions/federatedAuthUserInfoRequestNotIframe.md
npm notice 78B bundle/bundled/third_party/issue-descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md
npm notice 61B bundle/bundled/third_party/issue-descriptions/federatedAuthUserInfoRequestNotSameOrigin.md
npm notice 74B bundle/bundled/third_party/issue-descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md
npm notice 409B bundle/bundled/third_party/issue-descriptions/fetchingPartitionedBlobURL.md
npm notice 336B bundle/bundled/third_party/issue-descriptions/genericFormAriaLabelledByToNonExistingIdError.md
npm notice 219B bundle/bundled/third_party/issue-descriptions/genericFormAutocompleteAttributeEmptyError.md
npm notice 268B bundle/bundled/third_party/issue-descriptions/genericFormDuplicateIdForInputError.md
npm notice 383B bundle/bundled/third_party/issue-descriptions/genericFormEmptyIdAndNameAttributesForInputError.md
npm notice 326B bundle/bundled/third_party/issue-descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md
npm notice 245B bundle/bundled/third_party/issue-descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md
npm notice 361B bundle/bundled/third_party/issue-descriptions/genericFormInputWithNoLabelError.md
npm notice 323B bundle/bundled/third_party/issue-descriptions/genericFormLabelForMatchesNonExistingIdError.md
npm notice 306B bundle/bundled/third_party/issue-descriptions/genericFormLabelForNameError.md
npm notice 223B bundle/bundled/third_party/issue-descriptions/genericFormLabelHasNeitherForNorNestedInputError.md
npm notice 403B bundle/bundled/third_party/issue-descriptions/genericNavigationEntryMarkedSkippable.md
npm notice 129B bundle/bundled/third_party/issue-descriptions/genericResponseWasBlockedByORB.md
npm notice 839B bundle/bundled/third_party/issue-descriptions/heavyAd.md
npm notice 775B bundle/bundled/third_party/issue-descriptions/LowTextContrast.md
npm notice 429B bundle/bundled/third_party/issue-descriptions/mixedContent.md
npm notice 493B bundle/bundled/third_party/issue-descriptions/navigatingPartitionedBlobURL.md
npm notice 388B bundle/bundled/third_party/issue-descriptions/permissionElementActivationDisabled.md
npm notice 446B bundle/bundled/third_party/issue-descriptions/permissionElementActivationDisabledWithOccluder.md
npm notice 499B bundle/bundled/third_party/issue-descriptions/permissionElementActivationDisabledWithOccluderParent.md
npm notice 278B bundle/bundled/third_party/issue-descriptions/permissionElementCspFrameAncestorsMissing.md
npm notice 168B bundle/bundled/third_party/issue-descriptions/permissionElementFencedFrameDisallowed.md
npm notice 160B bundle/bundled/third_party/issue-descriptions/permissionElementFontSizeTooLarge.md
npm notice 158B bundle/bundled/third_party/issue-descriptions/permissionElementFontSizeTooSmall.md
npm notice 146B bundle/bundled/third_party/issue-descriptions/permissionElementGeolocationDeprecated.md
npm notice 184B bundle/bundled/third_party/issue-descriptions/permissionElementInsetBoxShadowUnsupported.md
npm notice 232B bundle/bundled/third_party/issue-descriptions/permissionElementInvalidDisplayStyle.md
npm notice 250B bundle/bundled/third_party/issue-descriptions/permissionElementInvalidSizeValue.md
npm notice 216B bundle/bundled/third_party/issue-descriptions/permissionElementInvalidType.md
npm notice 282B bundle/bundled/third_party/issue-descriptions/permissionElementInvalidTypeActivation.md
npm notice 218B bundle/bundled/third_party/issue-descriptions/permissionElementLowContrast.md
npm notice 218B bundle/bundled/third_party/issue-descriptions/permissionElementNonOpaqueColor.md
npm notice 265B bundle/bundled/third_party/issue-descriptions/permissionElementPaddingBottomUnsupported.md
npm notice 263B bundle/bundled/third_party/issue-descriptions/permissionElementPaddingRightUnsupported.md
npm notice 265B bundle/bundled/third_party/issue-descriptions/permissionElementPermissionsPolicyBlocked.md
npm notice 199B bundle/bundled/third_party/issue-descriptions/permissionElementRegistrationFailed.md
npm notice 373B bundle/bundled/third_party/issue-descriptions/permissionElementRequestInProgress.md
npm notice 227B bundle/bundled/third_party/issue-descriptions/permissionElementSecurityChecksFailed.md
npm notice 294B bundle/bundled/third_party/issue-descriptions/permissionElementTypeNotSupported.md
npm notice 396B bundle/bundled/third_party/issue-descriptions/permissionElementUntrustedEvent.md
npm notice 179B bundle/bundled/third_party/issue-descriptions/placeholderDescriptionForInvisibleIssues.md
npm notice 100B bundle/bundled/third_party/issue-descriptions/propertyRuleInvalidNameIssue.md
npm notice 157B bundle/bundled/third_party/issue-descriptions/propertyRuleIssue.md
npm notice 571B bundle/bundled/third_party/issue-descriptions/SameSiteExcludeContextDowngradeRead.md
npm notice 572B bundle/bundled/third_party/issue-descriptions/SameSiteExcludeContextDowngradeSet.md
npm notice 583B bundle/bundled/third_party/issue-descriptions/SameSiteExcludeNavigationContextDowngrade.md
npm notice 556B bundle/bundled/third_party/issue-descriptions/SameSiteNoneInsecureErrorRead.md
npm notice 611B bundle/bundled/third_party/issue-descriptions/SameSiteNoneInsecureErrorSet.md
npm notice 592B bundle/bundled/third_party/issue-descriptions/SameSiteNoneInsecureWarnRead.md
npm notice 647B bundle/bundled/third_party/issue-descriptions/SameSiteNoneInsecureWarnSet.md
npm notice 699B bundle/bundled/third_party/issue-descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md
npm notice 758B bundle/bundled/third_party/issue-descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md
npm notice 610B bundle/bundled/third_party/issue-descriptions/SameSiteWarnCrossDowngradeRead.md
npm notice 612B bundle/bundled/third_party/issue-descriptions/SameSiteWarnCrossDowngradeSet.md
npm notice 622B bundle/bundled/third_party/issue-descriptions/SameSiteWarnStrictLaxDowngradeStrict.md
npm notice 587B bundle/bundled/third_party/issue-descriptions/selectElementAccessibilityDisallowedOptGroupChild.md
npm notice 605B bundle/bundled/third_party/issue-descriptions/selectElementAccessibilityDisallowedSelectChild.md
npm notice 272B bundle/bundled/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md
npm notice 409B bundle/bundled/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentLegendChild.md
npm notice 299B bundle/bundled/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentOptionChild.md
npm notice 470B bundle/bundled/third_party/issue-descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md
npm notice 643B bundle/bundled/third_party/issue-descriptions/sharedArrayBuffer.md
npm notice 101B bundle/bundled/third_party/issue-descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md
npm notice 97B bundle/bundled/third_party/issue-descriptions/sharedDictionaryUseErrorDictionaryLoadFailure.md
npm notice 155B bundle/bundled/third_party/issue-descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md
npm notice 101B bundle/bundled/third_party/issue-descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md
npm notice 91B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md
npm notice 49B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md
npm notice 124B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorExpiredResponse.md
npm notice 126B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorFeatureDisabled.md
npm notice 63B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorInsufficientResources.md
npm notice 84B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorInvalidMatchField.md
npm notice 81B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md
npm notice 93B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorInvalidTTLField.md
npm notice 138B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorNavigationRequest.md
npm notice 76B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorNoMatchField.md
npm notice 85B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorNonIntegerTTLField.md
npm notice 88B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorNonListMatchDestField.md
npm notice 115B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorNonSecureContext.md
npm notice 82B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorNonStringIdField.md
npm notice 98B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorNonStringInMatchDestList.md
npm notice 85B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorNonStringMatchField.md
npm notice 83B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorNonTokenTypeField.md
npm notice 49B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorRequestAborted.md
npm notice 49B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorShuttingDown.md
npm notice 134B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorTooLongIdField.md
npm notice 131B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorUnsupportedType.md
npm notice 655B bundle/bundled/third_party/issue-descriptions/sriInvalidSignatureHeader.md
npm notice 756B bundle/bundled/third_party/issue-descriptions/sriInvalidSignatureInputHeader.md
npm notice 465B bundle/bundled/third_party/issue-descriptions/sriMissingSignatureHeader.md
npm notice 477B bundle/bundled/third_party/issue-descriptions/sriMissingSignatureInputHeader.md
npm notice 420B bundle/bundled/third_party/issue-descriptions/sriSignatureHeaderValueIsIncorrectLength.md
npm notice 643B bundle/bundled/third_party/issue-descriptions/sriSignatureHeaderValueIsNotByteSequence.md
npm notice 678B bundle/bundled/third_party/issue-descriptions/sriSignatureHeaderValueIsParameterized.md
npm notice 278B bundle/bundled/third_party/issue-descriptions/sriSignatureInputHeaderInvalidComponentName.md
npm notice 516B bundle/bundled/third_party/issue-descriptions/sriSignatureInputHeaderInvalidComponentType.md
npm notice 231B bundle/bundled/third_party/issue-descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md
npm notice 286B bundle/bundled/third_party/issue-descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md
npm notice 338B bundle/bundled/third_party/issue-descriptions/sriSignatureInputHeaderInvalidParameter.md
npm notice 500B bundle/bundled/third_party/issue-descriptions/sriSignatureInputHeaderKeyIdLength.md
npm notice 339B bundle/bundled/third_party/issue-descriptions/sriSignatureInputHeaderMissingLabel.md
npm notice 380B bundle/bundled/third_party/issue-descriptions/sriSignatureInputHeaderMissingRequiredParameters.md
npm notice 351B bundle/bundled/third_party/issue-descriptions/sriSignatureInputHeaderValueMissingComponents.md
npm notice 429B bundle/bundled/third_party/issue-descriptions/sriSignatureInputHeaderValueNotInnerList.md
npm notice 429B bundle/bundled/third_party/issue-descriptions/sriValidationFailedIntegrityMismatch.md
npm notice 259B bundle/bundled/third_party/issue-descriptions/sriValidationFailedInvalidLength.md
npm notice 295B bundle/bundled/third_party/issue-descriptions/sriValidationFailedSignatureExpired.md
npm notice 384B bundle/bundled/third_party/issue-descriptions/sriValidationFailedSignatureMismatch.md
npm notice 266B bundle/bundled/third_party/issue-descriptions/stylesheetLateImport.md
npm notice 76B bundle/bundled/third_party/issue-descriptions/stylesheetRequestFailed.md
npm notice 231B bundle/bundled/third_party/issue-descriptions/summaryElementAccessibilityInteractiveContentSummaryDescendant.md
npm notice 606B bundle/bundled/third_party/issue-descriptions/unencodedDigestIncorrectDigestLength.md
npm notice 692B bundle/bundled/third_party/issue-descriptions/unencodedDigestIncorrectDigestType.md
npm notice 549B bundle/bundled/third_party/issue-descriptions/unencodedDigestMalformedDictionary.md
npm notice 581B bundle/bundled/third_party/issue-descriptions/unencodedDigestUnknownAlgorithm.md
npm notice 166.1kB bundle/bundled/third_party/THIRD_PARTY_NOTICES
npm notice 858B bundle/chunk-5AUYMPVF.js
npm notice 1.2kB bundle/chunk-5PS3AYFU.js
npm notice 2.5kB bundle/chunk-34MYV7JD.js
npm notice 123.5kB bundle/chunk-664ZODQF.js
npm notice 205.7kB bundle/chunk-DAHVX5MI.js
npm notice 3.1MB bundle/chunk-FUM6KUE2.js
npm notice 56.5kB bundle/chunk-IUUIT4SU.js
npm notice 39.8kB bundle/chunk-RJTRUG2J.js
npm notice 14.8MB bundle/chunk-XF7M4XLF.js
npm notice 2.0MB bundle/chunk-Z34XA6FT.js
npm notice 45.4kB bundle/core-R6E45VCQ.js
npm notice 696.0kB bundle/devtools-36NN55EP.js
npm notice 28.4kB bundle/devtoolsService-FFWXDKVX.js
npm notice 356B bundle/dist-T73EYRDX.js
npm notice 6.5kB bundle/docs/admin/enterprise-controls.md
npm notice 121.7kB bundle/docs/assets/connected_devtools.png
npm notice 61.2kB bundle/docs/assets/gemini-screenshot.png
npm notice 112.5kB bundle/docs/assets/monitoring-dashboard-logs.png
npm notice 58.9kB bundle/docs/assets/monitoring-dashboard-metrics.png
npm notice 55.8kB bundle/docs/assets/monitoring-dashboard-overview.png
npm notice 389.7kB bundle/docs/assets/release_patch.png
npm notice 157.3kB bundle/docs/assets/theme-ansi-dark.png
npm notice 144.8kB bundle/docs/assets/theme-ansi-light.png
npm notice 154.4kB bundle/docs/assets/theme-atom-one-dark.png
npm notice 150.0kB bundle/docs/assets/theme-ayu-dark.png
npm notice 140.5kB bundle/docs/assets/theme-ayu-light.png
npm notice 265.5kB bundle/docs/assets/theme-custom.png
npm notice 158.7kB bundle/docs/assets/theme-default-dark.png
npm notice 147.3kB bundle/docs/assets/theme-default-light.png
npm notice 160.3kB bundle/docs/assets/theme-dracula-dark.png
npm notice 157.4kB bundle/docs/assets/theme-github-dark.png
npm notice 138.4kB bundle/docs/assets/theme-github-light.png
npm notice 137.2kB bundle/docs/assets/theme-google-light.png
npm notice 167.3kB bundle/docs/assets/theme-holiday-dark.png
npm notice 161.2kB bundle/docs/assets/theme-shades-of-purple-dark.png
npm notice 149.3kB bundle/docs/assets/theme-solarized-dark.png
npm notice 141.4kB bundle/docs/assets/theme-solarized-light.png
npm notice 55.6kB bundle/docs/assets/theme-tokyonight-dark.png
npm notice 123.1kB bundle/docs/assets/theme-xcode-light.png
npm notice 53.7kB bundle/docs/changelogs/index.md
npm notice 23.4kB bundle/docs/changelogs/latest.md
npm notice 26.8kB bundle/docs/changelogs/preview.md
npm notice 4.7kB bundle/docs/cli/acp-mode.md
npm notice 3.1kB bundle/docs/cli/checkpointing.md
npm notice 16.2kB bundle/docs/cli/cli-reference.md
npm notice 2.4kB bundle/docs/cli/creating-skills.md
npm notice 12.0kB bundle/docs/cli/custom-commands.md
npm notice 19.1kB bundle/docs/cli/enterprise.md
npm notice 2.1kB bundle/docs/cli/gemini-ignore.md
npm notice 3.9kB bundle/docs/cli/gemini-md.md
npm notice 6.4kB bundle/docs/cli/generation-settings.md
npm notice 3.6kB bundle/docs/cli/git-worktrees.md
npm notice 1.6kB bundle/docs/cli/headless.md
npm notice 2.8kB bundle/docs/cli/model-routing.md
npm notice 2.9kB bundle/docs/cli/model-steering.md
npm notice 2.7kB bundle/docs/cli/model.md
npm notice 2.0kB bundle/docs/cli/notifications.md
npm notice 19.4kB bundle/docs/cli/plan-mode.md
npm notice 2.3kB bundle/docs/cli/rewind.md
npm notice 9.8kB bundle/docs/cli/sandbox.md
npm notice 6.4kB bundle/docs/cli/session-management.md
npm notice 31.2kB bundle/docs/cli/settings.md
npm notice 5.8kB bundle/docs/cli/skills.md
npm notice 4.6kB bundle/docs/cli/system-prompt.md
npm notice 29.0kB bundle/docs/cli/telemetry.md
npm notice 8.1kB bundle/docs/cli/themes.md
npm notice 754B bundle/docs/cli/token-caching.md
npm notice 5.0kB bundle/docs/cli/trusted-folders.md
npm notice 7.1kB bundle/docs/cli/tutorials/automation.md
npm notice 4.5kB bundle/docs/cli/tutorials/file-management.md
npm notice 3.2kB bundle/docs/cli/tutorials/mcp-setup.md
npm notice 4.4kB bundle/docs/cli/tutorials/memory-management.md
npm notice 3.5kB bundle/docs/cli/tutorials/plan-mode-steering.md
npm notice 3.3kB bundle/docs/cli/tutorials/session-management.md
npm notice 3.6kB bundle/docs/cli/tutorials/shell-commands.md
npm notice 3.3kB bundle/docs/cli/tutorials/skills-getting-started.md
npm notice 3.0kB bundle/docs/cli/tutorials/task-planning.md
npm notice 2.5kB bundle/docs/cli/tutorials/web-tools.md
npm notice 5.0kB bundle/docs/core/index.md
npm notice 6.8kB bundle/docs/core/local-model-routing.md
npm notice 17.1kB bundle/docs/core/remote-agents.md
npm notice 22.3kB bundle/docs/core/subagents.md
npm notice 2.8kB bundle/docs/examples/proxy-script.md
npm notice 5.8kB bundle/docs/extensions/best-practices.md
npm notice 1.8kB bundle/docs/extensions/index.md
npm notice 11.3kB bundle/docs/extensions/reference.md
npm notice 6.4kB bundle/docs/extensions/releasing.md
npm notice 11.8kB bundle/docs/extensions/writing-extensions.md
npm notice 14.0kB bundle/docs/get-started/authentication.md
npm notice 4.6kB bundle/docs/get-started/gemini-3.md
npm notice 6.3kB bundle/docs/get-started/index.md
npm notice 5.2kB bundle/docs/get-started/installation.md
npm notice 17.6kB bundle/docs/hooks/best-practices.md
npm notice 8.2kB bundle/docs/hooks/index.md
npm notice 13.3kB bundle/docs/hooks/reference.md
npm notice 11.5kB bundle/docs/hooks/writing-hooks.md
npm notice 10.8kB bundle/docs/ide-integration/ide-companion-spec.md
npm notice 11.7kB bundle/docs/ide-integration/index.md
npm notice 5.9kB bundle/docs/index.md
npm notice 5.9kB bundle/docs/integration-tests.md
npm notice 8.6kB bundle/docs/issue-and-pr-automation.md
npm notice 4.9kB bundle/docs/local-development.md
npm notice 3.1kB bundle/docs/mermaid/context.mmd
npm notice 1.6kB bundle/docs/mermaid/render-path.mmd
npm notice 2.5kB bundle/docs/npm.md
npm notice 981B bundle/docs/redirects.json
npm notice 23.6kB bundle/docs/reference/commands.md
npm notice 88.4kB bundle/docs/reference/configuration.md
npm notice 18.6kB bundle/docs/reference/keyboard-shortcuts.md
npm notice 6.4kB bundle/docs/reference/memport.md
npm notice 17.3kB bundle/docs/reference/policy-engine.md
npm notice 9.1kB bundle/docs/reference/tools.md
npm notice 5.5kB bundle/docs/release-confidence.md
npm notice 23.2kB bundle/docs/releases.md
npm notice 8.1kB bundle/docs/resources/faq.md
npm notice 9.1kB bundle/docs/resources/quota-and-pricing.md
npm notice 6.7kB bundle/docs/resources/tos-privacy.md
npm notice 10.4kB bundle/docs/resources/troubleshooting.md
npm notice 1.5kB bundle/docs/resources/uninstall.md
npm notice 8.3kB bundle/docs/sidebar.json
npm notice 1.5kB bundle/docs/tools/activate-skill.md
npm notice 2.8kB bundle/docs/tools/ask-user.md
npm notice 5.1kB bundle/docs/tools/file-system.md
npm notice 1.7kB bundle/docs/tools/internal-docs.md
npm notice 39.3kB bundle/docs/tools/mcp-server.md
npm notice 1.2kB bundle/docs/tools/memory.md
npm notice 2.6kB bundle/docs/tools/planning.md
npm notice 7.3kB bundle/docs/tools/shell.md
npm notice 1.2kB bundle/docs/tools/todos.md
npm notice 1.4kB bundle/docs/tools/web-fetch.md
npm notice 1.1kB bundle/docs/tools/web-search.md
npm notice 418B bundle/events-XB7DADIJ.js
npm notice 553.2kB bundle/gemini.js
npm notice 1.5kB bundle/getMachineId-bsd-TXG52NKR.js
npm notice 1.6kB bundle/getMachineId-darwin-7OE4DDZ6.js
npm notice 1.3kB bundle/getMachineId-linux-SHIFKOOX.js
npm notice 1.1kB bundle/getMachineId-unsupported-5U5DOEYY.js
npm notice 1.7kB bundle/getMachineId-win-6KLLGOI4.js
npm notice 1.6MB bundle/interactiveCli-I3VTW7YK.js
npm notice 980B bundle/memoryDiscovery-PYBLKP7S.js
npm notice 11.7kB bundle/multipart-parser-KPBZEGQU.js
npm notice 222.2kB bundle/node_modules/@google/gemini-cli-devtools/dist/client/main.js
npm notice 228.5kB bundle/node_modules/@google/gemini-cli-devtools/dist/src/_client-assets.d.ts
npm notice 228.6kB bundle/node_modules/@google/gemini-cli-devtools/dist/src/_client-assets.js
npm notice 240B bundle/node_modules/@google/gemini-cli-devtools/dist/src/_client-assets.js.map
npm notice 1.4kB bundle/node_modules/@google/gemini-cli-devtools/dist/src/index.d.ts
npm notice 13.4kB bundle/node_modules/@google/gemini-cli-devtools/dist/src/index.js
npm notice 10.8kB bundle/node_modules/@google/gemini-cli-devtools/dist/src/index.js.map
npm notice 851B bundle/node_modules/@google/gemini-cli-devtools/dist/src/types.d.ts
npm notice 132B bundle/node_modules/@google/gemini-cli-devtools/dist/src/types.js
npm notice 117B bundle/node_modules/@google/gemini-cli-devtools/dist/src/types.js.map
npm notice 644B bundle/node_modules/@google/gemini-cli-devtools/package.json
npm notice 9.2kB bundle/oauth2-provider-MMQDMW2M.js
npm notice 111B bundle/policies/conseca.toml
npm notice 366B bundle/policies/discovered.toml
npm notice 706B bundle/policies/memory-manager.toml
npm notice 158B bundle/policies/non-interactive.toml
npm notice 4.8kB bundle/policies/plan.toml
npm notice 2.3kB bundle/policies/read-only.toml
npm notice 470B bundle/policies/sandbox-default.toml
npm notice 1.5kB bundle/policies/tracker.toml
npm notice 2.9kB bundle/policies/write.toml
npm notice 2.4kB bundle/policies/yolo.toml
npm notice 890B bundle/sandbox-macos-permissive-open.sb
npm notice 1.3kB bundle/sandbox-macos-permissive-proxied.sb
npm notice 3.4kB bundle/sandbox-macos-restrictive-open.sb
npm notice 3.6kB bundle/sandbox-macos-restrictive-proxied.sb
npm notice 4.8kB bundle/sandbox-macos-strict-open.sb
npm notice 5.0kB bundle/sandbox-macos-strict-proxied.sb
npm notice 47.0kB bundle/src-QVCVGIUX.js
npm notice 1.8MB bundle/tree-sitter-bash-K67FJMO7.js
npm notice 274.5kB bundle/tree-sitter-HH7MDLFZ.js
npm notice 7.4kB package.json
npm notice Bundled Dependencies
npm notice node-pty
npm notice minimist
npm notice require-directory
npm notice keytar
npm notice proper-lockfile
npm notice config-chain
npm notice @kwsites/file-exists
npm notice @kwsites/promise-deferred
npm notice @lydell/node-pty
npm notice @pnpm/network.ca-file
npm notice @pnpm/npm-conf
npm notice ansi-escapes
npm notice ansi-regex
npm notice ansi-styles
npm notice auto-bind
npm notice cli-boxes
npm notice cli-cursor
npm notice cli-truncate
npm notice cliui
npm notice code-excerpt
npm notice color-convert
npm notice color-name
npm notice convert-to-spaces
npm notice debug
npm notice deep-extend
npm notice environment
npm notice es-toolkit
npm notice escalade
npm notice get-east-asian-width
npm notice graceful-fs
npm notice indent-string
npm notice ini
npm notice ink
npm notice is-fullwidth-code-point
npm notice ky
npm notice latest-version
npm notice mimic-fn
npm notice node-fetch-native
npm notice onetime
npm notice package-json
npm notice patch-console
npm notice proto-list
npm notice rc
npm notice react-reconciler
npm notice registry-auth-token
npm notice registry-url
npm notice restore-cursor
npm notice scheduler
npm notice semver
npm notice slice-ansi
npm notice stack-utils
npm notice strip-ansi
npm notice wrap-ansi
npm notice ws
npm notice y18n
npm notice yargs
npm notice node-addon-api
npm notice yargs-parser
npm notice yoga-layout
npm notice nan
npm notice mnemonist
npm notice obliterator
npm notice @pnpm/config.env-replace
npm notice get-caller-file
npm notice ms
npm notice simple-git
npm notice punycode
npm notice Tarball Details
npm notice name: @google/gemini-cli
npm notice version: 0.38.2
npm notice filename: google-gemini-cli-0.38.2.tgz
npm notice package size: 14.8 MB
npm notice unpacked size: 62.5 MB
npm notice shasum: b9a56729a9a9b4b7542d5b5e36ef8333304c157f
npm notice integrity: sha512-L53FcHr/gNl5d[...]/IhLqFAhIDEDw==
npm notice bundled deps: 67
npm notice bundled files: 0
npm notice own files: 4863
npm notice total files: 4863
npm notice
google-gemini-cli-0.38.2.tgz
[1m[32m==>[m[1m Starting check()...[m
> @google/gemini-cli@0.38.2 build
> node scripts/build.js
> @google/gemini-cli@0.38.2 generate
> node scripts/generate-git-commit-info.js
Building @google/gemini-cli-core...
> @google/gemini-cli-core@0.38.2 build
> node ../../scripts/build_package.js
Running chrome devtools MCP bundling...
> @google/gemini-cli-core@0.38.2 bundle:browser-mcp
> node scripts/bundle-browser-mcp.mjs
Successfully copied files.
Copied documentation to dist/docs
Building other workspaces in parallel...
npm warn Unknown cli config "sandboxImageUri" (@google/gemini-cli:sandboxImageUri). This will stop working in the next major version of npm.
npm warn Unknown cli config "sandboxImageUri" (@google/gemini-cli:sandboxImageUri). This will stop working in the next major version of npm.
npm warn Unknown cli config "sandboxImageUri" (@google/gemini-cli:sandboxImageUri). This will stop working in the next major version of npm.
npm warn Unknown cli config "sandboxImageUri" (@google/gemini-cli:sandboxImageUri). This will stop working in the next major version of npm.
npm warn Unknown cli config "sandboxImageUri" (@google/gemini-cli:sandboxImageUri). This will stop working in the next major version of npm.
npm warn Unknown cli config "sandboxImageUri" (@google/gemini-cli:sandboxImageUri). This will stop working in the next major version of npm.
> @google/gemini-cli-a2a-server@0.38.2 build
> node ../../scripts/build_package.js
> @google/gemini-cli-sdk@0.38.2 build
> node ../../scripts/build_package.js
> @google/gemini-cli@0.38.2 build
> node ../../scripts/build_package.js
> @google/gemini-cli-devtools@0.38.2 build
> npm run build:client && tsc -p tsconfig.build.json
> @google/gemini-cli-test-utils@0.38.2 build
> node ../../scripts/build_package.js
> gemini-cli-vscode-ide-companion@0.38.2 build
> npm run build:dev
> gemini-cli-vscode-ide-companion@0.38.2 build:dev
> node esbuild.js
> @google/gemini-cli-devtools@0.38.2 build:client
> node esbuild.client.js
[watch] build started
[watch] build finished
Successfully copied files.
Successfully copied files.
Successfully copied files.
Successfully copied files.
> @google/gemini-cli-a2a-server@0.38.2 test
> vitest run --exclude=**/BuiltinCommandLoader.test.ts --exclude=**/config.integration.test.ts --exclude=**/mcp-client.test.ts --exclude=**/sandboxManager.integration.test.ts
RUN v3.2.4 /build/gemini-cli/src/gemini-cli/packages/a2a-server
Coverage enabled with v8
✓ src/commands/command-registry.test.ts (6 tests) 103ms
✓ src/commands/extensions.test.ts (8 tests) 203ms
✓ src/config/settings.test.ts (3 tests) 273ms
✓ src/config/config.test.ts (25 tests) 891ms
✓ src/commands/init.test.ts (5 tests) 747ms
✓ src/commands/memory.test.ts (7 tests) 154ms
✓ src/agent/task-event-driven.test.ts (15 tests) 1236ms
✓ Task Event-Driven Scheduler > should subscribe to TOOL_CALLS_UPDATE and map status changes 328ms
✓ src/http/endpoints.test.ts (5 tests) 1392ms
✓ Agent Server Endpoints > should create a new task via POST /tasks 718ms
✓ src/persistence/gcs.test.ts (12 tests) 585ms
(node:3305) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 model-changed listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:3305) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 memory-changed listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(node:3305) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 mcp-progress listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
✓ src/commands/restore.test.ts (6 tests) 232ms
✓ src/agent/task.test.ts (10 tests) 818ms
✓ src/agent/executor.test.ts (2 tests) 504ms
✓ CoderAgentExecutor > should distinguish between primary and secondary execution 369ms
✓ src/http/app.test.ts (20 tests) 3302ms
✓ E2E Tests > should create a new task and stream status updates (text-content) via POST / 1201ms
✓ E2E Tests > should create a new task, schedule a tool call, and wait for approval 487ms
Test Files 13 passed (13)
Tests 124 passed (124)
Start at 14:44:02
Duration 143.84s (transform 70.20s, setup 0ms, collect 997.26s, tests 10.44s, environment 47ms, prepare 124.77s)
JUNIT report written to /build/gemini-cli/src/gemini-cli/packages/a2a-server/junit.xml
% Coverage report from v8
> @google/gemini-cli@0.38.2 test
> vitest run --exclude=**/BuiltinCommandLoader.test.ts --exclude=**/config.integration.test.ts --exclude=**/mcp-client.test.ts --exclude=**/sandboxManager.integration.test.ts
RUN v3.2.4 /build/gemini-cli/src/gemini-cli/packages/cli
Coverage enabled with v8
stderr | src/ui/themes/theme-manager.test.ts > ThemeManager > when loading a theme from a file > should not load a theme if the file does not exist
Theme file at "./my-theme.json" is outside your home directory. Only load themes from trusted sources.
stderr | src/ui/themes/theme-manager.test.ts > ThemeManager > when loading a theme from a file > should not load a theme from a file with invalid JSON
Theme file at "./my-theme.json" is outside your home directory. Only load themes from trusted sources.
✓ src/ui/themes/theme-manager.test.ts (24 tests) 634ms
✓ src/ui/themes/color-utils.test.ts (40 tests) 627ms
✓ src/utils/sessions.test.ts (17 tests) 486ms
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should pass through query if no @ command is present
Ignore file not found: /tmp/folder-structure-test-OnILRR/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should pass through original query if only a lone @ symbol is present
Ignore file not found: /tmp/folder-structure-test-vAZCVB/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should process a valid text file path
Ignore file not found: /tmp/folder-structure-test-dUkCwY/.geminiignore, continue without it.
✓ src/utils/installationInfo.test.ts (18 tests) 782ms
✓ src/utils/devtoolsService.test.ts (19 tests) 1090ms
✓ src/ui/hooks/shellReducer.test.ts (17 tests) 921ms
✓ src/utils/errors.test.ts (26 tests) 1036ms
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should process a valid text file path
Ignore file not found: /tmp/folder-structure-test-dUkCwY/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should process a valid directory path and convert to glob
Ignore file not found: /tmp/folder-structure-test-EXGzeO/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should process a valid directory path and convert to glob
Ignore file not found: /tmp/folder-structure-test-EXGzeO/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle query with text before and after @command
Ignore file not found: /tmp/folder-structure-test-J3oZ8Z/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle query with text before and after @command
Ignore file not found: /tmp/folder-structure-test-J3oZ8Z/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should correctly unescape paths with escaped spaces
Ignore file not found: /tmp/folder-structure-test-UIsZNP/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should correctly unescape paths with escaped spaces
Ignore file not found: /tmp/folder-structure-test-UIsZNP/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should correctly handle double-quoted paths with spaces
Ignore file not found: /tmp/folder-structure-test-sdSYec/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should correctly handle double-quoted paths with spaces
Ignore file not found: /tmp/folder-structure-test-sdSYec/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should correctly handle file paths with narrow non-breaking space (NNBSP)
Ignore file not found: /tmp/folder-structure-test-XVwB5A/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should correctly handle file paths with narrow non-breaking space (NNBSP)
Ignore file not found: /tmp/folder-structure-test-XVwB5A/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle multiple @file references
Ignore file not found: /tmp/folder-structure-test-DCLyDH/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle multiple @file references
Ignore file not found: /tmp/folder-structure-test-DCLyDH/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle multiple @file references with interleaved text
Ignore file not found: /tmp/folder-structure-test-exr1Pf/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle multiple @file references with interleaved text
Ignore file not found: /tmp/folder-structure-test-exr1Pf/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle a mix of valid, invalid, and lone @ references
Ignore file not found: /tmp/folder-structure-test-XGQgMc/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle a mix of valid, invalid, and lone @ references
Ignore file not found: /tmp/folder-structure-test-XGQgMc/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle a mix of valid, invalid, and lone @ references
Ignore file not found: /tmp/folder-structure-test-XGQgMc/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should return original query if all @paths are invalid or lone @
Ignore file not found: /tmp/folder-structure-test-omRdFQ/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should return original query if all @paths are invalid or lone @
Ignore file not found: /tmp/folder-structure-test-omRdFQ/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > git-aware filtering > should skip git-ignored files in @ commands
Ignore file not found: /tmp/folder-structure-test-cSp1ug/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > git-aware filtering > should skip git-ignored files in @ commands
Ignored 1 files:
Git-ignored: /tmp/folder-structure-test-cSp1ug/node_modules/package.json
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > git-aware filtering > should process non-git-ignored files normally
Ignore file not found: /tmp/folder-structure-test-df5Fqd/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > git-aware filtering > should process non-git-ignored files normally
Ignore file not found: /tmp/folder-structure-test-df5Fqd/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > git-aware filtering > should handle mixed git-ignored and valid files
Ignore file not found: /tmp/folder-structure-test-ydrWQa/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > git-aware filtering > should handle mixed git-ignored and valid files
Ignored 1 files:
Git-ignored: /tmp/folder-structure-test-ydrWQa/.env
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > git-aware filtering > should handle mixed git-ignored and valid files
Ignore file not found: /tmp/folder-structure-test-ydrWQa/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > git-aware filtering > should always ignore .git directory files
Ignore file not found: /tmp/folder-structure-test-0oKJ28/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > git-aware filtering > should always ignore .git directory files
Ignored 1 files:
Git-ignored: /tmp/folder-structure-test-0oKJ28/.git/config
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > when recursive file search is disabled > should not use glob search for a nonexistent file
Ignore file not found: /tmp/folder-structure-test-AVSD4U/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > gemini-ignore filtering > should skip gemini-ignored files in @ commands
Loading ignore patterns from: /tmp/folder-structure-test-NAE0YU/.geminiignore
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > gemini-ignore filtering > should skip gemini-ignored files in @ commands
Ignored 1 files:
Gemini-ignored: /tmp/folder-structure-test-NAE0YU/build/output.js
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should process non-ignored files when .geminiignore is present
Loading ignore patterns from: /tmp/folder-structure-test-xFWjP4/.geminiignore
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should process non-ignored files when .geminiignore is present
Loading ignore patterns from: /tmp/folder-structure-test-xFWjP4/.geminiignore
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle mixed gemini-ignored and valid files
Loading ignore patterns from: /tmp/folder-structure-test-P0iA9X/.geminiignore
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle mixed gemini-ignored and valid files
Ignored 1 files:
Gemini-ignored: /tmp/folder-structure-test-P0iA9X/dist/bundle.js
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle mixed gemini-ignored and valid files
Loading ignore patterns from: /tmp/folder-structure-test-P0iA9X/.geminiignore
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'comma'
Ignore file not found: /tmp/folder-structure-test-vwdbIl/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'comma'
Ignore file not found: /tmp/folder-structure-test-vwdbIl/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'period'
Ignore file not found: /tmp/folder-structure-test-wPXue9/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'period'
Ignore file not found: /tmp/folder-structure-test-wPXue9/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'semicolon'
Ignore file not found: /tmp/folder-structure-test-DPvZwO/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'semicolon'
Ignore file not found: /tmp/folder-structure-test-DPvZwO/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'exclamation mark'
Ignore file not found: /tmp/folder-structure-test-o2sHev/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'exclamation mark'
Ignore file not found: /tmp/folder-structure-test-o2sHev/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'question mark'
Ignore file not found: /tmp/folder-structure-test-CAdiO8/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'question mark'
Ignore file not found: /tmp/folder-structure-test-CAdiO8/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'opening parenthesis'
Ignore file not found: /tmp/folder-structure-test-02iydI/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'opening parenthesis'
Ignore file not found: /tmp/folder-structure-test-02iydI/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'closing parenthesis'
Ignore file not found: /tmp/folder-structure-test-OdZyLu/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'closing parenthesis'
Ignore file not found: /tmp/folder-structure-test-OdZyLu/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'opening square bracket'
Ignore file not found: /tmp/folder-structure-test-F2gqid/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'opening square bracket'
Ignore file not found: /tmp/folder-structure-test-F2gqid/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'closing square bracket'
Ignore file not found: /tmp/folder-structure-test-7h8cIE/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'closing square bracket'
Ignore file not found: /tmp/folder-structure-test-7h8cIE/.geminiignore, continue without it.
✓ src/ui/utils/rewindFileOps.test.ts (9 tests) 743ms
✓ src/ui/utils/directoryUtils.test.ts (17 tests | 1 skipped) 685ms
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'opening curly brace'
Ignore file not found: /tmp/folder-structure-test-tbJZfa/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'opening curly brace'
Ignore file not found: /tmp/folder-structure-test-tbJZfa/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'closing curly brace'
Ignore file not found: /tmp/folder-structure-test-bwf2z5/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'closing curly brace'
Ignore file not found: /tmp/folder-structure-test-bwf2z5/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle multiple @paths terminated by different punctuation
Ignore file not found: /tmp/folder-structure-test-WWDpxF/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle multiple @paths terminated by different punctuation
Ignore file not found: /tmp/folder-structure-test-WWDpxF/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should still handle escaped spaces in paths before punctuation
Ignore file not found: /tmp/folder-structure-test-It4sW9/.geminiignore, continue without it.
✓ src/ui/utils/terminalCapabilityManager.test.ts (30 tests) 1663ms
stdout | src/ui/commands/setupGithubCommand.test.ts > setupGithubCommand > throws an error when download fails
Failed to download required setup files: Error: Invalid response code downloading https://raw.githubusercontent.com/google-github-actions/run-gemini-cli/refs/tags/v1.2.3/examples/workflows/gemini-dispatch/gemini-dispatch.yml: 404 - Not Found
at [90m/build/gemini-cli/src/gemini-cli/packages/cli/[39msrc/ui/commands/setupGithubCommand.ts:136:17
at async Promise.all (index 0)
at downloadFiles [90m(/build/gemini-cli/src/gemini-cli/packages/cli/[39msrc/ui/commands/setupGithubCommand.ts:163:3[90m)[39m
at async Promise.all (index 0)
at downloadSetupFiles [90m(/build/gemini-cli/src/gemini-cli/packages/cli/[39msrc/ui/commands/setupGithubCommand.ts:189:5[90m)[39m
at Object.action [90m(/build/gemini-cli/src/gemini-cli/packages/cli/[39msrc/ui/commands/setupGithubCommand.ts:245:5[90m)[39m
at [90m/build/gemini-cli/src/gemini-cli/packages/cli/[39msrc/ui/commands/setupGithubCommand.test.ts:215:5
at file:///build/gemini-cli/src/gemini-cli/node_modules/[4m@vitest/runner[24m/dist/chunk-hooks.js:752:20
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should still handle escaped spaces in paths before punctuation
Ignore file not found: /tmp/folder-structure-test-It4sW9/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should not break file paths with periods in extensions
Ignore file not found: /tmp/folder-structure-test-PkMspE/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should not break file paths with periods in extensions
Ignore file not found: /tmp/folder-structure-test-PkMspE/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle file paths ending with period followed by space
Ignore file not found: /tmp/folder-structure-test-X6uD78/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle file paths ending with period followed by space
Ignore file not found: /tmp/folder-structure-test-X6uD78/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle comma termination with complex file paths
Ignore file not found: /tmp/folder-structure-test-KPVlxb/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle comma termination with complex file paths
Ignore file not found: /tmp/folder-structure-test-KPVlxb/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should correctly handle file paths with multiple periods
Ignore file not found: /tmp/folder-structure-test-f6D0mC/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should correctly handle file paths with multiple periods
Ignore file not found: /tmp/folder-structure-test-f6D0mC/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle end of string termination for period and comma
Ignore file not found: /tmp/folder-structure-test-9eVADD/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle end of string termination for period and comma
Ignore file not found: /tmp/folder-structure-test-9eVADD/.geminiignore, continue without it.
✓ src/config/sandboxConfig.test.ts (43 tests) 1834ms
✓ src/services/McpPromptLoader.test.ts (31 tests) 1127ms
✓ src/utils/commentJson.test.ts (12 tests) 1070ms
✓ src/ui/commands/setupGithubCommand.test.ts (10 tests) 2529ms
✓ setupGithubCommand > downloads workflows, updates gitignore, and includes pipefail on non-windows 998ms
✓ setupGithubCommand > downloads workflows, updates gitignore, and does not include pipefail on windows 438ms
✓ setupGithubCommand > throws an error when download fails 331ms
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle files with special characters in names
Ignore file not found: /tmp/folder-structure-test-QUR1jP/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle files with special characters in names
Ignore file not found: /tmp/folder-structure-test-QUR1jP/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle basic file names without special characters
Ignore file not found: /tmp/folder-structure-test-s0mQLc/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle basic file names without special characters
Ignore file not found: /tmp/folder-structure-test-s0mQLc/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > absolute path handling > should handle absolute file paths correctly
Ignore file not found: /tmp/folder-structure-test-CbbgMo/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > absolute path handling > should handle absolute file paths correctly
Ignore file not found: /tmp/folder-structure-test-CbbgMo/.geminiignore, continue without it.
stderr | src/ui/utils/commandUtils.test.ts > commandUtils > getUrlOpenCommand > on unmatched OS > should return xdg-open
Unknown platform: unmatched. Attempting to open URLs with: xdg-open.
✓ src/ui/utils/commandUtils.test.ts (33 tests) 2616ms
✓ commandUtils > isAtCommand > should return true when query starts with @ 499ms
stderr | src/ui/components/shared/BaseSelectionList.test.tsx
failed to asynchronously prepare wasm: RangeError: WebAssembly.instantiate(): Out of memory: Cannot allocate Wasm memory for new instance
Aborted(RangeError: WebAssembly.instantiate(): Out of memory: Cannot allocate Wasm memory for new instance)
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > absolute path handling > should handle absolute directory paths correctly
Ignore file not found: /tmp/folder-structure-test-PswKOC/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > absolute path handling > should handle absolute directory paths correctly
Ignore file not found: /tmp/folder-structure-test-PswKOC/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should not add the user's turn to history, as that is the caller's responsibility
Ignore file not found: /tmp/folder-structure-test-kRMqrM/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should not add the user's turn to history, as that is the caller's responsibility
Ignore file not found: /tmp/folder-structure-test-kRMqrM/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > MCP resource attachments > attaches MCP resource content when @serverName:uri matches registry
Ignore file not found: /tmp/folder-structure-test-MTqfIw/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > MCP resource attachments > returns an error if MCP client is unavailable
Ignore file not found: /tmp/folder-structure-test-Ro9ojB/.geminiignore, continue without it.
stderr | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > MCP resource attachments > returns an error if MCP client is unavailable
Exiting due to an error processing the @ command: Error reading resource resource://server-1/logs: MCP client for server 'server-1' is not available or not connected.
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should return error if the read_many_files tool is cancelled by user
Ignore file not found: /tmp/folder-structure-test-8bbvU4/.geminiignore, continue without it.
stderr | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should return error if the read_many_files tool is cancelled by user
Exiting due to an error processing the @ command: Error reading files (file.txt): User cancelled operation
stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should include agent nudge when agents are found
Ignore file not found: /tmp/folder-structure-test-IcIFct/.geminiignore, continue without it.
✓ src/ui/hooks/atCommandProcessor.test.ts (59 tests) 9671ms
✓ handleAtCommand > should process a valid text file path 1360ms
✓ handleAtCommand > git-aware filtering > should process non-git-ignored files normally 389ms
✓ handleAtCommand > git-aware filtering > should handle mixed git-ignored and valid files 403ms
✓ handleAtCommand > punctuation termination in @ commands > should handle file paths ending with period followed by space 391ms
✓ handleAtCommand > punctuation termination in @ commands > should handle comma termination with complex file paths 381ms
✓ src/ui/key/keyMatchers.test.ts (62 tests) 1177ms
✓ src/config/extensions/update.test.ts (14 tests) 398ms
✓ src/utils/sessionCleanup.integration.test.ts (6 tests) 627ms
✓ src/config/settingsSchema.test.ts (27 tests) 804ms
✓ src/utils/toolOutputCleanup.test.ts (10 tests) 763ms
✓ src/ui/utils/textUtils.test.ts (73 tests) 1077ms
✓ src/config/extensions/extensionEnablement.test.ts (48 tests) 1156ms
✓ src/ui/hooks/toolMapping.test.ts (22 tests) 323ms
✓ src/utils/sessionUtils.test.ts (27 tests) 1229ms
✓ SessionSelector > should resolve session by UUID 382ms
✓ src/ui/hooks/creditsFlowHandler.test.ts (14 tests) 718ms
✓ src/config/settings-validation.test.ts (25 tests) 647ms
✓ src/utils/sessionCleanup.test.ts (63 tests) 3606ms
✓ Session Cleanup (Refactored) > Logging and Debug Mode > should log debug information when enabled 310ms
✓ src/utils/settingsUtils.test.ts (49 tests) 841ms
✓ src/config/extensions/extensionSettings.test.ts (33 tests) 1317ms
✓ src/utils/handleAutoUpdate.test.ts (26 tests) 795ms
✓ src/utils/relaunch.test.ts (8 tests) 590ms
✓ src/config/extensions/github.test.ts (34 tests) 1092ms
stdout | src/commands/mcp/add.test.ts > mcp add command > should add a stdio server to project settings
MCP server "my-server" added to project settings. (stdio)
stdout | src/commands/mcp/add.test.ts > mcp add command > should handle multiple env vars before positional args
MCP server "my-server" added to project settings. (stdio)
stdout | src/commands/mcp/add.test.ts > mcp add command > should add an sse server to user settings
MCP server "sse-server" added to user settings. (sse)
stdout | src/commands/mcp/add.test.ts > mcp add command > should add an http server to project settings
MCP server "http-server" added to project settings. (http)
stdout | src/commands/mcp/add.test.ts > mcp add command > should add an sse server using --type alias
MCP server "sse-server" added to user settings. (sse)
stdout | src/commands/mcp/add.test.ts > mcp add command > should add an http server using --type alias
MCP server "http-server" added to project settings. (http)
(node:6545) 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/ui/commands/memoryCommand.test.ts (11 tests) 851ms
✓ memoryCommand > /memory show > should display a message if memory is empty 348ms
✓ src/ui/commands/agentsCommand.test.ts (20 tests) 1102ms
stdout | src/commands/mcp/add.test.ts > mcp add command > should handle MCP server args with -- separator
MCP server "my-server" added to project settings. (stdio)
stdout | src/commands/mcp/add.test.ts > mcp add command > should handle unknown options as MCP server args
MCP server "test-server" added to project settings. (stdio)
stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when in a project directory > should use project scope by default
MCP server "test-server" added to project settings. (stdio)
stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when in a project directory > should use project scope when --scope=project is used
MCP server "test-server" added to project settings. (stdio)
stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when in a project directory > should use user scope when --scope=user is used
MCP server "test-server" added to user settings. (stdio)
stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when in a subdirectory of a project > should use project scope by default
MCP server "test-server" added to project settings. (stdio)
stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when in the home directory > should use user scope when --scope=user is used
MCP server "test-server" added to user settings. (stdio)
stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when in a subdirectory of home (not a project) > should use project scope by default
MCP server "test-server" added to project settings. (stdio)
stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when in a subdirectory of home (not a project) > should write to the WORKSPACE scope, not the USER scope
MCP server "my-new-server" added to project settings. (stdio)
stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when outside of home (not a project) > should use project scope by default
MCP server "test-server" added to project settings. (stdio)
stdout | src/commands/mcp/add.test.ts > mcp add command > when updating an existing server > should update the existing server in the project scope
MCP server "existing-server" is already configured within project settings.
MCP server "existing-server" updated in project settings.
stdout | src/commands/mcp/add.test.ts > mcp add command > when updating an existing server > should update the existing server in the user scope
MCP server "existing-server" is already configured within user settings.
MCP server "existing-server" updated in user settings.
✓ src/commands/mcp/add.test.ts (20 tests) 2461ms
✓ mcp add command > should add a stdio server to project settings 575ms
✓ mcp add command > should add an sse server to user settings 302ms
✓ src/ui/components/shared/vim-buffer-actions.test.ts (196 tests) 2811ms
✓ src/ui/commands/mcpCommand.test.ts (7 tests) 922ms
✓ mcpCommand > basic functionality > should show an error if config is not available 318ms
✓ src/config/policy-engine.integration.test.ts (19 tests) 3965ms
✓ Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should create a working PolicyEngine from basic settings 739ms
✓ src/commands/hooks/migrate.test.ts (17 tests) 1058ms
✓ src/config/trustedFolders.test.ts (32 tests) 1833ms
✓ Trusted Folders > Locking & Concurrency > setValue should handle concurrent calls correctly using real lockfile 503ms
✓ src/validateNonInterActiveAuth.test.ts (17 tests) 905ms
✓ validateNonInterActiveAuth > exits if no auth type is configured or env vars set 410ms
✓ src/utils/skillUtils.test.ts (11 tests) 1519ms
✓ skillUtils > linkSkill > should successfully link from a local directory 608ms
✓ src/commands/extensions/uninstall.test.ts (12 tests) 488ms
✓ src/services/prompt-processors/shellProcessor.test.ts (34 tests) 1980ms
✓ ShellProcessor > should throw an error if config is missing 377ms
✓ src/commands/extensions/install.test.ts (14 tests) 666ms
✓ src/commands/mcp/list.test.ts (8 tests) 539ms
✓ src/ui/utils/clipboardUtils.test.ts (44 tests) 34727ms
✓ clipboardUtils > clipboardHasImage (Linux) > should return true when wl-paste shows image type (Wayland) 1139ms
✓ clipboardUtils > clipboardHasImage (Linux) > should return true when xclip shows image type (X11) 1978ms
✓ clipboardUtils > clipboardHasImage (Linux) > should return false if tool fails 888ms
✓ clipboardUtils > clipboardHasImage (Linux) > should return false if no image type is found 1002ms
✓ clipboardUtils > clipboardHasImage (Linux) > should return false if tool not found 1208ms
✓ clipboardUtils > saveClipboardImage (Linux) > should save image using wl-paste if detected 1184ms
✓ clipboardUtils > saveClipboardImage (Linux) > should return null if wl-paste fails 1268ms
✓ clipboardUtils > saveClipboardImage (Linux) > should save image using xclip if detected 1255ms
✓ clipboardUtils > saveClipboardImage (Linux) > should return null if tool is not yet detected 798ms
✓ clipboardUtils > cleanupOldClipboardImages > should not throw errors 968ms
✓ clipboardUtils > cleanupOldClipboardImages > should complete without errors on valid directory 620ms
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape empty string 801ms
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape single path no spaces 1185ms
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape simple space-separated paths 1610ms
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape three paths 433ms
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape escaped spaces 892ms
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape multiple paths with escaped spaces 608ms
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape multiple escaped spaces 1101ms
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape consecutive spaces 411ms
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape trailing/leading whitespace 1050ms
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape whitespace only 514ms
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape quoted path with spaces 949ms
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape mixed quoted and unquoted 498ms
✓ clipboardUtils > splitDragAndDropPaths > in windows > should split double quoted path 843ms
✓ clipboardUtils > splitDragAndDropPaths > in windows > should split multiple double quoted paths 1034ms
✓ clipboardUtils > splitDragAndDropPaths > in windows > should split unquoted path 488ms
✓ clipboardUtils > splitDragAndDropPaths > in windows > should split single quoted path 365ms
✓ clipboardUtils > splitDragAndDropPaths > in windows > should split mixed single and double quoted 652ms
✓ clipboardUtils > parsePastedPaths > should return null for empty string 341ms
✓ clipboardUtils > parsePastedPaths > should add @ prefix to single valid path 379ms
✓ clipboardUtils > parsePastedPaths > should return null for single invalid path 505ms
✓ clipboardUtils > parsePastedPaths > should add @ prefix to all valid paths 431ms
✓ clipboardUtils > parsePastedPaths > should return null if any path is invalid 406ms
✓ clipboardUtils > parsePastedPaths > should return null if no paths are valid 587ms
✓ clipboardUtils > parsePastedPaths > in posix > should handle paths with escaped spaces 477ms
✓ clipboardUtils > parsePastedPaths > in posix > should unescape paths before validation 536ms
✓ clipboardUtils > parsePastedPaths > in posix > should handle single path with unescaped spaces from copy-paste 1028ms
✓ clipboardUtils > parsePastedPaths > in posix > should handle single-quoted with escaped quote 559ms
✓ clipboardUtils > parsePastedPaths > in windows > should handle Windows path 987ms
✓ clipboardUtils > parsePastedPaths > in windows > should handle Windows path with unescaped spaces 581ms
✓ clipboardUtils > parsePastedPaths > in windows > should handle multiple Windows paths 703ms
✓ clipboardUtils > parsePastedPaths > in windows > should handle Windows UNC path 853ms
✓ src/config/settings.test.ts (101 tests) 9591ms
✓ Settings Loading and Merging > loadSettings > should load 'system' settings if only 'system' file exists 456ms
✓ LoadedSettings Isolation and Serializability > setValue Serializability > should handle circular references (structuredClone supports them, but deepMerge may not) 2713ms
stderr | src/config/extension.test.ts > extension tests > installExtension > should prompt for settings if promptForSettings
Extension "my-local-extension" has missing settings: API Key. Please run "gemini extensions config my-local-extension [setting-name]" to configure them.
stderr | src/config/extension.test.ts > extension tests > installExtension > should not prompt for settings if promptForSettings is false
Extension "my-local-extension" has missing settings: API Key. Please run "gemini extensions config my-local-extension [setting-name]" to configure them.
✓ src/ui/commands/skillsCommand.test.ts (23 tests) 2033ms
✓ skillsCommand > should add a SKILLS_LIST item to UI with descriptions by default 323ms
stderr | src/config/extension.test.ts > extension tests > installExtension > should auto-update if settings have changed
Extension "my-auto-update-ext" has missing settings: OLD_SETTING. Please run "gemini extensions config my-auto-update-ext [setting-name]" to configure them.
stderr | src/config/extension.test.ts > extension tests > installExtension > should auto-update if settings have changed
Extension "my-auto-update-ext" has missing settings: NEW_SETTING. Please run "gemini extensions config my-auto-update-ext [setting-name]" to configure them.
✓ src/config/extension-manager.test.ts (15 tests) 8560ms
✓ ExtensionManager > loadExtensions parallel loading > should prevent concurrent loading and return the same promise 418ms
✓ ExtensionManager > symlink handling > preserves symlinks in installMetadata.source when linking 2915ms
✓ ExtensionManager > symlink handling > works with the new install command logic (preserves symlink but trusts real path) 629ms
✓ ExtensionManager > symlink handling > enforces allowedExtensions using the real path 600ms
✓ ExtensionManager > Extension Renaming > should support renaming an extension during update 987ms
✓ ExtensionManager > Extension Renaming > should carry over enablement status when renaming 933ms
✓ ExtensionManager > Extension Renaming > should prevent renaming if the new name conflicts with an existing extension 387ms
✓ ExtensionManager > extension integrity > should store integrity data during installation 751ms
✓ ExtensionManager > extension integrity > should store integrity data during first update 413ms
✓ src/ui/commands/chatCommand.test.ts (33 tests) 1969ms
✓ src/config/extension.test.ts (82 tests) 11221ms
✓ extension tests > loadExtensions > should include extension path in loaded extension 334ms
✓ extension tests > installExtension > should prompt for trust if workspace is not trusted 306ms
✓ extension tests > installExtension > should only prompt for new settings on update, and preserve old settings 339ms
✓ extension tests > installExtension > should auto-update if settings have changed 307ms
✓ src/ui/commands/directoryCommand.test.tsx (21 tests) 807ms
✓ src/services/FileCommandLoader.test.ts (44 tests) 15865ms
✓ FileCommandLoader > loads a single command from a file 839ms
✓ FileCommandLoader > loads commands from a symlinked subdirectory 571ms
✓ FileCommandLoader > loads multiple commands 582ms
✓ FileCommandLoader > creates deeply nested namespaces correctly 435ms
✓ FileCommandLoader > returns both user and project commands in order 386ms
✓ FileCommandLoader > ignores files with TOML syntax errors 427ms
✓ FileCommandLoader > ignores files that are semantically invalid (missing prompt) 365ms
✓ FileCommandLoader > handles filename edge cases correctly 323ms
✓ FileCommandLoader > handles file system errors gracefully 361ms
✓ FileCommandLoader > uses the provided description 351ms
✓ FileCommandLoader > should sanitize colons in filenames to prevent namespace conflicts 610ms
✓ FileCommandLoader > Processor Instantiation Logic > instantiates only DefaultArgumentProcessor if no {{args}} or !{} are present 348ms
✓ FileCommandLoader > Processor Instantiation Logic > instantiates only ShellProcessor if both {{args}} and !{} are present 878ms
✓ FileCommandLoader > Extension Command Loading > loads commands from active extensions 480ms
✓ FileCommandLoader > Extension Command Loading > only loads commands from active extensions 429ms
✓ FileCommandLoader > Extension Command Loading > handles missing extension commands directory gracefully 347ms
✓ FileCommandLoader > Extension Command Loading > handles nested command structure in extensions 817ms
✓ FileCommandLoader > Argument Handling Integration (via ShellProcessor) > correctly processes a command with {{args}} 382ms
✓ FileCommandLoader > Default Argument Processor Integration > correctly processes a command without {{args}} 485ms
✓ FileCommandLoader > Shell Processor Integration > does not instantiate ShellProcessor if no triggers ({{args}} or !{}) are present 314ms
✓ FileCommandLoader > Shell Processor Integration > returns a "submit_prompt" action if shell processing succeeds 429ms
✓ FileCommandLoader > Shell Processor Integration > re-throws other errors from the processor 364ms
✓ FileCommandLoader > Shell Processor Integration > assembles the processor pipeline in the correct order (AtFile -> Shell -> Default) 311ms
✓ FileCommandLoader > Sanitization > truncates excessively long filenames 415ms
✓ FileCommandLoader > Sanitization > sanitizes descriptions containing newlines and ANSI codes 401ms
✓ src/ui/commands/rewindCommand.test.tsx (13 tests) 948ms
✓ rewindCommand > should initialize successfully 394ms
✓ src/ui/commands/hooksCommand.test.ts (33 tests) 2710ms
✓ hooksCommand > root command > should have the correct name and description 337ms
stderr | src/acp/acpClient.test.ts > Session > should handle @path validation error and bubble it to user
No valid file paths found in @ commands to read.
TEST: 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"}
stderr | src/acp/acpClient.test.ts > Session > should ignore files based on configuration
Path ignored.txt is ignored and will be skipped.
No valid file paths found in @ commands to read.
✓ src/gemini_cleanup.test.tsx (2 tests | 1 skipped) 448ms
✓ gemini.tsx main function cleanup > should register SessionEnd hook exactly once in non-interactive mode 421ms
✓ src/acp/acpClient.test.ts (60 tests) 5444ms
✓ Session > should handle tool calls 322ms
✓ Session > should exclude always allow options when disableAlwaysAllow is true 385ms
stdout | src/ui/commands/extensionsCommand.test.ts > extensionsCommand > explore > should handle onSelect and onClose in ExtensionRegistryView
Selected extension: test-ext
stderr | src/ui/commands/extensionsCommand.test.ts > extensionsCommand > link > should show error message for invalid source
Failed to stat path "test-extension-package": invalid path
✓ src/ui/contexts/ScrollProvider.drag.test.tsx (6 tests) 2314ms
✓ ScrollProvider Drag > drags the scrollbar thumb 1043ms
✓ ScrollProvider Drag > jumps to position when clicking track above thumb 492ms
[?2004h[?2004h[?2004h ✓ src/ui/contexts/ScrollProvider.test.tsx (12 tests) 3540ms
✓ ScrollProvider > Event Handling Status > returns true when scroll event is handled 1151ms
✓ ScrollProvider > calls scrollTo when clicking scrollbar track if available 387ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/commands/extensionsCommand.test.ts (58 tests) 5849ms
✓ extensionsCommand > list > should add an EXTENSIONS_LIST item to the UI 510ms
✓ extensionsCommand > config > should return dialog to configure specific extension 382ms
✓ extensionsCommand > config > should return dialog to configure specific setting for an extension 892ms
✓ extensionsCommand > config > should respect scope argument passed to dialog 354ms
✓ extensionsCommand > config > should show error for invalid extension name 341ms
[?2004h(node:6238) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:6238) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004hstdout | src/ui/auth/useAuth.test.tsx > useAuth > useAuthCommand > should initialize with Unauthenticated state
Authenticated via "oauth-personal".
[?2004h[?2004h[?2004h ✓ src/ui/hooks/useSessionBrowser.test.ts (9 tests) 5071ms
✓ useSessionBrowser > should successfully resume a session 1951ms
✓ useSessionBrowser > should handle file read error 1272ms
✓ useSessionBrowser > should handle JSON parse error 1373ms
✓ convertSessionToHistoryFormats > should convert thinking tokens (thoughts) to thinking history items 303ms
[?2004h ✓ src/ui/hooks/useFolderTrust.test.ts (13 tests) 3410ms
✓ useFolderTrust > should not open dialog when folder is already trusted 1117ms
✓ useFolderTrust > should send a message if the folder is untrusted 302ms
[?2004h[?2004h[?2004h ✓ src/ui/contexts/ToolActionsContext.test.tsx (8 tests) 10998ms
✓ ToolActionsContext > publishes to MessageBus for tools with correlationId 2285ms
✓ ToolActionsContext > handles cancel by calling confirm with Cancel outcome 1247ms
✓ ToolActionsContext > resolves IDE diffs for edit tools when in IDE mode 1235ms
✓ ToolActionsContext > updates isDiffingEnabled when IdeClient status changes 1282ms
✓ ToolActionsContext > calls local onConfirm for tools without correlationId 1410ms
✓ ToolActionsContext > toggleAllExpansion > expands all when none are expanded 1160ms
✓ ToolActionsContext > toggleAllExpansion > expands all when some are expanded 1203ms
✓ ToolActionsContext > toggleAllExpansion > collapses all when all are expanded 1132ms
[?2004h[?2004h[?2004h[?2004h[?2004h(node:6238) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 101 settings-changed listeners added to [CoreEventEmitter]. MaxListeners is 100. Use emitter.setMaxListeners() to increase limit
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004hstdout | src/ui/auth/useAuth.test.tsx > useAuth > useAuthCommand > should authenticate if USE_GEMINI and key is found
Authenticated via "gemini-api-key".
[?2004h ✓ src/ui/hooks/useMessageQueue.test.tsx (15 tests) 6250ms
✓ useMessageQueue > should initialize with empty queue 2175ms
✓ useMessageQueue > should auto-submit queued messages when transitioning to Idle and MCP is ready 374ms
✓ useMessageQueue > should handle multiple state transitions correctly 377ms
✓ useMessageQueue > popAllMessages > should clear the entire queue after popping 819ms
[?25h[?2004h[?2004h[?2004hstdout | src/ui/auth/useAuth.test.tsx > useAuth > useAuthCommand > should authenticate if USE_GEMINI and env key is found
Authenticated via "gemini-api-key".
[?2004h ✓ src/ui/hooks/useExtensionUpdates.test.tsx (4 tests) 6260ms
✓ useExtensionUpdates > should check for updates and log a message if an update is available 2299ms
✓ useExtensionUpdates > should check for updates and automatically update if autoUpdate is true 1395ms
✓ useExtensionUpdates > should batch update notifications for multiple extensions 1246ms
✓ useExtensionUpdates > should batch update notifications for multiple extensions with autoUpdate: false 1282ms
[?2004h[?2004h[?2004hstdout | src/ui/auth/useAuth.test.tsx > useAuth > useAuthCommand > should prioritize env key over stored key when both are present
Authenticated via "gemini-api-key".
[?2004h ✓ src/ui/hooks/usePermissionsModifyTrust.test.ts (13 tests) 16422ms
✓ usePermissionsModifyTrust > when targetDirectory is the current workspace > should initialize with the correct trust level 1763ms
✓ usePermissionsModifyTrust > when targetDirectory is the current workspace > should detect inherited trust from parent 1157ms
✓ usePermissionsModifyTrust > when targetDirectory is the current workspace > should detect inherited trust from IDE 1193ms
✓ usePermissionsModifyTrust > when targetDirectory is the current workspace > should set needsRestart but not save when trust changes 1282ms
✓ usePermissionsModifyTrust > when targetDirectory is the current workspace > should save immediately if trust does not change 1217ms
✓ usePermissionsModifyTrust > when targetDirectory is the current workspace > should commit the pending trust level change 1211ms
✓ usePermissionsModifyTrust > when targetDirectory is the current workspace > should add warning when setting DO_NOT_TRUST but still trusted by parent 1258ms
✓ usePermissionsModifyTrust > when targetDirectory is the current workspace > should add warning when setting DO_NOT_TRUST but still trusted by IDE 1350ms
✓ usePermissionsModifyTrust > when targetDirectory is not the current workspace > should not detect inherited trust 1242ms
✓ usePermissionsModifyTrust > when targetDirectory is not the current workspace > should save immediately without needing a restart 1149ms
✓ usePermissionsModifyTrust > when targetDirectory is not the current workspace > should not add a warning when setting DO_NOT_TRUST 1165ms
✓ usePermissionsModifyTrust > should emit feedback when setValue throws in updateTrustLevel 1207ms
✓ usePermissionsModifyTrust > should emit feedback when setValue throws in commitTrustLevelChange 1183ms
[?2004h[?2004h[?2004h[?2004h ✓ src/config/extensions/consent.test.ts (21 tests) 14138ms
✓ consent > maybeRequestConsentOrFail > consent string generation > should generate a consent string with all fields 3916ms
✓ consent > maybeRequestConsentOrFail > consent string generation > should include warning when hooks are present 2889ms
✓ consent > maybeRequestConsentOrFail > consent string generation > should request consent if extension is migrated 1432ms
✓ consent > maybeRequestConsentOrFail > consent string generation > should request consent if skills change 1765ms
✓ consent > maybeRequestConsentOrFail > consent string generation > should show a warning if the skill directory cannot be read 1525ms
✓ consent > skillsConsentString > should generate a consent string for skills 1501ms
✓ src/ui/hooks/useHistoryManager.test.ts (14 tests) 17850ms
✓ useHistoryManager > should initialize with an empty history 2070ms
✓ useHistoryManager > should add an item to history with a unique ID 1550ms
✓ useHistoryManager > should generate strictly increasing IDs even if baseTimestamp goes backwards 1197ms
✓ useHistoryManager > should ensure new IDs start after existing IDs when resuming a session 1212ms
✓ useHistoryManager > should update lastIdRef when loading new history 1139ms
✓ useHistoryManager > should generate unique IDs for items added with the same base timestamp 1165ms
✓ useHistoryManager > should update an existing history item 1342ms
✓ useHistoryManager > should not change history if updateHistoryItem is called with a nonexistent ID 1133ms
✓ useHistoryManager > should clear the history 1164ms
✓ useHistoryManager > should not add consecutive duplicate user messages 1208ms
✓ useHistoryManager > should add duplicate user messages if they are not consecutive 1124ms
✓ useHistoryManager > should use Date.now() as default baseTimestamp if not provided 1145ms
✓ useHistoryManager > initialItems with auth information > should initialize with auth information 1151ms
✓ useHistoryManager > initialItems with auth information > should add items with auth information via addItem 1186ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004hstdout | src/ui/auth/useAuth.test.tsx > useAuth > useAuthCommand > should authenticate successfully for valid auth type
Authenticated via "oauth-personal".
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/auth/useAuth.test.tsx (16 tests) 15731ms
✓ useAuth > useAuthCommand > should initialize with Unauthenticated state 2259ms
✓ useAuth > useAuthCommand > should set error if no auth type is selected and no env key 1185ms
✓ useAuth > useAuthCommand > should set error if no auth type is selected but env key exists 1221ms
✓ useAuth > useAuthCommand > should transition to AwaitingApiKeyInput if USE_GEMINI and no key found 1169ms
✓ useAuth > useAuthCommand > should authenticate if USE_GEMINI and key is found 1162ms
✓ useAuth > useAuthCommand > should authenticate if USE_GEMINI and env key is found 1250ms
✓ useAuth > useAuthCommand > should prioritize env key over stored key when both are present 1213ms
✓ useAuth > useAuthCommand > should set error if validation fails 1142ms
✓ useAuth > useAuthCommand > should set error if GEMINI_DEFAULT_AUTH_TYPE is invalid 1204ms
✓ useAuth > useAuthCommand > should authenticate successfully for valid auth type 1194ms
✓ useAuth > useAuthCommand > should handle refreshAuth failure 1204ms
✓ useAuth > useAuthCommand > should handle ProjectIdRequiredError without "Failed to login" prefix 1262ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/shared/VirtualizedList.test.tsx (10 tests) 20291ms
✓ > with 10px height and 100 items > renders only visible items ('top') 2752ms
✓ > with 10px height and 100 items > renders only visible items ('scrolled to bottom') 767ms
✓ > with 10px height and 100 items > sticks to bottom when new items added 1459ms
✓ > with 10px height and 100 items > scrolls down to show new items when requested via ref 1401ms
✓ > with 10px height and 100 items > mounts only visible items with 1000 items and 10px height (scroll: +0) 3117ms
✓ > with 10px height and 100 items > mounts only visible items with 1000 items and 10px height (scroll: 500) 1601ms
✓ > with 10px height and 100 items > mounts only visible items with 1000 items and 10px height (scroll: 999) 3462ms
✓ > renders more items when a visible item shrinks via context update 3081ms
✓ > updates scroll position correctly when scrollBy is called multiple times in the same tick 1655ms
✓ > renders correctly in copyModeEnabled when scrolled 955ms
[?2004h[?2004h[?2004h ✓ src/ui/hooks/useInputHistory.test.ts (14 tests) 18294ms
✓ useInputHistory > should initialize with historyIndex -1 and empty originalQueryBeforeNav 2038ms
✓ useInputHistory > handleSubmit > should call onSubmit with trimmed value and reset history 1260ms
✓ useInputHistory > handleSubmit > should not call onSubmit if value is empty after trimming 1155ms
✓ useInputHistory > navigateUp > should not navigate if isActive is false 1204ms
✓ useInputHistory > navigateUp > should not navigate if userMessages is empty 1119ms
✓ useInputHistory > navigateUp > should call onChange with the last message when navigating up from initial state 1191ms
✓ useInputHistory > navigateUp > should store currentQuery and currentCursorOffset as original state on first navigateUp 1143ms
✓ useInputHistory > navigateUp > should navigate through history messages on subsequent navigateUp calls 1214ms
✓ useInputHistory > navigateDown > should not navigate if isActive is false 1297ms
✓ useInputHistory > navigateDown > should not navigate if historyIndex is -1 (not in history navigation) 1164ms
✓ useInputHistory > navigateDown > should restore cursor offset only when in middle of compose prompt 1178ms
✓ useInputHistory > navigateDown > should NOT restore cursor offset if it was at start or end of compose prompt 1294ms
✓ useInputHistory > navigateDown > should remember text edits but use default cursor when navigating between history items 1461ms
✓ useInputHistory > navigateDown > should restore offset for history items ONLY if returning from them immediately 1525ms
(node:6736) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:6736) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/ProQuotaDialog.test.tsx (10 tests) 15775ms
✓ ProQuotaDialog > for flash model failures > should render "Keep trying" and "Stop" options 3052ms
✓ ProQuotaDialog > for non-flash model failures > when it is a terminal quota error > should render switch, upgrade, and stop options for LOGIN_WITH_GOOGLE 1605ms
✓ ProQuotaDialog > for non-flash model failures > when it is a terminal quota error > should NOT render upgrade option for USE_GEMINI 1407ms
✓ ProQuotaDialog > for non-flash model failures > when it is a terminal quota error > should render "Keep trying" and "Stop" options when failed model and fallback model are the same 1354ms
✓ ProQuotaDialog > for non-flash model failures > when it is a terminal quota error > should render switch, upgrade, and stop options for LOGIN_WITH_GOOGLE (free tier) 1407ms
✓ ProQuotaDialog > for non-flash model failures > when it is a terminal quota error > should NOT render upgrade option for LOGIN_WITH_GOOGLE if tier is Ultra 1334ms
✓ ProQuotaDialog > for non-flash model failures > when it is a capacity error > should render keep trying, switch, and stop options 1264ms
✓ ProQuotaDialog > for non-flash model failures > when it is a model not found error > should render switch, upgrade, and stop options for LOGIN_WITH_GOOGLE 1257ms
✓ ProQuotaDialog > for non-flash model failures > when it is a model not found error > should NOT render upgrade option for USE_GEMINI 1677ms
✓ ProQuotaDialog > onChoice handling > should call onChoice with the selected value 1373ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useSessionResume.test.ts (14 tests) 18059ms
✓ useSessionResume > loadHistoryForResume > should return a loadHistoryForResume callback 2016ms
✓ useSessionResume > loadHistoryForResume > should clear history and add items when loading history 1376ms
✓ useSessionResume > loadHistoryForResume > should not load history if Gemini client is not initialized 1209ms
✓ useSessionResume > loadHistoryForResume > should handle empty history arrays 1206ms
✓ useSessionResume > loadHistoryForResume > should restore directories from resumed session data 1159ms
✓ useSessionResume > loadHistoryForResume > should not call addDirectories when no directories in resumed session 1214ms
✓ useSessionResume > callback stability > should maintain stable loadHistoryForResume reference across renders 1275ms
✓ useSessionResume > callback stability > should update callback when config changes 1287ms
✓ useSessionResume > automatic resume on mount > should not resume when resumedSessionData is not provided 1244ms
✓ useSessionResume > automatic resume on mount > should not resume when user is authenticating 1152ms
✓ useSessionResume > automatic resume on mount > should not resume when Gemini client is not initialized 1202ms
✓ useSessionResume > automatic resume on mount > should automatically resume session when resumedSessionData is provided 1205ms
✓ useSessionResume > automatic resume on mount > should only resume once even if props change 1260ms
✓ useSessionResume > automatic resume on mount > should convert session messages correctly during auto-resume 1206ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/BackgroundTaskDisplay.test.tsx (10 tests | 3 failed) 21279ms
✓ > renders the output of the active shell 3259ms
✓ > renders tabs for multiple shells 1509ms
✓ > highlights the focused state 1493ms
✓ > resizes the PTY on mount and when dimensions change 1756ms
× > renders the process list when isListOpenProp is true 2290ms
→ Snapshot ` > renders the process list when isListOpenProp is true 1` mismatched
✓ > selects the current process and closes the list when Ctrl+L is pressed in list view 2629ms
✓ > kills the highlighted process when Ctrl+K is pressed in list view 2355ms
✓ > kills the active process when Ctrl+K is pressed in output view 1414ms
× > scrolls to active shell when list opens 2053ms
→ Snapshot ` > scrolls to active shell when list opens 1` mismatched
× > keeps exit code status color even when selected 2481ms
→ Snapshot ` > keeps exit code status color even when selected 1` mismatched
[?2004h[?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[?25h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useToolScheduler.test.ts (13 tests) 14841ms
✓ useToolScheduler > initializes with empty tool calls 2003ms
✓ useToolScheduler > updates tool calls when MessageBus emits TOOL_CALLS_UPDATE 1397ms
✓ useToolScheduler > preserves responseSubmittedToGemini flag across updates 1251ms
✓ useToolScheduler > delegates cancelAll to the Core Scheduler 1171ms
✓ useToolScheduler > resolves the schedule promise when scheduler resolves 1220ms
✓ useToolScheduler > setToolCallsForDisplay re-groups tools by schedulerId (Multi-Scheduler support) 1241ms
✓ useToolScheduler > ignores TOOL_CALLS_UPDATE from non-root schedulers when no tools await approval 1240ms
✓ useToolScheduler > allows TOOL_CALLS_UPDATE from non-root schedulers when tools are awaiting approval 1233ms
✓ useToolScheduler > preserves subagent tools in the UI after they have been approved 1180ms
✓ useToolScheduler > accumulates SUBAGENT_ACTIVITY events and attaches them to toolCalls 1207ms
✓ useToolScheduler > replaces SUBAGENT_ACTIVITY events by ID instead of appending 1168ms
[?2004h[?2004h[?25h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useApprovalModeIndicator.test.ts (21 tests) 26603ms
✓ useApprovalModeIndicator > should initialize with ApprovalMode.AUTO_EDIT if config.getApprovalMode returns ApprovalMode.AUTO_EDIT 1824ms
✓ useApprovalModeIndicator > should initialize with ApprovalMode.DEFAULT if config.getApprovalMode returns ApprovalMode.DEFAULT 1230ms
✓ useApprovalModeIndicator > should initialize with ApprovalMode.YOLO if config.getApprovalMode returns ApprovalMode.YOLO 1224ms
✓ useApprovalModeIndicator > should cycle the indicator and update config when Shift+Tab or Ctrl+Y is pressed 1350ms
✓ useApprovalModeIndicator > should not toggle if only one key or other keys combinations are pressed 1235ms
✓ useApprovalModeIndicator > should update indicator when config value changes externally (useEffect dependency) 1224ms
✓ useApprovalModeIndicator > in untrusted folders > should not enable YOLO mode when Ctrl+Y is pressed 1139ms
✓ useApprovalModeIndicator > in untrusted folders > should not enable AUTO_EDIT mode when Shift+Tab is pressed 1219ms
✓ useApprovalModeIndicator > in untrusted folders > should disable YOLO mode when Ctrl+Y is pressed 1205ms
✓ useApprovalModeIndicator > in untrusted folders > should disable AUTO_EDIT mode when Shift+Tab is pressed 1177ms
✓ useApprovalModeIndicator > in untrusted folders > should show a warning when trying to enable privileged modes 1238ms
✓ useApprovalModeIndicator > when YOLO mode is disabled by settings > should not enable YOLO mode when Ctrl+Y is pressed and add an info message 1407ms
✓ useApprovalModeIndicator > when YOLO mode is disabled by settings > should show admin error message when YOLO mode is disabled by admin 1381ms
✓ useApprovalModeIndicator > when YOLO mode is disabled by settings > should show default error message when admin settings are empty 1225ms
✓ useApprovalModeIndicator > should call onApprovalModeChange when switching to YOLO mode 1144ms
✓ useApprovalModeIndicator > should call onApprovalModeChange when switching to AUTO_EDIT mode 1305ms
✓ useApprovalModeIndicator > should call onApprovalModeChange when switching to DEFAULT mode 1195ms
✓ useApprovalModeIndicator > should not call onApprovalModeChange when callback is not provided 1250ms
✓ useApprovalModeIndicator > should handle multiple mode changes correctly 1160ms
✓ useApprovalModeIndicator > should cycle to PLAN when allowPlanMode is true 1216ms
✓ useApprovalModeIndicator > should cycle to DEFAULT when allowPlanMode is false 1194ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/shared/TextInput.test.tsx (13 tests) 27002ms
✓ TextInput > renders with an initial value 2756ms
✓ TextInput > renders a placeholder 1928ms
✓ TextInput > handles character input 2299ms
✓ TextInput > handles backspace 2595ms
✓ TextInput > handles left arrow 2281ms
✓ TextInput > handles right arrow 2205ms
✓ TextInput > calls onSubmit on return 2249ms
✓ TextInput > expands paste placeholder to real content on submit 2626ms
✓ TextInput > submits text unchanged when pastedContent is empty 2982ms
✓ TextInput > calls onCancel on escape 760ms
✓ TextInput > renders the input value 1834ms
✓ TextInput > does not show cursor when not focused 1167ms
✓ TextInput > renders multiple lines when text wraps 1263ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/FolderTrustDialog.test.tsx (18 tests | 3 failed) 34499ms
✓ FolderTrustDialog > should render the dialog with title and description 3466ms
✓ FolderTrustDialog > should truncate discovery results when they exceed maxDiscoveryHeight 1557ms
✓ FolderTrustDialog > should adjust maxHeight based on terminal rows 774ms
✓ FolderTrustDialog > should use minimum maxHeight of 4 870ms
✓ FolderTrustDialog > should toggle expansion when global Ctrl+O is handled 4108ms
✓ FolderTrustDialog > should display exit message and call process.exit and not call onSelect when escape is pressed 2862ms
✓ FolderTrustDialog > should display restart message when isRestarting is true 1632ms
✓ FolderTrustDialog > should call relaunchApp when isRestarting is true 840ms
✓ FolderTrustDialog > should not call relaunchApp if unmounted before timeout 536ms
✓ FolderTrustDialog > should not call process.exit when "r" is pressed and isRestarting is false 2684ms
× FolderTrustDialog > directory display > should correctly display the folder name for a nested directory 1937ms
→ expected ' ╭───────────────────────────────────…' to contain 'Trust folder (project)'
× FolderTrustDialog > directory display > should correctly display the parent folder name for a nested directory 1769ms
→ expected ' ╭───────────────────────────────────…' to contain 'Trust parent folder (user)'
× FolderTrustDialog > directory display > should correctly display an empty parent folder name for a directory directly under root 1704ms
→ expected ' ╭───────────────────────────────────…' to contain 'Trust parent folder ()'
✓ FolderTrustDialog > directory display > should display discovery results when provided 2252ms
✓ FolderTrustDialog > directory display > should display security warnings when provided 1985ms
✓ FolderTrustDialog > directory display > should display discovery errors when provided 1817ms
✓ FolderTrustDialog > directory display > should use scrolling instead of truncation when alternate buffer is enabled and expanded 1437ms
✓ FolderTrustDialog > directory display > should strip ANSI codes from discovery results 2213ms
(node:7281) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:7281) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?2004h[?2004h ❯ src/ui/components/shared/ScrollableList.test.tsx (7 tests | 7 failed) 31417ms
× ScrollableList Demo Behavior > should scroll to bottom when new items are added and stop when scrolled up 11049ms
→ expected '\n ╭─────────────────────────────────…' to contain 'Item 1001'
× ScrollableList Demo Behavior > should display sticky header when scrolled past the item 3960ms
→ 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.
× ScrollableList Demo Behavior > Keyboard Navigation > should handle scroll keys correctly 2287ms
→ 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.
× ScrollableList Demo Behavior > Width Prop > should apply the width prop to the container 3603ms
→ expected 'I\nt\ne\nm\n1\n' to contain 'Item 1'
× ScrollableList Demo Behavior > regression: remove last item and add 2 items when scrolled to bottom 3545ms
→ expected 10 to be 5 // Object.is equality
× ScrollableList Demo Behavior > regression: bottom-most element changes size but list does not update 3392ms
→ expected 5 to be 1 // Object.is equality
× ScrollableList Demo Behavior > regression: prepending items does not corrupt heights (total height correct) 3505ms
→ expected 10 to be 8 // Object.is equality
[?2004h(node:6379) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:6379) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useTabbedNavigation.test.ts (23 tests) 33327ms
✓ useTabbedNavigation > keyboard navigation > moves to next tab on Right arrow 2106ms
✓ useTabbedNavigation > keyboard navigation > moves to previous tab on Left arrow 1290ms
✓ useTabbedNavigation > keyboard navigation > moves to next tab on Tab key 1297ms
✓ useTabbedNavigation > keyboard navigation > moves to previous tab on Shift+Tab key 1262ms
✓ useTabbedNavigation > keyboard navigation > does not navigate when isNavigationBlocked returns true 1341ms
✓ useTabbedNavigation > initialization > returns initial index of 0 by default 1222ms
✓ useTabbedNavigation > initialization > returns specified initial index 1191ms
✓ useTabbedNavigation > initialization > clamps initial index to valid range 2299ms
✓ useTabbedNavigation > goToNextTab > advances to next tab 1184ms
✓ useTabbedNavigation > goToNextTab > stops at last tab when wrapAround is false 1378ms
✓ useTabbedNavigation > goToNextTab > wraps to first tab when wrapAround is true 1220ms
✓ useTabbedNavigation > goToPrevTab > moves to previous tab 1221ms
✓ useTabbedNavigation > goToPrevTab > stops at first tab when wrapAround is false 1418ms
✓ useTabbedNavigation > goToPrevTab > wraps to last tab when wrapAround is true 1216ms
✓ useTabbedNavigation > setCurrentIndex > sets index directly 1165ms
✓ useTabbedNavigation > setCurrentIndex > ignores out-of-bounds index 1266ms
✓ useTabbedNavigation > isNavigationBlocked > blocks navigation when callback returns true 1578ms
✓ useTabbedNavigation > isNavigationBlocked > allows navigation when callback returns false 1143ms
✓ useTabbedNavigation > onTabChange callback > calls onTabChange when tab changes via goToNextTab 1188ms
✓ useTabbedNavigation > onTabChange callback > calls onTabChange when tab changes via setCurrentIndex 1134ms
✓ useTabbedNavigation > onTabChange callback > does not call onTabChange when tab does not change 1204ms
✓ useTabbedNavigation > isFirstTab and isLastTab > returns correct boundary flags based on position 3664ms
✓ useTabbedNavigation > tabCount changes > reinitializes when tabCount changes 1268ms
[?2004h[?2004h[?2004h(node:6238) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 101 model-changed listeners added to [CoreEventEmitter]. MaxListeners is 100. Use emitter.setMaxListeners() to increase limit
(node:6238) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 101 memory-changed listeners added to [CoreEventEmitter]. MaxListeners is 100. Use emitter.setMaxListeners() to increase limit
[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?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(node:6445) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:6445) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?2004h[?2004h[?2004h[?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 ❯ src/ui/utils/TableRenderer.test.tsx (20 tests | 20 failed) 41382ms
× TableRenderer > renders a 3x3 table correctly 3531ms
→ Snapshot `TableRenderer > renders a 3x3 table correctly 2` mismatched
× TableRenderer > renders a table with long headers and 4 columns correctly 2119ms
→ Snapshot `TableRenderer > renders a table with long headers and 4 columns correctly 2` mismatched
× TableRenderer > wraps long cell content correctly 1859ms
→ Snapshot `TableRenderer > wraps long cell content correctly 2` mismatched
× TableRenderer > wraps all long columns correctly 2080ms
→ Snapshot `TableRenderer > wraps all long columns correctly 2` mismatched
× TableRenderer > wraps mixed long and short columns correctly 1580ms
→ Snapshot `TableRenderer > wraps mixed long and short columns correctly 2` mismatched
× TableRenderer > wraps columns with punctuation correctly 1950ms
→ Snapshot `TableRenderer > wraps columns with punctuation correctly 2` mismatched
× TableRenderer > strips bold markers from headers and renders them correctly 1392ms
→ Snapshot `TableRenderer > strips bold markers from headers and renders them correctly 2` mismatched
× TableRenderer > handles wrapped bold headers without showing markers 1673ms
→ Snapshot `TableRenderer > handles wrapped bold headers without showing markers 2` mismatched
× TableRenderer > renders a complex table with mixed content lengths correctly 6497ms
→ Snapshot `TableRenderer > renders a complex table with mixed content lengths correctly 2` mismatched
× TableRenderer > 'handles non-ASCII characters (emojis …' 1603ms
→ Snapshot `TableRenderer > 'handles non-ASCII characters (emojis …' 2` mismatched
× TableRenderer > 'renders a table with only emojis and …' 1638ms
→ Snapshot `TableRenderer > 'renders a table with only emojis and …' 2` mismatched
× TableRenderer > 'renders a table with only Asian chara…' 1466ms
→ Snapshot `TableRenderer > 'renders a table with only Asian chara…' 2` mismatched
× TableRenderer > 'renders a table with mixed emojis, As…' 1586ms
→ Snapshot `TableRenderer > 'renders a table with mixed emojis, As…' 2` mismatched
× TableRenderer > 'renders correctly when headers are em…' 1390ms
→ Snapshot `TableRenderer > 'renders correctly when headers are em…' 2` mismatched
× TableRenderer > 'renders correctly when there are more…' 1385ms
→ Snapshot `TableRenderer > 'renders correctly when there are more…' 2` mismatched
× TableRenderer > 'renders complex markdown in rows and …' 2379ms
→ Snapshot `TableRenderer > 'renders complex markdown in rows and …' 2` mismatched
× TableRenderer > 'calculates column widths based on ren…' 1815ms
→ Snapshot `TableRenderer > 'calculates column widths based on ren…' 2` mismatched
× TableRenderer > 'handles nested markdown styles recurs…' 2158ms
→ Snapshot `TableRenderer > 'handles nested markdown styles recurs…' 2` mismatched
× TableRenderer > 'calculates width correctly for conten…' 1668ms
→ Snapshot `TableRenderer > 'calculates width correctly for conten…' 2` mismatched
× TableRenderer > 'does not parse markdown inside code s…' 1552ms
→ Snapshot `TableRenderer > 'does not parse markdown inside code s…' 2` mismatched
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:6847) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:6847) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useQuotaAndFallback.test.ts (28 tests) 35778ms
✓ useQuotaAndFallback > should register a fallback handler on initialization 2122ms
✓ useQuotaAndFallback > Fallback Handler Logic > should show fallback dialog but omit switch to API key message if authType is not LOGIN_WITH_GOOGLE 1725ms
✓ useQuotaAndFallback > Fallback Handler Logic > should auto-retry transient capacity failures in low verbosity mode 1210ms
✓ useQuotaAndFallback > Fallback Handler Logic > should still prompt for terminal quota in low verbosity mode 1291ms
✓ useQuotaAndFallback > Fallback Handler Logic > Interactive Fallback > should set an interactive request for a terminal quota error 1189ms
✓ useQuotaAndFallback > Fallback Handler Logic > Interactive Fallback > should show the model name for a terminal quota error on a non-pro model 1323ms
✓ useQuotaAndFallback > Fallback Handler Logic > Interactive Fallback > should handle terminal quota error without retry delay 1174ms
✓ useQuotaAndFallback > Fallback Handler Logic > Interactive Fallback > should handle race conditions by stopping subsequent requests 1198ms
✓ useQuotaAndFallback > Fallback Handler Logic > Interactive Fallback > should handle generic error correctly 1229ms
✓ useQuotaAndFallback > Fallback Handler Logic > Interactive Fallback > should handle retryable quota error correctly 1155ms
✓ useQuotaAndFallback > Fallback Handler Logic > Interactive Fallback > should handle ModelNotFoundError correctly 1220ms
✓ useQuotaAndFallback > Fallback Handler Logic > Interactive Fallback > should handle ModelNotFoundError with invalid model correctly 1343ms
✓ useQuotaAndFallback > G1 AI Credits Flow > should fall through to ProQuotaDialog if credits are already active (strategy=always) 1286ms
✓ useQuotaAndFallback > G1 AI Credits Flow > should show overage menu if balance > 0 and not auto-using 1249ms
✓ useQuotaAndFallback > G1 AI Credits Flow > should handle use_fallback from overage menu 1191ms
✓ useQuotaAndFallback > G1 AI Credits Flow > should show empty wallet menu if balance is 0 1232ms
✓ useQuotaAndFallback > G1 AI Credits Flow > should add info message to history when get_credits is selected 1251ms
✓ useQuotaAndFallback > handleProQuotaChoice > should do nothing if there is no pending pro quota request 1162ms
✓ useQuotaAndFallback > handleProQuotaChoice > should resolve intent to "retry_later" 1256ms
✓ useQuotaAndFallback > handleProQuotaChoice > should resolve intent to "retry_always" and add info message on continue 1221ms
✓ useQuotaAndFallback > handleProQuotaChoice > should show a special message when falling back from the preview model 1227ms
✓ useQuotaAndFallback > handleProQuotaChoice > should show a special message when falling back from the preview model, but do not show periodical check message for flash model fallback 1172ms
✓ useQuotaAndFallback > Validation Handler > should register a validation handler on initialization 1162ms
✓ useQuotaAndFallback > Validation Handler > should set a validation request when handler is called 1146ms
✓ useQuotaAndFallback > Validation Handler > should handle race conditions by returning cancel for subsequent requests 1203ms
✓ useQuotaAndFallback > Validation Handler > should call onShowAuthSelection when change_auth is chosen 1206ms
✓ useQuotaAndFallback > Validation Handler > should call onShowAuthSelection when cancel is chosen 1242ms
✓ useQuotaAndFallback > Validation Handler > should do nothing if handleValidationChoice is called without pending request 1312ms
[?2004h ❯ src/ui/components/messages/ToolMessage.test.tsx (25 tests | 1 failed) 19401ms
✓ > renders basic tool information 4028ms
✓ > JSON rendering > pretty prints valid JSON 621ms
✓ > JSON rendering > renders pretty JSON in ink frame 440ms
✓ > JSON rendering > uses JSON renderer even when renderOutputAsMarkdown=true is true 459ms
✓ > JSON rendering > falls back to plain text for malformed JSON 348ms
✓ > JSON rendering > rejects mixed text + JSON renders as plain text 444ms
✓ > JSON rendering > rejects ANSI-tained JSON renders as plain text 384ms
✓ > JSON rendering > pretty printing 10kb JSON completes in <50ms 3427ms
✓ > ToolStatusIndicator rendering > shows ✓ for Success status 387ms
✓ > ToolStatusIndicator rendering > shows o for Pending status 303ms
✓ > ToolStatusIndicator rendering > shows ? for Confirming status 408ms
✓ > ToolStatusIndicator rendering > shows - for Canceled status 265ms
✓ > ToolStatusIndicator rendering > shows x for Error status 429ms
✓ > ToolStatusIndicator rendering > shows paused spinner for Executing status when streamingState is Idle 582ms
✓ > ToolStatusIndicator rendering > shows paused spinner for Executing status when streamingState is WaitingForConfirmation 313ms
✓ > ToolStatusIndicator rendering > shows MockRespondingSpinner for Executing status when streamingState is Responding 272ms
✓ > renders DiffRenderer for diff results 570ms
× > renders emphasis correctly 581ms
→ Snapshot ` > renders emphasis correctly 1` mismatched
✓ > renders AnsiOutputText for AnsiOutput results 320ms
✓ > renders McpProgressIndicator with percentage and message for executing tools 415ms
✓ > renders only percentage when progressMessage is missing 319ms
✓ > renders indeterminate progress when total is missing 512ms
✓ > Truncation > applies truncation for Kind.Agent when availableTerminalHeight is provided 2050ms
✓ > Truncation > does NOT apply truncation for Kind.Agent when availableTerminalHeight is undefined 919ms
✓ > Truncation > does NOT apply truncation for Kind.Read 536ms
✓ src/ui/components/SessionBrowser.test.tsx (6 tests) 6978ms
✓ SessionBrowser component > shows empty state when no sessions exist 2030ms
✓ SessionBrowser component > renders a list of sessions and marks current session as disabled 1332ms
✓ SessionBrowser component > enters search mode, filters sessions, and renders match snippets 2091ms
✓ SessionBrowser component > handles keyboard navigation and resumes the selected session 788ms
✓ SessionBrowser component > does not allow resuming or deleting the current session 437ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/messages/ShellToolMessage.test.tsx (16 tests | 2 failed) 20620ms
✓ > interactive shell focus > clicks inside the shell area sets focus for SHELL_COMMAND_NAME 4198ms
✓ > interactive shell focus > clicks inside the shell area sets focus for SHELL_TOOL_NAME 520ms
✓ > interactive shell focus > resets focus when shell finishes 1086ms
✓ > Snapshots > renders in Executing state 420ms
✓ > Snapshots > renders in Success state (history mode) 426ms
✓ > Snapshots > renders in Error state 311ms
✓ > Snapshots > renders in Cancelled state with partial output 566ms
× > Snapshots > renders in Alternate Buffer mode while focused 1419ms
→ Snapshot ` > Snapshots > renders in Alternate Buffer mode while focused 1` mismatched
✓ > Snapshots > renders in Alternate Buffer mode while unfocused 612ms
✓ > Height Constraints > respects availableTerminalHeight when it is smaller than ACTIVE_SHELL_MAX_LINES 1366ms
✓ > Height Constraints > uses ACTIVE_SHELL_MAX_LINES when availableTerminalHeight is large 1176ms
× > Height Constraints > uses full availableTerminalHeight when focused in alternate buffer mode 2099ms
→ Snapshot ` > Height Constraints > uses full availableTerminalHeight when focused in alternate buffer mode 1` mismatched
✓ > Height Constraints > defaults to ACTIVE_SHELL_MAX_LINES in alternate buffer when availableTerminalHeight is undefined 929ms
✓ > Height Constraints > fully expands in standard mode when availableTerminalHeight is undefined 1911ms
✓ > Height Constraints > fully expands in alternate buffer mode when constrainHeight is false and isExpandable is true 2809ms
✓ > Height Constraints > stays constrained in alternate buffer mode when isExpandable is false even if constrainHeight is false 716ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?25h[?25h[?2004h[?2004h ✓ src/ui/auth/AuthDialog.test.tsx (24 tests) 38147ms
✓ AuthDialog > Environment Variable Effects on Auth Options > correctly shows/hides COMPUTE_ADC options 'in Cloud Shell' 4342ms
✓ AuthDialog > Environment Variable Effects on Auth Options > correctly shows/hides COMPUTE_ADC options 'with GEMINI_CLI_USE_COMPUTE_ADC' 1602ms
✓ AuthDialog > Environment Variable Effects on Auth Options > correctly shows/hides COMPUTE_ADC options 'by default' 1630ms
✓ AuthDialog > filters auth types when enforcedType is set 1580ms
✓ AuthDialog > sets initial index to 0 when enforcedType is set 1516ms
✓ AuthDialog > Initial Auth Type Selection > selects initial auth type 'from settings' 1514ms
✓ AuthDialog > Initial Auth Type Selection > selects initial auth type 'from GEMINI_DEFAULT_AUTH_TYPE env var' 1383ms
✓ AuthDialog > Initial Auth Type Selection > selects initial auth type 'from GEMINI_API_KEY env var' 1536ms
✓ AuthDialog > Initial Auth Type Selection > selects initial auth type 'defaults to Sign in with Google' 1607ms
✓ AuthDialog > handleAuthSelect > calls onAuthError if validation fails 1601ms
✓ AuthDialog > handleAuthSelect > sets auth context with requiresRestart: true for LOGIN_WITH_GOOGLE 1572ms
✓ AuthDialog > handleAuthSelect > sets auth context with empty object for other auth types 1319ms
✓ AuthDialog > handleAuthSelect > always shows API key dialog even when env var is present 1447ms
✓ AuthDialog > handleAuthSelect > always shows API key dialog even when env var is empty string 1483ms
✓ AuthDialog > handleAuthSelect > shows API key dialog on initial setup if no env var is present 1499ms
✓ AuthDialog > handleAuthSelect > always shows API key dialog on re-auth even if env var is present 1488ms
✓ AuthDialog > handleAuthSelect > exits process for Sign in with Google when browser is suppressed 535ms
✓ AuthDialog > displays authError when provided 1474ms
✓ AuthDialog > useKeypress > 'does nothing on escape if authError i…' 1518ms
✓ AuthDialog > useKeypress > 'calls onAuthError on escape if no aut…' 1447ms
✓ AuthDialog > useKeypress > 'calls setAuthState(Unauthenticated) o…' 1427ms
✓ AuthDialog > Snapshots > renders correctly with default props 1526ms
✓ AuthDialog > Snapshots > renders correctly with auth error 1474ms
✓ AuthDialog > Snapshots > renders correctly with enforced auth type 1571ms
[?2004h[?2004h ✓ src/ui/hooks/useExecutionLifecycle.test.tsx (35 tests) 42806ms
✓ useExecutionLifecycle > should initiate command execution and set pending state 2468ms
✓ useExecutionLifecycle > should handle successful execution and update history correctly 1259ms
✓ useExecutionLifecycle > should handle command failure and display error status 1202ms
✓ useExecutionLifecycle > should not wrap the command on Windows 1172ms
✓ useExecutionLifecycle > should handle command abort and display cancelled status 1160ms
✓ useExecutionLifecycle > should handle binary output result correctly 1235ms
✓ useExecutionLifecycle > should prepend warnings to AnsiOutput array 1218ms
✓ useExecutionLifecycle > should handle promise rejection and show an error 1174ms
✓ useExecutionLifecycle > should handle synchronous errors during execution and clean up resources 1145ms
✓ useExecutionLifecycle > Directory Change Warning > should show a warning if the working directory changes 1174ms
✓ useExecutionLifecycle > Directory Change Warning > should NOT show a warning if the directory does not change 1383ms
✓ useExecutionLifecycle > ActiveShellPtyId management > should have activeShellPtyId as null initially 1165ms
✓ useExecutionLifecycle > ActiveShellPtyId management > should set activeShellPtyId when a command with a PID starts 1210ms
✓ useExecutionLifecycle > ActiveShellPtyId management > should update the pending history item with the ptyId 1250ms
✓ useExecutionLifecycle > ActiveShellPtyId management > should reset activeShellPtyId to null after successful execution 1311ms
✓ useExecutionLifecycle > ActiveShellPtyId management > should reset activeShellPtyId to null after failed execution 1221ms
✓ useExecutionLifecycle > ActiveShellPtyId management > should reset activeShellPtyId to null if execution promise rejects 1214ms
✓ useExecutionLifecycle > ActiveShellPtyId management > should not set activeShellPtyId on synchronous execution error and should remain null 1192ms
✓ useExecutionLifecycle > ActiveShellPtyId management > should not set activeShellPtyId if service does not return a PID 1169ms
✓ useExecutionLifecycle > Background Shell Management > should register a background shell and update count 1143ms
✓ useExecutionLifecycle > Background Shell Management > should toggle background shell visibility 1136ms
✓ useExecutionLifecycle > Background Shell Management > should show info message when toggling background shells if none are active 1165ms
✓ useExecutionLifecycle > Background Shell Management > should dismiss a background shell and remove it from state 1232ms
✓ useExecutionLifecycle > Background Shell Management > should handle backgrounding the current shell 1220ms
✓ useExecutionLifecycle > Background Shell Management > should auto-dismiss background task on successful exit 1179ms
✓ useExecutionLifecycle > Background Shell Management > should auto-dismiss background task on failed exit 1269ms
✓ useExecutionLifecycle > Background Shell Management > should NOT trigger re-render on background shell output when visible 1289ms
✓ useExecutionLifecycle > Background Shell Management > should NOT trigger re-render on background shell output when hidden 1208ms
✓ useExecutionLifecycle > Background Shell Management > should trigger re-render on binary progress when visible 1162ms
✓ useExecutionLifecycle > Background Shell Management > should NOT hide background shell when model is responding without confirmation 1224ms
✓ useExecutionLifecycle > Background Shell Management > should hide background shell when waiting for confirmation and restore after delay 1630ms
✓ useExecutionLifecycle > Background Shell Management > should auto-hide background shell when foreground shell starts and restore when it ends 1756ms
✓ useExecutionLifecycle > Background Shell Management > should NOT restore background shell if it was manually hidden during foreground execution 1338ms
stderr | src/ui/hooks/useExecutionLifecycle.test.tsx
An update to TestComponent inside a test was not wrapped in act(...).
When testing, code that causes React state updates should be wrapped into act(...):
act(() => {
/* fire events that update state */
});
/* assert on the output */
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:6595) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:6595) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?2004h ❯ src/ui/components/messages/ToolResultDisplay.test.tsx (14 tests | 1 failed) 31106ms
✓ ToolResultDisplay > uses ScrollableList for ANSI output in alternate buffer mode 3853ms
✓ ToolResultDisplay > uses Scrollable for non-ANSI output in alternate buffer mode 1604ms
✓ ToolResultDisplay > passes hasFocus prop to scrollable components 1407ms
✓ ToolResultDisplay > renders string result as markdown by default 2365ms
✓ ToolResultDisplay > renders string result as plain text when renderOutputAsMarkdown is false 1441ms
✓ ToolResultDisplay > truncates very long string results 3178ms
✓ ToolResultDisplay > renders file diff result 1333ms
✓ ToolResultDisplay > renders ANSI output result 2305ms
✓ ToolResultDisplay > renders nothing for todos result 2288ms
✓ ToolResultDisplay > does not fall back to plain text if availableHeight is set and not in alternate buffer 1351ms
✓ ToolResultDisplay > keeps markdown if in alternate buffer even with availableHeight 2002ms
✓ ToolResultDisplay > truncates ANSI output when maxLines is provided 1482ms
× ToolResultDisplay > truncates ANSI output when maxLines is provided, even if availableTerminalHeight is undefined 2244ms
→ 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 4206ms
[?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 ✓ src/ui/components/StatsDisplay.test.tsx (15 tests) 30537ms
✓ > renders only the Performance section in its zero state 4968ms
✓ > renders a table with two models correctly 2886ms
✓ > renders role breakdown correctly under models 1812ms
✓ > renders all sections when all data is present 2031ms
✓ > Conditional Rendering Tests > hides User Agreement when no decisions are made 1642ms
✓ > Conditional Rendering Tests > hides Efficiency section when cache is not used 1743ms
✓ > Conditional Color Tests > renders success rate in green for high values 1659ms
✓ > Conditional Color Tests > renders success rate in yellow for medium values 1746ms
✓ > Conditional Color Tests > renders success rate in red for low values 1667ms
✓ > Code Changes Display > displays Code Changes when line counts are present 1574ms
✓ > Code Changes Display > hides Code Changes when no lines are added or removed 1602ms
✓ > Title Rendering > renders the default title when no title prop is provided 1915ms
✓ > Title Rendering > renders the custom title when a title prop is provided 1919ms
✓ > User Identity Display > renders User row with Auth Method and Tier 1720ms
✓ > User Identity Display > renders User row with API Key and no Tier 1587ms
[?2004h[?2004h ❯ src/ui/components/messages/ToolConfirmationMessage.test.tsx (27 tests | 17 failed) 27924ms
✓ ToolConfirmationMessage > should not display urls if prompt and url are the same 4024ms
× ToolConfirmationMessage > should display urls if prompt and url are different 947ms
→ Snapshot `ToolConfirmationMessage > should display urls if prompt and url are different 1` mismatched
✓ ToolConfirmationMessage > should display WarningMessage for deceptive URLs in info type 880ms
✓ ToolConfirmationMessage > should display WarningMessage for deceptive URLs in exec type commands 922ms
✓ ToolConfirmationMessage > should exclude shell delimiters from extracted URLs in exec type commands 798ms
✓ ToolConfirmationMessage > should aggregate multiple deceptive URLs into a single WarningMessage 761ms
× ToolConfirmationMessage > should display multiple commands for exec type when provided 717ms
→ 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 1877ms
→ 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 532ms
→ 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 551ms
→ 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 617ms
→ 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 522ms
→ 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 480ms
→ 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 566ms
→ 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 490ms
→ 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 376ms
→ 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) 512ms
× ToolConfirmationMessage > enablePermanentToolApproval setting > should show "Allow for all future sessions" when trusted 454ms
→ expected '╭────────────────────────────────────…' to contain 'future sessions'
× ToolConfirmationMessage > Modify with external editor option > should show "Modify with external editor" when NOT in IDE mode 581ms
→ expected '╭────────────────────────────────────…' to contain 'Modify with external editor'
× ToolConfirmationMessage > Modify with external editor option > should show "Modify with external editor" when in IDE mode but diffing is NOT enabled 549ms
→ expected '╭────────────────────────────────────…' to contain 'Modify with external editor'
✓ ToolConfirmationMessage > Modify with external editor option > should NOT show "Modify with external editor" when in IDE mode AND diffing is enabled 625ms
× ToolConfirmationMessage > should strip BiDi characters from MCP tool and server names 616ms
→ 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 760ms
✓ ToolConfirmationMessage > should omit empty MCP invocation arguments from details 718ms
× ToolConfirmationMessage > height allocation and layout > should expand to available height for large exec commands 3119ms
→ 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 4362ms
→ 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 520ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/contexts/KeypressContext.test.tsx (142 tests) 51064ms
✓ KeypressContext > Enter key handling > should recognize 'regular enter key (keycode 13)' in kitty protocol 1506ms
✓ KeypressContext > Escape key handling > should handle lone Escape key (keycode 27) with timeout when kitty protocol is enabled 320ms
✓ KeypressContext > paste mode > should 'handle multiline paste as a single ev…' 302ms
✓ KeypressContext > paste mode > should 'handle paste start code split over mu…' 374ms
✓ KeypressContext > debug keystroke logging > should not log keystrokes when debugKeystrokeLogging is false 345ms
✓ KeypressContext > debug keystroke logging > should log kitty buffer accumulation when debugKeystrokeLogging is true 365ms
✓ KeypressContext > debug keystroke logging > should show char codes when debugKeystrokeLogging is true even without debug mode 793ms
✓ KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[53;5u'" as '5' 573ms
✓ KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[1;129A'" as 'up' 301ms
✓ KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[6~'" as 'pagedown' 2960ms
✓ KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[1~'" as 'home' 350ms
✓ KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[2~'" as 'insert' 446ms
✓ KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[D'" as 'left' 368ms
✓ KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOk'" as '+' 330ms
✓ KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOm'" as '-' 342ms
✓ KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOo'" as '/' 416ms
✓ KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOp'" as '0' 2522ms
✓ KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOq'" as '1' 746ms
✓ KeypressContext > Numpad support > should recognize numpad sequence "'\u001b[57404;5u'" as 'numpad5' 303ms
✓ KeypressContext > Numpad support > should recognize numpad sequence "'\u001b[57411u'" as 'numpad_multiply' 325ms
✓ KeypressContext > Double-tap and batching > should parse two concatenated tilde-coded sequences in one chunk 870ms
✓ KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'b' in 'iTerm2' 525ms
✓ KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'f' in 'iTerm2' 750ms
✓ KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'m' in 'iTerm2' 932ms
✓ KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'z' in 'iTerm2' 383ms
✓ KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'Z' in 'iTerm2' 304ms
✓ KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'m' in 'Ghostty' 302ms
✓ KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'b' in 'MacTerminal' 321ms
✓ KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'m' in 'MacTerminal' 577ms
✓ KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'z' in 'MacTerminal' 418ms
✓ KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'Z' in 'VSCodeTerminal' 572ms
✓ KeypressContext > Backslash key handling > should treat backslash as a regular keystroke 494ms
✓ KeypressContext > should timeout and flush incomplete kitty sequences after 50ms 584ms
✓ KeypressContext > should immediately flush non-kitty CSI sequences 439ms
✓ KeypressContext > should parse valid kitty sequences immediately when complete 1176ms
✓ KeypressContext > should handle batched kitty sequences correctly 763ms
✓ KeypressContext > Ignored Sequences > should ignore 'Focus In' sequence 1805ms
✓ KeypressContext > Ignored Sequences > should ignore 'Focus Out' sequence 771ms
✓ KeypressContext > Ignored Sequences > should ignore 'SGR Mouse Release' sequence 796ms
✓ KeypressContext > Ignored Sequences > should ignore 'something mouse' sequence 698ms
✓ KeypressContext > Ignored Sequences > should ignore 'another mouse' sequence 1030ms
✓ KeypressContext > Ignored Sequences > should handle F12 456ms
✓ KeypressContext > Individual Character Input > should correctly handle string "abc" 392ms
✓ KeypressContext > Individual Character Input > should correctly handle string "你好" 702ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/ModelStatsDisplay.test.tsx (11 tests | 8 failed) 34205ms
✓ > should render "no API calls" message when there are no active models 3388ms
✓ > should not display conditional rows if no model has data for them 2088ms
× > should display conditional rows if at least one model has data 3700ms
→ Snapshot ` > should display conditional rows if at least one model has data 1` mismatched
× > should display stats for multiple models correctly 2980ms
→ expected '╭────────────────────────────────────…' to contain 'gemini-2.5-pro'
× > should handle large values without wrapping or overlapping 7850ms
→ Snapshot ` > should handle large values without wrapping or overlapping 1` mismatched
× > should display a single model correctly 2123ms
→ expected '╭────────────────────────────────────…' to contain 'gemini-2.5-pro'
× > should handle models with long names (gemini-3-*-preview) without layout breaking 1909ms
→ expected '╭────────────────────────────────────…' to contain 'gemini-3-pro-'
× > should display role breakdown correctly 3297ms
→ Snapshot ` > should display role breakdown correctly 1` mismatched
✓ > should render user identity information when provided 1927ms
× > should handle long role name layout 2729ms
→ Snapshot ` > should handle long role name layout 1` mismatched
× > should filter out invalid role names 2148ms
→ Snapshot ` > should filter out invalid role names 1` mismatched
[?2004h[?25h[?2004h[?25h[?25h[?2004h ❯ src/ui/components/ToolConfirmationQueue.test.tsx (11 tests | 8 failed) 31023ms
✓ ToolConfirmationQueue > explicitly renders the tool description (containing filename) for edit confirmations 4454ms
× ToolConfirmationQueue > renders the confirming tool with progress indicator 1872ms
→ Snapshot `ToolConfirmationQueue > renders the confirming tool with progress indicator 1` mismatched
✓ ToolConfirmationQueue > returns null if tool has no confirmation details 1193ms
× ToolConfirmationQueue > calculates availableContentHeight based on availableTerminalHeight from UI state 1015ms
→ Snapshot `ToolConfirmationQueue > calculates availableContentHeight based on availableTerminalHeight from UI state 1` mismatched
× ToolConfirmationQueue > provides more height for ask_user by subtracting less overhead 1595ms
→ Snapshot `ToolConfirmationQueue > provides more height for ask_user by subtracting less overhead 1` mismatched
× ToolConfirmationQueue > does not render expansion hint when constrainHeight is false 1546ms
→ Snapshot `ToolConfirmationQueue > does not render expansion hint when constrainHeight is false 1` mismatched
✓ ToolConfirmationQueue > renders AskUser tool confirmation with Success color 1347ms
× ToolConfirmationQueue > renders ExitPlanMode tool confirmation with Success color 7667ms
→ Snapshot `ToolConfirmationQueue > renders ExitPlanMode tool confirmation with Success color 1` mismatched
× ToolConfirmationQueue > height allocation and layout > should render the full queue wrapper with borders and content for large edit diffs 4467ms
→ Snapshot `ToolConfirmationQueue > height allocation and layout > should render the full queue wrapper with borders and content for large edit diffs 1` mismatched
× ToolConfirmationQueue > height allocation and layout > should render the full queue wrapper with borders and content for large exec commands 2904ms
→ Snapshot `ToolConfirmationQueue > height allocation and layout > should render the full queue wrapper with borders and content for large exec commands 1` mismatched
× ToolConfirmationQueue > height allocation and layout > should handle security warning height correctly 2908ms
→ Snapshot `ToolConfirmationQueue > height allocation and layout > should handle security warning height correctly 1` mismatched
[?2004h ✓ src/ui/components/messages/DiffRenderer.test.tsx (26 tests) 45868ms
✓ > with useAlternateBuffer = true > should call colorizeCode with correct language for new file with known extension 4546ms
✓ > with useAlternateBuffer = true > should call colorizeCode with null language for new file with unknown extension 5112ms
✓ > with useAlternateBuffer = true > should call colorizeCode with null language for new file if no filename is provided 1968ms
✓ > with useAlternateBuffer = true > should render diff content for existing file (not calling colorizeCode directly for the whole block) 2035ms
✓ > with useAlternateBuffer = true > should handle diff with only header and no changes 1399ms
✓ > with useAlternateBuffer = true > should handle empty diff content 1349ms
✓ > with useAlternateBuffer = true > should render a gap indicator for skipped lines 2244ms
✓ > with useAlternateBuffer = true > should not render a gap indicator for small gaps (<= MAX_CONTEXT_LINES_WITHOUT_GAP) 1846ms
✓ > with useAlternateBuffer = true > should correctly render a diff with multiple hunks and a gap indicator > with terminalWidth 80 and height undefined 2203ms
✓ > with useAlternateBuffer = true > should correctly render a diff with multiple hunks and a gap indicator > with terminalWidth 80 and height 6 953ms
✓ > with useAlternateBuffer = true > should correctly render a diff with multiple hunks and a gap indicator > with terminalWidth 30 and height 6 751ms
✓ > with useAlternateBuffer = true > should correctly render a diff with a SVN diff format 2052ms
✓ > with useAlternateBuffer = true > should correctly render a new file with no file extension correctly 1581ms
✓ > with useAlternateBuffer = false > should call colorizeCode with correct language for new file with known extension 1332ms
✓ > with useAlternateBuffer = false > should call colorizeCode with null language for new file with unknown extension 1270ms
✓ > with useAlternateBuffer = false > should call colorizeCode with null language for new file if no filename is provided 1239ms
✓ > with useAlternateBuffer = false > should render diff content for existing file (not calling colorizeCode directly for the whole block) 1238ms
✓ > with useAlternateBuffer = false > should handle diff with only header and no changes 1387ms
✓ > with useAlternateBuffer = false > should handle empty diff content 1233ms
✓ > with useAlternateBuffer = false > should render a gap indicator for skipped lines 1547ms
✓ > with useAlternateBuffer = false > should not render a gap indicator for small gaps (<= MAX_CONTEXT_LINES_WITHOUT_GAP) 1731ms
✓ > with useAlternateBuffer = false > should correctly render a diff with multiple hunks and a gap indicator > with terminalWidth 80 and height undefined 1609ms
✓ > with useAlternateBuffer = false > should correctly render a diff with multiple hunks and a gap indicator > with terminalWidth 80 and height 6 1053ms
✓ > with useAlternateBuffer = false > should correctly render a diff with multiple hunks and a gap indicator > with terminalWidth 30 and height 6 1019ms
✓ > with useAlternateBuffer = false > should correctly render a diff with a SVN diff format 1651ms
✓ > with useAlternateBuffer = false > should correctly render a new file with no file extension correctly 1429ms
[?2004h ✓ src/ui/hooks/useSlashCompletion.test.ts (28 tests) 47995ms
✓ useSlashCompletion > Top-Level Commands > should suggest all top-level commands for the root slash 3505ms
✓ useSlashCompletion > Top-Level Commands > should filter commands based on partial input 1295ms
✓ useSlashCompletion > Top-Level Commands > should suggest commands based on partial altNames 1198ms
✓ useSlashCompletion > Top-Level Commands > should provide suggestions even for a perfectly typed command that is a leaf node 1182ms
✓ useSlashCompletion > Top-Level Commands > should suggest commands even when altNames is fully typed 1268ms
✓ useSlashCompletion > Top-Level Commands > should suggest commands even when altNames is fully typed 1482ms
✓ useSlashCompletion > Top-Level Commands > should show all matching suggestions even when one is a perfect match 1285ms
✓ useSlashCompletion > Top-Level Commands > should show the same selectable auto/checkpoint menu for /chat and /resume 4476ms
✓ useSlashCompletion > Top-Level Commands > should sort exact altName matches to the top 2079ms
✓ useSlashCompletion > Top-Level Commands > should suggest the command itself instead of subcommands when a parent command is fully typed without a trailing space 1556ms
✓ useSlashCompletion > Top-Level Commands > should NOT suggest subcommands when a parent command is fully typed without a trailing space (fix for over-eager completion) 1204ms
✓ useSlashCompletion > Top-Level Commands > should not provide suggestions for a fully typed command that has no sub-commands or argument completion 2180ms
✓ useSlashCompletion > Top-Level Commands > should not provide suggestions for an unknown command 1170ms
✓ useSlashCompletion > Top-Level Commands > should not suggest hidden commands 2142ms
✓ useSlashCompletion > Top-Level Commands > should rank primary name prefix matches higher than alias prefix matches 1174ms
✓ useSlashCompletion > Sub-Commands > should suggest sub-commands for a parent command 2919ms
✓ useSlashCompletion > Sub-Commands > should suggest parent command (and siblings) instead of sub-commands when no trailing space 1145ms
✓ useSlashCompletion > Sub-Commands > should suggest all sub-commands when the query ends with the parent command and a space 2166ms
✓ useSlashCompletion > Sub-Commands > should filter sub-commands by prefix 1161ms
✓ useSlashCompletion > Sub-Commands > should provide no suggestions for an invalid sub-command 1369ms
✓ useSlashCompletion > Argument Completion > should call the command.completion function for argument suggestions 1398ms
✓ useSlashCompletion > Argument Completion > should call command.completion with an empty string when args start with a space 1182ms
✓ useSlashCompletion > Argument Completion > should handle completion function that returns null 1176ms
✓ useSlashCompletion > Command Kind Information > should include commandKind for MCP commands in suggestions 2226ms
✓ useSlashCompletion > Command Kind Information > should include commandKind when filtering MCP commands by prefix 1237ms
✓ useSlashCompletion > Command Kind Information > should include commandKind for sub-commands 2216ms
✓ useSlashCompletion > Command Kind Information > should include commandKind for file commands 1155ms
✓ useSlashCompletion > should not call shared callbacks when disabled 1376ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:6149) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:6149) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/RewindViewer.test.tsx (15 tests | 10 failed) 41341ms
✓ RewindViewer > Screen Reader Accessibility > renders the rewind viewer with conversation items 4199ms
✓ RewindViewer > Rendering > renders 'nothing interesting for empty convers…' 701ms
× RewindViewer > Rendering > renders 'a single interaction' 2853ms
→ Snapshot `RewindViewer > Rendering > renders 'a single interaction' 1` mismatched
× RewindViewer > Rendering > renders 'full text for selected item' 2362ms
→ Snapshot `RewindViewer > Rendering > renders 'full text for selected item' 1` mismatched
× RewindViewer > updates selection and expansion on navigation 3962ms
→ Snapshot `RewindViewer > updates selection and expansion on navigation > initial-state 1` mismatched
✓ RewindViewer > Navigation > handles 'down' navigation 2133ms
✓ RewindViewer > Navigation > handles 'up' navigation 4128ms
✓ RewindViewer > Navigation > handles cyclic navigation 5742ms
× RewindViewer > Interaction Selection > 'confirms on Enter' 1683ms
→ Snapshot `RewindViewer > Interaction Selection > 'confirms on Enter' > confirmation-dialog 1` mismatched
× RewindViewer > Interaction Selection > 'cancels on Escape' 1975ms
→ Snapshot `RewindViewer > Interaction Selection > 'cancels on Escape' > confirmation-dialog 1` mismatched
× RewindViewer > Content Filtering > 'removes reference markers' 2433ms
→ Snapshot `RewindViewer > Content Filtering > 'removes reference markers' 1` mismatched
× RewindViewer > Content Filtering > 'strips expanded MCP resource content' 2692ms
→ Snapshot `RewindViewer > Content Filtering > 'strips expanded MCP resource content' 1` mismatched
× RewindViewer > Content Filtering > 'uses displayContent if present and do…' 2014ms
→ Snapshot `RewindViewer > Content Filtering > 'uses displayContent if present and do…' 1` mismatched
× RewindViewer > updates content when conversation changes (background update) 1594ms
→ Snapshot `RewindViewer > updates content when conversation changes (background update) > initial 1` mismatched
× renders accessible screen reader view when screen reader is enabled 2829ms
→ expected 'Rewind - Select a conversation point:…' to contain 'Stay at current position'
[?2004h[?25h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?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(node:6379) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 101 settings-changed listeners added to [CoreEventEmitter]. MaxListeners is 100. Use emitter.setMaxListeners() to increase limit
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/slashCommandProcessor.test.tsx (33 tests) 44451ms
✓ useSlashCommandProcessor > Console Clear Safety > should not call console.clear if alternate buffer is active 2648ms
✓ useSlashCommandProcessor > Console Clear Safety > should call console.clear if alternate buffer is not active 1434ms
✓ useSlashCommandProcessor > Initialization and Command Loading > should initialize CommandService with all required loaders 1267ms
✓ useSlashCommandProcessor > Initialization and Command Loading > should call loadCommands and populate state after mounting 1235ms
✓ useSlashCommandProcessor > Command Execution Logic > should treat unknown commands as regular input 1202ms
✓ useSlashCommandProcessor > Command Execution Logic > should show MCP loading warning for unknown commands when MCP is loading 1207ms
✓ useSlashCommandProcessor > Command Execution Logic > should display help for a parent command invoked without a subcommand 1283ms
✓ useSlashCommandProcessor > Command Execution Logic > should correctly find and execute a nested subcommand 1344ms
✓ useSlashCommandProcessor > Command Execution Logic > sets isProcessing to false if the the input is not a command 1371ms
✓ useSlashCommandProcessor > Command Execution Logic > sets isProcessing to false if the command has an error 1244ms
✓ useSlashCommandProcessor > Command Execution Logic > should set isProcessing to true during execution and false afterwards 1293ms
✓ useSlashCommandProcessor > Action Result Handling > Dialog actions > should handle "dialog: 'theme'" action 1282ms
✓ useSlashCommandProcessor > Action Result Handling > Dialog actions > should handle "dialog: 'model'" action 1229ms
✓ useSlashCommandProcessor > Action Result Handling > Dialog actions > should handle "dialog: agentConfig" action with props 1242ms
✓ useSlashCommandProcessor > Action Result Handling > should handle "load_history" action 1714ms
✓ useSlashCommandProcessor > Action Result Handling > should call refreshStatic exactly once when ui.loadHistory is called 1418ms
✓ useSlashCommandProcessor > Action Result Handling > should handle a "quit" action 1418ms
✓ useSlashCommandProcessor > Action Result Handling > should handle "submit_prompt" action returned from a file-based command 1291ms
✓ useSlashCommandProcessor > Action Result Handling > should handle "submit_prompt" action returned from a mcp-based command 1335ms
✓ useSlashCommandProcessor > Command Parsing and Matching > should be case-sensitive 1276ms
✓ useSlashCommandProcessor > Command Parsing and Matching > should correctly match an altName 1419ms
✓ useSlashCommandProcessor > Command Parsing and Matching > should handle extra whitespace around the command 1476ms
✓ useSlashCommandProcessor > Command Parsing and Matching > should handle `?` as a command prefix 1193ms
✓ useSlashCommandProcessor > Command Precedence > should prioritize a command with a primary name over a command with a matching alias 1242ms
✓ useSlashCommandProcessor > Command Precedence > should add an overridden command to the history 1207ms
✓ useSlashCommandProcessor > Lifecycle > should abort command loading when the hook unmounts 1202ms
✓ useSlashCommandProcessor > Slash Command Logging > should log 'simple slash command' 1218ms
✓ useSlashCommandProcessor > Slash Command Logging > should log 'failure event for failed command' 1226ms
✓ useSlashCommandProcessor > Slash Command Logging > should log 'slash command with subcommand' 1206ms
✓ useSlashCommandProcessor > Slash Command Logging > should log 'command path when alias is used' 1440ms
✓ useSlashCommandProcessor > Slash Command Logging > should not log for 'bogus command' 1210ms
✓ useSlashCommandProcessor > Slash Command Logging > should not log for 'unknown command' 1197ms
✓ useSlashCommandProcessor > should reload commands on extension events 1428ms
✓ src/ui/hooks/useCommandCompletion.test.tsx (34 tests) 45925ms
✓ useCommandCompletion > Core Hook Behavior > State Management > should initialize with default state 2761ms
✓ useCommandCompletion > Core Hook Behavior > State Management > should reset state when completion mode becomes IDLE 1373ms
✓ useCommandCompletion > Core Hook Behavior > State Management > should reset all state to default values 1802ms
✓ useCommandCompletion > Core Hook Behavior > State Management > should call useAtCompletion with the correct query for an escaped space 1376ms
✓ useCommandCompletion > Core Hook Behavior > State Management > should correctly identify the completion context with multiple @ symbols 1286ms
✓ useCommandCompletion > Core Hook Behavior > State Management > 'should show slash command suggestions…' 1191ms
✓ useCommandCompletion > Core Hook Behavior > State Management > 'should not show slash command suggest…' 1204ms
✓ useCommandCompletion > Core Hook Behavior > Navigation > should handle navigateUp with no suggestions 1179ms
✓ useCommandCompletion > Core Hook Behavior > Navigation > should handle navigateDown with no suggestions 1286ms
✓ useCommandCompletion > Core Hook Behavior > Navigation > should navigate up through suggestions with wrap-around 1313ms
✓ useCommandCompletion > Core Hook Behavior > Navigation > should navigate down through suggestions with wrap-around 1291ms
✓ useCommandCompletion > Core Hook Behavior > Navigation > should handle navigation with multiple suggestions 1437ms
✓ useCommandCompletion > Core Hook Behavior > Navigation > should automatically select the first item when suggestions are available 1248ms
✓ useCommandCompletion > handleAutocomplete > should complete a partial command and NOT add a space if it has an action 1312ms
✓ useCommandCompletion > handleAutocomplete > should complete a partial command and ADD a space if it has NO action (e.g. just a parent) 1254ms
✓ useCommandCompletion > handleAutocomplete > should complete a file path 1387ms
✓ useCommandCompletion > handleAutocomplete > should insert canonical slash command text when suggestion provides insertValue 1418ms
✓ useCommandCompletion > handleAutocomplete > should complete a file path when cursor is not at the end of the line 1654ms
✓ useCommandCompletion > handleAutocomplete > should complete a directory path ending with / without a trailing space 1299ms
✓ useCommandCompletion > handleAutocomplete > should complete a directory path ending with \ without a trailing space 1266ms
✓ useCommandCompletion > handleAutocomplete > should ADD a space for AT completion even if name matches a command with an action 1321ms
✓ useCommandCompletion > handleAutocomplete > should show ghost text for a single shell completion 1233ms
✓ useCommandCompletion > handleAutocomplete > should not show ghost text if there are multiple completions 1342ms
✓ useCommandCompletion > handleAutocomplete > should not show ghost text if the typed text extends past the completion 1239ms
✓ useCommandCompletion > handleAutocomplete > should clear ghost text after user types a space when exact match ghost text was showing 1190ms
✓ useCommandCompletion > prompt completion filtering > should not trigger prompt completion for line comments 1257ms
✓ useCommandCompletion > prompt completion filtering > should not trigger prompt completion for block comments 1273ms
✓ useCommandCompletion > prompt completion filtering > should trigger prompt completion for regular text when enabled 1295ms
✓ useCommandCompletion > @ completion after slash commands (issue #14420) > should show file suggestions when typing @path after a slash command 1239ms
✓ useCommandCompletion > @ completion after slash commands (issue #14420) > should show slash suggestions when cursor is on command part (no @) 1223ms
✓ useCommandCompletion > @ completion after slash commands (issue #14420) > should switch to @ completion when typing @ after slash command 1217ms
✓ useCommandCompletion > @ completion after slash commands (issue #14420) > should handle multiple @ references in a slash command 1332ms
✓ useCommandCompletion > @ completion after slash commands (issue #14420) > should complete file path and add trailing space 1198ms
✓ useCommandCompletion > @ completion after slash commands (issue #14420) > should stay in slash mode when slash command has trailing space but no @ 1181ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?25h ❯ src/ui/components/AgentConfigDialog.test.tsx (12 tests | 9 failed) 48865ms
✓ AgentConfigDialog > rendering > should render the dialog with title 5417ms
× AgentConfigDialog > rendering > should render all configuration fields 3504ms
→ expected '╭────────────────────────────────────…' to contain 'Enabled'
× AgentConfigDialog > rendering > should render scope selector 2756ms
→ expected '╭────────────────────────────────────…' to contain 'Apply To'
× AgentConfigDialog > rendering > should render help text 2949ms
→ expected '╭────────────────────────────────────…' to contain 'Use Enter to select'
✓ AgentConfigDialog > keyboard navigation > should close dialog on Escape 4568ms
× AgentConfigDialog > keyboard navigation > should navigate down with arrow key 7495ms
→ expected '╭────────────────────────────────────…' to contain 'Model'
× AgentConfigDialog > keyboard navigation > should switch focus with Tab 3894ms
→ expected '╭────────────────────────────────────…' to contain '> Configure: Test Agent'
✓ AgentConfigDialog > boolean toggle > should toggle enabled field on Enter 5689ms
× AgentConfigDialog > default values > should show values from agent definition as defaults 2845ms
→ expected '╭────────────────────────────────────…' to contain 'gemini-2.0-flash'
× AgentConfigDialog > default values > should show experimental agents as disabled by default 3194ms
→ expected '╭────────────────────────────────────…' to contain 'false'
× AgentConfigDialog > existing overrides > should show existing override values with * indicator 2874ms
→ expected '╭────────────────────────────────────…' to contain 'custom-model'
× AgentConfigDialog > existing overrides > should respond to availableTerminalHeight and truncate list 3603ms
→ expected '╭────────────────────────────────────…' to contain 'Configure: Test Agent'
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:6232) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 render listeners added to [XtermStdout]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/LoadingIndicator.test.tsx (22 tests) 57454ms
✓ > should render blank when streamingState is Idle and no loading phrase or thought 3608ms
✓ > should not show cancel and timer when idle even if a phrase exists 2801ms
✓ > should render spinner, phrase, and time when streamingState is Responding 2395ms
✓ > should render spinner (static), phrase but no time/cancel when streamingState is WaitingForConfirmation 2504ms
✓ > should display the currentLoadingPhrase correctly 2437ms
✓ > should display the elapsedTime correctly when Responding 2346ms
✓ > should display the elapsedTime correctly in human-readable format 2388ms
✓ > should render rightContent when provided 2693ms
✓ > should transition correctly between states 5624ms
✓ > should display fallback phrase if thought is empty 2759ms
✓ > should display the subject of a thought 2285ms
✓ > should NOT prepend "Thinking... " even if the subject does not start with "Thinking" 2307ms
✓ > should prioritize thought.subject over currentLoadingPhrase 2307ms
✓ > should not display thought indicator for non-thought loading phrases 2300ms
✓ > should truncate long primary text instead of wrapping 2342ms
✓ > responsive layout > should render on a single line on a wide terminal 2264ms
✓ > responsive layout > should render on multiple lines on a narrow terminal 2366ms
✓ > responsive layout > should use wide layout at 80 columns 2294ms
✓ > responsive layout > should use narrow layout at 79 columns 2333ms
✓ > responsive layout > should render witty phrase after cancel and timer hint in wide layout 2386ms
✓ > responsive layout > should render witty phrase after cancel and timer hint in narrow layout 2257ms
✓ > should use spinnerIcon when provided 2395ms
[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h ❯ src/ui/components/Composer.test.tsx (58 tests | 13 failed) 23106ms
✓ Composer > Footer Display Settings > renders Footer by default when hideFooter is false 2005ms
✓ Composer > Footer Display Settings > does NOT render Footer when hideFooter is true 409ms
✓ Composer > Footer Display Settings > passes correct props to Footer including vim mode when enabled 474ms
× Composer > Loading Indicator > renders LoadingIndicator with thought when streaming 854ms
→ expected '\n L\n o\n a\n d\n i\n n\n g\n I\n n\…' to contain 'LoadingIndicator: Processing'
× Composer > Loading Indicator > renders generic thinking text in loading indicator when full inline thinking is enabled 764ms
→ expected '\n L\n o\n a\n d\n i\n n\n g\n I\n n\…' to contain 'LoadingIndicator: Thinking about code'
× Composer > Loading Indicator > shows shortcuts hint while loading 432ms
→ expected 'L\no\na\nd\ni\nn\ng\nI\nn …' to contain 'LoadingIndicator'
× Composer > Loading Indicator > renders LoadingIndicator with thought when loadingPhrases is off 514ms
→ expected '\n L\n o\n a\n d\n i\n n\n g\n I\n n\…' to contain 'LoadingIndicator'
✓ Composer > Loading Indicator > does not render LoadingIndicator when waiting for confirmation 308ms
✓ Composer > Loading Indicator > does not render LoadingIndicator when a tool confirmation is pending 214ms
× Composer > Loading Indicator > renders LoadingIndicator when embedded shell is focused but background shell is visible 410ms
→ expected '\n L\n o\n a\n d\n i\n n\n g\n I\n n …' to contain 'LoadingIndicator'
× Composer > Loading Indicator > renders both LoadingIndicator and ApprovalModeIndicator when streaming in full UI mode 511ms
→ expected '\n L\n o\n a\n d\n i\n n\n g\n I\n n\…' to contain 'LoadingIndicator: Thinking'
✓ Composer > Loading Indicator > does NOT render LoadingIndicator when embedded shell is focused and background shell is NOT visible 367ms
✓ Composer > Message Queue Display > displays queued messages when present 383ms
✓ Composer > Message Queue Display > renders QueuedMessageDisplay with empty message queue 280ms
✓ Composer > Context and Status Display > shows StatusDisplay and ApprovalModeIndicator in normal state 272ms
✓ Composer > Context and Status Display > shows ToastDisplay and hides ApprovalModeIndicator when a toast is present 347ms
✓ Composer > Context and Status Display > shows ToastDisplay for other toast types 565ms
✓ Composer > Input and Indicators > hides non-essential UI details in clean mode 348ms
✓ Composer > Input and Indicators > renders InputPrompt when input is active 285ms
✓ Composer > Input and Indicators > does not render InputPrompt when input is inactive 250ms
✓ Composer > Input and Indicators > shows ApprovalModeIndicator when approval mode is default and shell mode is inactive 388ms
✓ Composer > Input and Indicators > shows ApprovalModeIndicator when approval mode is autoEdit and shell mode is inactive 308ms
✓ Composer > Input and Indicators > shows ApprovalModeIndicator when approval mode is plan and shell mode is inactive 400ms
✓ Composer > Input and Indicators > shows ApprovalModeIndicator when approval mode is yolo and shell mode is inactive 349ms
✓ Composer > Input and Indicators > shows ShellModeIndicator when shell mode is active 371ms
✓ Composer > Input and Indicators > shows RawMarkdownIndicator when renderMarkdown is false 361ms
✓ Composer > Input and Indicators > does not show RawMarkdownIndicator when renderMarkdown is true 432ms
✓ Composer > Input and Indicators > shows minimal mode badge "'yolo'" when clean UI details are hidden 343ms
✓ Composer > Input and Indicators > shows minimal mode badge "'plan'" when clean UI details are hidden 309ms
✓ Composer > Input and Indicators > shows minimal mode badge "'autoEdit'" when clean UI details are hidden 408ms
× Composer > Input and Indicators > hides minimal mode badge while loading in clean mode 372ms
→ expected 'L\no\na\nd\ni\nn\ng\nI\nn …' to contain 'LoadingIndicator'
✓ Composer > Input and Indicators > hides minimal mode badge while action-required state is active 239ms
✓ Composer > Input and Indicators > shows Esc rewind prompt in minimal mode without showing full UI 285ms
✓ Composer > Input and Indicators > shows context usage bleed-through when over 60% 364ms
✓ Composer > Error Details Display > shows DetailedMessagesDisplay when showErrorDetails is true 342ms
✓ Composer > Error Details Display > does not show error details when showErrorDetails is false 343ms
✓ Composer > Vim Mode Placeholders > shows correct placeholder in INSERT mode 360ms
✓ Composer > Vim Mode Placeholders > shows correct placeholder in NORMAL mode 495ms
✓ Composer > Shortcuts Hint > restores shortcuts hint after 200ms debounce when buffer is empty 274ms
✓ Composer > Shortcuts Hint > hides shortcuts hint when text is typed in buffer 217ms
✓ Composer > Shortcuts Hint > hides shortcuts hint when showShortcutsHint setting is false 256ms
✓ Composer > Shortcuts Hint > hides shortcuts hint when a action is required (e.g. dialog is open) 231ms
✓ Composer > Shortcuts Hint > keeps shortcuts hint visible when no action is required 282ms
✓ Composer > Shortcuts Hint > shows shortcuts hint when full UI details are visible 405ms
× Composer > Shortcuts Hint > shows shortcuts hint while loading when full UI details are visible 585ms
→ expected '\n L\n o\n a\n d\n i\n n\n g\n I\n n …' to contain 'LoadingIndicator'
× Composer > Shortcuts Hint > shows shortcuts hint while loading in minimal mode 330ms
→ expected 'L\no\na\nd\ni\nn\ng\nI\nn …' to contain 'LoadingIndicator'
✓ Composer > Shortcuts Hint > shows shortcuts help in minimal mode when toggled on 236ms
✓ Composer > Shortcuts Hint > hides shortcuts hint when suggestions are visible above input in alternate buffer 365ms
✓ Composer > Shortcuts Hint > hides approval mode indicator when suggestions are visible above input in alternate buffer 399ms
✓ Composer > Shortcuts Hint > keeps shortcuts hint when suggestions are visible below input in regular buffer 207ms
✓ Composer > Shortcuts Help > shows shortcuts help in passive state 360ms
✓ Composer > Shortcuts Help > hides shortcuts help while streaming 490ms
✓ Composer > Shortcuts Help > hides shortcuts help when action is required 224ms
× Composer > Snapshots > matches snapshot in idle state 343ms
→ Snapshot `Composer > Snapshots > matches snapshot in idle state 1` mismatched
× Composer > Snapshots > matches snapshot while streaming 491ms
→ Snapshot `Composer > Snapshots > matches snapshot while streaming 1` mismatched
× Composer > Snapshots > matches snapshot in narrow view 360ms
→ Snapshot `Composer > Snapshots > matches snapshot in narrow view 1` mismatched
✓ Composer > Snapshots > matches snapshot in minimal UI mode 219ms
× Composer > Snapshots > matches snapshot in minimal UI mode while loading 308ms
→ Snapshot `Composer > Snapshots > matches snapshot in minimal UI mode while loading 1` mismatched
[?2004h ❯ src/ui/components/messages/DenseToolMessage.test.tsx (24 tests | 3 failed) 63019ms
✓ DenseToolMessage > explicitly renders the filename in the header for FileDiff results 5962ms
✓ DenseToolMessage > renders correctly for a successful string result 2493ms
✓ DenseToolMessage > truncates long string results 2677ms
✓ DenseToolMessage > flattens newlines in string results 2266ms
✓ DenseToolMessage > renders correctly for file diff results with stats 1495ms
✓ DenseToolMessage > renders correctly for Edit tool using confirmationDetails 5514ms
✓ DenseToolMessage > renders correctly for Rejected Edit tool 2435ms
✓ DenseToolMessage > renders correctly for Rejected Edit tool with confirmationDetails and diffStat 2413ms
✓ DenseToolMessage > renders correctly for WriteFile tool 2406ms
✓ DenseToolMessage > renders correctly for Rejected WriteFile tool 2317ms
✓ DenseToolMessage > renders correctly for Errored Edit tool 2570ms
✓ DenseToolMessage > renders correctly for grep results 2412ms
✓ DenseToolMessage > renders correctly for ls results 2342ms
✓ DenseToolMessage > renders correctly for ReadManyFiles results 2265ms
✓ DenseToolMessage > renders correctly for todo updates 2253ms
✓ DenseToolMessage > renders generic output message for unknown object results 2226ms
✓ DenseToolMessage > renders correctly for error status with string message 2218ms
✓ DenseToolMessage > renders generic failure message for error status without string message 2209ms
✓ DenseToolMessage > does not render result arrow if resultDisplay is missing 2276ms
✓ DenseToolMessage > Toggleable Diff View (Alternate Buffer) > hides diff content by default when in alternate buffer mode 2282ms
✓ DenseToolMessage > Toggleable Diff View (Alternate Buffer) > shows diff content by default when NOT in alternate buffer mode 2320ms
× DenseToolMessage > Toggleable Diff View (Alternate Buffer) > shows diff content when expanded via ToolActionsContext 2511ms
→ expected ' ✓ test-tool test.ts → Accepted\n\…' to contain 'new line'
× DenseToolMessage > Visual Regression > matches SVG snapshot for an Accepted file edit with diff stats 2672ms
→ 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 2425ms
→ Snapshot `DenseToolMessage > Visual Regression > matches SVG snapshot for a Rejected tool call 2` mismatched
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:6149) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 101 settings-changed listeners added to [CoreEventEmitter]. MaxListeners is 100. Use emitter.setMaxListeners() to increase limit
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/ModelDialog.test.tsx (15 tests | 8 failed) 91303ms
✓ > renders the initial "main" view correctly 3214ms
× > renders the "manual" view initially for users with no pro access and filters Pro models with correct order 1989ms
→ expected -1 to be less than -1
✓ > closes dialog on escape in "manual" view for users with no pro access 2880ms
× > switches to "manual" view when "Manual" is selected and uses getDisplayString for models 8789ms
→ expected '╭────────────────────────────────────…' to contain 'Formatted Pro Model'
✓ > sets model and closes when a model is selected in "main" view 4400ms
✓ > sets model and closes when a model is selected in "manual" view 9245ms
✓ > toggles persist mode with Tab key 6509ms
✓ > closes dialog on escape in "main" view 4056ms
× > goes back to "main" view on escape in "manual" view 8534ms
→ expected '╭────────────────────────────────────…' to contain 'gemini-2.5-pro'
× > shows the preferred manual model in the main view option using getDisplayString 2888ms
→ expected '╭────────────────────────────────────…' to contain 'Manual (My Custom Model Display)'
× > Preview Models > shows Auto (Preview) in main view when access is granted 2538ms
→ expected '╭────────────────────────────────────…' to contain 'Auto (Preview)'
× > Preview Models > shows Gemini 3 models in manual view when Gemini 3.1 is NOT launched 8070ms
→ expected '╭────────────────────────────────────…' to contain 'gemini-3-pro-preview'
× > Preview Models > shows Gemini 3.1 models in manual view when Gemini 3.1 IS launched 7776ms
→ expected '╭────────────────────────────────────…' to contain 'gemini-3.1-pro-preview'
✓ > Preview Models > uses custom tools model when Gemini 3.1 IS launched and auth is Gemini API Key 12399ms
× > Preview Models > shows Flash Lite Preview model regardless of tier when flag is enabled 7961ms
→ expected '╭────────────────────────────────────…' to contain 'gemini-3.1-flash-lite-preview'
[?2004h[?2004h[?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/ToolGroupMessage.test.tsx (38 tests) 58295ms
✓ > Golden Snapshots > renders single successful tool call 4237ms
✓ > Golden Snapshots > hides confirming tools (standard behavior) 1267ms
✓ > Golden Snapshots > renders canceled tool calls 1447ms
✓ > Golden Snapshots > renders multiple tool calls with different statuses (only visible ones) 2405ms
✓ > Golden Snapshots > hides errored tool calls in low error verbosity mode 1461ms
✓ > Golden Snapshots > keeps client-initiated errored tool calls visible in low error verbosity mode 1451ms
✓ > Golden Snapshots > renders update_topic tool call using TopicMessage 1409ms
✓ > Golden Snapshots > renders update_topic tool call with summary instead of strategic_intent 1320ms
✓ > Golden Snapshots > renders mixed tool calls including update_topic 2445ms
✓ > Golden Snapshots > renders with limited terminal height 709ms
✓ > Golden Snapshots > renders with narrow terminal width 1422ms
✓ > Golden Snapshots > renders empty tool calls array 1241ms
✓ > Golden Snapshots > renders header when scrolled 1857ms
✓ > Golden Snapshots > renders tool call with outputFile 1634ms
✓ > Golden Snapshots > renders two tool groups where only the last line of the previous group is visible 629ms
✓ > Border Color Logic > uses yellow border for shell commands even when successful 1346ms
✓ > Border Color Logic > uses gray border when all tools are successful and no shell commands 1603ms
✓ > Height Calculation > calculates available height correctly with multiple tools with results 870ms
✓ > Ask User Filtering > filtering logic for status='scheduled' and hasResult='test result' 1203ms
✓ > Ask User Filtering > filtering logic for status='executing' and hasResult='test result' 1233ms
✓ > Ask User Filtering > filtering logic for status='awaiting_approval' and hasResult='test result' 1232ms
✓ > Ask User Filtering > filtering logic for status='success' and hasResult='test result' 1435ms
✓ > Ask User Filtering > filtering logic for status='error' and hasResult='' 1215ms
✓ > Ask User Filtering > filtering logic for status='error' and hasResult='error message' 1360ms
✓ > Ask User Filtering > shows other tools when ask_user is filtered out 2280ms
✓ > Ask User Filtering > renders nothing when only tool is in-progress AskUser with borderBottom=false 1184ms
✓ > Ask User Filtering > does not render a bottom-border fragment when all tools are filtered out 1151ms
✓ > Ask User Filtering > still renders explicit closing slices for split static/pending groups 1209ms
✓ > Ask User Filtering > does not render a border fragment when plan-mode tools are filtered out 1353ms
✓ > Ask User Filtering > does not render a border fragment when only confirming tools are present 1220ms
✓ > Ask User Filtering > does not leave a border stub when transitioning from visible to fully filtered tools 4645ms
✓ > Ask User Filtering > keeps visible tools rendered with many filtered tools (stress case) 1310ms
✓ > Ask User Filtering > renders explicit closing slice even at very narrow terminal width 1202ms
✓ > Plan Mode Filtering > filtering logic for 'WriteFile' in 'plan' mode 1223ms
✓ > Plan Mode Filtering > filtering logic for 'Edit' in 'plan' mode 1195ms
✓ > Plan Mode Filtering > filtering logic for 'WriteFile' in 'default' mode 1272ms
✓ > Plan Mode Filtering > filtering logic for 'ReadFile' in 'plan' mode 1296ms
✓ > Plan Mode Filtering > filtering logic for 'FindFiles' in 'plan' mode 1274ms
[?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 | 6 failed) 64901ms
✓ > renders the component 3222ms
✓ > path display > should display a shortened path on a narrow terminal 1954ms
✓ > path display > should use wide layout at 80 columns 1544ms
✓ > path display > should not truncate high-priority items on narrow terminals (regression) 1655ms
✓ > displays the branch name when provided 1616ms
✓ > does not display the branch name when not provided 1523ms
✓ > displays the model name and context percentage 1693ms
× > displays the usage indicator when usage is low 2092ms
→ Snapshot ` > displays the usage indicator when usage is low 1` mismatched
× > hides the usage indicator when usage is not near limit 1310ms
→ Snapshot ` > hides the usage indicator when usage is not near limit 1` mismatched
× > displays "Limit reached" message when remaining is 0 1622ms
→ Snapshot ` > displays "Limit reached" message when remaining is 0 1` mismatched
✓ > displays the model name and abbreviated context used label on narrow terminals 1915ms
✓ > sandbox and trust info > should display untrusted when isTrustedFolder is false 1411ms
✓ > sandbox and trust info > should display "current process" for custom sandbox when SANDBOX env is set 1235ms
✓ > sandbox and trust info > should display "current process" for macOS Seatbelt when SANDBOX is sandbox-exec 1294ms
✓ > sandbox and trust info > should display "no sandbox" when SANDBOX is not set and folder is trusted 1382ms
✓ > sandbox and trust info > should display "all tools" when tool sandboxing is enabled and agent is local 1337ms
✓ > sandbox and trust info > should prioritize untrusted message over sandbox info 1422ms
× > footer configuration filtering (golden snapshots) > renders complete footer with all sections visible (baseline) 1914ms
→ Snapshot ` > footer configuration filtering (golden snapshots) > renders complete footer with all sections visible (baseline) > complete-footer-wide 1` mismatched
✓ > footer configuration filtering (golden snapshots) > renders footer with all optional sections hidden (minimal footer) 2489ms
× > footer configuration filtering (golden snapshots) > renders footer with only model info hidden (partial filtering) 1937ms
→ Snapshot ` > footer configuration filtering (golden snapshots) > renders footer with only model info hidden (partial filtering) > footer-no-model 1` mismatched
✓ > footer configuration filtering (golden snapshots) > renders footer with CWD and model info hidden to test alignment (only sandbox visible) 1318ms
✓ > footer configuration filtering (golden snapshots) > hides the context percentage when hideContextPercentage is true 2415ms
✓ > footer configuration filtering (golden snapshots) > shows the context percentage when hideContextPercentage is false 1963ms
× > footer configuration filtering (golden snapshots) > renders complete footer in narrow terminal (baseline narrow) 1366ms
→ Snapshot ` > footer configuration filtering (golden snapshots) > renders complete footer in narrow terminal (baseline narrow) > complete-footer-narrow 1` mismatched
✓ > Footer Token Formatting > formats thousands with k 2450ms
✓ > Footer Token Formatting > formats millions with m 2300ms
✓ > Footer Token Formatting > formats billions with b 2281ms
✓ > Footer Token Formatting > formats small numbers without suffix 2359ms
✓ > error summary visibility > hides error summary in low verbosity mode out of dev mode 1373ms
✓ > error summary visibility > shows error summary in low verbosity mode in dev mode 1654ms
✓ > error summary visibility > shows error summary in full verbosity mode 1473ms
✓ > Footer Custom Items > renders auth item with email 599ms
✓ > Footer Custom Items > does NOT render auth item when showUserIdentity is false 433ms
✓ > Footer Custom Items > renders items in the specified order 1417ms
✓ > Footer Custom Items > renders multiple items with proper alignment 1544ms
✓ > Footer Custom Items > handles empty items array 1480ms
✓ > Footer Custom Items > does not render items that are conditionally hidden 1289ms
✓ > fallback mode display > should display Flash model when in fallback mode, not the configured Pro model 1278ms
✓ > fallback mode display > should display Pro model when NOT in fallback mode 1281ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:6207) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:6207) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useSelectionList.test.tsx (51 tests) 110465ms
✓ useSelectionList > Initialization > should initialize with the default index (0) if enabled 1671ms
✓ useSelectionList > Initialization > should initialize with the provided initialIndex if enabled 1146ms
✓ useSelectionList > Initialization > should handle an empty list gracefully 1185ms
✓ useSelectionList > Initialization > should find the next enabled item (downwards) if initialIndex is disabled 1224ms
✓ useSelectionList > Initialization > should wrap around to find the next enabled item if initialIndex is disabled 1173ms
✓ useSelectionList > Initialization > should default to 0 if initialIndex is out of bounds 2366ms
✓ useSelectionList > Initialization > should stick to the initial index if all items are disabled 1133ms
✓ useSelectionList > Keyboard Navigation (Up/Down/J/K) > should move down with "j" and "down" keys, skipping disabled items 3350ms
✓ useSelectionList > Keyboard Navigation (Up/Down/J/K) > should move up with "k" and "up" keys, skipping disabled items 3218ms
✓ useSelectionList > Keyboard Navigation (Up/Down/J/K) > should ignore navigation keys when shift is pressed 6346ms
✓ useSelectionList > Keyboard Navigation (Up/Down/J/K) > should wrap navigation correctly 6397ms
✓ useSelectionList > Keyboard Navigation (Up/Down/J/K) > should call onHighlight when index changes 2250ms
✓ useSelectionList > Keyboard Navigation (Up/Down/J/K) > should not move or call onHighlight if navigation results in the same index (e.g., single item) 2246ms
✓ useSelectionList > Keyboard Navigation (Up/Down/J/K) > should not move or call onHighlight if all items are disabled 2357ms
✓ useSelectionList > Wrapping (wrapAround) > should wrap by default (wrapAround=true) 3369ms
✓ useSelectionList > Wrapping (wrapAround) > should not wrap when wrapAround is false 4296ms
✓ useSelectionList > Selection (Enter) > should call onSelect when "return" is pressed on enabled item 2225ms
✓ useSelectionList > Selection (Enter) > should not call onSelect if the active item is disabled 3281ms
✓ useSelectionList > Keyboard Navigation Robustness (Rapid Input) > should handle rapid navigation and selection robustly (avoiding stale state) 4302ms
✓ useSelectionList > Keyboard Navigation Robustness (Rapid Input) > should handle ultra-rapid input (multiple presses in single act) without stale state 2172ms
✓ useSelectionList > Focus Management (isFocused) > should activate the keypress handler when focused (default) and items exist 2183ms
✓ useSelectionList > Focus Management (isFocused) > should not activate the keypress handler when isFocused is false 1153ms
✓ useSelectionList > Focus Management (isFocused) > should not activate the keypress handler when items list is empty 1174ms
✓ useSelectionList > Focus Management (isFocused) > should activate/deactivate when isFocused prop changes 4371ms
✓ useSelectionList > Numeric Quick Selection (showNumbers=true) > should clear the number buffer if a non-numeric key (e.g., navigation) is pressed 361ms
✓ useSelectionList > Numeric Quick Selection (showNumbers=true) > should clear the number buffer if "return" is pressed 315ms
✓ useSelectionList > Programmatic Focus (focusKey) > should change the activeIndex when a valid focusKey is provided 3241ms
✓ useSelectionList > Programmatic Focus (focusKey) > should ignore a focusKey that does not exist 3343ms
✓ useSelectionList > Programmatic Focus (focusKey) > should ignore a focusKey that points to a disabled item 3296ms
✓ useSelectionList > Programmatic Focus (focusKey) > should handle clearing the focusKey 5408ms
✓ useSelectionList > Reactivity (Dynamic Updates) > should update activeIndex when initialIndex prop changes 2191ms
✓ useSelectionList > Reactivity (Dynamic Updates) > should respect a new initialIndex even after user interaction 3219ms
✓ useSelectionList > Reactivity (Dynamic Updates) > should validate index when initialIndex prop changes to a disabled item 2334ms
✓ useSelectionList > Reactivity (Dynamic Updates) > should adjust activeIndex if items change and the initialIndex is now out of bounds 2266ms
✓ useSelectionList > Reactivity (Dynamic Updates) > should adjust activeIndex if items change and the initialIndex becomes disabled 2335ms
✓ useSelectionList > Reactivity (Dynamic Updates) > should reset to 0 if items change to an empty list 2291ms
✓ useSelectionList > Reactivity (Dynamic Updates) > should not reset activeIndex when items are deeply equal 3210ms
✓ useSelectionList > Reactivity (Dynamic Updates) > should update activeIndex when items change structurally 2207ms
✓ useSelectionList > Reactivity (Dynamic Updates) > should handle partial changes in items array 2336ms
✓ useSelectionList > Reactivity (Dynamic Updates) > should update selection when a new item is added to the start of the list 3279ms
✓ useSelectionList > Reactivity (Dynamic Updates) > should not re-initialize when items have identical keys but are different objects 2207ms
[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:6232) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 render listeners added to [XtermStdout]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?2004h ❯ src/ui/components/MainContent.test.tsx (25 tests | 7 failed) 34924ms
✓ getToolGroupBorderAppearance > returns default empty values for non-tool_group items 61ms
✓ getToolGroupBorderAppearance > inspects only the last pending tool_group item if current has no tools 21ms
✓ getToolGroupBorderAppearance > returns default border for completed normal tools 28ms
✓ getToolGroupBorderAppearance > returns warning border for pending normal tools 14ms
✓ getToolGroupBorderAppearance > returns active border for executing shell commands 15ms
✓ getToolGroupBorderAppearance > returns focus border for focused executing shell commands 14ms
✓ getToolGroupBorderAppearance > returns active border and dims color for background executing shell command when another shell is active 13ms
✓ getToolGroupBorderAppearance > handles empty tools with active shell turn (isCurrentlyInShellTurn) 37ms
✓ MainContent > renders in normal buffer mode 4944ms
✓ MainContent > renders in alternate buffer mode 1845ms
× MainContent > renders minimal header in minimal mode (alternate buffer) 3636ms
→ expected 'ScrollableList\nAppHeader(minimal)\n▀…' to contain 'Hello'
✓ MainContent > restores full header details after toggle in alternate buffer mode 1892ms
✓ MainContent > always renders full header details in normal buffer mode 1506ms
× MainContent > does not constrain height in alternate buffer mode 1327ms
→ expected 'ScrollableList\nAppHeader(full)\n▀▀▀▀…' to contain 'Hello'
✓ MainContent > renders multiple history items with single line padding between them 2020ms
× MainContent > renders mixed history items (user + gemini) with single line padding between them 1484ms
→ 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 1879ms
→ 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 1508ms
× MainContent > renders a ToolConfirmationQueue without an extra line when preceded by hidden tools 1553ms
→ 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 3261ms
→ expected 'AppHeader(full)\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀…' to contain 'Apply plan'
× MainContent > renders multiple thinking messages sequentially correctly 1650ms
→ Snapshot `MainContent > renders multiple thinking messages sequentially correctly 1` mismatched
✓ MainContent > MainContent Tool Output Height Logic > 'ASB mode - Focused shell should expand' 1369ms
✓ MainContent > MainContent Tool Output Height Logic > 'ASB mode - Unfocused shell' 1254ms
✓ MainContent > MainContent Tool Output Height Logic > 'Normal mode - Constrained height' 1554ms
✓ MainContent > MainContent Tool Output Height Logic > 'Normal mode - Unconstrained height' 1993ms
[?2004h[?2004h[?2004h[?25h[?2004h[?2004h(node:6421) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:6421) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/HistoryItemDisplay.test.tsx (24 tests | 3 failed) 39890ms
✓ > renders UserMessage for "user" type 3293ms
✓ > renders HintMessage for "hint" type 1492ms
✓ > renders UserMessage for "user" type with slash command 1369ms
✓ > renders InfoMessage for "info" type with multi-line text (alternateBuffer=true) 1469ms
✓ > renders InfoMessage for "info" type with multi-line text (alternateBuffer=false) 1271ms
✓ > renders AgentsStatus for "agents_list" type 1474ms
✓ > renders StatsDisplay for "stats" type 1598ms
✓ > renders AboutBox for "about" type 1534ms
✓ > renders ModelStatsDisplay for "model_stats" type 1353ms
✓ > renders ToolStatsDisplay for "tool_stats" type 1241ms
✓ > renders SessionSummaryDisplay for "quit" type 1785ms
× > should escape ANSI codes in text content 1848ms
→ expected '▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀…' to contain 'Hello, \u001b[31mred\u001b[0m world!'
✓ > should escape ANSI codes in tool confirmation details 1176ms
✓ > thinking items > renders thinking item when enabled 1241ms
✓ > thinking items > renders "Thinking..." header when isFirstThinking is true 1273ms
✓ > thinking items > does not render thinking item when disabled 1216ms
✓ > gemini items (alternateBuffer=true) > should render a truncated gemini item 2808ms
✓ > gemini items (alternateBuffer=true) > should render a full gemini item when using availableTerminalHeightGemini 2764ms
✓ > gemini items (alternateBuffer=true) > should render a truncated gemini_content item 2475ms
✓ > gemini items (alternateBuffer=true) > should render a full gemini_content item when using availableTerminalHeightGemini 2368ms
✓ > gemini items (alternateBuffer=false) > should render a truncated gemini item 827ms
× > gemini items (alternateBuffer=false) > should render a full gemini item when using availableTerminalHeightGemini 1598ms
→ Snapshot ` > gemini items (alternateBuffer=false) > should render a full gemini item when using availableTerminalHeightGemini 1` mismatched
✓ > gemini items (alternateBuffer=false) > should render a truncated gemini_content item 615ms
× > gemini items (alternateBuffer=false) > should render a full gemini_content item when using availableTerminalHeightGemini 1757ms
→ Snapshot ` > gemini items (alternateBuffer=false) > should render a full gemini_content item when using availableTerminalHeightGemini 1` mismatched
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/shared/text-buffer.test.ts (225 tests) 138662ms
✓ useTextBuffer > Initialization > should initialize with empty text and cursor at (0,0) by default 1843ms
✓ useTextBuffer > Initialization > should initialize with provided initialText 1453ms
✓ useTextBuffer > Initialization > should initialize with initialText and initialCursorOffset 1191ms
✓ useTextBuffer > Initialization > should wrap visual lines 1315ms
✓ useTextBuffer > Initialization > should wrap visual lines with multiple spaces 1214ms
✓ useTextBuffer > Initialization > should wrap visual lines even without spaces 1151ms
✓ useTextBuffer > Initialization > should initialize with multi-byte unicode characters and correct cursor offset 1783ms
✓ useTextBuffer > Basic Editing > insert: should insert a character and update cursor 1168ms
✓ useTextBuffer > Basic Editing > insert: should insert text in the middle of a line 1199ms
✓ useTextBuffer > Basic Editing > insert: should use placeholder for large text paste 1148ms
✓ useTextBuffer > Basic Editing > insert: should NOT use placeholder for large text if NOT a paste 1227ms
✓ useTextBuffer > Basic Editing > insert: should clean up pastedContent when placeholder is deleted 1399ms
✓ useTextBuffer > Basic Editing > insert: should clean up pastedContent when placeholder is removed via atomic backspace 1594ms
✓ useTextBuffer > Basic Editing > deleteWordLeft: should clean up pastedContent and avoid #2 suffix on repaste 1172ms
✓ useTextBuffer > Basic Editing > deleteWordRight: should clean up pastedContent and avoid #2 suffix on repaste 1228ms
✓ useTextBuffer > Basic Editing > killLineLeft: should clean up pastedContent and avoid #2 suffix on repaste 1203ms
✓ useTextBuffer > Basic Editing > killLineRight: should clean up pastedContent and avoid #2 suffix on repaste 1302ms
✓ useTextBuffer > Basic Editing > newline: should create a new line and move cursor 1203ms
✓ useTextBuffer > Basic Editing > backspace: should delete char to the left or merge lines 1181ms
✓ useTextBuffer > Basic Editing > del: should delete char to the right or merge lines 1256ms
✓ useTextBuffer > Drag and Drop File Paths > should prepend @ to a valid file path on insert 1204ms
✓ useTextBuffer > Drag and Drop File Paths > should not prepend @ to an invalid file path on insert 1153ms
✓ useTextBuffer > Drag and Drop File Paths > should handle quoted paths 1199ms
✓ useTextBuffer > Drag and Drop File Paths > should not prepend @ to short text that is not a path 1193ms
✓ useTextBuffer > Drag and Drop File Paths > should prepend @ to multiple valid file paths on insert 1202ms
✓ useTextBuffer > Drag and Drop File Paths > should handle multiple paths with escaped spaces 1254ms
✓ useTextBuffer > Drag and Drop File Paths > should not prepend @ unless all paths are valid 1204ms
✓ useTextBuffer > Shell Mode Behavior > should not prepend @ to valid file paths when shellModeActive is true 1337ms
✓ useTextBuffer > Shell Mode Behavior > should not prepend @ to quoted paths when shellModeActive is true 1254ms
✓ useTextBuffer > Shell Mode Behavior > should behave normally with invalid paths when shellModeActive is true 1205ms
✓ useTextBuffer > Shell Mode Behavior > should behave normally with short text when shellModeActive is true 1234ms
✓ useTextBuffer > Cursor Movement > move: left/right should work within and across visual lines (due to wrapping) 1272ms
✓ useTextBuffer > Cursor Movement > move: up/down should preserve preferred visual column 1276ms
✓ useTextBuffer > Cursor Movement > move: home/end should go to visual line start/end 1255ms
✓ useTextBuffer > Visual Layout & Viewport > should wrap long lines correctly into visualLines 1331ms
✓ useTextBuffer > Visual Layout & Viewport > should update visualScrollRow when visualCursor moves out of viewport 1210ms
✓ useTextBuffer > Undo/Redo > should undo and redo an insert operation 1164ms
✓ useTextBuffer > Undo/Redo > should undo and redo a newline operation 1174ms
✓ useTextBuffer > Unicode Handling > insert: should correctly handle multi-byte unicode characters 1170ms
✓ useTextBuffer > Unicode Handling > backspace: should correctly delete multi-byte unicode characters 1179ms
✓ useTextBuffer > Unicode Handling > move: left/right should treat multi-byte chars as single units for visual cursor 1188ms
✓ useTextBuffer > Unicode Handling > move: up/down should work on wrapped lines (regression test) 1266ms
✓ useTextBuffer > Unicode Handling > moveToVisualPosition: should correctly handle wide characters (Chinese) 1428ms
✓ useTextBuffer > handleInput > should insert printable characters 1155ms
✓ useTextBuffer > handleInput > should handle "Enter" key as newline 1167ms
✓ useTextBuffer > handleInput > should handle Ctrl+J as newline 1126ms
✓ useTextBuffer > handleInput > should do nothing for a tab key press 1131ms
✓ useTextBuffer > handleInput > should do nothing for a shift tab key press 1185ms
✓ useTextBuffer > handleInput > should handle CLEAR_INPUT (Ctrl+C) 1141ms
✓ useTextBuffer > handleInput > should NOT handle CLEAR_INPUT if buffer is empty 1125ms
✓ useTextBuffer > handleInput > should handle "Backspace" key 1130ms
✓ useTextBuffer > handleInput > should handle multiple delete characters in one input 1175ms
✓ useTextBuffer > handleInput > should handle inserts that contain delete characters 1217ms
✓ useTextBuffer > handleInput > should handle inserts with a mix of regular and delete characters 1234ms
✓ useTextBuffer > handleInput > should handle arrow keys for movement 1265ms
✓ useTextBuffer > handleInput > should strip ANSI escape codes when pasting text 1212ms
✓ useTextBuffer > handleInput > should handle VSCode terminal Shift+Enter as newline 1343ms
✓ useTextBuffer > handleInput > should correctly handle repeated pasting of long text 2853ms
✓ useTextBuffer > replaceRange > should replace a single-line range with single-line text 1356ms
✓ useTextBuffer > replaceRange > should replace a multi-line range with single-line text 1585ms
✓ useTextBuffer > replaceRange > should delete a range when replacing with an empty string 1941ms
✓ useTextBuffer > replaceRange > should handle replacing at the beginning of the text 1322ms
✓ useTextBuffer > replaceRange > should handle replacing at the end of the text 1294ms
✓ useTextBuffer > replaceRange > should handle replacing the entire buffer content 2459ms
✓ useTextBuffer > replaceRange > should correctly replace with unicode characters 1577ms
✓ useTextBuffer > replaceRange > should handle invalid range by returning false and not changing text 1349ms
✓ useTextBuffer > replaceRange > replaceRange: multiple lines with a single character 1148ms
✓ useTextBuffer > replaceRange > should replace a single-line range with multi-line text 1135ms
✓ useTextBuffer > Input Sanitization > should strip 'ANSI escape codes' from input 1177ms
✓ useTextBuffer > Input Sanitization > should strip 'control characters' from input 1283ms
✓ useTextBuffer > Input Sanitization > should strip 'mixed ANSI and control characters' from input 1131ms
✓ useTextBuffer > Input Sanitization > should strip 'pasted text with ANSI' from input 1148ms
✓ useTextBuffer > Input Sanitization > should not strip standard characters or newlines 1202ms
✓ useTextBuffer > Input Sanitization > should sanitize large text (>5000 chars) and strip unsafe characters 4809ms
✓ useTextBuffer > Input Sanitization > should sanitize large ANSI text (>5000 chars) and strip escape codes 9539ms
✓ useTextBuffer > Input Sanitization > should not strip popular emojis 1406ms
✓ useTextBuffer > inputFilter > should filter input based on the provided filter function 1169ms
✓ useTextBuffer > inputFilter > should handle empty result from filter 1433ms
✓ useTextBuffer > inputFilter > should filter pasted text 1165ms
✓ useTextBuffer > inputFilter > should not filter newlines if they are allowed by the filter 1125ms
✓ useTextBuffer > inputFilter > should filter before newline check in insert 1304ms
✓ useTextBuffer > Memoization > should keep action references stable across re-renders 1205ms
✓ useTextBuffer > Memoization > should have memoized actions that operate on the latest state 1171ms
✓ useTextBuffer > singleLine mode > should not insert a newline character when singleLine is true 1639ms
✓ useTextBuffer > singleLine mode > should not create a new line when newline() is called and singleLine is true 1179ms
✓ useTextBuffer > singleLine mode > should not handle "Enter" key as newline when singleLine is true 1154ms
✓ useTextBuffer > singleLine mode > should not print anything for function keys when singleLine is true 1156ms
✓ useTextBuffer > singleLine mode > should strip newlines from pasted text when singleLine is true 1137ms
✓ Unicode helper functions > useTextBuffer CJK Navigation > should navigate by word in Chinese 1262ms
✓ Unicode helper functions > useTextBuffer CJK Navigation > should navigate mixed English and Chinese 1135ms
✓ Transformation Utilities > Layout Caching and Invalidation > should invalidate cache when line content changes 'via setText' 2107ms
✓ Transformation Utilities > Layout Caching and Invalidation > should invalidate cache when line content changes 'via replaceRange' 1466ms
✓ Transformation Utilities > Layout Caching and Invalidation > should invalidate cache when viewport width changes 1294ms
✓ Transformation Utilities > Layout Caching and Invalidation > should correctly handle cursor expansion/collapse in cached layout 1297ms
✓ Transformation Utilities > Layout Caching and Invalidation > should reuse cache for unchanged lines during editing 1230ms
✓ Transformation Utilities > Scroll Regressions > should not show empty viewport when collapsing a large paste that was scrolled 1213ms
[?2004h[?2004h[?2004h(node:6232) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(node:6232) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h(node:6232) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 render listeners added to [XtermStdout]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?2004h[?2004h[?2004h[?2004h ✓ src/nonInteractiveCli.test.ts (45 tests) 4827ms
✓ runNonInteractive > should handle cancellation (Ctrl+C) 594ms
✓ src/nonInteractiveCliAgentSession.test.ts (50 tests) 6957ms
✓ runNonInteractive > should process input and write text output 730ms
✓ runNonInteractive > fails fast if the session acknowledges a message send without a stream 655ms
✓ runNonInteractive > should handle cancellation (Ctrl+C) 526ms
✓ runNonInteractive > should throw for unhandled command result types 409ms
✓ runNonInteractive > should pass arguments to the slash command action 419ms
[?2004h(node:6612) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:6612) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004hstdout | src/ui/hooks/atCommandProcessor_agents.test.ts > handleAtCommand with Agents > should detect agent reference and add nudge message
Ignore file not found: /tmp/agent-test-xnxD7J/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor_agents.test.ts > handleAtCommand with Agents > should handle multiple agents
Ignore file not found: /tmp/agent-test-C6mQJN/.geminiignore, continue without it.
stdout | src/ui/hooks/atCommandProcessor_agents.test.ts > handleAtCommand with Agents > should not treat non-agents as agents
Ignore file not found: /tmp/agent-test-YinJbZ/.geminiignore, continue without it.
✓ src/ui/hooks/vim.test.tsx (144 tests) 157980ms
✓ useVim hook > Mode switching > should start in INSERT mode 2186ms
✓ useVim hook > Mode switching > should switch to INSERT mode with i command 1376ms
✓ useVim hook > Mode switching > should switch back to NORMAL mode with Escape 1642ms
✓ useVim hook > Mode switching > should properly handle escape followed immediately by a command 1439ms
✓ useVim hook > Navigation commands > should handle h (left movement) 1426ms
✓ useVim hook > Navigation commands > should handle l (right movement) 1303ms
✓ useVim hook > Navigation commands > should handle j (down movement) 1399ms
✓ useVim hook > Navigation commands > should handle k (up movement) 1197ms
✓ useVim hook > Navigation commands > should handle 0 (move to start of line) 1287ms
✓ useVim hook > Navigation commands > should handle $ (move to end of line) 1360ms
✓ useVim hook > Mode switching commands > should handle a (append after cursor) 1238ms
✓ useVim hook > Mode switching commands > should handle A (append at end of line) 1366ms
✓ useVim hook > Mode switching commands > should handle o (open line below) 1168ms
✓ useVim hook > Mode switching commands > should handle O (open line above) 1185ms
✓ useVim hook > Edit commands > should handle x (delete character) 1219ms
✓ useVim hook > Edit commands > should move cursor left when deleting last character on line (vim behavior) 1267ms
✓ useVim hook > Edit commands > should handle first d key (sets pending state) 1151ms
✓ useVim hook > Count handling > should handle count input and return to count 0 after command 1222ms
✓ useVim hook > Count handling > should only delete 1 character with x command when no count is specified 1234ms
✓ useVim hook > Word movement > should properly initialize vim hook with word movement support 1370ms
✓ useVim hook > Word movement > should support vim mode and basic operations across multiple lines 1237ms
✓ useVim hook > Word movement > should handle w (next word) 1424ms
✓ useVim hook > Word movement > should handle b (previous word) 1314ms
✓ useVim hook > Word movement > should handle e (end of word) 1361ms
✓ useVim hook > Word movement > should handle w when cursor is on the last word 1343ms
✓ useVim hook > Word movement > should handle first c key (sets pending change state) 1268ms
✓ useVim hook > Word movement > should clear pending state on invalid command sequence (df) 1282ms
✓ useVim hook > Word movement > should clear pending state with Escape in NORMAL mode 1339ms
✓ useVim hook > Big Word movement > should handle W (next big word) 1350ms
✓ useVim hook > Big Word movement > should handle B (previous big word) 1581ms
✓ useVim hook > Big Word movement > should handle E (end of big word) 1225ms
✓ useVim hook > Big Word movement > should handle dW (delete big word forward) 1194ms
✓ useVim hook > Big Word movement > should handle cW (change big word forward) 1170ms
✓ useVim hook > Big Word movement > should handle dB (delete big word backward) 1199ms
✓ useVim hook > Big Word movement > should handle dE (delete big word end) 1211ms
✓ useVim hook > Disabled vim mode > should not respond to vim commands when disabled 1312ms
✓ useVim hook > Command repeat system > should repeat x command from current cursor position 1213ms
✓ useVim hook > Command repeat system > should repeat dd command from current position 1258ms
✓ useVim hook > Command repeat system > should repeat ce command from current position 1213ms
✓ useVim hook > Command repeat system > should repeat cc command from current position 1203ms
✓ useVim hook > Command repeat system > should repeat cw command from current position 1347ms
✓ useVim hook > Command repeat system > should repeat D command from current position 1370ms
✓ useVim hook > Command repeat system > should repeat C command from current position 1215ms
✓ useVim hook > Command repeat system > should repeat command after cursor movement 1386ms
✓ useVim hook > Command repeat system > should move cursor to the correct position after exiting INSERT mode with "a" 1222ms
✓ useVim hook > Special characters and edge cases > should handle ^ (move to first non-whitespace character) 2498ms
✓ useVim hook > Special characters and edge cases > should handle G without count (go to last line) 1213ms
✓ useVim hook > Special characters and edge cases > should handle gg (go to first line) 1215ms
✓ useVim hook > Special characters and edge cases > should handle count with movement commands 1329ms
✓ useVim hook > Vim word operations > dw (delete word forward) > should delete from cursor to start of next word 1316ms
✓ useVim hook > Vim word operations > dw (delete word forward) > should delete multiple words with count 1307ms
✓ useVim hook > Vim word operations > dw (delete word forward) > should record command for repeat with dot 1421ms
✓ useVim hook > Vim word operations > de (delete word end) > should delete from cursor to end of current word 1293ms
✓ useVim hook > Vim word operations > de (delete word end) > should handle count with de 1477ms
✓ useVim hook > Vim word operations > cw (change word forward) > should change from cursor to start of next word and enter INSERT mode 1513ms
✓ useVim hook > Vim word operations > cw (change word forward) > should handle count with cw 1269ms
✓ useVim hook > Vim word operations > cw (change word forward) > should be repeatable with dot 1366ms
✓ useVim hook > Vim word operations > ce (change word end) > should change from cursor to end of word and enter INSERT mode 1232ms
✓ useVim hook > Vim word operations > ce (change word end) > should handle count with ce 1389ms
✓ useVim hook > Vim word operations > cc (change line) > should change entire line and enter INSERT mode 1366ms
✓ useVim hook > Vim word operations > cc (change line) > should change multiple lines with count 1187ms
✓ useVim hook > Vim word operations > cc (change line) > should be repeatable with dot 1279ms
✓ useVim hook > Vim word operations > db (delete word backward) > should delete from cursor to start of previous word 1325ms
✓ useVim hook > Vim word operations > db (delete word backward) > should handle count with db 1200ms
✓ useVim hook > Vim word operations > cb (change word backward) > should change from cursor to start of previous word and enter INSERT mode 1471ms
✓ useVim hook > Vim word operations > cb (change word backward) > should handle count with cb 1245ms
✓ useVim hook > Vim word operations > Pending state handling > should clear pending delete state after dw 1265ms
✓ useVim hook > Vim word operations > Pending state handling > should clear pending change state after cw 1201ms
✓ useVim hook > Vim word operations > Pending state handling > should clear pending state with escape 1216ms
✓ useVim hook > Vim word operations > NORMAL mode escape behavior > should pass escape through when no pending operator is active 1191ms
✓ useVim hook > Vim word operations > NORMAL mode escape behavior > should handle escape and clear pending operator 1357ms
✓ useVim hook > Shell command pass-through > should pass through ctrl+r in INSERT mode 1248ms
✓ useVim hook > Shell command pass-through > should pass through ! in INSERT mode when buffer is empty 1246ms
✓ useVim hook > Shell command pass-through > should handle ! as input in INSERT mode when buffer is not empty 1408ms
✓ useVim hook > double-escape to clear buffer > should clear buffer on double-escape in NORMAL mode 356ms
✓ useVim hook > double-escape to clear buffer > should NOT clear buffer if escapes are too slow 311ms
✓ useVim hook > double-escape to clear buffer > should clear escape history when clearing pending operator 310ms
✓ useVim hook > double-escape to clear buffer > should pass Ctrl+C through to InputPrompt in NORMAL mode 362ms
✓ useVim hook > double-escape to clear buffer > should pass Ctrl+C through to InputPrompt in INSERT mode 324ms
✓ useVim hook > Character deletion and case toggle (X, ~) > X: should call vimDeleteCharBefore 1344ms
✓ useVim hook > Character deletion and case toggle (X, ~) > ~: should call vimToggleCase 1313ms
✓ useVim hook > Character deletion and case toggle (X, ~) > X can be repeated with dot (.) 1480ms
✓ useVim hook > Character deletion and case toggle (X, ~) > ~ can be repeated with dot (.) 1207ms
✓ useVim hook > Character deletion and case toggle (X, ~) > 3X calls vimDeleteCharBefore with count=3 1171ms
✓ useVim hook > Character deletion and case toggle (X, ~) > 2~ calls vimToggleCase with count=2 1200ms
✓ useVim hook > Replace character (r) > r{char}: should call vimReplaceChar with the next key 1186ms
✓ useVim hook > Replace character (r) > r: should consume the pending char without passing through 1247ms
✓ useVim hook > Replace character (r) > Escape cancels pending r (pendingFindOp cleared on Esc) 1234ms
✓ useVim hook > Replace character (r) > 2rx calls vimReplaceChar with count=2 1272ms
✓ useVim hook > Replace character (r) > r{char} is dot-repeatable 1334ms
✓ useVim hook > Character find motions (f, F, t, T, ;, ,) > 'f'{char}: calls 'vimFindCharForward' (till=false) 1408ms
✓ useVim hook > Character find motions (f, F, t, T, ;, ,) > 'F'{char}: calls 'vimFindCharBackward' (till=false) 1194ms
✓ useVim hook > Character find motions (f, F, t, T, ;, ,) > 't'{char}: calls 'vimFindCharForward' (till=true) 1226ms
✓ useVim hook > Character find motions (f, F, t, T, ;, ,) > 'T'{char}: calls 'vimFindCharBackward' (till=true) 1272ms
✓ useVim hook > Character find motions (f, F, t, T, ;, ,) > ;: should repeat last f forward find 1361ms
✓ useVim hook > Character find motions (f, F, t, T, ;, ,) > ,: should repeat last f find in reverse direction 1396ms
✓ useVim hook > Character find motions (f, F, t, T, ;, ,) > ; and , should do nothing if no prior find 1250ms
✓ useVim hook > Character find motions (f, F, t, T, ;, ,) > Escape cancels pending f (pendingFindOp cleared on Esc) 1218ms
✓ useVim hook > Character find motions (f, F, t, T, ;, ,) > 2fo calls vimFindCharForward with count=2 1342ms
✓ useVim hook > Operator + find motions (df, dt, dF, dT, cf, ct, cF, cT) > df{char}: executes delete-to-char, not a dangling operator 1466ms
✓ useVim hook > Operator + find motions (df, dt, dF, dT, cf, ct, cF, cT) > undefined{char}: calls 'vimDeleteToCharForward' (till=false, insert=false) 1509ms
✓ useVim hook > Operator + find motions (df, dt, dF, dT, cf, ct, cF, cT) > undefined{char}: calls 'vimDeleteToCharForward' (till=true, insert=false) 1266ms
✓ useVim hook > Operator + find motions (df, dt, dF, dT, cf, ct, cF, cT) > undefined{char}: calls 'vimDeleteToCharBackward' (till=false, insert=false) 1240ms
✓ useVim hook > Operator + find motions (df, dt, dF, dT, cf, ct, cF, cT) > undefined{char}: calls 'vimDeleteToCharBackward' (till=true, insert=false) 1220ms
✓ useVim hook > Operator + find motions (df, dt, dF, dT, cf, ct, cF, cT) > undefined{char}: calls 'vimDeleteToCharForward' (till=false, insert=true) 1242ms
✓ useVim hook > Operator + find motions (df, dt, dF, dT, cf, ct, cF, cT) > undefined{char}: calls 'vimDeleteToCharForward' (till=true, insert=true) 1287ms
✓ useVim hook > Operator + find motions (df, dt, dF, dT, cf, ct, cF, cT) > undefined{char}: calls 'vimDeleteToCharBackward' (till=false, insert=true) 1277ms
✓ useVim hook > Operator + find motions (df, dt, dF, dT, cf, ct, cF, cT) > undefined{char}: calls 'vimDeleteToCharBackward' (till=true, insert=true) 3406ms
✓ useVim hook > Operator + find motions (df, dt, dF, dT, cf, ct, cF, cT) > 2df{char}: count is passed through to vimDeleteToCharForward 1261ms
✓ useVim hook > Yank and paste (y/p/P) > should handle yy (yank line) 1359ms
✓ useVim hook > Yank and paste (y/p/P) > should handle 2yy (yank 2 lines) 1247ms
✓ useVim hook > Yank and paste (y/p/P) > should handle Y (yank to end of line, equivalent to y$) 1215ms
✓ useVim hook > Yank and paste (y/p/P) > should handle yw (yank word forward) 1285ms
✓ useVim hook > Yank and paste (y/p/P) > should handle yW (yank big word forward) 1229ms
✓ useVim hook > Yank and paste (y/p/P) > should handle ye (yank to end of word) 1254ms
✓ useVim hook > Yank and paste (y/p/P) > should handle yE (yank to end of big word) 1204ms
✓ useVim hook > Yank and paste (y/p/P) > should handle y$ (yank to end of line) 1229ms
✓ useVim hook > Yank and paste (y/p/P) > should handle p (paste after) 1276ms
✓ useVim hook > Yank and paste (y/p/P) > should handle 2p (paste after, count 2) 1425ms
✓ useVim hook > Yank and paste (y/p/P) > should handle P (paste before) 1491ms
[?2004h[?2004h[?2004hstdout | src/ui/hooks/atCommandProcessor_agents.test.ts > handleAtCommand with Agents > should not treat non-agents as agents
Ignore file not found: /tmp/agent-test-YinJbZ/.geminiignore, continue without it.
✓ src/ui/hooks/atCommandProcessor_agents.test.ts (3 tests) 1427ms
✓ handleAtCommand with Agents > should not treat non-agents as agents 1070ms
[?2004h[?2004h[?2004h[?2004h ✓ src/utils/cleanup.test.ts (17 tests) 821ms
[?2004h[?2004h[?2004h ✓ src/utils/envVarResolver.test.ts (21 tests) 371ms
[?2004h[?2004h[?2004h ✓ src/utils/deepMerge.test.ts (17 tests) 627ms
[?2004h ✓ src/ui/key/keyBindings.test.ts (20 tests) 993ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/config/extensions/extensionUpdates.test.ts (2 tests) 451ms
✓ extensionUpdates > ExtensionManager integration > should warn about missing settings after update 340ms
✓ src/ui/commands/restoreCommand.test.ts (13 tests) 1570ms
[?2004h[?2004h ✓ src/services/SlashCommandResolver.test.ts (14 tests) 386ms
✓ src/config/extensionRegistryClient.test.ts (13 tests) 711ms
✓ src/commands/extensions/configure.test.ts (9 tests) 1297ms
✓ extensions configure command > Specific setting configuration > should configure a specific setting 632ms
✓ src/services/prompt-processors/injectionParser.test.ts (21 tests) 532ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/utils/highlight.test.ts (22 tests) 483ms
✓ src/utils/commands.test.ts (18 tests) 434ms
✓ src/ui/utils/markdownParsingUtils.test.ts (17 tests) 566ms
[?2004h[?2004h ✓ src/config/policy.test.ts (10 tests) 651ms
[?2004h ✓ src/commands/extensions/update.test.ts (10 tests) 831ms
[?2004h ✓ src/ui/commands/copyCommand.test.ts (11 tests) 996ms
✓ copyCommand > should return info message when no history is available 320ms
[?2004h[?2004h ✓ src/deferred.test.ts (9 tests) 759ms
[?2004h[?2004hstdout | src/utils/gitUtils.test.ts > isGitHubRepository > returns false if the git command fails
Failed to get git remote: Error: oops
at [90m/build/gemini-cli/src/gemini-cli/packages/cli/[39msrc/utils/gitUtils.test.ts:29:13
at mockCall (file:///build/gemini-cli/src/gemini-cli/node_modules/[4m@vitest/spy[24m/dist/index.js:96:15)
at execSync (file:///build/gemini-cli/src/gemini-cli/node_modules/[4mtinyspy[24m/dist/index.js:47:80)
at Module.isGitHubRepository [90m(/build/gemini-cli/src/gemini-cli/packages/cli/[39msrc/utils/gitUtils.ts:18:7[90m)[39m
at [90m/build/gemini-cli/src/gemini-cli/packages/cli/[39msrc/utils/gitUtils.test.ts:31:12
at file:///build/gemini-cli/src/gemini-cli/node_modules/[4m@vitest/runner[24m/dist/chunk-hooks.js:155:11
at file:///build/gemini-cli/src/gemini-cli/node_modules/[4m@vitest/runner[24m/dist/chunk-hooks.js:752:26
at file:///build/gemini-cli/src/gemini-cli/node_modules/[4m@vitest/runner[24m/dist/chunk-hooks.js:1897:20
at new Promise ()
at runWithTimeout (file:///build/gemini-cli/src/gemini-cli/node_modules/[4m@vitest/runner[24m/dist/chunk-hooks.js:1863:10)
[?2004hstdout | src/utils/gitUtils.test.ts > getLatestRelease > throws an error if the fetch fails
Failed to determine latest run-gemini-cli release: nope
stdout | src/utils/gitUtils.test.ts > getLatestRelease > throws an error if the fetch does not return a json body
Failed to determine latest run-gemini-cli release: Error: Response did not include tag_name field
at Module.getLatestGitHubRelease [90m(/build/gemini-cli/src/gemini-cli/packages/cli/[39msrc/utils/gitUtils.ts:84:13[90m)[39m
[90m at processTicksAndRejections (node:internal/process/task_queues:104:5)[39m
at [90m/build/gemini-cli/src/gemini-cli/packages/cli/[39msrc/utils/gitUtils.test.ts:234:5
at file:///build/gemini-cli/src/gemini-cli/node_modules/[4m@vitest/runner[24m/dist/chunk-hooks.js:752:20
✓ src/utils/gitUtils.test.ts (24 tests) 941ms
✓ isGitHubRepository > returns false if the git command fails 326ms
[?2004h[?2004h ✓ src/commands/extensions/enable.test.ts (9 tests) 603ms
[?2004h ✓ src/ui/hooks/useGeminiStream.test.tsx (79 tests) 163270ms
✓ useGeminiStream > should not submit tool responses if not all tool calls are completed 3038ms
✓ useGeminiStream > should expose activePtyId for non-shell executing tools that report an execution ID 1425ms
✓ useGeminiStream > should submit tool responses when all tool calls are completed and ready 1694ms
✓ useGeminiStream > should inject steering hint prompt for continuation 1736ms
✓ useGeminiStream > should handle all tool calls being cancelled 1480ms
✓ useGeminiStream > should NOT stop responding when only update_topic is called 1307ms
✓ useGeminiStream > should stop agent execution immediately when a tool call returns STOP_EXECUTION error 1393ms
✓ useGeminiStream > should add a compact suppressed-error note before STOP_EXECUTION terminal info in low verbosity mode 1454ms
✓ useGeminiStream > should group multiple cancelled tool call responses into a single history entry 1330ms
✓ useGeminiStream > should not flicker streaming state to Idle between tool completion and submission 1520ms
✓ useGeminiStream > User Cancellation > should cancel an in-progress stream when escape is pressed 1323ms
✓ useGeminiStream > User Cancellation > should call onCancelSubmit handler when escape is pressed 1379ms
✓ useGeminiStream > User Cancellation > should call setShellInputFocused(false) when escape is pressed 1401ms
✓ useGeminiStream > User Cancellation > should not do anything if escape is pressed when not responding 1203ms
✓ useGeminiStream > User Cancellation > should prevent further processing after cancellation 1304ms
✓ useGeminiStream > User Cancellation > should cancel if a tool call is in progress 1271ms
✓ useGeminiStream > User Cancellation > should cancel a request when a tool is awaiting confirmation 1189ms
✓ useGeminiStream > Retry Handling > should ignore retryStatus updates when not responding 1322ms
✓ useGeminiStream > Retry Handling > should reset retryStatus when isResponding becomes false 1548ms
✓ useGeminiStream > Retry Handling > should ignore late retry events after cancellation 1275ms
✓ useGeminiStream > Slash Command Handling > should schedule a tool call when the command processor returns a schedule_tool action 1250ms
✓ useGeminiStream > Slash Command Handling > should stop processing and not call Gemini when a command is handled without a tool call 1352ms
✓ useGeminiStream > Slash Command Handling > should call Gemini with prompt content when slash command returns a `submit_prompt` action 1224ms
✓ useGeminiStream > Slash Command Handling > should correctly handle a submit_prompt action with empty content 1486ms
✓ useGeminiStream > Slash Command Handling > should not call handleSlashCommand for line comments 1343ms
✓ useGeminiStream > Slash Command Handling > should not call handleSlashCommand for block comments 1295ms
✓ useGeminiStream > Slash Command Handling > should not call handleSlashCommand is shell mode is active 1257ms
✓ useGeminiStream > Slash Command Handling > should record client-initiated tool calls in GeminiChat history 1246ms
✓ useGeminiStream > Slash Command Handling > should NOT record other client-initiated tool calls (like save_memory) in history 1261ms
✓ useGeminiStream > Memory Refresh on save_memory > should call performMemoryRefresh when a save_memory tool call completes successfully 1469ms
✓ useGeminiStream > Error Handling > should call parseAndFormatApiError with the correct authType on stream initialization failure 1825ms
✓ useGeminiStream > handleApprovalModeChange > should auto-approve all pending tool calls when switching to YOLO mode 2378ms
✓ useGeminiStream > handleApprovalModeChange > should only auto-approve edit tools when switching to AUTO_EDIT mode 1313ms
✓ useGeminiStream > handleApprovalModeChange > should not auto-approve any tools when switching to REQUIRE_CONFIRMATION mode 1205ms
✓ useGeminiStream > handleApprovalModeChange > should handle errors gracefully when auto-approving tool calls 1219ms
✓ useGeminiStream > handleApprovalModeChange > should skip tool calls without confirmationDetails 1225ms
✓ useGeminiStream > handleApprovalModeChange > should only process tool calls with awaiting_approval status 1280ms
✓ useGeminiStream > handleApprovalModeChange > should inject a notification message when manually exiting Plan Mode 1201ms
✓ useGeminiStream > handleFinishedEvent > should add info message for MAX_TOKENS finish reason 1338ms
✓ useGeminiStream > handleFinishedEvent > ContextWindowWillOverflow event > should add message 'without suggestion when remaining tok…' 1318ms
✓ useGeminiStream > handleFinishedEvent > ContextWindowWillOverflow event > should add message 'with suggestion when remaining tokens…' 1180ms
✓ useGeminiStream > handleFinishedEvent > should call onCancelSubmit when ContextWindowWillOverflow event is received 1206ms
✓ useGeminiStream > handleFinishedEvent > should add informational messages when ChatCompressed event is received 1287ms
✓ useGeminiStream > handleFinishedEvent > should handle 'STOP' finish reason correctly 1191ms
✓ useGeminiStream > handleFinishedEvent > should handle 'FINISH_REASON_UNSPECIFIED' finish reason correctly 1195ms
✓ useGeminiStream > handleFinishedEvent > should handle 'SAFETY' finish reason correctly 1212ms
✓ useGeminiStream > handleFinishedEvent > should handle 'RECITATION' finish reason correctly 2017ms
✓ useGeminiStream > handleFinishedEvent > should handle 'LANGUAGE' finish reason correctly 1390ms
✓ useGeminiStream > handleFinishedEvent > should handle 'BLOCKLIST' finish reason correctly 1218ms
✓ useGeminiStream > handleFinishedEvent > should handle 'PROHIBITED_CONTENT' finish reason correctly 1334ms
✓ useGeminiStream > handleFinishedEvent > should handle 'SPII' finish reason correctly 1197ms
✓ useGeminiStream > handleFinishedEvent > should handle 'OTHER' finish reason correctly 1220ms
✓ useGeminiStream > handleFinishedEvent > should handle 'MALFORMED_FUNCTION_CALL' finish reason correctly 1309ms
✓ useGeminiStream > handleFinishedEvent > should handle 'IMAGE_SAFETY' finish reason correctly 1306ms
✓ useGeminiStream > handleFinishedEvent > should handle 'UNEXPECTED_TOOL_CALL' finish reason correctly 1300ms
✓ useGeminiStream > should flush pending text rationale before scheduling tool calls to ensure correct history order 1644ms
✓ useGeminiStream > should process @include commands, adding user turn after processing to prevent race conditions 16408ms
✓ useGeminiStream > should display user query, then tool execution, then model response 1990ms
✓ useGeminiStream > Thought Reset > should keep full thinking entries in history when mode is full 3873ms
✓ useGeminiStream > Thought Reset > keeps thought transient and clears it on first non-thought event 4158ms
✓ useGeminiStream > Thought Reset > should reset thought to null when starting a new prompt 4785ms
✓ useGeminiStream > Thought Reset > should memoize pendingHistoryItems 3125ms
✓ useGeminiStream > Thought Reset > should reset thought to null when user cancels 2774ms
✓ useGeminiStream > Thought Reset > should reset thought to null when there is an error 3031ms
✓ useGeminiStream > Thought Reset > should update lastOutputTime on Gemini thought and content events 1004ms
✓ useGeminiStream > Loop Detection Confirmation > should set loopDetectionConfirmationRequest when LoopDetected event is received 2776ms
✓ useGeminiStream > Loop Detection Confirmation > should disable loop detection and show message when user selects "disable" 3124ms
✓ useGeminiStream > Loop Detection Confirmation > should keep loop detection enabled and show message when user selects "keep" 3101ms
✓ useGeminiStream > Loop Detection Confirmation > should handle multiple loop detection events properly 4993ms
✓ useGeminiStream > Loop Detection Confirmation > should process LoopDetected event after moving pending history to history 3453ms
✓ useGeminiStream > Loop Detection Confirmation > Race Condition Prevention > should reject concurrent submitQuery when already responding 2917ms
✓ useGeminiStream > Loop Detection Confirmation > Race Condition Prevention > should allow continuation queries via loop detection retry 3199ms
✓ useGeminiStream > Agent Execution Events > should handle AgentExecutionStopped event with systemMessage 3198ms
✓ useGeminiStream > Agent Execution Events > should handle AgentExecutionStopped event by falling back to reason when systemMessage is missing 2501ms
✓ useGeminiStream > Agent Execution Events > should handle AgentExecutionBlocked event with systemMessage 2906ms
✓ useGeminiStream > Agent Execution Events > should handle AgentExecutionBlocked event by falling back to reason when systemMessage is missing 3012ms
✓ useGeminiStream > Stream Splitting > should not add empty history item when splitting message results in empty or whitespace-only beforeText 3081ms
✓ useGeminiStream > Stream Splitting > should add whitespace-only history item when splitting message 2902ms
✓ useGeminiStream > should trace UserPrompt telemetry on submitQuery 2564ms
✓ src/ui/state/extensions.test.ts (15 tests) 325ms
✓ src/ui/hooks/usePhraseCycler.test.tsx (11 tests) 5300ms
✓ usePhraseCycler > should initialize with an empty string when not active and not waiting 1492ms
✓ usePhraseCycler > should show "Waiting for user confirmation..." when isWaiting is true 935ms
✓ usePhraseCycler > should show interactive shell waiting message immediately when shouldShowFocusHint is true 425ms
✓ usePhraseCycler > should prioritize interactive shell waiting over normal waiting immediately 376ms
✓ usePhraseCycler > should reset to phrases when isActive becomes true after being false 399ms
✓ usePhraseCycler > should use custom phrases when provided 391ms
[?2004h ✓ src/ui/utils/computeStats.test.ts (12 tests) 212ms
[?2004h[?2004h ✓ src/ui/commands/ideCommand.test.ts (8 tests) 813ms
✓ ideCommand > install subcommand > should install the extension 434ms
✓ src/services/prompt-processors/atFileProcessor.test.ts (11 tests) 1168ms
✓ AtFileProcessor > should not change the prompt if no @{ trigger is present 325ms
[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/acp/acpResume.test.ts (2 tests) 842ms
✓ GeminiAgent Session Resume > should load a session, resume chat, and stream all message types 494ms
[?2004h ✓ src/utils/windowTitle.test.ts (14 tests) 191ms
[?2004h[?2004h ✓ src/config/extension-manager-hydration.test.ts (4 tests) 16032ms
✓ ExtensionManager hydration > should hydrate skill body with extension settings 8644ms
✓ ExtensionManager hydration > should hydrate agent system prompt with extension settings 1638ms
✓ ExtensionManager hydration > should hydrate hooks with extension settings 1497ms
✓ ExtensionManager hydration > should pick up new settings after restartExtension 4214ms
[?2004h[?2004h[?2004h ✓ src/ui/commands/toolsCommand.test.ts (9 tests) 615ms
✓ toolsCommand > should display an error if the tool registry is unavailable 335ms
stdout | src/ui/utils/terminalSetup.test.ts > terminalSetup > shouldPromptForTerminalSetup > should return true when keybindings file does not exist
Failed to read or parse keybindings, assuming prompt is needed: Error: ENOENT
✓ src/ui/utils/terminalSetup.test.ts (12 tests) 649ms
[?25h[?2004hstdout | src/commands/mcp/remove.test.ts > mcp remove command > unit tests with mocks > should remove a server from project settings
Server "test-server" removed from project settings.
✓ src/commands/mcp/remove.test.ts (6 tests) 1254ms
✓ mcp remove command > unit tests with mocks > should remove a server from project settings 410ms
✓ mcp remove command > integration tests with real file I/O > should actually remove a server from the settings file 356ms
(node:6232) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 render listeners added to [XtermStdout]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?25h ✓ src/ui/hooks/useLoadingIndicator.test.tsx (11 tests) 3630ms
✓ useLoadingIndicator > should initialize with default values when Idle 896ms
✓ useLoadingIndicator > should show interactive shell waiting phrase when shouldShowFocusHint is true 399ms
✓ useLoadingIndicator > should reflect values when Responding 452ms
✓ useLoadingIndicator > should show waiting phrase and retain elapsedTime when WaitingForConfirmation 320ms
✓ useLoadingIndicator > should reset elapsedTime and cycle phrases when transitioning from WaitingForConfirmation to Responding 588ms
✓ useLoadingIndicator > should reset timer and phrase when streamingState changes from Responding to Idle 316ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/MultiFolderTrustDialog.test.tsx (8 tests) 20767ms
✓ MultiFolderTrustDialog > renders the dialog with the list of folders 3088ms
✓ MultiFolderTrustDialog > calls onComplete and finishAddingDirectories with an error on escape 2525ms
✓ MultiFolderTrustDialog > calls finishAddingDirectories with an error and does not add directories when "No" is chosen 2459ms
✓ MultiFolderTrustDialog > adds directories to workspace context when "Yes" is chosen 2615ms
✓ MultiFolderTrustDialog > adds directories to workspace context and remembers them as trusted when "Yes, and remember" is chosen 2540ms
✓ MultiFolderTrustDialog > shows submitting message after a choice is made 2529ms
✓ MultiFolderTrustDialog > shows an error message and completes when config is missing 2461ms
✓ MultiFolderTrustDialog > collects and reports errors when some directories fail to be added 2521ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/shared/MaxSizedBox.test.tsx (13 tests | 1 failed) 7431ms
✓ > renders children without truncation when they fit 1528ms
✓ > hides lines when content exceeds maxHeight 547ms
✓ > hides lines at the end when content exceeds maxHeight and overflowDirection is bottom 399ms
✓ > shows plural "lines" when more than one line is hidden 308ms
✓ > shows singular "line" when exactly one line is hidden 310ms
✓ > accounts for additionalHiddenLinesCount 293ms
✓ > wraps text that exceeds maxWidth 278ms
✓ > does not truncate when maxHeight is undefined 214ms
✓ > renders an empty box for empty children 198ms
✓ > handles React.Fragment as a child 299ms
✓ > clips a long single text child from the top 390ms
✓ > clips a long single text child from the bottom 351ms
× > does not leak content after hidden indicator with bottom overflow 2280ms
→ Snapshot ` > does not leak content after hidden indicator with bottom overflow 1` mismatched
[?2004h[?2004h[?2004h ✓ src/ui/hooks/useReverseSearchCompletion.test.tsx (10 tests) 5175ms
✓ useReverseSearchCompletion > Core Hook Behavior > State Management > should initialize with default state 2619ms
✓ useReverseSearchCompletion > Core Hook Behavior > State Management > should reset state when reverseSearchActive becomes false 450ms
✓ useReverseSearchCompletion > Core Hook Behavior > State Management > Navigation > should handle navigateDown with no suggestions 303ms
✓ useReverseSearchCompletion > Filtering > hides suggestions when there are no matches 311ms
[?2004h ✓ src/ui/components/DebugProfiler.test.tsx (15 tests) 2917ms
✓ DebugProfiler Component > should return null when showDebugProfiler is false 1037ms
✓ DebugProfiler Component > should render stats when showDebugProfiler is true 774ms
✓ DebugProfiler Component > should report an action when a CoreEvent is emitted 324ms
✓ DebugProfiler Component > should report an action when an AppEvent is emitted 314ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/commands/extensions/disable.test.ts (12 tests) 670ms
[?2004h[?2004h ✓ src/ui/hooks/useIdeTrustListener.test.tsx (5 tests) 6932ms
✓ useIdeTrustListener > should initialize correctly with no trust information 2028ms
✓ useIdeTrustListener > should NOT set needsRestart when connecting for the first time 1228ms
✓ useIdeTrustListener > should set needsRestart when IDE trust changes 1163ms
✓ useIdeTrustListener > should set needsRestart when IDE disconnects 1187ms
✓ useIdeTrustListener > should NOT set needsRestart if trust value does not change 1293ms
[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004hstderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should initialize and read the history file from the correct path
An update to TestComponent inside a test was not wrapped in act(...).
When testing, code that causes React state updates should be wrapped into act(...):
act(() => {
/* fire events that update state */
});
/* assert on the output */
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
stderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should initialize and read the history file from the correct path
An update to TestComponent inside a test was not wrapped in act(...).
When testing, code that causes React state updates should be wrapped into act(...):
act(() => {
/* fire events that update state */
});
/* assert on the output */
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
[?2004h[?2004h ✓ src/utils/skillSettings.test.ts (10 tests) 368ms
[?2004h[?2004hstderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should handle a nonexistent history file gracefully
An update to TestComponent inside a test was not wrapped in act(...).
When testing, code that causes React state updates should be wrapped into act(...):
act(() => {
/* fire events that update state */
});
/* assert on the output */
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
stderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should handle a nonexistent history file gracefully
An update to TestComponent inside a test was not wrapped in act(...).
When testing, code that causes React state updates should be wrapped into act(...):
act(() => {
/* fire events that update state */
});
/* assert on the output */
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
[?25h[?2004h[?2004h[?2004hstderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should add a command and write to the history file
An update to TestComponent inside a test was not wrapped in act(...).
When testing, code that causes React state updates should be wrapped into act(...):
act(() => {
/* fire events that update state */
});
/* assert on the output */
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
stderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should add a command and write to the history file
An update to TestComponent inside a test was not wrapped in act(...).
When testing, code that causes React state updates should be wrapped into act(...):
act(() => {
/* fire events that update state */
});
/* assert on the output */
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
[?2004h[?2004h[?2004h[?25h[?25h[?2004h[?2004h[?2004hstderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should navigate history correctly with previous/next commands
An update to TestComponent inside a test was not wrapped in act(...).
When testing, code that causes React state updates should be wrapped into act(...):
act(() => {
/* fire events that update state */
});
/* assert on the output */
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
stderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should navigate history correctly with previous/next commands
An update to TestComponent inside a test was not wrapped in act(...).
When testing, code that causes React state updates should be wrapped into act(...):
act(() => {
/* fire events that update state */
});
/* assert on the output */
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
[?2004h[?2004h ✓ src/ui/hooks/useIncludeDirsTrust.test.tsx (6 tests) 8138ms
✓ useIncludeDirsTrust > should do nothing if isTrustedFolder is undefined 1982ms
✓ useIncludeDirsTrust > should do nothing if there are no pending directories 1227ms
✓ useIncludeDirsTrust > when folder trust is disabled or workspace is untrusted > should add directories directly when 'trust is disabled' 1216ms
✓ useIncludeDirsTrust > when folder trust is disabled or workspace is untrusted > should add directories directly when 'workspace is untrusted' 1154ms
✓ useIncludeDirsTrust > when folder trust is enabled and workspace is trusted > should add trusted dirs, collect untrusted errors, and open dialog for undefined 1170ms
✓ useIncludeDirsTrust > when folder trust is enabled and workspace is trusted > should only add directories and clear pending if no dialog is needed 1346ms
[?2004h ✓ src/ui/hooks/useInputHistoryStore.test.ts (14 tests) 17024ms
✓ useInputHistoryStore > should initialize with empty input history 1785ms
✓ useInputHistoryStore > should add input to history 1308ms
✓ useInputHistoryStore > should not add empty or whitespace-only inputs 1165ms
✓ useInputHistoryStore > should deduplicate consecutive identical messages 1197ms
✓ useInputHistoryStore > should initialize from logger successfully 1137ms
✓ useInputHistoryStore > should handle logger initialization failure gracefully 1176ms
✓ useInputHistoryStore > should initialize only once 1141ms
✓ useInputHistoryStore > should handle null logger gracefully 1124ms
✓ useInputHistoryStore > should trim input before adding to history 1183ms
✓ useInputHistoryStore > deduplication logic from previous implementation > should deduplicate consecutive messages from past sessions during initialization 1165ms
✓ useInputHistoryStore > deduplication logic from previous implementation > should deduplicate across session boundaries 1140ms
✓ useInputHistoryStore > deduplication logic from previous implementation > should preserve non-consecutive duplicates 1124ms
✓ useInputHistoryStore > deduplication logic from previous implementation > should handle complex deduplication with current session 1182ms
✓ useInputHistoryStore > deduplication logic from previous implementation > should maintain oldest-first order in final output 1158ms
[?2004h[?2004h[?2004h[?25hstderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should not add empty or whitespace-only commands to history
An update to TestComponent inside a test was not wrapped in act(...).
When testing, code that causes React state updates should be wrapped into act(...):
act(() => {
/* fire events that update state */
});
/* assert on the output */
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
stderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should not add empty or whitespace-only commands to history
An update to TestComponent inside a test was not wrapped in act(...).
When testing, code that causes React state updates should be wrapped into act(...):
act(() => {
/* fire events that update state */
});
/* assert on the output */
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
[?2004h[?2004h[?2004h[?2004h[?2004hstderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should truncate history to MAX_HISTORY_LENGTH (100)
An update to TestComponent inside a test was not wrapped in act(...).
When testing, code that causes React state updates should be wrapped into act(...):
act(() => {
/* fire events that update state */
});
/* assert on the output */
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
stderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should truncate history to MAX_HISTORY_LENGTH (100)
An update to TestComponent inside a test was not wrapped in act(...).
When testing, code that causes React state updates should be wrapped into act(...):
act(() => {
/* fire events that update state */
});
/* assert on the output */
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
[?2004hstdout | src/config/config.test.ts > loadCliConfig > Proxy configuration > should leave proxy to empty by default
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004h[?2004h[?2004hstderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should move an existing command to the top when re-added
An update to TestComponent inside a test was not wrapped in act(...).
When testing, code that causes React state updates should be wrapped into act(...):
act(() => {
/* fire events that update state */
});
/* assert on the output */
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
stderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should move an existing command to the top when re-added
An update to TestComponent inside a test was not wrapped in act(...).
When testing, code that causes React state updates should be wrapped into act(...):
act(() => {
/* fire events that update state */
});
/* assert on the output */
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
[?2004h[?2004h[?25h ✓ src/ui/components/Notifications.test.tsx (12 tests) 21630ms
✓ Notifications > renders nothing when no notifications 3061ms
✓ Notifications > renders startup warnings: [object Object] 2251ms
✓ Notifications > renders startup warnings: [object Object],[object Object] 1487ms
✓ Notifications > increments show count for low priority warnings 1340ms
✓ Notifications > filters out low priority warnings that exceeded max show count 1289ms
✓ Notifications > dismisses warnings on keypress 3750ms
✓ Notifications > renders init error 1824ms
✓ Notifications > does not render init error when streaming 1250ms
✓ Notifications > renders update notification 1349ms
✓ Notifications > renders screen reader nudge when enabled and not seen (no legacy file) 1513ms
✓ Notifications > migrates legacy screen reader nudge file 1234ms
✓ Notifications > does not render screen reader nudge when already seen in persistent state 1246ms
[?2004h[?2004h[?2004h[?2004h(node:9391) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:9391) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?2004h ✓ src/ui/hooks/useShellHistory.test.ts (7 tests) 9355ms
✓ useShellHistory > should initialize and read the history file from the correct path 1915ms
✓ useShellHistory > should handle a nonexistent history file gracefully 1194ms
✓ useShellHistory > should add a command and write to the history file 1247ms
✓ useShellHistory > should navigate history correctly with previous/next commands 1223ms
✓ useShellHistory > should not add empty or whitespace-only commands to history 1184ms
✓ useShellHistory > should truncate history to MAX_HISTORY_LENGTH (100) 1298ms
✓ useShellHistory > should move an existing command to the top when re-added 1256ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004hstderr | src/config/config.test.ts > loadCliConfig > Proxy configuration > should leave proxy to empty by default
innerError Error: Cannot find module '../build/Debug/pty.node'
Require stack:
- /build/gemini-cli/src/gemini-cli/node_modules/node-pty/lib/unixTerminal.js
- /build/gemini-cli/src/gemini-cli/node_modules/node-pty/lib/index.js
[90m at Module._resolveFilename (node:internal/modules/cjs/loader:1475:15)[39m
[90m at wrapResolveFilename (node:internal/modules/cjs/loader:1048:27)[39m
[90m at defaultResolveImplForCJSLoading (node:internal/modules/cjs/loader:1072:10)[39m
[90m at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1093:12)[39m
[90m at Module._load (node:internal/modules/cjs/loader:1261:25)[39m
[90m at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)[39m
[90m at Module.require (node:internal/modules/cjs/loader:1575:12)[39m
[90m at require (node:internal/modules/helpers:191:16)[39m
at Object. (/build/gemini-cli/src/gemini-cli/node_modules/[4mnode-pty[24m/src/unixTerminal.ts:20:11)
[90m at Module._compile (node:internal/modules/cjs/loader:1829:14)[39m {
code: [32m'MODULE_NOT_FOUND'[39m,
requireStack: [
[32m'/build/gemini-cli/src/gemini-cli/node_modules/node-pty/lib/unixTerminal.js'[39m,
[32m'/build/gemini-cli/src/gemini-cli/node_modules/node-pty/lib/index.js'[39m
]
}
[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig > Proxy configuration > should set proxy to http://localhost:7890 according to environment variable [https_proxy]
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig > Proxy configuration > should set proxy to http://localhost:7890 according to environment variable [http_proxy]
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
✓ src/ui/utils/toolLayoutUtils.test.ts (15 tests) 232ms
[?2004h[?2004h ✓ src/ui/components/messages/CompressionMessage.test.tsx (17 tests) 26193ms
✓ > pending state > renders pending message when compression is in progress 3702ms
✓ > normal compression (successful token reduction) > renders success message when tokens are reduced 2056ms
✓ > normal compression (successful token reduction) > renders success message for large successful compression (from 50000 to 25000) 1658ms
✓ > normal compression (successful token reduction) > renders success message for large successful compression (from 700000 to 350000) 1444ms
✓ > skipped compression (tokens increased or same) > renders skip message when compression would increase token count 1346ms
✓ > skipped compression (tokens increased or same) > renders skip message when token counts are equal 1388ms
✓ > message content validation > displays correct compression statistics (from 200 to 80) 1728ms
✓ > message content validation > displays correct compression statistics (from 500 to 150) 1299ms
✓ > message content validation > displays correct compression statistics (from 1500 to 400) 1298ms
✓ > message content validation > shows skip message for small histories when new tokens >= original tokens (50 -> 60) 1220ms
✓ > message content validation > shows skip message for small histories when new tokens >= original tokens (100 -> 100) 1341ms
✓ > message content validation > shows skip message for small histories when new tokens >= original tokens (49999 -> 50000) 1286ms
✓ > message content validation > shows compression failure message for large histories when new tokens >= original tokens (50000 -> 50100) 1384ms
✓ > message content validation > shows compression failure message for large histories when new tokens >= original tokens (700000 -> 710000) 1310ms
✓ > message content validation > shows compression failure message for large histories when new tokens >= original tokens (100000 -> 100000) 1206ms
✓ > failure states > renders failure message when model returns an empty summary 1226ms
✓ > failure states > renders failure message for token count errors 1245ms
[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig > Proxy configuration > should set proxy to http://localhost:7890 according to environment variable [HTTPS_PROXY]
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004h[?2004h ✓ src/config/extension-manager-themes.spec.ts (2 tests) 2857ms
✓ ExtensionManager theme loading > should register themes from an extension when started 650ms
✓ ExtensionManager theme loading > should revert to default theme when extension is stopped 2095ms
[?25h(node:6232) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 render listeners added to [XtermStdout]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?2004h[?2004h ✓ src/ui/components/views/ExtensionRegistryView.test.tsx (6 tests) 12793ms
✓ ExtensionRegistryView > should render extensions 3495ms
✓ ExtensionRegistryView > should use useRegistrySearch hook 1438ms
✓ ExtensionRegistryView > should call search function when typing 2614ms
✓ ExtensionRegistryView > should call onSelect when extension is selected and Enter is pressed in details 2356ms
✓ ExtensionRegistryView > should show [Update available] and hide [Installed] when update is available 1454ms
✓ ExtensionRegistryView > should show [Updating...] and hide [Installed] when update is in progress 1400ms
stdout | src/config/config.test.ts > loadCliConfig > Proxy configuration > should set proxy to http://localhost:7890 according to environment variable [HTTP_PROXY]
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?25h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig > should add IDE workspace folders from GEMINI_CLI_IDE_WORKSPACE_PATH to include directories
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
✓ src/ui/hooks/useEditorSettings.test.tsx (10 tests) 12789ms
✓ useEditorSettings > should initialize with dialog closed 1810ms
✓ useEditorSettings > should open editor dialog when openEditorDialog is called 1251ms
✓ useEditorSettings > should close editor dialog when exitEditorDialog is called 1375ms
✓ useEditorSettings > should handle editor selection successfully 1232ms
✓ useEditorSettings > should handle clearing editor preference (undefined editor) 1178ms
✓ useEditorSettings > should handle different editor types 1193ms
✓ useEditorSettings > should handle different setting scopes 1141ms
✓ useEditorSettings > should not set preference for unavailable editors 1142ms
✓ useEditorSettings > should not set preference for editors not allowed in sandbox 1195ms
✓ useEditorSettings > should handle errors during editor selection 1232ms
stdout | src/config/config.test.ts > loadCliConfig > should skip inaccessible workspace folders from GEMINI_CLI_IDE_WORKSPACE_PATH
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[IDE] Skipping inaccessible workspace folder: /nonexistent/restricted/folder (EACCES: permission denied)
✓ src/ui/contexts/MouseContext.test.tsx (18 tests) 23384ms
✓ MouseContext > should subscribe and unsubscribe a handler 2409ms
✓ MouseContext > should not call handler if not active 1353ms
✓ MouseContext > should emit SelectionWarning when move event is unhandled and has coordinates 1306ms
✓ MouseContext > should not emit SelectionWarning when move event is handled 1380ms
✓ MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<0;10;20M'" as 'left-press' 1393ms
✓ MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<0;10;20m'" as 'left-release' 1233ms
✓ MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<2;10;20M'" as 'right-press' 1240ms
✓ MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<1;10;20M'" as 'middle-press' 1218ms
✓ MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<64;10;20M'" as 'scroll-up' 1273ms
✓ MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<65;10;20M'" as 'scroll-down' 1236ms
✓ MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<32;10;20M'" as 'move' 1189ms
✓ MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<4;10;20M'" as 'left-press' 1518ms
✓ MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<8;10;20M'" as 'left-press' 1303ms
✓ MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<20;10;20M'" as 'left-press' 1182ms
✓ MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<68;10;20M'" as 'scroll-up' 1219ms
✓ MouseContext > should emit a double-click event when two left-presses occur quickly at the same position 1288ms
✓ MouseContext > should NOT emit a double-click event if clicks are too far apart 1228ms
✓ MouseContext > should NOT emit a double-click event if too much time passes 355ms
[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig > should use default fileFilter options when unconfigured
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig > should be non-interactive when isCommand is set
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > Hierarchical Memory Loading (config.ts) - Placeholder Suite > should pass extension context file paths to loadServerHierarchicalMemory
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004h[?2004h ✓ src/acp/fileSystemService.test.ts (10 tests) 451ms
stdout | src/config/config.test.ts > Hierarchical Memory Loading (config.ts) - Placeholder Suite > should pass includeDirectories to loadServerHierarchicalMemory when loadMemoryFromIncludeDirectories is true
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004h[?2004h(node:9742) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:9742) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?2004hstdout | src/config/config.test.ts > Hierarchical Memory Loading (config.ts) - Placeholder Suite > should NOT pass includeDirectories to loadServerHierarchicalMemory when loadMemoryFromIncludeDirectories is false
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h ✓ src/ui/hooks/useKeypress.test.tsx (22 tests) 6011ms
✓ useKeypress > should not listen if isActive is false 1250ms
✓ useKeypress > should listen for keypress when active for key 'a' 330ms
✓ useKeypress > should listen for keypress when active for key 'left' 574ms
✓ useKeypress > in 'PASTE_WORKAROUND true' > should handle keypress interspersed with pastes 345ms
✓ useKeypress > in 'PASTE_WORKAROUND false' > should handle back to back pastes 374ms
[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useTerminalTheme.test.tsx (9 tests) 3821ms
✓ useTerminalTheme > should subscribe to terminal background events on mount 1660ms
✓ useTerminalTheme > should switch to light theme when background is light and not call refreshStatic directly 333ms
✓ useTerminalTheme > should switch theme even if terminal background report is identical to previousColor if current theme is mismatched 514ms
[?2004h[?2004h ✓ src/ui/contexts/SessionContext.test.tsx (5 tests) 6975ms
✓ SessionStatsContext > should provide the correct initial state 1977ms
✓ SessionStatsContext > should update metrics when the uiTelemetryService emits an update 1283ms
✓ SessionStatsContext > should not update metrics if the data is the same 1184ms
✓ SessionStatsContext > should update session ID and reset stats when the uiTelemetryService emits a clear event 1184ms
✓ SessionStatsContext > should throw an error when useSessionStats is used outside of a provider 1306ms
[?2004h[?25h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/commands/bugCommand.test.ts (3 tests) 573ms
✓ bugCommand > should generate the default GitHub issue URL 370ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?25h[?2004hstderr | src/config/config.test.ts > Approval mode tool exclusion logic > should exclude only ask_user in non-interactive mode with yolo approval mode
YOLO mode is enabled. All tool calls will be automatically approved.
[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/PermissionsModifyTrustDialog.test.tsx (7 tests | 1 failed) 19177ms
✓ PermissionsModifyTrustDialog > should render the main dialog with current trust level 3706ms
✓ PermissionsModifyTrustDialog > should display the inherited trust note from parent 1764ms
✓ PermissionsModifyTrustDialog > should display the inherited trust note from IDE 1557ms
× PermissionsModifyTrustDialog > should render the labels with folder names 4113ms
→ expected '╭────────────────────────────────────…' to contain 'Trust this folder (dir)'
✓ PermissionsModifyTrustDialog > should call onExit when escape is pressed 2971ms
✓ PermissionsModifyTrustDialog > should commit and restart `r` keypress 2556ms
✓ PermissionsModifyTrustDialog > should not commit when escape is pressed during restart prompt 2476ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004hstderr | src/config/config.test.ts > Approval mode tool exclusion logic > should exclude only ask_user in non-interactive mode with legacy yolo flag
YOLO mode is enabled. All tool calls will be automatically approved.
[?2004h[?2004h[?2004h[?2004hstderr | src/ui/auth/BannedAccountDialog.test.tsx > BannedAccountDialog > shows URL when browser cannot be launched
An update to BannedAccountDialog inside a test was not wrapped in act(...).
When testing, code that causes React state updates should be wrapped into act(...):
act(() => {
/* fire events that update state */
});
/* assert on the output */
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004hstderr | src/config/config.test.ts > Approval mode tool exclusion logic > should not exclude interactive tools in interactive mode regardless of approval mode
YOLO mode is enabled. All tool calls will be automatically approved.
[?2004h[?2004h[?2004h ✓ src/ui/utils/ConsolePatcher.test.ts (12 tests) 396ms
stderr | src/config/config.test.ts > Approval mode tool exclusion logic > should not exclude interactive tools in interactive mode regardless of approval mode
YOLO mode is enabled. All tool calls will be automatically approved.
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004hstderr | src/config/config.test.ts > Approval mode tool exclusion logic > should fall back to default approval mode if plan mode is requested but not enabled
Approval mode "plan" is disabled in your settings. Falling back to "default".
✓ src/ui/themes/theme.test.ts (14 tests) 385ms
[?2004h ✓ src/ui/hooks/useGitBranchName.test.tsx (7 tests) 9600ms
✓ useGitBranchName > should return branch name 2104ms
✓ useGitBranchName > should return undefined if git command fails 1211ms
✓ useGitBranchName > should return short commit hash if branch is HEAD (detached state) 1183ms
✓ useGitBranchName > should return undefined if branch is HEAD and getting commit hash fails 1233ms
✓ useGitBranchName > should update branch name when .git/HEAD changes 1282ms
✓ useGitBranchName > should handle watcher setup error silently 1265ms
✓ useGitBranchName > should cleanup watcher on unmount 1283ms
✓ src/ui/auth/BannedAccountDialog.test.tsx (10 tests) 17638ms
✓ BannedAccountDialog > renders the suspension message from accountSuspensionInfo 3458ms
✓ BannedAccountDialog > renders menu options with appeal link text from response 1467ms
✓ BannedAccountDialog > hides form option when no appealUrl is provided 1314ms
✓ BannedAccountDialog > uses default label when appealLinkText is not provided 1372ms
✓ BannedAccountDialog > opens browser when appeal option is selected 2156ms
✓ BannedAccountDialog > shows URL when browser cannot be launched 2012ms
✓ BannedAccountDialog > calls onExit when "Exit" is selected 1326ms
✓ BannedAccountDialog > calls onChangeAuth when "Change authentication" is selected 1331ms
✓ BannedAccountDialog > exits on escape key 1473ms
✓ BannedAccountDialog > renders snapshot correctly 1670ms
[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig with allowed-mcp-server-names > should allow all MCP servers if the flag is not provided
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?25h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig with allowed-mcp-server-names > should allow only the specified MCP server
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig with allowed-mcp-server-names > should allow multiple specified MCP servers
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004hstdout | src/config/config.test.ts > loadCliConfig with allowed-mcp-server-names > should handle server names that do not exist
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004hstdout | src/config/config.test.ts > loadCliConfig with allowed-mcp-server-names > should allow no MCP servers if the flag is provided but empty
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
✓ src/ui/components/HooksDialog.test.tsx (12 tests) 30169ms
✓ HooksDialog > snapshots > renders empty hooks dialog 3604ms
✓ HooksDialog > snapshots > renders single hook with security warning, source, and tips 1828ms
✓ HooksDialog > snapshots > renders hooks grouped by event name with enabled and disabled status 2420ms
✓ HooksDialog > snapshots > renders hook with all metadata (matcher, sequential, timeout) 1778ms
✓ HooksDialog > snapshots > renders hook using command as name when name is not provided 1563ms
✓ HooksDialog > keyboard interaction > should call onClose when escape key is pressed 1365ms
✓ HooksDialog > scrolling behavior > should not show scroll indicators when hooks fit within maxVisibleHooks 1567ms
✓ HooksDialog > scrolling behavior > should show scroll down indicator when there are more hooks than maxVisibleHooks 1976ms
✓ HooksDialog > scrolling behavior > should scroll down when down arrow is pressed 3630ms
✓ HooksDialog > scrolling behavior > should scroll up when up arrow is pressed after scrolling down 4545ms
✓ HooksDialog > scrolling behavior > should not scroll beyond the end 3096ms
✓ HooksDialog > scrolling behavior > should not scroll above the beginning 2714ms
[?2004hstdout | src/config/config.test.ts > loadCliConfig with allowed-mcp-server-names > should read allowMCPServers from settings
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
✓ src/config/extensions/github_fetch.test.ts (8 tests) 426ms
[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig with allowed-mcp-server-names > should read excludeMCPServers from settings
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h ✓ src/ui/utils/formatters.test.ts (32 tests) 621ms
stdout | src/config/config.test.ts > loadCliConfig with allowed-mcp-server-names > should override allowMCPServers with excludeMCPServers if overlapping
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stdout | src/config/config.test.ts > loadCliConfig with allowed-mcp-server-names > should prioritize mcp server flag if set
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h ✓ src/ui/components/AppHeader.test.tsx (11 tests) 24798ms
✓ > should render the banner with default text 3948ms
✓ > should render the banner with warning text 1599ms
✓ > should not render the banner when no flags are set 1720ms
✓ > should not render the default banner if shown count is 5 or more 1890ms
✓ > should increment the version count when default banner is displayed 1807ms
✓ > should render banner text with unescaped newlines 1396ms
✓ > should render Tips when tipsShown is less than 10 1729ms
✓ > should NOT render Tips when tipsShown is 10 or more 1324ms
✓ > should show tips until they have been shown 10 times (persistence flow) 2916ms
✓ > should render the full logo when logged out 2589ms
✓ > should NOT render Tips when ui.hideTips is true 3828ms
[?2004h ✓ src/ui/components/ValidationDialog.test.tsx (8 tests) 19079ms
✓ ValidationDialog > initial render (choosing state) > should render the main message and two options 3108ms
✓ ValidationDialog > initial render (choosing state) > should render learn more URL when provided 1452ms
✓ ValidationDialog > initial render (choosing state) > should call onChoice with cancel when ESCAPE is pressed 2298ms
✓ ValidationDialog > onChoice handling > should call onChoice with change_auth when that option is selected 2319ms
✓ ValidationDialog > onChoice handling > should call onChoice with verify when no validation link is provided 2308ms
✓ ValidationDialog > onChoice handling > should open browser and transition to waiting state when verify is selected with a link 2538ms
✓ ValidationDialog > headless mode > should show URL in message when browser cannot be launched 2583ms
✓ ValidationDialog > error state > should show error and options when browser fails to open 2432ms
stdout | src/config/config.test.ts > loadCliConfig with allowed-mcp-server-names > should prioritize CLI flag over both allowed and excluded settings
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004hstdout | src/config/config.test.ts > loadCliConfig with admin.mcp.config > should use local configuration if admin allowlist is empty
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig with admin.mcp.config > should ignore locally configured servers not present in the allowlist
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?25h1 MCP server is not allowlisted by your administrator. To enable it, please request an update to the settings at: https://goo.gle/manage-gemini-clistdout | src/config/config.test.ts > loadCliConfig with admin.mcp.config > should clear command, args, env, and cwd for present servers
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?25hstdout | src/config/config.test.ts > loadCliConfig with admin.mcp.config > should not initialize a server if it is in allowlist but missing locally
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
1 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[?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-cliWARNING: Workspace policies changed or are new. Automatically accepting and loading them.
stdout | src/config/config.test.ts > loadCliConfig with admin.mcp.config > should merge local fields and prefer admin tool filters
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stdout | src/config/config.test.ts > loadCliConfig with admin.mcp.config > should use local tool filters when admin does not define them
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h ✓ src/config/extension-manager-scope.test.ts (3 tests) 608ms
✓ ExtensionManager Settings Scope > should prioritize workspace settings over user settings and report correct scope 410ms
✓ src/ui/commands/planCommand.test.ts (7 tests) 870ms
✓ planCommand > should have the correct name and description 317ms
[?2004h[?2004h(node:6232) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 render listeners added to [XtermStdout]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
✓ src/config/workspace-policy-cli.test.ts (8 tests) 7805ms
✓ Workspace-Level Policy CLI Integration > should pass workspacePoliciesDir to createPolicyEngineConfig when folder is trusted 2237ms
✓ Workspace-Level Policy CLI Integration > should NOT pass workspacePoliciesDir to createPolicyEngineConfig when folder is NOT trusted 978ms
✓ Workspace-Level Policy CLI Integration > should NOT pass workspacePoliciesDir if integrity is NEW but fileCount is 0 713ms
✓ Workspace-Level Policy CLI Integration > should automatically accept and load workspacePoliciesDir if integrity MISMATCH in non-interactive mode 933ms
✓ Workspace-Level Policy CLI Integration > should automatically accept and load workspacePoliciesDir if integrity MISMATCH in interactive mode when AUTO_ACCEPT is true 843ms
✓ Workspace-Level Policy CLI Integration > should automatically accept and load workspacePoliciesDir if integrity is NEW in interactive mode when AUTO_ACCEPT is true 557ms
✓ Workspace-Level Policy CLI Integration > should set policyUpdateConfirmationRequest if integrity MISMATCH in interactive mode when AUTO_ACCEPT is false 1453ms
[?25h[?2004h[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig folderTrust > should be false when folderTrust is false
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?25h[?2004h ❯ src/ui/components/ExitPlanModeDialog.test.tsx (28 tests | 7 failed) 291877ms
✓ ExitPlanModeDialog > useAlternateBuffer: true > renders correctly with plan content 3436ms
✓ ExitPlanModeDialog > useAlternateBuffer: true > calls onApprove with AUTO_EDIT when first option is selected 6515ms
✓ ExitPlanModeDialog > useAlternateBuffer: true > calls onApprove with DEFAULT when second option is selected 10192ms
✓ ExitPlanModeDialog > useAlternateBuffer: true > calls onFeedback when feedback is typed and submitted 36031ms
✓ ExitPlanModeDialog > useAlternateBuffer: true > calls onCancel when Esc is pressed 2494ms
✓ ExitPlanModeDialog > useAlternateBuffer: true > displays error state when file read fails 277ms
✓ ExitPlanModeDialog > useAlternateBuffer: true > displays error state when plan file is empty 252ms
× ExitPlanModeDialog > useAlternateBuffer: true > handles long plan content appropriately 34017ms
→ Snapshot `ExitPlanModeDialog > useAlternateBuffer: true > handles long plan content appropriately 1` mismatched
✓ ExitPlanModeDialog > useAlternateBuffer: true > allows number key quick selection 6901ms
× ExitPlanModeDialog > useAlternateBuffer: true > clears feedback text when Ctrl+C is pressed while editing 43608ms
→ expected 'Overview\n\nAdd user authentication t…' to contain 'test feedback'
× ExitPlanModeDialog > useAlternateBuffer: true > bubbles up Ctrl+C when feedback is empty while editing 18870ms
→ expected 'Overview\n\nAdd user authentication t…' to contain 'test'
✓ ExitPlanModeDialog > useAlternateBuffer: true > does not submit empty feedback when Enter is pressed 7992ms
✓ ExitPlanModeDialog > useAlternateBuffer: true > allows arrow navigation while typing feedback to change selection 22423ms
✓ ExitPlanModeDialog > useAlternateBuffer: true > automatically submits feedback when Ctrl+G is used to edit the plan 5122ms
× ExitPlanModeDialog > useAlternateBuffer: false > renders correctly with plan content 6871ms
→ Snapshot `ExitPlanModeDialog > useAlternateBuffer: false > renders correctly with plan content 1` mismatched
✓ ExitPlanModeDialog > useAlternateBuffer: false > calls onApprove with AUTO_EDIT when first option is selected 3642ms
✓ ExitPlanModeDialog > useAlternateBuffer: false > calls onApprove with DEFAULT when second option is selected 4823ms
✓ ExitPlanModeDialog > useAlternateBuffer: false > calls onFeedback when feedback is typed and submitted 14737ms
✓ ExitPlanModeDialog > useAlternateBuffer: false > calls onCancel when Esc is pressed 1955ms
✓ ExitPlanModeDialog > useAlternateBuffer: false > displays error state when file read fails 423ms
✓ ExitPlanModeDialog > useAlternateBuffer: false > displays error state when plan file is empty 337ms
× ExitPlanModeDialog > useAlternateBuffer: false > handles long plan content appropriately 8880ms
→ Snapshot `ExitPlanModeDialog > useAlternateBuffer: false > handles long plan content appropriately 1` mismatched
✓ ExitPlanModeDialog > useAlternateBuffer: false > allows number key quick selection 3158ms
× ExitPlanModeDialog > useAlternateBuffer: false > clears feedback text when Ctrl+C is pressed while editing 18969ms
→ expected 'Overview\n\nAdd user authentication t…' to contain 'test feedback'
× ExitPlanModeDialog > useAlternateBuffer: false > bubbles up Ctrl+C when feedback is empty while editing 10461ms
→ expected 'Overview\n\nAdd user authentication t…' to contain 'test'
✓ ExitPlanModeDialog > useAlternateBuffer: false > does not submit empty feedback when Enter is pressed 4366ms
✓ ExitPlanModeDialog > useAlternateBuffer: false > allows arrow navigation while typing feedback to change selection 11617ms
✓ ExitPlanModeDialog > useAlternateBuffer: false > automatically submits feedback when Ctrl+G is used to edit the plan 3446ms
stdout | src/config/config.test.ts > loadCliConfig folderTrust > should be true when folderTrust is true
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
✓ src/utils/userStartupWarnings.test.ts (9 tests) 606ms
[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig folderTrust > should be true by default
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?25h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig compressionThreshold > should pass settings to the core config
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004hstdout | src/config/config.test.ts > loadCliConfig compressionThreshold > should have default compressionThreshold if not in settings
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
✓ src/utils/featureToggleUtils.test.ts (7 tests) 507ms
[?2004hstdout | src/config/config.test.ts > loadCliConfig useRipgrep > should be true by default when useRipgrep is not set in settings
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig useRipgrep > should be false when useRipgrep is set to false in settings
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig useRipgrep > should be true when useRipgrep is explicitly set to true in settings
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig directWebFetch > should be false by default when directWebFetch is not set in settings
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004hstdout | src/config/config.test.ts > loadCliConfig directWebFetch > should be true when directWebFetch is set to true in settings
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h ✓ src/config/mcp/mcpServerEnablement.test.ts (14 tests) 502ms
stdout | src/config/config.test.ts > loadCliConfig context management > should be false by default when generalistProfile / context management is not set in settings
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h ✓ src/ui/hooks/useHookDisplayState.test.ts (6 tests) 2243ms
✓ useHookDisplayState > should initialize with empty hooks 1009ms
✓ useHookDisplayState > should add a hook when HookStart event is emitted 309ms
✓ useHookDisplayState > should remove a hook immediately if duration > minimum duration 354ms
stdout | src/config/config.test.ts > loadCliConfig context management > should be true when generalistProfile is set to true in settings
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig context management > should be true when contextManagement is set to true in settings
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stdout | src/config/config.test.ts > screenReader configuration > should use screenReader value from settings if CLI flag is not present (settings true)
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004hstdout | src/config/config.test.ts > screenReader configuration > should use screenReader value from settings if CLI flag is not present (settings false)
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004hstdout | src/config/config.test.ts > screenReader configuration > should prioritize --screen-reader CLI flag (true) over settings (false)
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h ❯ src/ui/App.test.tsx (12 tests | 7 failed) 20575ms
✓ App > should render main content and composer when not quitting 4407ms
✓ App > should render quitting display when quittingMessages is set 1317ms
✓ App > should render full history in alternate buffer mode when quittingMessages is set 1562ms
× App > should render dialog manager when dialogs are visible 971ms
→ expected 'Notifications\n\nDialogManager\n' to contain 'Tips for getting started'
✓ App > should show Ctrl+'C' exit prompt when dialogs are visible and 'ctrlCPressedOnce' is true 821ms
✓ App > should show Ctrl+'D' exit prompt when dialogs are visible and 'ctrlDPressedOnce' is true 669ms
× App > should render ScreenReaderAppLayout when screen reader is enabled 2192ms
→ expected 'Notifications\nFooter\n\n\n\n\n\n\n\n…' to contain 'Tips for getting started'
× App > should render DefaultAppLayout when screen reader is not enabled 654ms
→ expected 'Notifications\n\nComposer\n' to contain 'Tips for getting started'
× App > should render ToolConfirmationQueue along with Composer when tool is confirming and experiment is on 3028ms
→ expected 'Notifications\n\nComposer\n' to contain 'Tips for getting started'
× App > Snapshots > renders default layout correctly 1560ms
→ Snapshot `App > Snapshots > renders default layout correctly 1` mismatched
× App > Snapshots > renders screen reader layout correctly 2540ms
→ Snapshot `App > Snapshots > renders screen reader layout correctly 1` mismatched
× App > Snapshots > renders with dialogs visible 808ms
→ Snapshot `App > Snapshots > renders with dialogs visible 1` mismatched
stdout | src/config/config.test.ts > screenReader configuration > should be false by default when no flag or setting is present
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stdout | src/config/config.test.ts > loadCliConfig tool exclusions > should not exclude interactive tools in interactive mode without YOLO
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004hstdout | src/config/config.test.ts > loadCliConfig tool exclusions > should not exclude interactive tools in interactive mode with YOLO
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stderr | src/config/config.test.ts > loadCliConfig tool exclusions > should not exclude interactive tools in interactive mode with YOLO
YOLO mode is enabled. All tool calls will be automatically approved.
[?2004hstdout | src/config/config.test.ts > loadCliConfig tool exclusions > should exclude interactive tools in non-interactive mode without YOLO
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004hstdout | src/config/config.test.ts > loadCliConfig tool exclusions > should exclude only ask_user in non-interactive mode with YOLO
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stderr | src/config/config.test.ts > loadCliConfig tool exclusions > should exclude only ask_user in non-interactive mode with YOLO
YOLO mode is enabled. All tool calls will be automatically approved.
stdout | src/config/config.test.ts > loadCliConfig tool exclusions > should exclude ask_user in interactive mode when --acp is provided
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig tool exclusions > should exclude ask_user in interactive mode when --experimental-acp is provided
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig tool exclusions > should not exclude shell tool in non-interactive mode when --allowed-tools="ShellTool" is set
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig tool exclusions > should not exclude web-fetch in non-interactive mode at config level
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004h[?25hstdout | src/config/config.test.ts > loadCliConfig tool exclusions > should not exclude web-fetch in non-interactive mode when allowed
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig tool exclusions > should not exclude shell tool in non-interactive mode when --allowed-tools="run_shell_command" is set
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
✓ src/utils/hookSettings.test.ts (8 tests) 237ms
[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig tool exclusions > should not exclude shell tool in non-interactive mode when --allowed-tools="ShellTool(wc)" is set
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stdout | src/config/config.test.ts > loadCliConfig interactive > should be interactive if isTTY and no prompt
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig interactive > should be interactive if prompt-interactive is set
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig interactive > should not be interactive if not isTTY and no prompt
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig interactive > should not be interactive if prompt is set
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
✓ src/ui/components/ToastDisplay.test.tsx (19 tests) 14844ms
✓ ToastDisplay > renders nothing by default 2823ms
✓ ToastDisplay > renders Ctrl+C prompt 1712ms
✓ ToastDisplay > renders warning message 1218ms
✓ ToastDisplay > renders hint message 1226ms
✓ ToastDisplay > renders Ctrl+D prompt 1252ms
✓ ToastDisplay > renders Escape prompt when buffer is empty 1311ms
✓ ToastDisplay > renders Escape prompt when buffer is NOT empty 1344ms
✓ ToastDisplay > renders Queue Error Message 1225ms
✓ ToastDisplay > renders expansion hint when showIsExpandableHint is true 1231ms
✓ ToastDisplay > renders collapse hint when showIsExpandableHint is true and constrainHeight is false 1202ms
[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig interactive > should be interactive if positional prompt words are provided with other flags
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig interactive > should be interactive if positional prompt words are provided with multiple flags
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stderr | src/config/config.test.ts > loadCliConfig interactive > should be interactive if positional prompt words are provided with multiple flags
YOLO mode is enabled. All tool calls will be automatically approved.
✓ src/ui/commands/modelCommand.test.ts (8 tests) 1689ms
✓ modelCommand > should return a dialog action to open the model dialog when no args 685ms
✓ modelCommand > set subcommand > should set the model and log the command 354ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig interactive > should be interactive if positional prompt words are provided with extensions flag
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
✓ src/config/extension-manager-skills.test.ts (3 tests) 5032ms
✓ ExtensionManager skills validation > should emit a warning during install if skills directory is not empty but no skills are loaded 3197ms
✓ ExtensionManager skills validation > should emit a warning during load if skills directory is not empty but no skills are loaded 915ms
✓ ExtensionManager skills validation > should succeed if skills are correctly loaded 900ms
[?2004h[?2004h ✓ src/ui/components/views/McpStatus.test.tsx (16 tests) 25545ms
✓ McpStatus > renders correctly with a connected server 3204ms
✓ McpStatus > renders correctly with authenticated OAuth status 1798ms
✓ McpStatus > renders correctly with expired OAuth status 1328ms
✓ McpStatus > renders correctly with unauthenticated OAuth status 1295ms
✓ McpStatus > renders correctly with a disconnected server 1687ms
✓ McpStatus > renders correctly when discovery is in progress 1741ms
✓ McpStatus > renders correctly with schema enabled 1467ms
✓ McpStatus > renders correctly with parametersJsonSchema 1331ms
✓ McpStatus > renders correctly with prompts 1332ms
✓ McpStatus > renders correctly with resources 1776ms
✓ McpStatus > renders correctly with a blocked server 1218ms
✓ McpStatus > renders correctly with both blocked and unblocked servers 1380ms
✓ McpStatus > renders only blocked servers when no configured servers exist 1225ms
✓ McpStatus > renders correctly with a connecting server 1276ms
✓ McpStatus > renders correctly with a server error 1518ms
✓ McpStatus > truncates resources when exceeding limit 1911ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/UserIdentity.test.tsx (8 tests) 6487ms
✓ > should render login message and auth indicator 2132ms
✓ > should render the user email on the very first frame (regression test) 454ms
✓ > should render login message if email is missing 1285ms
✓ > should render plan name and upgrade indicator 374ms
✓ > should not render if authType is missing 1189ms
✓ > should render non-Google auth message 371ms
✓ > should render specific tier name when provided 361ms
[?2004hstdout | src/config/config.test.ts > loadCliConfig interactive > should handle multiple positional words correctly
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004hstdout | src/config/config.test.ts > loadCliConfig interactive > should handle multiple positional words with flags
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004h ✓ src/commands/extensions/list.test.ts (8 tests) 819ms
[?2004hstdout | src/config/config.test.ts > loadCliConfig interactive > should handle empty positional arguments
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig interactive > should handle extensions flag with positional arguments correctly
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h ✓ src/ui/commands/policiesCommand.test.ts (5 tests) 1008ms
✓ policiesCommand > should have correct command definition 672ms
[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig interactive > should be interactive if no positional prompt words are provided with flags
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig approval mode > should default to DEFAULT approval mode when no flags are set
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig approval mode > should set YOLO approval mode when --yolo flag is used
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stderr | src/config/config.test.ts > loadCliConfig approval mode > should set YOLO approval mode when --yolo flag is used
YOLO mode is enabled. All tool calls will be automatically approved.
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig approval mode > should set YOLO approval mode when -y flag is used
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stderr | src/config/config.test.ts > loadCliConfig approval mode > should set YOLO approval mode when -y flag is used
YOLO mode is enabled. All tool calls will be automatically approved.
[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004hstdout | src/config/config.test.ts > loadCliConfig approval mode > should set DEFAULT approval mode when --approval-mode=default
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
✓ src/commands/extensions/link.test.ts (5 tests) 441ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig approval mode > should set AUTO_EDIT approval mode when --approval-mode=auto_edit
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig approval mode > should set YOLO approval mode when --approval-mode=yolo
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stderr | src/config/config.test.ts > loadCliConfig approval mode > should set YOLO approval mode when --approval-mode=yolo
YOLO mode is enabled. All tool calls will be automatically approved.
(node:6143) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 101 model-changed listeners added to [CoreEventEmitter]. MaxListeners is 100. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:6143) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 101 memory-changed listeners added to [CoreEventEmitter]. MaxListeners is 100. Use emitter.setMaxListeners() to increase limit
[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig approval mode > should prioritize --approval-mode over --yolo when both would be valid (but validation prevents this)
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h ✓ src/ui/components/shared/TabHeader.test.tsx (13 tests) 20629ms
✓ TabHeader > rendering > renders null for single tab 2928ms
✓ TabHeader > rendering > renders all tab headers 2260ms
✓ TabHeader > rendering > renders separators between tabs 1336ms
✓ TabHeader > arrows > shows arrows by default 1410ms
✓ TabHeader > arrows > hides arrows when showArrows is false 1360ms
✓ TabHeader > status icons > shows status icons by default 1411ms
✓ TabHeader > status icons > hides status icons when showStatusIcons is false 1437ms
✓ TabHeader > status icons > shows checkmark for completed tabs 1404ms
✓ TabHeader > status icons > shows special icon for special tabs 1282ms
✓ TabHeader > status icons > uses tab statusIcon when provided 1239ms
✓ TabHeader > status icons > uses custom renderStatusIcon when provided 1260ms
✓ TabHeader > status icons > truncates long headers when not selected 1820ms
✓ TabHeader > status icons > falls back to default when renderStatusIcon returns undefined 1402ms
[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig approval mode > should fall back to --yolo behavior when --approval-mode is not set
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stderr | src/config/config.test.ts > loadCliConfig approval mode > should fall back to --yolo behavior when --approval-mode is not set
YOLO mode is enabled. All tool calls will be automatically approved.
✓ src/ui/components/shared/Scrollable.test.tsx (9 tests) 14088ms
✓ > renders children 3427ms
✓ > renders multiple children 1375ms
✓ > matches snapshot 482ms
✓ > updates scroll position correctly when scrollBy is called multiple times in the same tick 1412ms
✓ > keypress handling > 'scrolls down when overflow exists and…' 1546ms
✓ > keypress handling > 'scrolls up when overflow exists and n…' 1398ms
✓ > keypress handling > 'does not scroll up when at top (allow…' 1318ms
✓ > keypress handling > 'does not scroll down when at bottom (…' 1539ms
✓ > keypress handling > 'does not scroll when content fits (al…' 1542ms
[?2004h[?25h[?2004hstdout | src/config/config.test.ts > loadCliConfig approval mode > should set Plan approval mode when --approval-mode=plan is used and plan is enabled
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
(node:6207) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 101 settings-changed listeners added to [CoreEventEmitter]. MaxListeners is 100. Use emitter.setMaxListeners() to increase limit
[?2004h[?2004h[?2004h ✓ src/ui/components/ToolStatsDisplay.test.tsx (5 tests) 10843ms
✓ > should render "no tool calls" message when there are no active tools 3080ms
✓ > should display stats for a single tool correctly 1903ms
✓ > should display stats for multiple tools correctly 1637ms
✓ > should handle large values without wrapping or overlapping 1661ms
✓ > should handle zero decisions gracefully 2517ms
[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig approval mode > should ignore "yolo" in settings.tools.approvalMode and fall back to DEFAULT
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig approval mode > should throw error when --approval-mode=plan is used but plan is disabled
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stderr | src/config/config.test.ts > loadCliConfig approval mode > should throw error when --approval-mode=plan is used but plan is disabled
Approval mode "plan" is disabled in your settings. Falling back to "default".
[?2004hstdout | src/config/config.test.ts > loadCliConfig approval mode > should allow plan approval mode by default when --approval-mode=plan is used
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h ✓ src/ui/components/SessionSummaryDisplay.test.tsx (6 tests) 19140ms
✓ > renders the summary display with a title 5494ms
✓ > Session ID escaping > renders a standard UUID-formatted session ID in the footer (bash) 2727ms
✓ > Session ID escaping > sanitizes a malicious session ID in the footer (bash) 2670ms
✓ > Session ID escaping > renders a standard UUID-formatted session ID in the footer (powershell) 2637ms
✓ > Session ID escaping > sanitizes a malicious session ID in the footer (powershell) 2729ms
✓ > Worktree status > renders worktree instructions when worktreeSettings are present 2855ms
stdout | src/config/config.test.ts > loadCliConfig approval mode > should pass planSettings.directory from settings to config
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004h ✓ src/ui/components/ShellInputPrompt.test.tsx (12 tests) 28938ms
✓ ShellInputPrompt > renders nothing 2411ms
✓ ShellInputPrompt > sends tab to pty 2756ms
✓ ShellInputPrompt > handles keypress input: a 2251ms
✓ ShellInputPrompt > handles keypress input: b 2261ms
✓ ShellInputPrompt > handles scroll up (Command.SCROLL_-1) 2235ms
✓ ShellInputPrompt > handles scroll down (Command.SCROLL_1) 2231ms
✓ ShellInputPrompt > handles page scroll pageup (Command.PAGE_-15) with default size 2768ms
✓ ShellInputPrompt > handles page scroll pagedown (Command.PAGE_15) with default size 2198ms
✓ ShellInputPrompt > respects scrollPageSize prop 3236ms
✓ ShellInputPrompt > does not handle input when not focused 2199ms
✓ ShellInputPrompt > does not handle input when no active shell 2187ms
✓ ShellInputPrompt > ignores Command.UNFOCUS_SHELL (Shift+Tab) to allow focus navigation 2138ms
stdout | src/config/config.test.ts > loadCliConfig approval mode > when folder is NOT trusted > should override --approval-mode=yolo to DEFAULT
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stderr | src/config/config.test.ts > loadCliConfig approval mode > when folder is NOT trusted > should override --approval-mode=yolo to DEFAULT
YOLO mode is enabled. All tool calls will be automatically approved.
Approval mode overridden to "default" because the current folder is not trusted.
(node:6232) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 render listeners added to [XtermStdout]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?2004hstdout | src/config/config.test.ts > loadCliConfig approval mode > when folder is NOT trusted > should override --approval-mode=auto_edit to DEFAULT
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stderr | src/config/config.test.ts > loadCliConfig approval mode > when folder is NOT trusted > should override --approval-mode=auto_edit to DEFAULT
Approval mode overridden to "default" because the current folder is not trusted.
✓ src/services/SlashCommandConflictHandler.test.ts (7 tests) 525ms
[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig approval mode > when folder is NOT trusted > should override --yolo flag to DEFAULT
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stderr | src/config/config.test.ts > loadCliConfig approval mode > when folder is NOT trusted > should override --yolo flag to DEFAULT
YOLO mode is enabled. All tool calls will be automatically approved.
Approval mode overridden to "default" because the current folder is not trusted.
[?2004h ✓ src/ui/hooks/useConsoleMessages.test.tsx (8 tests) 3095ms
✓ useConsoleMessages > should initialize with an empty array of console messages 1204ms
✓ useConsoleMessages > should add a new message when log is called 330ms
✓ useConsoleMessages > should not batch different messages 322ms
[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig approval mode > when folder is NOT trusted > should remain DEFAULT when --approval-mode=default
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig approval mode > Persistent approvalMode setting > should use approvalMode from settings when no CLI flags are set
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig approval mode > Persistent approvalMode setting > should prioritize --approval-mode flag over settings
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig approval mode > Persistent approvalMode setting > should prioritize --yolo flag over settings
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stderr | src/config/config.test.ts > loadCliConfig approval mode > Persistent approvalMode setting > should prioritize --yolo flag over settings
YOLO mode is enabled. All tool calls will be automatically approved.
[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/shared/RadioButtonSelect.test.tsx (5 tests) 8609ms
✓ RadioButtonSelect > Prop forwarding to BaseSelectionList > should forward all props correctly when provided 3727ms
✓ RadioButtonSelect > Prop forwarding to BaseSelectionList > should use default props if not provided 1317ms
✓ RadioButtonSelect > renderItem implementation > should render the standard label display with correct color and truncation 1179ms
✓ RadioButtonSelect > renderItem implementation > should render the special theme display when theme props are present 1214ms
✓ RadioButtonSelect > renderItem implementation > should fall back to standard display if only one theme prop is present 1147ms
stdout | src/config/config.test.ts > loadCliConfig approval mode > Persistent approvalMode setting > should respect plan mode from settings when plan is enabled
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?25h[?25h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig approval mode > Persistent approvalMode setting > should fall back to default if plan mode is in settings but disabled
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stderr | src/config/config.test.ts > loadCliConfig approval mode > Persistent approvalMode setting > should fall back to default if plan mode is in settings but disabled
Approval mode "plan" is disabled in your settings. Falling back to "default".
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/utils/MarkdownDisplay.test.tsx (30 tests | 8 failed) 38213ms
✓ > renders nothing for empty text 2880ms
✓ > renders a simple paragraph 1890ms
✓ > with 'Windows' line endings > renders headers with correct levels 1459ms
✓ > with 'Windows' line endings > renders a fenced code block with a language 752ms
✓ > with 'Windows' line endings > renders a fenced code block without a language 2601ms
✓ > with 'Windows' line endings > handles unclosed (pending) code blocks 427ms
× > with 'Windows' line endings > renders unordered lists with different markers 1727ms
→ Snapshot ` > with 'Windows' line endings > renders unordered lists with different markers 1` mismatched
× > with 'Windows' line endings > renders nested unordered lists 1460ms
→ Snapshot ` > with 'Windows' line endings > renders nested unordered lists 1` mismatched
× > with 'Windows' line endings > renders ordered lists 1692ms
→ Snapshot ` > with 'Windows' line endings > renders ordered lists 1` mismatched
✓ > with 'Windows' line endings > renders horizontal rules 1425ms
✓ > with 'Windows' line endings > renders tables correctly 1984ms
✓ > with 'Windows' line endings > handles a table at the end of the input 1914ms
✓ > with 'Windows' line endings > inserts a single space between paragraphs 1735ms
× > with 'Windows' line endings > correctly parses a mix of markdown elements 1360ms
→ Snapshot ` > with 'Windows' line endings > correctly parses a mix of markdown elements 1` mismatched
✓ > with 'Windows' line endings > hides line numbers in code blocks when showLineNumbers is false 542ms
✓ > with 'Windows' line endings > shows line numbers in code blocks by default 339ms
✓ > with 'Unix' line endings > renders headers with correct levels 1365ms
✓ > with 'Unix' line endings > renders a fenced code block with a language 620ms
✓ > with 'Unix' line endings > renders a fenced code block without a language 423ms
✓ > with 'Unix' line endings > handles unclosed (pending) code blocks 266ms
× > with 'Unix' line endings > renders unordered lists with different markers 1428ms
→ Snapshot ` > with 'Unix' line endings > renders unordered lists with different markers 1` mismatched
× > with 'Unix' line endings > renders nested unordered lists 1332ms
→ Snapshot ` > with 'Unix' line endings > renders nested unordered lists 1` mismatched
× > with 'Unix' line endings > renders ordered lists 1513ms
→ Snapshot ` > with 'Unix' line endings > renders ordered lists 1` mismatched
✓ > with 'Unix' line endings > renders horizontal rules 1268ms
✓ > with 'Unix' line endings > renders tables correctly 1397ms
✓ > with 'Unix' line endings > handles a table at the end of the input 1254ms
✓ > with 'Unix' line endings > inserts a single space between paragraphs 1225ms
× > with 'Unix' line endings > correctly parses a mix of markdown elements 1293ms
→ Snapshot ` > with 'Unix' line endings > correctly parses a mix of markdown elements 1` mismatched
✓ > with 'Unix' line endings > hides line numbers in code blocks when showLineNumbers is false 329ms
✓ > with 'Unix' line endings > shows line numbers in code blocks by default 237ms
[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig gemmaModelRouter > should have gemmaModelRouter disabled by default
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004h[?2004h[?25hstdout | src/config/config.test.ts > loadCliConfig gemmaModelRouter > should load gemmaModelRouter settings from merged settings
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig gemmaModelRouter > should handle partial gemmaModelRouter settings
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004hstdout | src/config/config.test.ts > loadCliConfig fileFiltering > should pass 'enableFuzzySearch' from settings to config when true
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h ✓ src/ui/hooks/useSuspend.test.ts (3 tests) 1985ms
✓ useSuspend > cleans terminal state on suspend and restores/repaints on resume in alternate screen mode 1232ms
✓ useSuspend > does not toggle alternate screen or mouse restore when alternate screen mode is disabled 351ms
✓ useSuspend > warns and skips suspension on windows 363ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig fileFiltering > should pass 'enableFuzzySearch' from settings to config when false
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h ✓ src/ui/commands/aboutCommand.test.ts (6 tests) 1076ms
✓ aboutCommand > should have the correct name and description 463ms
[?2004h[?2004h[?2004h[?25h[?2004hstdout | src/config/config.test.ts > loadCliConfig fileFiltering > should pass 'respectGitIgnore' from settings to config when true
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?25h[?2004h(node:10525) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:10525) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?2004h[?2004h[?25h[?2004hstdout | src/config/config.test.ts > loadCliConfig fileFiltering > should pass 'respectGitIgnore' from settings to config when false
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004hstdout | src/config/config.test.ts > loadCliConfig fileFiltering > should pass 'respectGeminiIgnore' from settings to config when true
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig fileFiltering > should pass 'respectGeminiIgnore' from settings to config when false
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig fileFiltering > should pass 'enableRecursiveFileSearch' from settings to config when true
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h ✓ src/ui/components/views/ExtensionDetails.test.tsx (12 tests) 19995ms
✓ ExtensionDetails > should render extension details correctly 4225ms
✓ ExtensionDetails > should show install prompt when not installed 1824ms
✓ ExtensionDetails > should show already installed message when installed 1572ms
✓ ExtensionDetails > should call onBack when Escape is pressed 1545ms
✓ ExtensionDetails > should call onInstall when Enter is pressed and not installed 1614ms
✓ ExtensionDetails > should NOT call onInstall when Enter is pressed and already installed 445ms
✓ ExtensionDetails > should call onLink when "l" is pressed and is linkable 1580ms
✓ ExtensionDetails > should NOT show "Link" button for GitHub extensions 1469ms
✓ ExtensionDetails > should show "Link" button for local extensions 1442ms
✓ ExtensionDetails > should show update button when update is available 1392ms
✓ ExtensionDetails > should call onUpdate when "i" is pressed 1463ms
✓ ExtensionDetails > should show [Updating...] and hide "Already Installed" when update is in progress 1389ms
[?2004h ❯ src/ui/components/InputPrompt.test.tsx (196 tests | 4 failed) 325524ms
✓ InputPrompt > should call shellHistory.getPreviousCommand on up arrow in shell mode 3991ms
✓ InputPrompt > should call shellHistory.getNextCommand on down arrow in shell mode 1688ms
✓ InputPrompt > should set the buffer text when a shell history command is retrieved 1830ms
✓ InputPrompt > should call shellHistory.addCommandToHistory on submit in shell mode 1381ms
✓ InputPrompt > should submit command in shell mode when Enter pressed with suggestions visible but no arrow navigation 1435ms
✓ InputPrompt > should accept suggestion in shell mode when Enter pressed after arrow navigation 1363ms
✓ InputPrompt > should NOT call shell history methods when not in shell mode 1758ms
✓ InputPrompt > arrow key navigation > should move to start of line on Up arrow if on first line but not at start 1598ms
✓ InputPrompt > arrow key navigation > should navigate history on Up arrow if on first line and at start 1699ms
✓ InputPrompt > arrow key navigation > should move to end of line on Down arrow if on last line but not at end 1581ms
✓ InputPrompt > arrow key navigation > should navigate history on Down arrow if on last line and at end 1651ms
✓ InputPrompt > should call completion.navigateUp for both up arrow and Ctrl+P when suggestions are showing 1497ms
✓ InputPrompt > should call completion.navigateDown for both down arrow and Ctrl+N when suggestions are showing 1728ms
✓ InputPrompt > should NOT call completion navigation when suggestions are not showing 1452ms
✓ InputPrompt > should clear the buffer and reset completion on Ctrl+C 1447ms
✓ InputPrompt > clipboard image paste > should handle Ctrl+V when clipboard has an image 1400ms
✓ InputPrompt > clipboard image paste > should not insert anything when clipboard has no image 1409ms
✓ InputPrompt > clipboard image paste > should handle image save failure gracefully 1315ms
✓ InputPrompt > clipboard image paste > should insert image path at cursor position with proper spacing 1369ms
✓ InputPrompt > clipboard image paste > should handle errors during clipboard operations 1641ms
✓ InputPrompt > clipboard text paste > should insert text from clipboard on Ctrl+V 1424ms
✓ InputPrompt > clipboard text paste > should use OSC 52 when useOSC52Paste setting is enabled 1354ms
✓ InputPrompt > 'should complete a partial parent comm…' 1507ms
✓ InputPrompt > 'should append a sub-command when pare…' 1513ms
✓ InputPrompt > 'should handle the backspace edge case…' 1385ms
✓ InputPrompt > 'should complete a partial argument fo…' 1418ms
✓ InputPrompt > should autocomplete on Enter when suggestions are active, without submitting 1423ms
✓ InputPrompt > should complete a command based on its altNames 1414ms
✓ InputPrompt > queues a message when Tab is pressed during generation 1295ms
✓ InputPrompt > shows an error when attempting to queue a slash command 1331ms
✓ InputPrompt > shows an error when attempting to queue a shell command 1376ms
✓ InputPrompt > should not submit on Enter when the buffer is empty or only contains whitespace 1358ms
✓ InputPrompt > should submit directly on Enter when isPerfectMatch is true 1369ms
✓ InputPrompt > should execute perfect match on Enter even if suggestions are showing, if at first suggestion 1389ms
✓ InputPrompt > should autocomplete and NOT execute on Enter if a DIFFERENT suggestion is selected even if perfect match 1490ms
✓ InputPrompt > should submit directly on Enter when a complete leaf command is typed 1358ms
✓ InputPrompt > should submit on Enter when an @-path is a perfect match 1443ms
✓ InputPrompt > should NOT submit on Shift+Enter even if an @-path is a perfect match 1394ms
✓ InputPrompt > should auto-execute commands with autoExecute: true on Enter 1534ms
✓ InputPrompt > should autocomplete commands with autoExecute: false on Enter 1328ms
✓ InputPrompt > should autocomplete on Tab, even for executable commands 1365ms
✓ InputPrompt > should NOT autocomplete on Shift+Tab 1472ms
✓ InputPrompt > should autocomplete custom commands from .toml files on Enter 1418ms
✓ InputPrompt > should auto-execute argument completion when command has autoExecute: true 1477ms
✓ InputPrompt > should autocomplete argument completion when command has autoExecute: false 1439ms
✓ InputPrompt > should autocomplete command name even with autoExecute: true if command has completion function 1425ms
✓ InputPrompt > should autocomplete an @-path on Enter without submitting 1397ms
✓ InputPrompt > should add a newline on enter when the line ends with a backslash 1360ms
✓ InputPrompt > should clear the buffer on Ctrl+C if it has text 1331ms
✓ InputPrompt > should render correctly in plan mode 1393ms
✓ InputPrompt > should NOT clear the buffer on Ctrl+C if it is empty 1407ms
✓ InputPrompt > should call setBannerVisible(false) when clear screen key is pressed 1510ms
✓ InputPrompt > Background Color Styles > should render with background color by default 1507ms
✓ InputPrompt > Background Color Styles > should render with safe grey background but NO side borders in 8-bit mode when background is 'black' 1906ms
✓ InputPrompt > Background Color Styles > should render with safe grey background but NO side borders in 8-bit mode when background is '#000000' 1457ms
✓ InputPrompt > Background Color Styles > should render with safe grey background but NO side borders in 8-bit mode when background is '#000' 1589ms
✓ InputPrompt > Background Color Styles > should render with safe grey background but NO side borders in 8-bit mode when background is 'white' 1628ms
✓ InputPrompt > Background Color Styles > should render with safe grey background but NO side borders in 8-bit mode when background is '#ffffff' 1394ms
✓ InputPrompt > Background Color Styles > should render with safe grey background but NO side borders in 8-bit mode when background is '#fff' 1429ms
✓ 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 1502ms
✓ InputPrompt > Background Color Styles > should handle 4-bit color mode (16 colors) as low color depth 1463ms
✓ InputPrompt > Background Color Styles > should render horizontal lines (but NO background) in 8-bit mode when background is blue 1460ms
✓ InputPrompt > Background Color Styles > should render with plain borders when useBackgroundColor is false 1414ms
✓ InputPrompt > cursor-based completion trigger > 'should trigger completion when cursor…' 1480ms
✓ InputPrompt > cursor-based completion trigger > 'should trigger completion when cursor…' 1428ms
✓ InputPrompt > cursor-based completion trigger > 'should NOT trigger completion when cu…' 1400ms
✓ InputPrompt > cursor-based completion trigger > 'should NOT trigger completion when cu…' 1481ms
✓ InputPrompt > cursor-based completion trigger > 'should NOT trigger completion when cu…' 1425ms
✓ InputPrompt > cursor-based completion trigger > 'should handle multiline text correctly' 1465ms
✓ InputPrompt > cursor-based completion trigger > 'should handle Unicode characters (emo…' 1816ms
✓ InputPrompt > cursor-based completion trigger > 'should handle Unicode characters with…' 1334ms
✓ InputPrompt > cursor-based completion trigger > 'should handle escaped spaces in paths…' 2219ms
✓ InputPrompt > cursor-based completion trigger > 'should NOT trigger completion after u…' 2103ms
✓ InputPrompt > cursor-based completion trigger > 'should handle multiple escaped spaces…' 1391ms
✓ InputPrompt > cursor-based completion trigger > 'should handle escaped spaces in slash…' 1383ms
✓ InputPrompt > cursor-based completion trigger > 'should handle Unicode characters with…' 1995ms
✓ InputPrompt > vim mode > 'should not call buffer.handleInput wh…' 1477ms
✓ InputPrompt > vim mode > 'should call buffer.handleInput when v…' 1340ms
✓ InputPrompt > vim mode > 'should call handleInput when vim mode…' 1471ms
✓ InputPrompt > unfocused paste > should handle bracketed paste when not focused 1428ms
✓ InputPrompt > unfocused paste > should ignore regular keypresses when not focused 1331ms
✓ InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'mid-word' 2846ms
✓ InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'at the beginning of the line' 2501ms
✓ InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'at the end of the line' 2544ms
✓ InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'on a highlighted token' 2574ms
✓ InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'for multi-byte unicode characters' 2666ms
✓ InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'after multi-byte unicode characters' 2628ms
✓ InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'at the end of a line with unicode cha…' 2508ms
✓ InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'at the end of a short line with unico…' 2515ms
× InputPrompt > Highlighting and Cursor Display > single-line scenarios > should display cursor correctly 'on an empty line' 2822ms
→ 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' 2463ms
✓ InputPrompt > Highlighting and Cursor Display > multi-line scenarios > should display cursor correctly 'in the middle of a line' in a multiline block 2935ms
✓ InputPrompt > Highlighting and Cursor Display > multi-line scenarios > should display cursor correctly 'at the beginning of a line' in a multiline block 3196ms
✓ InputPrompt > Highlighting and Cursor Display > multi-line scenarios > should display cursor correctly 'at the end of a line' in a multiline block 2404ms
✓ InputPrompt > Highlighting and Cursor Display > multi-line scenarios > should display cursor on a blank line in a multiline block 2497ms
× InputPrompt > scrolling large inputs > should correctly render scrolling down and up for large inputs 13999ms
→ expected '▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀…' to contain 'testline 49'
✓ InputPrompt > multiline rendering > should correctly render multiline input including blank lines 2611ms
✓ InputPrompt > multiline paste > should handle multiline paste 'with \n newlines' 1714ms
✓ InputPrompt > multiline paste > should handle multiline paste 'with extra slashes before \n newlines' 1554ms
✓ InputPrompt > multiline paste > should handle multiline paste 'with \r\n newlines' 1634ms
✓ InputPrompt > large paste placeholder > should handle large clipboard paste (lines > 5) by calling buffer.insert 1411ms
✓ InputPrompt > large paste placeholder > should handle large clipboard paste (chars > 500) by calling buffer.insert 2616ms
✓ InputPrompt > large paste placeholder > should handle normal clipboard paste by calling buffer.insert 1411ms
✓ InputPrompt > large paste placeholder > should replace placeholder with actual content on submit 1359ms
✓ InputPrompt > paste auto-submission protection > should prevent auto-submission immediately after an unsafe paste 1318ms
✓ InputPrompt > paste auto-submission protection > should prevent perfect match auto-submission immediately after an unsafe paste 1285ms
✓ InputPrompt > paste auto-submission protection > should allow submission after unsafe paste protection timeout 1654ms
✓ InputPrompt > paste auto-submission protection > should allow immediate submission for a trusted paste ('kitty') 471ms
✓ InputPrompt > paste auto-submission protection > should not interfere with normal Enter key submission when no recent paste 428ms
✓ InputPrompt > enhanced input UX - keyboard shortcuts > should clear buffer on Ctrl-C 363ms
✓ InputPrompt > enhanced input UX - keyboard shortcuts > should submit /rewind on double ESC when buffer is empty 442ms
✓ InputPrompt > enhanced input UX - keyboard shortcuts > should clear the buffer on esc esc if it has text 499ms
✓ InputPrompt > enhanced input UX - keyboard shortcuts > should reset escape state on any non-ESC key 434ms
✓ InputPrompt > enhanced input UX - keyboard shortcuts > should handle ESC in shell mode by disabling shell mode 479ms
✓ InputPrompt > enhanced input UX - keyboard shortcuts > should not propagate ESC to global cancellation handler when shell mode is active (responding) 420ms
✓ InputPrompt > enhanced input UX - keyboard shortcuts > should allow ESC to reach global cancellation handler when responding and no overlay is active 483ms
✓ InputPrompt > enhanced input UX - keyboard shortcuts > should handle ESC when completion suggestions are showing 524ms
✓ InputPrompt > enhanced input UX - keyboard shortcuts > should not call onEscapePromptChange when not provided 807ms
✓ InputPrompt > enhanced input UX - keyboard shortcuts > should not interfere with existing keyboard shortcuts 909ms
✓ InputPrompt > reverse search > invokes reverse search on Ctrl+R 1735ms
✓ InputPrompt > reverse search > resets reverse search state on Escape ('standard') 1824ms
✓ InputPrompt > reverse search > resets reverse search state on Escape ('kitty') 1791ms
✓ InputPrompt > reverse search > completes the highlighted entry on Tab and exits reverse-search 1633ms
✓ InputPrompt > reverse search > should NOT autocomplete on Shift+Tab in reverse search 1641ms
✓ InputPrompt > reverse search > submits the highlighted entry on Enter and exits reverse-search 1724ms
✓ InputPrompt > reverse search > should restore text and cursor position after reverse search" 1781ms
✓ InputPrompt > Ctrl+E keyboard shortcut > should move cursor to end of current line in multiline input 1795ms
✓ InputPrompt > Ctrl+E keyboard shortcut > should move cursor to end of current line for single line input 1705ms
✓ InputPrompt > command search (Ctrl+R when not in shell) > enters command search on Ctrl+R and shows suggestions 1589ms
✓ InputPrompt > command search (Ctrl+R when not in shell) > expands and collapses long suggestion via Right/Left arrows 2184ms
✓ InputPrompt > command search (Ctrl+R when not in shell) > renders match window and expanded view (snapshots) 1693ms
✓ InputPrompt > command search (Ctrl+R when not in shell) > does not show expand/collapse indicator for short suggestions 1662ms
✓ InputPrompt > command search (Ctrl+R when not in shell) > ensures Ctrl+R search results are prioritized newest-to-oldest by reversing userMessages 1510ms
✓ InputPrompt > Tab clean UI toggle > 'should toggle clean UI details on dou…' 1622ms
✓ InputPrompt > Tab clean UI toggle > 'should accept ghost text and NOT togg…' 1675ms
✓ InputPrompt > Tab clean UI toggle > 'should NOT toggle clean UI details on…' 1597ms
✓ InputPrompt > Tab clean UI toggle > should NOT accept ghost text on Shift+Tab 1647ms
✓ InputPrompt > Tab clean UI toggle > should not reveal clean UI details on Shift+Tab when hidden 1554ms
✓ InputPrompt > Tab clean UI toggle > should toggle clean UI details on double-Tab by default 1726ms
✓ InputPrompt > mouse interaction > should move cursor on mouse click - 'first line, first char' 1666ms
✓ InputPrompt > mouse interaction > should move cursor on mouse click - 'first line, middle char' 1554ms
✓ InputPrompt > mouse interaction > should move cursor on mouse click - 'second line, first char' 1648ms
✓ InputPrompt > mouse interaction > should move cursor on mouse click - 'second line, end char' 1550ms
✓ InputPrompt > mouse interaction > should unfocus embedded shell on click 1667ms
✓ InputPrompt > mouse interaction > should toggle paste expansion on double-click 1632ms
× InputPrompt > mouse interaction > should collapse expanded paste on double-click after the end of the line 3214ms
→ expected '▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀…' to contain 'line1'
✓ InputPrompt > mouse interaction > should move cursor on mouse click with plain borders 1800ms
✓ InputPrompt > queued message editing > should load all queued messages when up arrow is pressed with empty input 1697ms
✓ InputPrompt > queued message editing > should not load queued messages when input is not empty 1709ms
✓ InputPrompt > queued message editing > should handle undefined messages from popAllMessages 1557ms
✓ InputPrompt > queued message editing > should work with NAVIGATION_UP key as well 1541ms
✓ InputPrompt > queued message editing > should handle single queued message 1701ms
✓ InputPrompt > queued message editing > should only check for queued messages when buffer text is trimmed empty 1725ms
✓ InputPrompt > queued message editing > should not call popAllMessages if it is not provided 1623ms
✓ InputPrompt > queued message editing > should navigate input history on fresh start when no queued messages exist 1522ms
✓ InputPrompt > snapshots > should render correctly in shell mode 1578ms
✓ InputPrompt > snapshots > should render correctly when accepting edits 1694ms
✓ InputPrompt > snapshots > should render correctly in yolo mode 1719ms
× InputPrompt > snapshots > should not show inverted cursor when shell is focused 2607ms
→ Snapshot `InputPrompt > snapshots > should not show inverted cursor when shell is focused 2` mismatched
✓ InputPrompt > should still allow input when shell is not focused 3399ms
✓ InputPrompt > command queuing while streaming > 'should prevent slash commands' 1679ms
✓ InputPrompt > command queuing while streaming > 'should allow concurrent-safe slash co…' 1560ms
✓ InputPrompt > command queuing while streaming > 'should prevent shell commands' 1436ms
✓ InputPrompt > command queuing while streaming > 'should allow regular messages' 1501ms
✓ InputPrompt > IME Cursor Support > should report correct cursor position for simple ASCII text 1666ms
✓ InputPrompt > IME Cursor Support > should report correct cursor position for text with double-width characters 1634ms
✓ InputPrompt > IME Cursor Support > should report correct cursor position for a line full of "😀" emojis 1629ms
✓ InputPrompt > IME Cursor Support > should report correct cursor position for mixed emojis and multi-line input 1531ms
✓ InputPrompt > IME Cursor Support > should report correct cursor position and focus for multi-line input 1822ms
✓ InputPrompt > IME Cursor Support > should report cursor position 0 when input is empty and placeholder is shown 1625ms
✓ InputPrompt > image path transformation snapshots > should snapshot collapsed image path 1822ms
✓ InputPrompt > image path transformation snapshots > should snapshot expanded image path when cursor is on it 1640ms
✓ InputPrompt > Ctrl+O paste expansion > Ctrl+O triggers paste expansion via keybinding 1610ms
✓ InputPrompt > Ctrl+O paste expansion > 'hint appears on large paste via Ctrl+V' 1463ms
✓ InputPrompt > Ctrl+O paste expansion > 'hint does not appear for small pastes…' 1464ms
✓ InputPrompt > Ctrl+O paste expansion > 'hint appears on large terminal paste …' 1535ms
✓ InputPrompt > tryTogglePasteExpansion > 'returns false when no pasted content …' 325ms
✓ InputPrompt > tryTogglePasteExpansion > 'expands placeholder under cursor' 359ms
✓ InputPrompt > tryTogglePasteExpansion > 'collapses expanded paste when cursor …' 249ms
✓ InputPrompt > tryTogglePasteExpansion > 'expands placeholder when cursor is im…' 243ms
✓ InputPrompt > tryTogglePasteExpansion > 'shows hint when cursor is not on plac…' 258ms
✓ InputPrompt > History Navigation and Completion Suppression > should move cursor to 'start' on 'Up arrow' (older history) 1722ms
✓ InputPrompt > History Navigation and Completion Suppression > should move cursor to 'start' on 'Ctrl+P' (older history) 1860ms
✓ InputPrompt > History Navigation and Completion Suppression > should move cursor to 'end' on 'Down arrow' (newer history) 1695ms
✓ InputPrompt > History Navigation and Completion Suppression > should move cursor to 'end' on 'Ctrl+N' (newer history) 1672ms
✓ InputPrompt > History Navigation and Completion Suppression > should suppress completion after history navigation 1703ms
✓ InputPrompt > History Navigation and Completion Suppression > should not render suggestions during history navigation 2086ms
✓ InputPrompt > History Navigation and Completion Suppression > should continue to suppress completion after manual cursor movement 1698ms
✓ InputPrompt > History Navigation and Completion Suppression > should re-enable completion after typing 1747ms
✓ InputPrompt > shortcuts help visibility > opens shortcuts help with ? on empty prompt even when showShortcutsHint is false 1681ms
✓ InputPrompt > shortcuts help visibility > should close shortcuts help when a 'terminal paste event occurs' 1798ms
✓ InputPrompt > shortcuts help visibility > should close shortcuts help when a 'Ctrl+V (PASTE_CLIPBOARD) is pressed' 1838ms
✓ InputPrompt > shortcuts help visibility > should close shortcuts help when a 'mouse right-click paste occurs' 1843ms
✓ InputPrompt > shortcuts help visibility > should close shortcuts help when a 'Ctrl+R hotkey is pressed' 1801ms
✓ InputPrompt > shortcuts help visibility > should close shortcuts help when a 'Ctrl+G hotkey is pressed' 1690ms
✓ InputPrompt > shortcuts help visibility > should close shortcuts help when a 'F12 hotkey is pressed' 1574ms
[?2004hstdout | src/config/config.test.ts > loadCliConfig fileFiltering > should pass 'enableRecursiveFileSearch' from settings to config when false
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/AnsiOutput.test.tsx (16 tests) 21638ms
✓ > renders a simple AnsiOutput object correctly 2764ms
✓ > correctly applies style 'Bold' 1361ms
✓ > correctly applies style 'Italic' 1192ms
✓ > correctly applies style 'Underline' 1255ms
✓ > correctly applies style 'Dim' 1203ms
✓ > correctly applies style 'Inverse' 1218ms
✓ > correctly applies color 'Red FG' 1189ms
✓ > correctly applies color 'Blue BG' 1147ms
✓ > correctly applies color 'Green FG Magenta BG' 1168ms
✓ > handles empty lines and empty tokens 1264ms
✓ > respects the availableTerminalHeight prop and slices the lines correctly 1232ms
✓ > respects the maxLines prop and slices the lines correctly 1189ms
✓ > prioritizes maxLines over availableTerminalHeight if maxLines is smaller 1207ms
✓ > renders a large AnsiOutput object without crashing 1791ms
✓ > robustness > does NOT crash when data is undefined 1206ms
✓ > robustness > does NOT crash when data is an object but not an array 1198ms
[?2004h[?2004h[?2004h ❯ src/ui/components/messages/ToolStickyHeaderRegression.test.tsx (2 tests | 1 failed) 12322ms
✓ ToolMessage Sticky Header Regression > verifies that multiple ToolMessages in a ToolGroupMessage in a ScrollableList have sticky headers 8228ms
× ToolMessage Sticky Header Regression > verifies that ShellToolMessage in a ToolGroupMessage in a ScrollableList has sticky headers 4063ms
→ expected '█\n█\n│\n│\n│\n' to contain 'Shell Command'
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004hstderr | src/config/config.test.ts > Telemetry configuration via environment variables > should prioritize GEMINI_TELEMETRY_ENABLED over settings
The 'metricReader' option is deprecated. Please use 'metricReaders' instead.
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/OverageMenuDialog.test.tsx (11 tests | 1 failed) 23432ms
✓ OverageMenuDialog > rendering > should match snapshot with fallback available 4190ms
× OverageMenuDialog > rendering > should match snapshot without fallback 1950ms
→ Snapshot `OverageMenuDialog > rendering > should match snapshot without fallback 1` mismatched
✓ OverageMenuDialog > rendering > should display the credit balance 1822ms
✓ OverageMenuDialog > rendering > should display the model name 1590ms
✓ OverageMenuDialog > rendering > should display reset time when provided 1672ms
✓ OverageMenuDialog > rendering > should not display reset time when not provided 1453ms
✓ OverageMenuDialog > rendering > should display slash command hints 1543ms
✓ OverageMenuDialog > onChoice handling > should call onChoice with use_credits when selected 2169ms
✓ OverageMenuDialog > onChoice handling > should call onChoice with manage when selected 2287ms
✓ OverageMenuDialog > onChoice handling > should call onChoice with use_fallback when selected 2380ms
✓ OverageMenuDialog > onChoice handling > should call onChoice with stop when selected 2323ms
[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useBackgroundTaskManager.test.tsx (6 tests) 8575ms
✓ useBackgroundTaskManager > should initialize with correct default values 2280ms
✓ useBackgroundTaskManager > should auto-select the first background shell when added 1299ms
✓ useBackgroundTaskManager > should reset state when all shells are removed 1285ms
✓ useBackgroundTaskManager > should unfocus embedded shell when no shells are active 1241ms
✓ useBackgroundTaskManager > should calculate backgroundTaskHeight correctly when visible 1187ms
✓ useBackgroundTaskManager > should maintain current active shell if it still exists 1235ms
[?2004h[?2004h[?25h ❯ src/ui/components/ThemeDialog.test.tsx (10 tests | 7 failed) 26016ms
× ThemeDialog Snapshots > should render correctly in theme selection mode (isDevelopment: true) 10712ms
→ Snapshot `ThemeDialog Snapshots > should render correctly in theme selection mode (isDevelopment: true) 1` mismatched
× ThemeDialog Snapshots > should render correctly in theme selection mode (isDevelopment: false) 2333ms
→ Snapshot `ThemeDialog Snapshots > should render correctly in theme selection mode (isDevelopment: false) 1` mismatched
× ThemeDialog Snapshots > should render correctly in scope selector mode 2524ms
→ Snapshot `ThemeDialog Snapshots > should render correctly in scope selector mode 1` mismatched
✓ ThemeDialog Snapshots > should call onCancel when ESC is pressed 2092ms
✓ ThemeDialog Snapshots > should call onSelect when a theme is selected 1922ms
× Initial Theme Selection > should default to a light theme when terminal background is light and no theme is set 1235ms
→ Snapshot `Initial Theme Selection > should default to a light theme when terminal background is light and no theme is set 1` mismatched
× Initial Theme Selection > should default to a dark theme when terminal background is dark and no theme is set 1256ms
→ Snapshot `Initial Theme Selection > should default to a dark theme when terminal background is dark and no theme is set 1` mismatched
× Initial Theme Selection > should use the theme from settings even if terminal background suggests a different theme type 1096ms
→ Snapshot `Initial Theme Selection > should use the theme from settings even if terminal background suggests a different theme type 1` mismatched
× Hint Visibility > should show hint when theme background matches terminal background 1647ms
→ expected '╭────────────────────────────────────…' to contain '(Matches terminal)'
✓ Hint Visibility > should not show hint when theme background does not match terminal background 1150ms
[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h ✓ src/ui/hooks/useInlineEditBuffer.test.ts (9 tests) 2717ms
✓ useEditBuffer > should initialize with empty state 879ms
✓ useEditBuffer > should start editing correctly 351ms
✓ useEditBuffer > should commit edit and reset state 362ms
[?2004h[?2004h[?2004h ❯ src/ui/components/SettingsDialog.test.tsx (59 tests | 34 failed) 373122ms
✓ SettingsDialog > Initial Rendering > should render the settings dialog with default state 7579ms
× SettingsDialog > Initial Rendering > should accept availableTerminalHeight prop without errors 2329ms
→ expected '╭────────────────────────────────────…' to contain 'Settings'
× SettingsDialog > Initial Rendering > should render settings list with visual indicators 6993ms
→ Snapshot `SettingsDialog > Initial Rendering > should render settings list with visual indicators 1` mismatched
× SettingsDialog > Initial Rendering > should use almost full height of the window but no more when the window height is 25 rows 4693ms
→ expected 108 to be less than or equal to 25
× SettingsDialog > Setting Descriptions > should render descriptions for settings that have them 4297ms
→ expected '╭────────────────────────────────────…' to contain 'Vim Mode'
× SettingsDialog > Settings Navigation > should navigate with 'arrow keys' 3709ms
→ expected '╭────────────────────────────────────…' to contain 'Vim Mode'
× SettingsDialog > Settings Navigation > should navigate with 'emacs keys (Ctrl+P/N)' 3524ms
→ expected '╭────────────────────────────────────…' to contain 'Vim Mode'
× SettingsDialog > Settings Navigation > should allow j and k characters to be typed in search without triggering navigation 11469ms
→ expected '╭────────────────────────────────────…' to contain 'jk'
× SettingsDialog > Settings Navigation > wraps around when at the top of the list 7311ms
→ expected '╭────────────────────────────────────…' to contain 'Hook Notifications'
× SettingsDialog > Settings Toggling > should toggle setting with Enter key 5771ms
→ expected '╭────────────────────────────────────…' to contain 'Vim Mode'
✓ SettingsDialog > Settings Toggling > enum values > 'toggles to next value' 4580ms
✓ SettingsDialog > Settings Toggling > enum values > 'loops back to first value when at end' 4396ms
✓ SettingsDialog > Settings Toggling > should handle vim mode setting specially 5302ms
✓ SettingsDialog > Scope Selection > should switch between scopes 6359ms
× SettingsDialog > Scope Selection > should reset to settings focus when scope is selected 4511ms
→ expected '╭────────────────────────────────────…' to contain 'Vim Mode'
✓ SettingsDialog > Restart Prompt > should show restart prompt for restart-required settings 3687ms
✓ SettingsDialog > Restart Prompt > should handle restart request when r is pressed 7951ms
× SettingsDialog > Escape Key Behavior > should call onSelect with undefined when Escape is pressed 4627ms
→ expected '╭────────────────────────────────────…' to contain 'Vim Mode'
✓ SettingsDialog > Settings Persistence > should persist settings across scope changes 5643ms
× SettingsDialog > Settings Persistence > should show different values for different scopes 2148ms
→ expected '╭────────────────────────────────────…' to contain 'Settings'
✓ SettingsDialog > Complex State Management > should track modified settings correctly 13551ms
✓ SettingsDialog > Complex State Management > should handle scrolling when there are many settings 5282ms
× SettingsDialog > Specific Settings Behavior > should show correct display values for settings with different states 2431ms
→ expected '╭────────────────────────────────────…' to contain 'Settings'
✓ SettingsDialog > Specific Settings Behavior > should handle immediate settings save for non-restart-required settings 5300ms
✓ SettingsDialog > Specific Settings Behavior > should show restart prompt for restart-required settings 3952ms
✓ SettingsDialog > Specific Settings Behavior > should clear restart prompt when switching scopes 4239ms
× SettingsDialog > Settings Display Values > should show correct values for inherited settings 2052ms
→ expected '╭────────────────────────────────────…' to contain 'Settings'
× SettingsDialog > Settings Display Values > should show override indicator for overridden settings 2454ms
→ expected '╭────────────────────────────────────…' to contain 'Settings'
✓ SettingsDialog > Race Condition Regression Tests > should 'not reset sibling settings when toggl…' 4125ms
✓ SettingsDialog > Race Condition Regression Tests > should 'preserve multiple sibling settings in…' 2891ms
✓ SettingsDialog > Keyboard Shortcuts Edge Cases > should handle rapid key presses gracefully 5012ms
✓ SettingsDialog > Keyboard Shortcuts Edge Cases > should handle 'Ctrl+C' to reset current setting to default 5024ms
✓ SettingsDialog > Keyboard Shortcuts Edge Cases > should handle 'Ctrl+L' to reset current setting to default 4938ms
✓ SettingsDialog > Keyboard Shortcuts Edge Cases > should handle navigation when only one setting exists 8061ms
× SettingsDialog > Keyboard Shortcuts Edge Cases > should properly handle Tab navigation between sections 5176ms
→ expected '╭────────────────────────────────────…' to contain 'Vim Mode'
× SettingsDialog > Error Recovery > should handle malformed settings gracefully 2296ms
→ expected '╭────────────────────────────────────…' to contain 'Settings'
× SettingsDialog > Error Recovery > should handle missing setting definitions gracefully 2609ms
→ expected '╭────────────────────────────────────…' to contain 'Settings'
× SettingsDialog > Complex User Interactions > should handle complete user workflow: navigate, toggle, change scope, exit 6201ms
→ expected '╭────────────────────────────────────…' to contain 'Vim Mode'
✓ SettingsDialog > Complex User Interactions > should allow changing multiple settings without losing pending changes 13678ms
✓ SettingsDialog > Complex User Interactions > should maintain state consistency during complex interactions 12995ms
✓ SettingsDialog > Complex User Interactions > should handle restart workflow correctly 5925ms
× SettingsDialog > Restart and Search Conflict Regression > should prioritize restart request over search text box when showRestartPrompt is true 3608ms
→ expected '╭────────────────────────────────────…' to contain 'Show Color'
× SettingsDialog > Restart and Search Conflict Regression > should hide search box when showRestartPrompt is true 1580ms
→ expected '╭────────────────────────────────────…' to contain 'Search to filter'
✓ SettingsDialog > String Settings Editing > should allow editing and committing a string setting 15585ms
✓ SettingsDialog > Array Settings Editing > should parse comma-separated input as string arrays 28507ms
✓ SettingsDialog > Array Settings Editing > should parse JSON array input for allowedExtensions 34103ms
× SettingsDialog > Search Functionality > should display text entered in search 2867ms
→ expected '╭────────────────────────────────────…' to contain 'Search to filter'
× SettingsDialog > Search Functionality > should show search query and filter settings as user types 7866ms
→ expected '╭────────────────────────────────────…' to contain 'yolo'
× SettingsDialog > Search Functionality > should exit search settings when Escape is pressed 8113ms
→ expected '╭────────────────────────────────────…' to contain 'vim'
× SettingsDialog > Search Functionality > should handle backspace to modify search query 6710ms
→ expected '╭────────────────────────────────────…' to contain 'vimm'
× SettingsDialog > Search Functionality > should display nothing when search yields no results 7251ms
→ expected '╭────────────────────────────────────…' to contain 'nonexistentsetting'
× SettingsDialog > Snapshot Tests > should render 'default state' correctly 3676ms
→ Snapshot `SettingsDialog > Snapshot Tests > should render 'default state' correctly 1` mismatched
× SettingsDialog > Snapshot Tests > should render 'various boolean settings enabled' correctly 3869ms
→ Snapshot `SettingsDialog > Snapshot Tests > should render 'various boolean settings enabled' correctly 1` mismatched
× SettingsDialog > Snapshot Tests > should render 'mixed boolean and number settings' correctly 4318ms
→ Snapshot `SettingsDialog > Snapshot Tests > should render 'mixed boolean and number settings' correctly 1` mismatched
× SettingsDialog > Snapshot Tests > should render 'focused on scope selector' correctly 5376ms
→ Snapshot `SettingsDialog > Snapshot Tests > should render 'focused on scope selector' correctly 1` mismatched
× SettingsDialog > Snapshot Tests > should render 'accessibility settings enabled' correctly 3581ms
→ Snapshot `SettingsDialog > Snapshot Tests > should render 'accessibility settings enabled' correctly 1` mismatched
× SettingsDialog > Snapshot Tests > should render 'file filtering settings configured' correctly 3659ms
→ Snapshot `SettingsDialog > Snapshot Tests > should render 'file filtering settings configured' correctly 1` mismatched
× SettingsDialog > Snapshot Tests > should render 'tools and security settings' correctly 3663ms
→ Snapshot `SettingsDialog > Snapshot Tests > should render 'tools and security settings' correctly 1` mismatched
× SettingsDialog > Snapshot Tests > should render 'all boolean settings disabled' correctly 3617ms
→ Snapshot `SettingsDialog > Snapshot Tests > should render 'all boolean settings disabled' correctly 1` mismatched
❯ src/ui/components/messages/ThinkingMessage.test.tsx (8 tests | 7 failed) 24521ms
× ThinkingMessage > renders subject line with vertical rule and "Thinking..." header 5397ms
→ Snapshot `ThinkingMessage > renders subject line with vertical rule and "Thinking..." header 3` mismatched
× ThinkingMessage > uses description when subject is empty 2890ms
→ Snapshot `ThinkingMessage > uses description when subject is empty 3` mismatched
× ThinkingMessage > renders full mode with left border and full text 2379ms
→ Snapshot `ThinkingMessage > renders full mode with left border and full text 3` mismatched
× ThinkingMessage > renders "Thinking..." header when isFirstThinking is true 2360ms
→ Snapshot `ThinkingMessage > renders "Thinking..." header when isFirstThinking is true 3` mismatched
× ThinkingMessage > normalizes escaped newline tokens 2388ms
→ Snapshot `ThinkingMessage > normalizes escaped newline tokens 3` mismatched
✓ ThinkingMessage > renders empty state gracefully 2637ms
× ThinkingMessage > renders multiple thinking messages sequentially correctly 3536ms
→ Snapshot `ThinkingMessage > renders multiple thinking messages sequentially correctly 3` mismatched
× ThinkingMessage > filters out progress dots and empty lines 2872ms
→ Snapshot `ThinkingMessage > filters out progress dots and empty lines 3` mismatched
[?2004h[?2004h(node:6156) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 101 model-changed listeners added to [CoreEventEmitter]. MaxListeners is 100. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:6156) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 101 memory-changed listeners added to [CoreEventEmitter]. MaxListeners is 100. Use emitter.setMaxListeners() to increase limit
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > PolicyEngine nonInteractive wiring > should set nonInteractive to true when -p flag is used
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
✓ src/ui/components/StatusDisplay.test.tsx (7 tests) 10177ms
✓ StatusDisplay > renders nothing by default if context summary is hidden via props 1928ms
✓ StatusDisplay > renders ContextSummaryDisplay by default 1824ms
✓ StatusDisplay > renders system md indicator if env var is set 1579ms
✓ StatusDisplay > renders HookStatusDisplay when hooks are active 1233ms
✓ StatusDisplay > does NOT render HookStatusDisplay if notifications are disabled in settings 1214ms
✓ StatusDisplay > hides ContextSummaryDisplay if configured in settings 1145ms
✓ StatusDisplay > passes backgroundTaskCount to ContextSummaryDisplay 1208ms
[?25h[?2004h[?2004hstdout | src/config/config.test.ts > PolicyEngine nonInteractive wiring > should set nonInteractive to false in interactive mode
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > Policy Engine Integration in loadCliConfig > should pass merged allowed tools from CLI and settings to createPolicyEngineConfig
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
❯ src/ui/components/EmptyWalletDialog.test.tsx (11 tests | 1 failed) 24454ms
✓ EmptyWalletDialog > rendering > should match snapshot with fallback available 4372ms
× EmptyWalletDialog > rendering > should match snapshot without fallback 2564ms
→ Snapshot `EmptyWalletDialog > rendering > should match snapshot without fallback 1` mismatched
✓ EmptyWalletDialog > rendering > should display the model name and usage limit message 2400ms
✓ EmptyWalletDialog > rendering > should display purchase prompt and credits update notice 1655ms
✓ EmptyWalletDialog > rendering > should display reset time when provided 2394ms
✓ EmptyWalletDialog > rendering > should not display reset time when not provided 1750ms
✓ EmptyWalletDialog > rendering > should display slash command hints 1689ms
✓ EmptyWalletDialog > onChoice handling > should call onGetCredits and onChoice when get_credits is selected 1912ms
✓ EmptyWalletDialog > onChoice handling > should call onChoice without onGetCredits when onGetCredits is not provided 1787ms
✓ EmptyWalletDialog > onChoice handling > should call onChoice with use_fallback when selected 2061ms
✓ EmptyWalletDialog > onChoice handling > should call onChoice with stop when selected 1822ms
[?2004h[?2004h[?2004hstdout | src/config/config.test.ts > Policy Engine Integration in loadCliConfig > should pass merged exclude tools from CLI logic and settings to createPolicyEngineConfig
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?25h[?2004hstdout | src/config/config.test.ts > Policy Engine Integration in loadCliConfig > should pass user-provided policy paths from --policy flag to createPolicyEngineConfig
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
✓ src/ui/components/DialogManager.test.tsx (19 tests) 26346ms
✓ DialogManager > renders nothing by default 3500ms
✓ DialogManager > renders { showIdeRestartPrompt: true, ideTrustRestartReason: 'update' } when state is 'IdeTrustChangeDialog' 1707ms
✓ DialogManager > renders { quota: { userTier: undefined, stats: undefined, proQuotaRequest: { failedModel: 'a', fallbackModel: 'b', message: 'c', isTerminalQuotaError: false, resolve: [Function spy] }, validationRequest: null, overageMenuRequest: null, emptyWalletRequest: null } } when state is 'ProQuotaDialog' 1277ms
✓ DialogManager > renders { shouldShowIdePrompt: true, currentIDE: { name: 'vscode', version: '1.0' } } when state is 'IdeIntegrationNudge' 1189ms
✓ DialogManager > renders { isFolderTrustDialogOpen: true } when state is 'FolderTrustDialog' 1310ms
✓ DialogManager > renders { loopDetectionConfirmationRequest: { onComplete: [Function spy] } } when state is 'LoopDetectionConfirmation' 1248ms
✓ DialogManager > renders { commandConfirmationRequest: { prompt: 'foo', onConfirm: [Function spy] } } when state is 'ConsentPrompt' 1616ms
✓ DialogManager > renders { authConsentRequest: { prompt: 'bar', onConfirm: [Function spy] } } when state is 'ConsentPrompt' 1247ms
✓ DialogManager > renders { confirmUpdateExtensionRequests: [ { prompt: 'foo', onConfirm: [Function spy] } ] } when state is 'ConsentPrompt' 1189ms
✓ DialogManager > renders { isThemeDialogOpen: true } when state is 'ThemeDialog' 1271ms
✓ DialogManager > renders { isSettingsDialogOpen: true } when state is 'SettingsDialog' 1169ms
✓ DialogManager > renders { isModelDialogOpen: true } when state is 'ModelDialog' 1255ms
✓ DialogManager > renders { isAuthenticating: true } when state is 'AuthInProgress' 1232ms
✓ DialogManager > renders { isAwaitingApiKeyInput: true } when state is 'ApiAuthDialog' 1196ms
✓ DialogManager > renders { isAuthDialogOpen: true } when state is 'AuthDialog' 1182ms
✓ DialogManager > renders { isEditorDialogOpen: true } when state is 'EditorSettingsDialog' 1220ms
✓ DialogManager > renders { showPrivacyNotice: true } when state is 'PrivacyNotice' 1151ms
✓ DialogManager > renders { isPermissionsDialogOpen: true } when state is 'PermissionsModifyTrustDialog' 1145ms
✓ DialogManager > renders { isAgentConfigDialogOpen: true, selectedAgentName: 'test-agent', selectedAgentDisplayName: 'Test Agent', selectedAgentDefinition: { name: 'test-agent', kind: 'local', description: 'Test agent', inputConfig: { inputSchema: {} }, promptConfig: { systemPrompt: 'test' }, modelConfig: { model: 'inherit' }, runConfig: { maxTimeMinutes: 5 } } } when state is 'AgentConfigDialog' 1194ms
[?2004h[?2004hstdout | src/config/config.test.ts > loadCliConfig disableYoloMode > should allow auto_edit mode even if yolo mode is disabled
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004h[?25hstderr | src/config/config.test.ts > loadCliConfig disableYoloMode > should allow auto_edit mode even if yolo mode is disabled
{"stack":"Error: PeriodicExportingMetricReader: metrics export failed (error Error: 14 UNAVAILABLE: No connection established. Last error: Error: connect ECONNREFUSED ::1:4317)\n at PeriodicExportingMetricReader._doRun (/build/gemini-cli/src/gemini-cli/node_modules/@opentelemetry/sdk-metrics/src/export/PeriodicExportingMetricReader.ts:146:13)\n at processTicksAndRejections (node:internal/process/task_queues:104:5)\n at PeriodicExportingMetricReader._runOnce (/build/gemini-cli/src/gemini-cli/node_modules/@opentelemetry/sdk-metrics/src/export/PeriodicExportingMetricReader.ts:105:7)","message":"PeriodicExportingMetricReader: metrics export failed (error Error: 14 UNAVAILABLE: No connection established. Last error: Error: connect ECONNREFUSED ::1:4317)","name":"Error"}
stdout | src/config/config.test.ts > loadCliConfig disableYoloMode > should throw if YOLO mode is attempted when disableYoloMode is true
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stderr | src/config/config.test.ts > loadCliConfig disableYoloMode > should throw if YOLO mode is attempted when disableYoloMode is true
YOLO mode is disabled by the "disableYolo" setting.
[?2004hstdout | src/config/config.test.ts > loadCliConfig secureModeEnabled > should throw an error if YOLO mode is attempted when secureModeEnabled is true
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stderr | src/config/config.test.ts > loadCliConfig secureModeEnabled > should throw an error if YOLO mode is attempted when secureModeEnabled is true
YOLO mode is disabled by "secureModeEnabled" setting.
❯ src/ui/components/shared/SearchableList.test.tsx (8 tests | 3 failed) 21940ms
✓ SearchableList > should render all items initially 3780ms
× SearchableList > should reset selection to top when items change if resetSelectionOnItemsChange is true 4409ms
→ expected ' Test List\n\n ╭─────────────────────…' to contain '● Item Two'
× SearchableList > should filter items based on search query 4378ms
→ expected ' Test List\n\n ╭─────────────────────…' to contain 'Item Two'
✓ SearchableList > should show "No items found." when no items match 2002ms
✓ SearchableList > should handle selection with Enter 1863ms
✓ SearchableList > should handle navigation and selection 2467ms
✓ SearchableList > should handle close with Esc 1424ms
× SearchableList > should match snapshot 1571ms
→ Snapshot `SearchableList > should match snapshot 1` mismatched
stdout | src/config/config.test.ts > loadCliConfig secureModeEnabled > should throw an error if approval-mode=yolo is attempted when secureModeEnabled is true
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stderr | src/config/config.test.ts > loadCliConfig secureModeEnabled > should throw an error if approval-mode=yolo is attempted when secureModeEnabled is true
YOLO mode is disabled by "secureModeEnabled" setting.
stdout | src/config/config.test.ts > loadCliConfig secureModeEnabled > should set disableYoloMode to true when secureModeEnabled is true
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stdout | src/config/config.test.ts > loadCliConfig mcpEnabled > should enable MCP by default
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004hstdout | src/config/config.test.ts > loadCliConfig mcpEnabled > should disable MCP when mcpEnabled is false
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004hstdout | src/config/config.test.ts > loadCliConfig mcpEnabled > should enable MCP when mcpEnabled is true
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
(node:6232) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 render listeners added to [XtermStdout]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
stdout | src/config/config.test.ts > loadCliConfig mcpEnabled > extension plan settings > should use plan directory from active extension when user has not specified one
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
✓ src/config/settings_repro.test.ts (1 test) 300ms
[?2004hstdout | src/config/config.test.ts > loadCliConfig mcpEnabled > extension plan settings > should NOT use plan directory from active extension when user has specified one
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?25h[?2004hstdout | src/config/config.test.ts > loadCliConfig mcpEnabled > extension plan settings > should NOT use plan directory from inactive extension
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?2004hstdout | src/config/config.test.ts > loadCliConfig mcpEnabled > extension plan settings > should use default path if neither user nor extension settings provide a plan directory
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stdout | src/config/config.test.ts > loadCliConfig acpMode and clientName > should set acpMode to true and detect clientName when --acp flag is used
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
[?25h[?2004h[?25hstdout | src/config/config.test.ts > loadCliConfig acpMode and clientName > should set acpMode to true but leave clientName undefined for generic terminals
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
stderr | src/config/config.test.ts > loadCliConfig acpMode and clientName > should set acpMode to false and clientName to undefined by default
{"stack":"Error: PeriodicExportingMetricReader: metrics export failed (error Error: 14 UNAVAILABLE: No connection established. Last error: Error: connect ECONNREFUSED ::1:4317)\n at PeriodicExportingMetricReader._doRun (/build/gemini-cli/src/gemini-cli/node_modules/@opentelemetry/sdk-metrics/src/export/PeriodicExportingMetricReader.ts:146:13)\n at processTicksAndRejections (node:internal/process/task_queues:104:5)\n at PeriodicExportingMetricReader._runOnce (/build/gemini-cli/src/gemini-cli/node_modules/@opentelemetry/sdk-metrics/src/export/PeriodicExportingMetricReader.ts:105:7)","message":"PeriodicExportingMetricReader: metrics export failed (error Error: 14 UNAVAILABLE: No connection established. Last error: Error: connect ECONNREFUSED ::1:4317)","name":"Error"}
stdout | src/config/config.test.ts > loadCliConfig acpMode and clientName > should set acpMode to false and clientName to undefined by default
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/cli/.geminiignore, continue without it.
✓ src/ui/AppContainer.test.tsx (107 tests) 144020ms
✓ AppContainer State Management > Basic Rendering > renders without crashing with minimal props 2916ms
✓ AppContainer State Management > Basic Rendering > renders with startup warnings 1376ms
✓ AppContainer State Management > Basic Rendering > shows full UI details by default 1639ms
✓ AppContainer State Management > Basic Rendering > starts in minimal UI mode when Focus UI preference is persisted 1448ms
✓ AppContainer State Management > State Initialization > sends a macOS notification when confirmation is pending and terminal is unfocused 1504ms
✓ AppContainer State Management > State Initialization > does not send attention notification when terminal is focused 1340ms
✓ AppContainer State Management > State Initialization > sends attention notification when focus reporting is unavailable 1321ms
✓ AppContainer State Management > State Initialization > sends a macOS notification when a response completes while unfocused 1484ms
✓ AppContainer State Management > State Initialization > sends completion notification when focus reporting is unavailable 1388ms
✓ AppContainer State Management > State Initialization > does not send completion notification when another action-required dialog is pending 1408ms
✓ AppContainer State Management > State Initialization > can send repeated attention notifications for the same key after pending state clears 1369ms
✓ AppContainer State Management > State Initialization > initializes with theme error from initialization result 1269ms
✓ AppContainer State Management > State Initialization > handles debug mode state 4157ms
✓ AppContainer State Management > Context Providers > provides AppContext with correct values 1514ms
✓ AppContainer State Management > Context Providers > provides UIStateContext with state management 1379ms
✓ AppContainer State Management > Context Providers > provides UIActionsContext with action handlers 1366ms
✓ AppContainer State Management > Context Providers > provides ConfigContext with config object 1254ms
✓ AppContainer State Management > Settings Integration > handles settings with all display options disabled 1313ms
✓ AppContainer State Management > Settings Integration > handles settings with memory usage enabled 1778ms
✓ AppContainer State Management > Version Handling > handles version format: 1.0.0 1518ms
✓ AppContainer State Management > Version Handling > handles version format: 2.1.3-beta 1478ms
✓ AppContainer State Management > Version Handling > handles version format: 3.0.0-nightly 1267ms
✓ AppContainer State Management > Error Handling > handles config methods that might throw 2211ms
✓ AppContainer State Management > Error Handling > handles undefined settings gracefully 1349ms
✓ AppContainer State Management > Provider Hierarchy > establishes correct provider nesting order 1239ms
✓ AppContainer State Management > Session Resumption > handles resumed session data correctly 1308ms
✓ AppContainer State Management > Session Resumption > renders without resumed session data 1379ms
✓ AppContainer State Management > Session Resumption > initializes chat recording service when config has it 2255ms
✓ AppContainer State Management > Session Recording Integration > provides chat recording service configuration 2053ms
✓ AppContainer State Management > Session Recording Integration > handles session recording when messages are added 2209ms
✓ AppContainer State Management > Session Resume Flow > accepts resumed session data 2493ms
✓ AppContainer State Management > Session Resume Flow > does not attempt resume when client is not initialized 1970ms
✓ AppContainer State Management > Token Counting from Session Stats > tracks token counts from session messages 1960ms
✓ AppContainer State Management > Quota and Fallback Integration > passes a null proQuotaRequest to UIStateContext by default 1279ms
✓ AppContainer State Management > Quota and Fallback Integration > passes a valid proQuotaRequest to UIStateContext when provided by the hook 1250ms
✓ AppContainer State Management > Quota and Fallback Integration > passes the handleProQuotaChoice function to UIActionsContext 1564ms
✓ AppContainer State Management > Terminal Title Update Feature > verifies useStdout is mocked 572ms
✓ AppContainer State Management > Terminal Title Update Feature > should update terminal title with Working… when showStatusInTitle is false 1391ms
✓ AppContainer State Management > Terminal Title Update Feature > should use legacy terminal title when dynamicWindowTitle is false 1507ms
✓ AppContainer State Management > Terminal Title Update Feature > should not update terminal title when hideWindowTitle is true 1388ms
✓ AppContainer State Management > Terminal Title Update Feature > should update terminal title with thought subject when in active state 1289ms
✓ AppContainer State Management > Terminal Title Update Feature > should update terminal title with default text when in Idle state and no thought subject 1280ms
✓ AppContainer State Management > Terminal Title Update Feature > should update terminal title when in WaitingForConfirmation state with thought subject 1484ms
✓ AppContainer State Management > Terminal Title Update Feature > Shell Focus Action Required > should show Action Required in title after a delay when shell is awaiting focus 8746ms
✓ AppContainer State Management > Terminal Title Update Feature > Shell Focus Action Required > should show Working… in title for redirected commands after 2 mins 1348ms
✓ AppContainer State Management > Terminal Title Update Feature > Shell Focus Action Required > should show Working… in title for silent non-redirected commands after 1 min 619ms
✓ AppContainer State Management > Terminal Title Update Feature > Shell Focus Action Required > should NOT show Action Required in title if shell is streaming output 493ms
✓ AppContainer State Management > Terminal Title Update Feature > should pad title to exactly 80 characters 1350ms
✓ AppContainer State Management > Terminal Title Update Feature > should use correct ANSI escape code format 1285ms
✓ AppContainer State Management > Terminal Title Update Feature > should use CLI_TITLE environment variable when set 1364ms
✓ AppContainer State Management > Queue Error Message > should set and clear the queue error message after a timeout 725ms
✓ AppContainer State Management > Queue Error Message > should reset the timer if a new error message is set 794ms
✓ AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > CTRL+C > should cancel ongoing request on first press 603ms
✓ AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > CTRL+C > should quit on second press 432ms
✓ AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > CTRL+C > should reset press count after a timeout 1430ms
✓ AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > CTRL+D > should quit on second press if buffer is empty 724ms
✓ AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > CTRL+D > should NOT quit if buffer is not empty 1876ms
✓ AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > CTRL+D > should reset press count after a timeout 770ms
✓ AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > CTRL+Z > should call handleSuspend 506ms
✓ AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > Focus Handling (Tab / Shift+Tab) > should focus shell input on Tab 455ms
✓ AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > Focus Handling (Tab / Shift+Tab) > should unfocus shell input on Shift+Tab 644ms
✓ AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > Focus Handling (Tab / Shift+Tab) > should auto-unfocus when activePtyId becomes null 552ms
✓ AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > Focus Handling (Tab / Shift+Tab) > should focus background shell on Tab when already visible (not toggle it off) 562ms
✓ AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > Background Shell Toggling (CTRL+B) > should toggle background shell on Ctrl+B even if visible but not focused 625ms
✓ AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > Background Shell Toggling (CTRL+B) > should show and focus background shell on Ctrl+B if hidden 418ms
✓ AppContainer State Management > Shortcuts Help Visibility > dismisses shortcuts help when a registered hotkey is pressed 600ms
✓ AppContainer State Management > Shortcuts Help Visibility > dismisses shortcuts help when streaming starts 517ms
✓ AppContainer State Management > Shortcuts Help Visibility > dismisses shortcuts help when action-required confirmation appears 622ms
✓ AppContainer State Management > Copy Mode (F9) > 'Normal Mode' > should NOT toggle mouse off when F9 is pressed 534ms
✓ AppContainer State Management > Copy Mode (F9) > 'Alternate Buffer Mode' > should toggle mouse off when F9 is pressed 383ms
✓ AppContainer State Management > Copy Mode (F9) > 'Alternate Buffer Mode' > should toggle mouse back on when F9 is pressed again 495ms
✓ AppContainer State Management > Copy Mode (F9) > 'Alternate Buffer Mode' > should exit copy mode on non-scroll key press 561ms
✓ AppContainer State Management > Copy Mode (F9) > 'Alternate Buffer Mode' > should not exit copy mode on PageDown and should pass it through 832ms
✓ AppContainer State Management > Copy Mode (F9) > 'Alternate Buffer Mode' > should not exit copy mode on Shift+Down and should pass it through 585ms
✓ AppContainer State Management > Copy Mode (F9) > 'Alternate Buffer Mode' > should have higher priority than other priority listeners when enabled 839ms
✓ AppContainer State Management > Model Dialog Integration > should provide isModelDialogOpen in the UIStateContext 1518ms
✓ AppContainer State Management > Model Dialog Integration > should provide model dialog actions in the UIActionsContext 1360ms
✓ AppContainer State Management > Agent Configuration Dialog Integration > should initialize with dialog closed and no agent selected 1351ms
✓ AppContainer State Management > Agent Configuration Dialog Integration > should update state when openAgentConfigDialog is called 1502ms
✓ AppContainer State Management > Agent Configuration Dialog Integration > should clear state when closeAgentConfigDialog is called 1535ms
✓ AppContainer State Management > CoreEvents Integration > subscribes to UserFeedback and drains backlog on mount 1540ms
✓ AppContainer State Management > CoreEvents Integration > unsubscribes from UserFeedback on unmount 1831ms
✓ AppContainer State Management > CoreEvents Integration > adds history item when UserFeedback event is received 1515ms
✓ AppContainer State Management > CoreEvents Integration > updates currentModel when ModelChanged event is received 1432ms
✓ AppContainer State Management > CoreEvents Integration > provides activeHooks from useHookDisplayState 1347ms
✓ AppContainer State Management > CoreEvents Integration > handles consent request events 1400ms
✓ AppContainer State Management > CoreEvents Integration > unsubscribes from ConsentRequest on unmount 1327ms
✓ AppContainer State Management > Banner Text > should render placeholder banner text for USE_GEMINI auth type 1320ms
✓ AppContainer State Management > onCancelSubmit Behavior > preserves buffer when cancelling, even if empty (user is in control) 1373ms
✓ AppContainer State Management > onCancelSubmit Behavior > preserves prompt text when cancelling streaming, even if same as last message (regression test for issue #13387) 1502ms
✓ AppContainer State Management > onCancelSubmit Behavior > restores the prompt when onCancelSubmit is called with shouldRestorePrompt=true (or undefined) 1428ms
✓ AppContainer State Management > onCancelSubmit Behavior > input history is independent from conversation history (survives /clear) 1792ms
✓ AppContainer State Management > Regression Tests > does not refresh static on startup if banner text is empty 1493ms
✓ AppContainer State Management > Submission Handling > resets expansion state on submission when not in alternate buffer 1386ms
✓ AppContainer State Management > Submission Handling > resets expansion state on submission when in alternate buffer without clearing terminal 1364ms
✓ AppContainer State Management > Overflow Hint Handling > should set showIsExpandableHint when overflow occurs in Standard Mode and hides after 10s 541ms
✓ AppContainer State Management > Overflow Hint Handling > resets the hint timer when a new component overflows (overflowingIdsSize increases) 556ms
✓ AppContainer State Management > Overflow Hint Handling > toggles expansion state and resets the hint timer when Ctrl+O is pressed in Standard Mode 436ms
✓ AppContainer State Management > Overflow Hint Handling > toggles Ctrl+O multiple times and verifies the hint disappears exactly after the last toggle 416ms
✓ AppContainer State Management > Overflow Hint Handling > DOES set showIsExpandableHint when overflow occurs in Alternate Buffer Mode 418ms
✓ AppContainer State Management > Permission Handling > shows permission dialog when checkPermissions returns paths 1321ms
✓ AppContainer State Management > Permission Handling > handles permissions when allowed is true 1491ms
✓ AppContainer State Management > Permission Handling > handles permissions when allowed is false 1668ms
✓ AppContainer State Management > Plan Mode Availability > should allow plan mode when enabled and idle 1532ms
✓ AppContainer State Management > Plan Mode Availability > should NOT allow plan mode when disabled in config 1505ms
✓ AppContainer State Management > Plan Mode Availability > should NOT allow plan mode when streaming 1543ms
✓ AppContainer State Management > Plan Mode Availability > should NOT allow plan mode when a tool is awaiting confirmation 1929ms
✓ src/ui/components/messages/SubagentProgressDisplay.test.tsx (9 tests) 13821ms
✓ > renders correctly with description in args 3258ms
✓ > renders correctly with displayName and description from item 1364ms
✓ > renders correctly with command fallback 1254ms
✓ > renders correctly with file_path 1668ms
✓ > truncates long args 1289ms
✓ > renders thought bubbles correctly 1217ms
✓ > renders cancelled state correctly 1231ms
✓ > renders "Request cancelled." with the info icon 1242ms
✓ > renders error tool status correctly 1240ms
✓ src/config/config.test.ts (217 tests | 1 skipped) 176145ms
✓ parseArguments > worktree > should parse --worktree flag when provided with a name 606ms
✓ parseArguments > worktree > should throw an error when --worktree is used but experimental.worktrees is not enabled 366ms
✓ parseArguments > should throw an error when using conflicting yolo/approval-mode flags ('short flags') 468ms
✓ loadCliConfig > Proxy configuration > should leave proxy to empty by default 5432ms
✓ loadCliConfig > Proxy configuration > should set proxy to http://localhost:7890 according to environment variable [https_proxy] 998ms
✓ loadCliConfig > Proxy configuration > should set proxy to http://localhost:7890 according to environment variable [http_proxy] 1065ms
✓ loadCliConfig > Proxy configuration > should set proxy to http://localhost:7890 according to environment variable [HTTPS_PROXY] 1527ms
✓ loadCliConfig > Proxy configuration > should set proxy to http://localhost:7890 according to environment variable [HTTP_PROXY] 1394ms
✓ loadCliConfig > should add IDE workspace folders from GEMINI_CLI_IDE_WORKSPACE_PATH to include directories 1214ms
✓ loadCliConfig > should skip inaccessible workspace folders from GEMINI_CLI_IDE_WORKSPACE_PATH 1062ms
✓ loadCliConfig > should use default fileFilter options when unconfigured 1629ms
✓ loadCliConfig > should be non-interactive when isCommand is set 1351ms
✓ Hierarchical Memory Loading (config.ts) - Placeholder Suite > should pass extension context file paths to loadServerHierarchicalMemory 956ms
✓ Hierarchical Memory Loading (config.ts) - Placeholder Suite > should pass includeDirectories to loadServerHierarchicalMemory when loadMemoryFromIncludeDirectories is true 747ms
✓ Hierarchical Memory Loading (config.ts) - Placeholder Suite > should NOT pass includeDirectories to loadServerHierarchicalMemory when loadMemoryFromIncludeDirectories is false 956ms
✓ mergeMcpServers > should not modify the original settings object 1130ms
✓ mergeExcludeTools > should merge excludeTools from settings and extensions 939ms
✓ mergeExcludeTools > should handle overlapping excludeTools between settings and extensions 817ms
✓ mergeExcludeTools > should handle overlapping excludeTools between extensions 1179ms
✓ mergeExcludeTools > should return an empty array when no excludeTools are specified and it is interactive 1331ms
✓ mergeExcludeTools > should return default excludes when no excludeTools are specified and it is not interactive 808ms
✓ mergeExcludeTools > should handle settings with excludeTools but no extensions 642ms
✓ mergeExcludeTools > should handle extensions with excludeTools but no settings 1152ms
✓ mergeExcludeTools > should not modify the original settings object 1209ms
✓ Approval mode tool exclusion logic > should exclude all interactive tools in non-interactive mode with default approval mode 738ms
✓ Approval mode tool exclusion logic > should exclude all interactive tools in non-interactive mode with explicit default approval mode 673ms
✓ Approval mode tool exclusion logic > should exclude only shell tools in non-interactive mode with auto_edit approval mode 1115ms
✓ Approval mode tool exclusion logic > should exclude only ask_user in non-interactive mode with yolo approval mode 1440ms
✓ Approval mode tool exclusion logic > should exclude all interactive tools in non-interactive mode with plan approval mode 1563ms
✓ Approval mode tool exclusion logic > should exclude only ask_user in non-interactive mode with legacy yolo flag 1020ms
✓ Approval mode tool exclusion logic > should not exclude interactive tools in interactive mode regardless of approval mode 4839ms
✓ Approval mode tool exclusion logic > should merge approval mode exclusions with settings exclusions in auto_edit mode 993ms
✓ Approval mode tool exclusion logic > should fall back to default approval mode if plan mode is requested but not enabled 863ms
✓ Approval mode tool exclusion logic > should allow plan approval mode if plan is enabled 746ms
✓ loadCliConfig with allowed-mcp-server-names > should allow all MCP servers if the flag is not provided 905ms
✓ loadCliConfig with allowed-mcp-server-names > should allow only the specified MCP server 1118ms
✓ loadCliConfig with allowed-mcp-server-names > should allow multiple specified MCP servers 590ms
✓ loadCliConfig with allowed-mcp-server-names > should handle server names that do not exist 913ms
✓ loadCliConfig with allowed-mcp-server-names > should allow no MCP servers if the flag is provided but empty 988ms
✓ loadCliConfig with allowed-mcp-server-names > should read allowMCPServers from settings 667ms
✓ loadCliConfig with allowed-mcp-server-names > should read excludeMCPServers from settings 779ms
✓ loadCliConfig with allowed-mcp-server-names > should override allowMCPServers with excludeMCPServers if overlapping 877ms
✓ loadCliConfig with allowed-mcp-server-names > should prioritize mcp server flag if set 1061ms
✓ loadCliConfig with allowed-mcp-server-names > should prioritize CLI flag over both allowed and excluded settings 860ms
✓ loadCliConfig with admin.mcp.config > should use local configuration if admin allowlist is empty 1412ms
✓ loadCliConfig with admin.mcp.config > should ignore locally configured servers not present in the allowlist 877ms
✓ loadCliConfig with admin.mcp.config > should clear command, args, env, and cwd for present servers 1037ms
✓ loadCliConfig with admin.mcp.config > should not initialize a server if it is in allowlist but missing locally 675ms
✓ loadCliConfig with admin.mcp.config > should merge local fields and prefer admin tool filters 1041ms
✓ loadCliConfig with admin.mcp.config > should use local tool filters when admin does not define them 726ms
✓ loadCliConfig model selection > selects a model from settings.json if provided 606ms
✓ loadCliConfig model selection > uses the default gemini model if nothing is set 1179ms
✓ loadCliConfig model selection > always prefers model from argv 653ms
✓ loadCliConfig model selection > selects the model from argv if provided 936ms
✓ loadCliConfig model selection > selects the default auto model if provided via auto alias 952ms
✓ loadCliConfig folderTrust > should be false when folderTrust is false 709ms
✓ loadCliConfig folderTrust > should be true when folderTrust is true 1619ms
✓ loadCliConfig folderTrust > should be true by default 946ms
✓ loadCliConfig compressionThreshold > should pass settings to the core config 1139ms
✓ loadCliConfig compressionThreshold > should have default compressionThreshold if not in settings 639ms
✓ loadCliConfig useRipgrep > should be true by default when useRipgrep is not set in settings 690ms
✓ loadCliConfig useRipgrep > should be false when useRipgrep is set to false in settings 725ms
✓ loadCliConfig useRipgrep > should be true when useRipgrep is explicitly set to true in settings 887ms
✓ loadCliConfig directWebFetch > should be false by default when directWebFetch is not set in settings 1008ms
✓ loadCliConfig directWebFetch > should be true when directWebFetch is set to true in settings 1416ms
✓ loadCliConfig context management > should be false by default when generalistProfile / context management is not set in settings 673ms
✓ loadCliConfig context management > should be true when generalistProfile is set to true in settings 1319ms
✓ loadCliConfig context management > should be true when contextManagement is set to true in settings 842ms
✓ screenReader configuration > should use screenReader value from settings if CLI flag is not present (settings true) 1003ms
✓ screenReader configuration > should use screenReader value from settings if CLI flag is not present (settings false) 2402ms
✓ screenReader configuration > should prioritize --screen-reader CLI flag (true) over settings (false) 721ms
✓ screenReader configuration > should be false by default when no flag or setting is present 850ms
✓ loadCliConfig tool exclusions > should not exclude interactive tools in interactive mode without YOLO 885ms
✓ loadCliConfig tool exclusions > should not exclude interactive tools in interactive mode with YOLO 680ms
✓ loadCliConfig tool exclusions > should exclude interactive tools in non-interactive mode without YOLO 1033ms
✓ loadCliConfig tool exclusions > should exclude only ask_user in non-interactive mode with YOLO 734ms
✓ loadCliConfig tool exclusions > should exclude ask_user in interactive mode when --acp is provided 667ms
✓ loadCliConfig tool exclusions > should exclude ask_user in interactive mode when --experimental-acp is provided 2471ms
✓ loadCliConfig tool exclusions > should not exclude shell tool in non-interactive mode when --allowed-tools="ShellTool" is set 982ms
✓ loadCliConfig tool exclusions > should not exclude web-fetch in non-interactive mode at config level 756ms
✓ loadCliConfig tool exclusions > should not exclude web-fetch in non-interactive mode when allowed 1316ms
✓ loadCliConfig tool exclusions > should not exclude shell tool in non-interactive mode when --allowed-tools="run_shell_command" is set 752ms
✓ loadCliConfig tool exclusions > should not exclude shell tool in non-interactive mode when --allowed-tools="ShellTool(wc)" is set 669ms
✓ loadCliConfig interactive > should be interactive if isTTY and no prompt 869ms
✓ loadCliConfig interactive > should be interactive if prompt-interactive is set 779ms
✓ loadCliConfig interactive > should not be interactive if not isTTY and no prompt 794ms
✓ loadCliConfig interactive > should not be interactive if prompt is set 889ms
✓ loadCliConfig interactive > should be interactive if positional prompt words are provided with other flags 1130ms
✓ loadCliConfig interactive > should be interactive if positional prompt words are provided with multiple flags 1488ms
✓ loadCliConfig interactive > should be interactive if positional prompt words are provided with extensions flag 1260ms
✓ loadCliConfig interactive > should handle multiple positional words correctly 1455ms
✓ loadCliConfig interactive > should handle multiple positional words with flags 755ms
✓ loadCliConfig interactive > should handle empty positional arguments 793ms
✓ loadCliConfig interactive > should handle extensions flag with positional arguments correctly 1405ms
✓ loadCliConfig interactive > should be interactive if no positional prompt words are provided with flags 1291ms
✓ loadCliConfig approval mode > should default to DEFAULT approval mode when no flags are set 670ms
✓ loadCliConfig approval mode > should set YOLO approval mode when --yolo flag is used 1781ms
✓ loadCliConfig approval mode > should set YOLO approval mode when -y flag is used 771ms
✓ loadCliConfig approval mode > should set DEFAULT approval mode when --approval-mode=default 702ms
✓ loadCliConfig approval mode > should set AUTO_EDIT approval mode when --approval-mode=auto_edit 1594ms
✓ loadCliConfig approval mode > should set YOLO approval mode when --approval-mode=yolo 1495ms
✓ loadCliConfig approval mode > should prioritize --approval-mode over --yolo when both would be valid (but validation prevents this) 1486ms
✓ loadCliConfig approval mode > should fall back to --yolo behavior when --approval-mode is not set 1021ms
✓ loadCliConfig approval mode > should set Plan approval mode when --approval-mode=plan is used and plan is enabled 1051ms
✓ loadCliConfig approval mode > should ignore "yolo" in settings.tools.approvalMode and fall back to DEFAULT 713ms
✓ loadCliConfig approval mode > should throw error when --approval-mode=plan is used but plan is disabled 809ms
✓ loadCliConfig approval mode > should allow plan approval mode by default when --approval-mode=plan is used 778ms
✓ loadCliConfig approval mode > should pass planSettings.directory from settings to config 1049ms
✓ loadCliConfig approval mode > when folder is NOT trusted > should override --approval-mode=yolo to DEFAULT 634ms
✓ loadCliConfig approval mode > when folder is NOT trusted > should override --approval-mode=auto_edit to DEFAULT 732ms
✓ loadCliConfig approval mode > when folder is NOT trusted > should override --yolo flag to DEFAULT 759ms
✓ loadCliConfig approval mode > when folder is NOT trusted > should remain DEFAULT when --approval-mode=default 728ms
✓ loadCliConfig approval mode > Persistent approvalMode setting > should use approvalMode from settings when no CLI flags are set 1059ms
✓ loadCliConfig approval mode > Persistent approvalMode setting > should prioritize --approval-mode flag over settings 1165ms
✓ loadCliConfig approval mode > Persistent approvalMode setting > should prioritize --yolo flag over settings 850ms
✓ loadCliConfig approval mode > Persistent approvalMode setting > should respect plan mode from settings when plan is enabled 1022ms
✓ loadCliConfig approval mode > Persistent approvalMode setting > should fall back to default if plan mode is in settings but disabled 1545ms
✓ loadCliConfig gemmaModelRouter > should have gemmaModelRouter disabled by default 1118ms
✓ loadCliConfig gemmaModelRouter > should load gemmaModelRouter settings from merged settings 836ms
✓ loadCliConfig gemmaModelRouter > should handle partial gemmaModelRouter settings 1061ms
✓ loadCliConfig fileFiltering > should pass 'enableFuzzySearch' from settings to config when true 1351ms
✓ loadCliConfig fileFiltering > should pass 'enableFuzzySearch' from settings to config when false 1550ms
✓ loadCliConfig fileFiltering > should pass 'respectGitIgnore' from settings to config when true 1260ms
✓ loadCliConfig fileFiltering > should pass 'respectGitIgnore' from settings to config when false 678ms
✓ loadCliConfig fileFiltering > should pass 'respectGeminiIgnore' from settings to config when true 742ms
✓ loadCliConfig fileFiltering > should pass 'respectGeminiIgnore' from settings to config when false 639ms
✓ loadCliConfig fileFiltering > should pass 'enableRecursiveFileSearch' from settings to config when true 1006ms
✓ loadCliConfig fileFiltering > should pass 'enableRecursiveFileSearch' from settings to config when false 723ms
✓ Output format > should default to TEXT 760ms
✓ Output format > should use the format from settings 579ms
✓ Output format > should prioritize the format from argv 903ms
✓ Output format > should accept stream-json as a valid output format 620ms
✓ Telemetry configuration via environment variables > should prioritize GEMINI_TELEMETRY_ENABLED over settings 1218ms
✓ Telemetry configuration via environment variables > should prioritize GEMINI_TELEMETRY_TARGET over settings 1343ms
✓ Telemetry configuration via environment variables > should throw when GEMINI_TELEMETRY_TARGET is invalid 316ms
✓ Telemetry configuration via environment variables > should prioritize GEMINI_TELEMETRY_OTLP_ENDPOINT over settings and default env var 724ms
✓ Telemetry configuration via environment variables > should prioritize GEMINI_TELEMETRY_OTLP_PROTOCOL over settings 785ms
✓ Telemetry configuration via environment variables > should prioritize GEMINI_TELEMETRY_LOG_PROMPTS over settings 545ms
✓ Telemetry configuration via environment variables > should prioritize GEMINI_TELEMETRY_OUTFILE over settings 2017ms
✓ Telemetry configuration via environment variables > should prioritize GEMINI_TELEMETRY_USE_COLLECTOR over settings 973ms
✓ Telemetry configuration via environment variables > should use settings value when GEMINI_TELEMETRY_ENABLED is not set 937ms
✓ Telemetry configuration via environment variables > should use settings value when GEMINI_TELEMETRY_TARGET is not set 1113ms
✓ Telemetry configuration via environment variables > should treat GEMINI_TELEMETRY_ENABLED='1' as true 742ms
✓ Telemetry configuration via environment variables > should treat GEMINI_TELEMETRY_ENABLED='0' as false 3305ms
✓ Telemetry configuration via environment variables > should treat GEMINI_TELEMETRY_LOG_PROMPTS='1' as true 1256ms
✓ Telemetry configuration via environment variables > should treat GEMINI_TELEMETRY_LOG_PROMPTS='false' as false 889ms
✓ PolicyEngine nonInteractive wiring > should set nonInteractive to true when -p flag is used 771ms
✓ PolicyEngine nonInteractive wiring > should set nonInteractive to false in interactive mode 915ms
✓ Policy Engine Integration in loadCliConfig > should pass merged allowed tools from CLI and settings to createPolicyEngineConfig 1255ms
✓ Policy Engine Integration in loadCliConfig > should pass merged exclude tools from CLI logic and settings to createPolicyEngineConfig 751ms
✓ Policy Engine Integration in loadCliConfig > should pass user-provided policy paths from --policy flag to createPolicyEngineConfig 700ms
✓ loadCliConfig disableYoloMode > should allow auto_edit mode even if yolo mode is disabled 1001ms
✓ loadCliConfig disableYoloMode > should throw if YOLO mode is attempted when disableYoloMode is true 351ms
✓ loadCliConfig secureModeEnabled > should throw an error if approval-mode=yolo is attempted when secureModeEnabled is true 354ms
✓ loadCliConfig secureModeEnabled > should set disableYoloMode to true when secureModeEnabled is true 545ms
✓ loadCliConfig mcpEnabled > should enable MCP by default 703ms
✓ loadCliConfig mcpEnabled > should disable MCP when mcpEnabled is false 1089ms
✓ loadCliConfig mcpEnabled > should enable MCP when mcpEnabled is true 813ms
✓ loadCliConfig mcpEnabled > extension plan settings > should use plan directory from active extension when user has not specified one 888ms
✓ loadCliConfig mcpEnabled > extension plan settings > should NOT use plan directory from active extension when user has specified one 705ms
✓ loadCliConfig mcpEnabled > extension plan settings > should NOT use plan directory from inactive extension 855ms
✓ loadCliConfig mcpEnabled > extension plan settings > should use default path if neither user nor extension settings provide a plan directory 1015ms
✓ loadCliConfig acpMode and clientName > should set acpMode to true and detect clientName when --acp flag is used 919ms
✓ loadCliConfig acpMode and clientName > should set acpMode to true but leave clientName undefined for generic terminals 841ms
✓ loadCliConfig acpMode and clientName > should set acpMode to false and clientName to undefined by default 865ms
[?25h[?2004h ✓ src/services/SkillCommandLoader.test.ts (8 tests) 644ms
[?2004h[?25hstderr | DebugLogger.error (/build/gemini-cli/src/gemini-cli/packages/core/src/utils/debugLogger.ts:60:13)
{"stack":"Error: PeriodicExportingMetricReader: metrics export failed (error Error: 14 UNAVAILABLE: No connection established. Last error: Error: connect ECONNREFUSED ::1:4317)\n at PeriodicExportingMetricReader._doRun (/build/gemini-cli/src/gemini-cli/node_modules/@opentelemetry/sdk-metrics/src/export/PeriodicExportingMetricReader.ts:146:13)\n at processTicksAndRejections (node:internal/process/task_queues:104:5)\n at PeriodicExportingMetricReader._runOnce (/build/gemini-cli/src/gemini-cli/node_modules/@opentelemetry/sdk-metrics/src/export/PeriodicExportingMetricReader.ts:105:7)","message":"PeriodicExportingMetricReader: metrics export failed (error Error: 14 UNAVAILABLE: No connection established. Last error: Error: connect ECONNREFUSED ::1:4317)","name":"Error"}
stderr | DebugLogger.error (/build/gemini-cli/src/gemini-cli/packages/core/src/utils/debugLogger.ts:60:13)
{"stack":"Error: PeriodicExportingMetricReader: metrics export failed (error Error: 14 UNAVAILABLE: No connection established. Last error: Error: connect ECONNREFUSED ::1:4317)\n at PeriodicExportingMetricReader._doRun (/build/gemini-cli/src/gemini-cli/node_modules/@opentelemetry/sdk-metrics/src/export/PeriodicExportingMetricReader.ts:146:13)\n at processTicksAndRejections (node:internal/process/task_queues:104:5)\n at PeriodicExportingMetricReader._runOnce (/build/gemini-cli/src/gemini-cli/node_modules/@opentelemetry/sdk-metrics/src/export/PeriodicExportingMetricReader.ts:105:7)\n at PeriodicExportingMetricReader.onForceFlush (/build/gemini-cli/src/gemini-cli/node_modules/@opentelemetry/sdk-metrics/src/export/PeriodicExportingMetricReader.ts:166:5)\n at PeriodicExportingMetricReader.onShutdown (/build/gemini-cli/src/gemini-cli/node_modules/@opentelemetry/sdk-metrics/src/export/PeriodicExportingMetricReader.ts:174:5)\n at PeriodicExportingMetricReader.shutdown (/build/gemini-cli/src/gemini-cli/node_modules/@opentelemetry/sdk-metrics/src/export/MetricReader.ts:260:7)\n at MetricCollector.shutdown (/build/gemini-cli/src/gemini-cli/node_modules/@opentelemetry/sdk-metrics/src/state/MetricCollector.ts:92:5)\n at async Promise.all (index 0)\n at MeterProvider.shutdown (/build/gemini-cli/src/gemini-cli/node_modules/@opentelemetry/sdk-metrics/src/MeterProvider.ts:98:5)\n at async Promise.all (index 2)","message":"PeriodicExportingMetricReader: metrics export failed (error Error: 14 UNAVAILABLE: No connection established. Last error: Error: connect ECONNREFUSED ::1:4317)","name":"Error"}
[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/AlternateBufferQuittingDisplay.test.tsx (6 tests | 1 failed) 11904ms
✓ AlternateBufferQuittingDisplay > renders with active and pending tool messages 4362ms
✓ AlternateBufferQuittingDisplay > renders with empty history and no pending items 1545ms
✓ AlternateBufferQuittingDisplay > renders with history but no pending items 1760ms
✓ AlternateBufferQuittingDisplay > renders with pending items but no history 1486ms
✓ AlternateBufferQuittingDisplay > renders with a tool awaiting confirmation 1474ms
× AlternateBufferQuittingDisplay > renders with user and gemini messages 1242ms
→ Snapshot `AlternateBufferQuittingDisplay > renders with user and gemini messages > with_user_gemini_messages 1` mismatched
[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/utils/borderStyles.test.tsx (7 tests | 3 failed) 10361ms
✓ getToolGroupBorderAppearance > should use warning color for pending non-shell tools 106ms
✓ getToolGroupBorderAppearance > should use correct color for empty slice by looking at pending items 19ms
✓ getToolGroupBorderAppearance > should use active color for shell tools 17ms
✓ getToolGroupBorderAppearance > should use focus color for focused shell tools 16ms
× MainContent tool group border SVG snapshots > should render SVG snapshot for a pending search dialog (google_web_search) 5243ms
→ 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 2656ms
→ Snapshot `MainContent tool group border SVG snapshots > should render SVG snapshot for an empty slice following a search tool 1` mismatched
× MainContent tool group border SVG snapshots > should render SVG snapshot for a shell tool 2264ms
→ Snapshot `MainContent tool group border SVG snapshots > should render SVG snapshot for a shell tool 1` mismatched
[?2004h ✓ src/utils/agentSettings.test.ts (6 tests) 253ms
❯ src/ui/components/shared/BaseSettingsDialog.test.tsx (33 tests | 16 failed) 426172ms
✓ BaseSettingsDialog > rendering > should render the dialog with title 6396ms
× BaseSettingsDialog > rendering > should render all items 3983ms
→ expected '╭────────────────────────────────────…' to contain 'Boolean Setting'
× BaseSettingsDialog > rendering > should render help text with Ctrl+L for reset 3719ms
→ expected '╭────────────────────────────────────…' to contain 'Use Enter to select'
× BaseSettingsDialog > rendering > should render scope selector when showScopeSelector is true 3521ms
→ expected '╭────────────────────────────────────…' to contain 'Apply To'
✓ BaseSettingsDialog > rendering > should not render scope selector when showScopeSelector is false 3474ms
× BaseSettingsDialog > rendering > should render footer content when provided 3558ms
→ expected '╭────────────────────────────────────…' to contain 'Custom Footer'
✓ BaseSettingsDialog > keyboard navigation > should close dialog on Escape 5349ms
× BaseSettingsDialog > keyboard navigation > should navigate down with arrow key 3440ms
→ expected '╭────────────────────────────────────…' to contain 'Boolean Setting'
✓ BaseSettingsDialog > keyboard navigation > should navigate up with arrow key 6998ms
✓ BaseSettingsDialog > keyboard navigation > should wrap around when navigating past last item 6226ms
✓ BaseSettingsDialog > keyboard navigation > should wrap around when navigating before first item 6121ms
× BaseSettingsDialog > keyboard navigation > should switch focus with Tab when scope selector is shown 4013ms
→ expected '╭────────────────────────────────────…' to contain '> Test Settings'
× BaseSettingsDialog > scrolling and resizing list (search filtering) > should preserve focus on the active item if it remains in the filtered list 10153ms
→ expected '╭────────────────────────────────────…' to contain 'Boolean Setting'
× BaseSettingsDialog > scrolling and resizing list (search filtering) > should reset focus to the top if the active item is filtered out 9453ms
→ expected '╭────────────────────────────────────…' to contain 'Boolean Setting'
✓ BaseSettingsDialog > item interactions > should call onItemToggle for boolean items on Enter 4434ms
✓ BaseSettingsDialog > item interactions > should call onItemToggle for enum items on Enter 3888ms
× BaseSettingsDialog > item interactions > should enter edit mode for string items on Enter 6637ms
→ expected '╭────────────────────────────────────…' to contain 'test-value'
× BaseSettingsDialog > item interactions > should enter edit mode for number items on Enter 7656ms
→ expected '╭────────────────────────────────────…' to contain '42'
✓ BaseSettingsDialog > item interactions > should call onItemClear on Ctrl+L 4963ms
× BaseSettingsDialog > edit mode > should prioritize editValue over rawValue stringification 60723ms
→ Test timed out in 60000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
× BaseSettingsDialog > edit mode > should commit edit on Enter 61045ms
→ Test timed out in 60000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
✓ BaseSettingsDialog > edit mode > should commit edit on Escape 12196ms
✓ BaseSettingsDialog > edit mode > should commit edit and navigate on Down arrow 11123ms
✓ BaseSettingsDialog > edit mode > should commit edit and navigate on Up arrow 14090ms
× BaseSettingsDialog > edit mode > should allow number input for number fields 60837ms
→ Test timed out in 60000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
✓ BaseSettingsDialog > edit mode > should support quick number entry for number fields 12940ms
✓ BaseSettingsDialog > edit mode > should allow j and k characters to be typed in string edit fields without triggering navigation 22339ms
✓ BaseSettingsDialog > custom key handling > should call onKeyPress and respect its return value 12816ms
× BaseSettingsDialog > focus management > should keep focus on settings when scope selector is hidden 17103ms
→ expected '╭────────────────────────────────────…' to contain '> Test Settings'
× BaseSettingsDialog > responsiveness > should show the scope selector when availableHeight is sufficient (25) 9539ms
→ expected '╭────────────────────────────────────…' to contain 'Apply To'
✓ BaseSettingsDialog > responsiveness > should hide the scope selector when availableHeight is small (24) to show more items 8587ms
× BaseSettingsDialog > responsiveness > should reduce the number of visible items based on height 9569ms
→ expected '╭────────────────────────────────────…' to contain 'Boolean Setting'
✓ BaseSettingsDialog > responsiveness > should show scroll indicators when list is truncated by height 9214ms
❯ src/ui/components/FooterConfigDialog.test.tsx (8 tests | 7 failed) 194676ms
× > renders correctly with default settings 6306ms
→ Snapshot ` > renders correctly with default settings 3` mismatched
× > toggles an item when enter is pressed 11368ms
→ expected '╭────────────────────────────────────…' to contain '[ ] workspace'
× > reorders items with arrow keys 4474ms
→ expected -1 to be greater than -1
✓ > closes on Esc 7150ms
× > highlights the active item in the preview 50793ms
→ expected '╭────────────────────────────────────…' to match /> \[ \] code-changes/
× > shows an empty preview when all items are deselected 51552ms
→ expected '╭────────────────────────────────────…' not to contain 'docker'
× > moves item correctly after trying to move up at the top 6713ms
→ expected '╭────────────────────────────────────…' to contain '] git-branch'
× > updates the preview when Show footer labels is toggled off 56247ms
→ expected '╭────────────────────────────────────…' to match /> \[✓\] Show footer labels/
[?2004h ✓ src/ui/IdeIntegrationNudge.test.tsx (6 tests) 14634ms
✓ IdeIntegrationNudge > renders correctly with default options 3721ms
✓ IdeIntegrationNudge > handles "Yes" selection 2060ms
✓ IdeIntegrationNudge > handles "No" selection 2059ms
✓ IdeIntegrationNudge > handles "Dismiss" selection 2205ms
✓ IdeIntegrationNudge > handles Escape key press 2589ms
✓ IdeIntegrationNudge > displays correct text and handles selection when extension is pre-installed 1967ms
[?25h(node:6232) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 render listeners added to [XtermStdout]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
✓ src/config/footerItems.test.ts (10 tests) 420ms
[?2004h[?2004h[?25h ✓ src/ui/commands/statsCommand.test.ts (4 tests) 443ms
✓ src/utils/agentUtils.test.ts (8 tests) 137ms
[?2004h[?2004h ✓ src/ui/utils/mouse.test.ts (17 tests) 298ms
✓ src/utils/sandboxUtils.test.ts (17 tests) 486ms
✓ src/ui/components/messages/ToolGroupMessage.compact.test.tsx (4 tests) 11662ms
✓ ToolGroupMessage Compact Rendering > renders consecutive compact tools without empty lines between them 3796ms
✓ ToolGroupMessage Compact Rendering > does not add an extra empty line between a compact tool and a standard tool 2639ms
✓ ToolGroupMessage Compact Rendering > does not add an extra empty line if a compact tool has a dense payload 2624ms
✓ ToolGroupMessage Compact Rendering > does not add an extra empty line between a standard tool and a compact tool 2581ms
[?25h ✓ src/utils/hookUtils.test.ts (8 tests) 243ms
✓ src/commands/skills/install.test.ts (6 tests) 384ms
[?25h ✓ src/ui/utils/updateCheck.test.ts (10 tests) 323ms
[?2004h[?2004h ❯ src/ui/components/messages/Todo.test.tsx (14 tests | 3 failed) 21826ms
✓ (showFullTodos: true) > renders null when no todos are in the history 1857ms
✓ (showFullTodos: true) > renders null when todo list is empty 2031ms
✓ (showFullTodos: true) > renders when todos exist but none are in progress 2607ms
✓ (showFullTodos: true) > renders when todos exist and one is in progress 1430ms
✓ (showFullTodos: true) > renders a todo list with long descriptions that wrap when full view is on 1571ms
✓ (showFullTodos: true) > renders the most recent todo list when multiple write_todos calls are in history 1419ms
✓ (showFullTodos: true) > renders full list when all todos are inactive 1333ms
✓ (showFullTodos: false) > renders null when no todos are in the history 1310ms
✓ (showFullTodos: false) > renders null when todo list is empty 1218ms
✓ (showFullTodos: false) > renders when todos exist but none are in progress 1467ms
× (showFullTodos: false) > renders when todos exist and one is in progress 1755ms
→ Snapshot ` (showFullTodos: false) > renders when todos exist and one is in progress 1` mismatched
× (showFullTodos: false) > renders a todo list with long descriptions that wrap when full view is on 1236ms
→ Snapshot ` (showFullTodos: false) > renders a todo list with long descriptions that wrap when full view is on 1` mismatched
× (showFullTodos: false) > renders the most recent todo list when multiple write_todos calls are in history 1265ms
→ Snapshot ` (showFullTodos: false) > renders the most recent todo list when multiple write_todos calls are in history 1` mismatched
✓ (showFullTodos: false) > renders full list when all todos are inactive 1216ms
✓ src/ui/components/SessionBrowser/utils.test.ts (9 tests) 658ms
✓ SessionBrowser utils > sortSessions > sorts by date ascending/descending 444ms
✓ src/utils/terminalNotifications.test.ts (8 tests) 421ms
✓ src/config/extensions/variables.test.ts (13 tests) 347ms
✓ src/config/settings_validation_warning.test.ts (3 tests) 481ms
✓ Settings Validation Warning > should emit a warning and NOT throw when settings are invalid 328ms
✓ src/ui/commands/authCommand.test.ts (9 tests) 557ms
✓ src/commands/skills/enable.test.ts (4 tests) 240ms
[?25h(node:6232) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 render listeners added to [XtermStdout]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
✓ src/ui/commands/compressCommand.test.ts (6 tests) 917ms
✓ compressCommand > should do nothing if a compression is already pending 564ms
✓ src/core/auth.test.ts (6 tests) 286ms
✓ src/ui/hooks/shell-completions/gitProvider.test.ts (5 tests) 225ms
✓ src/commands/skills/list.test.ts (5 tests) 349ms
✓ src/config/extension-manager-permissions.test.ts (3 tests) 369ms
✓ src/core/initializer.test.ts (5 tests) 305ms
✓ src/config/extension-manager-agents.test.ts (2 tests) 5878ms
✓ ExtensionManager agents loading > should load agents from an extension 4093ms
✓ ExtensionManager agents loading > should log errors but continue if an agent fails to load 1753ms
✓ src/utils/readStdin.test.ts (6 tests) 497ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useFocus.test.tsx (7 tests) 10869ms
✓ useFocus > should initialize with focus and enable focus reporting 2612ms
✓ useFocus > should set isFocused to false when a focus-out event is received 1327ms
✓ useFocus > should set isFocused to true when a focus-in event is received 1209ms
✓ useFocus > should clean up and disable focus reporting on unmount 1362ms
✓ useFocus > should handle multiple focus events correctly 1341ms
✓ useFocus > restores focus on keypress after focus is lost 1186ms
✓ useFocus > tracks whether any focus event has been received 1768ms
[?2004h ✓ src/ui/commands/upgradeCommand.test.ts (6 tests) 1066ms
✓ upgradeCommand > should have the correct name and description 503ms
[?2004h[?2004h[?2004h ✓ src/ui/contexts/SettingsContext.test.tsx (5 tests) 7361ms
✓ SettingsContext > should provide the correct initial state 2412ms
✓ SettingsContext > should allow accessing settings for a specific scope 1249ms
✓ SettingsContext > should trigger re-renders when settings change (external event) 1156ms
✓ SettingsContext > should call store.setValue when setSetting is called 1223ms
✓ SettingsContext > should throw error if used outside provider 1280ms
✓ src/ui/layouts/DefaultAppLayout.test.tsx (3 tests) 5904ms
✓ > renders BackgroundTaskDisplay when shells exist and active 2928ms
✓ > hides BackgroundTaskDisplay when StreamingState is WaitingForConfirmation 1577ms
✓ > shows BackgroundTaskDisplay when StreamingState is NOT WaitingForConfirmation 1356ms
✓ src/ui/key/keybindingUtils.test.ts (38 tests) 580ms
[?2004h[?2004h ✓ src/ui/hooks/useFlickerDetector.test.ts (6 tests) 8016ms
✓ useFlickerDetector > should not record a flicker when height is less than terminal height 1902ms
✓ useFlickerDetector > should not record a flicker when height is equal to terminal height 1158ms
✓ useFlickerDetector > should record a flicker when height is greater than terminal height and height is constrained 1323ms
✓ useFlickerDetector > should NOT record a flicker when height is greater than terminal height but height is NOT constrained 1182ms
✓ useFlickerDetector > should not check for flicker if the ref is not set 1172ms
✓ useFlickerDetector > should re-evaluate on re-render 1233ms
✓ src/ui/components/EditorSettingsDialog.test.tsx (5 tests) 14467ms
✓ EditorSettingsDialog > renders correctly 3389ms
✓ EditorSettingsDialog > calls onSelect when an editor is selected 1776ms
✓ EditorSettingsDialog > switches focus between editor and scope sections on Tab 4989ms
✓ EditorSettingsDialog > calls onExit when Escape is pressed 2538ms
✓ EditorSettingsDialog > shows modified message when setting exists in other scope 1740ms
[?2004h[?2004h ✓ src/utils/activityLogger.test.ts (6 tests) 312ms
[?25h ✓ src/commands/skills/disable.test.ts (4 tests) 256ms
[?2004h[?2004h[?2004h ✓ src/ui/components/shared/EnumSelector.test.tsx (9 tests) 16094ms
✓ > renders with string options and matches snapshot 3600ms
✓ > renders with numeric options and matches snapshot 1993ms
✓ > renders inactive state and matches snapshot 1621ms
✓ > renders with single option and matches snapshot 1465ms
✓ > renders nothing when no options are provided 1680ms
✓ > handles currentValue not found in options 1455ms
✓ > updates when currentValue changes externally 1614ms
✓ > shows navigation arrows when multiple options available 1306ms
✓ > hides navigation arrows when single option available 1308ms
[?2004h ✓ src/ui/auth/ApiAuthDialog.test.tsx (6 tests) 11335ms
✓ ApiAuthDialog > renders correctly 3190ms
✓ ApiAuthDialog > renders with a defaultValue 1857ms
✓ ApiAuthDialog > calls 'spy' when 'enter' is pressed 1665ms
✓ ApiAuthDialog > calls 'spy' when 'escape' is pressed 1297ms
✓ ApiAuthDialog > displays an error message 1541ms
✓ ApiAuthDialog > calls clearApiKey and clears buffer when Ctrl+C is pressed 1740ms
[?2004h ✓ src/ui/privacy/CloudFreePrivacyNotice.test.tsx (9 tests) 18875ms
✓ CloudFreePrivacyNotice > renders correctly in 'loading state' 2338ms
✓ CloudFreePrivacyNotice > renders correctly in 'error state' 1433ms
✓ CloudFreePrivacyNotice > renders correctly in 'non-free tier state' 1343ms
✓ CloudFreePrivacyNotice > renders correctly in 'free tier state' 1680ms
✓ CloudFreePrivacyNotice > exits on Escape in 'error state': true 2201ms
✓ CloudFreePrivacyNotice > exits on Escape in 'non-free tier state': true 2314ms
✓ CloudFreePrivacyNotice > exits on Escape in 'free tier state (no selection)': false 2523ms
✓ CloudFreePrivacyNotice > RadioButtonSelect interaction > calls correct functions on selecting "'Yes'" 2553ms
✓ CloudFreePrivacyNotice > RadioButtonSelect interaction > calls correct functions on selecting "'No'" 2450ms
✓ src/ui/components/Header.test.tsx (7 tests) 14603ms
✓ > renders the long logo on a wide terminal 4599ms
✓ > renders custom ASCII art when provided 1346ms
✓ > displays the version number when nightly is true 1411ms
✓ > does not display the version number when nightly is false 1239ms
✓ > renders with no gradient when theme.ui.gradient is undefined 1723ms
✓ > renders with a single color when theme.ui.gradient has one color 2029ms
✓ > renders with a gradient when theme.ui.gradient has two or more colors 2202ms
[?2004h[?25h ✓ src/ui/components/shared/ExpandableText.test.tsx (7 tests) 11950ms
✓ ExpandableText > renders plain label when no match (short label) 3690ms
✓ ExpandableText > truncates long label when collapsed and no match 1471ms
✓ ExpandableText > shows full long label when expanded and no match 1347ms
✓ ExpandableText > highlights matched substring when expanded (text only visible) 1464ms
✓ ExpandableText > creates centered window around match when collapsed 1361ms
✓ ExpandableText > truncates match itself when match is very long 1297ms
✓ ExpandableText > respects custom maxWidth 1241ms
[?25h[?2004h ✓ src/ui/components/views/ExtensionsList.test.tsx (11 tests) 15424ms
✓ > should render "No extensions installed." if there are no extensions 2167ms
✓ > should render a list of extensions with their version and status 1548ms
✓ > should display "unknown state" if an extension has no update state 1262ms
✓ > should correctly display the state: 'checking for updates' 1414ms
✓ > should correctly display the state: 'updating' 1389ms
✓ > should correctly display the state: 'update available' 1364ms
✓ > should correctly display the state: 'updated, needs restart' 1183ms
✓ > should correctly display the state: 'updated' 1262ms
✓ > should correctly display the state: 'error' 1336ms
✓ > should correctly display the state: 'up to date' 1166ms
✓ > should render resolved settings for an extension 1296ms
[?25h ✓ src/ui/components/messages/ToolGroupMessageRegression.test.tsx (4 tests) 8428ms
✓ ToolGroupMessage Regression Tests > Plan Mode: suppresses phantom tool group (hidden tools) 2827ms
✓ ToolGroupMessage Regression Tests > Agent Case: suppresses the bottom border box for ongoing agents (no vertical ticks) 2351ms
✓ ToolGroupMessage Regression Tests > Agent Case: renders a bottom border horizontal line for completed agents 1406ms
✓ ToolGroupMessage Regression Tests > Bridges: still renders a bridge if it has a top border 1786ms
✓ src/ui/commands/clearCommand.test.ts (2 tests) 749ms
✓ clearCommand > should set debug message, reset chat, reset telemetry, clear hints, and clear UI when config is available 608ms
[?25h[?25h(node:6232) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 render listeners added to [XtermStdout]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
✓ src/ui/hooks/useSettingsNavigation.test.ts (8 tests) 10271ms
✓ useSettingsNavigation > should initialize with the first item active 1847ms
✓ useSettingsNavigation > should move down correctly 1236ms
✓ useSettingsNavigation > should move up correctly 1199ms
✓ useSettingsNavigation > should wrap around from top to bottom 1167ms
✓ useSettingsNavigation > should wrap around from bottom to top 1178ms
✓ useSettingsNavigation > should adjust scrollOffset when moving down past visible area 1193ms
✓ useSettingsNavigation > should adjust scrollOffset when moving up past visible area 1136ms
✓ useSettingsNavigation > should handle item preservation when list filters (Part 1 logic) 1264ms
[?25h[?25h[?25h[?25h ✓ src/ui/hooks/useTimer.test.tsx (8 tests) 2593ms
✓ useTimer > should initialize with 0 927ms
✓ useTimer > should not increment time if isActive is false 420ms
✓ src/ui/hooks/usePrivacySettings.test.tsx (4 tests) 6391ms
✓ usePrivacySettings > should throw error when content generator is not a CodeAssistServer 2507ms
✓ usePrivacySettings > should handle paid tier users correctly 1174ms
✓ usePrivacySettings > should throw error when CodeAssistServer has no projectId 1180ms
✓ usePrivacySettings > should update data collection opt-in setting 1496ms
[?2004h ✓ src/utils/worktreeSetup.test.ts (4 tests) 303ms
[?25h[?2004h[?2004h ✓ src/ui/components/SuggestionsDisplay.test.tsx (7 tests) 11350ms
✓ SuggestionsDisplay > renders loading state 3106ms
✓ SuggestionsDisplay > renders nothing when empty and not loading 1340ms
✓ SuggestionsDisplay > renders suggestions list 1396ms
✓ SuggestionsDisplay > highlights active item 1312ms
✓ SuggestionsDisplay > handles scrolling 1651ms
✓ SuggestionsDisplay > renders MCP tag for MCP prompts 1263ms
✓ SuggestionsDisplay > renders command section separators for slash mode 1239ms
[?2004h ✓ src/ui/commands/permissionsCommand.test.ts (7 tests) 581ms
✓ src/ui/components/ConfigInitDisplay.test.tsx (4 tests) 7268ms
✓ ConfigInitDisplay > renders initial state 3112ms
✓ ConfigInitDisplay > updates message on McpClientUpdate event 1333ms
✓ ConfigInitDisplay > truncates list of waiting servers if too many 1391ms
✓ ConfigInitDisplay > handles empty clients map 1395ms
✓ src/services/CommandService.test.ts (5 tests) 278ms
[?25hstderr | src/commands/extensions/validate.test.ts > handleValidate > should warn if version is not formatted with semver
Validation warnings:
- Warning: Version '1' does not appear to be standard semver (e.g., 1.0.0).
✓ src/commands/extensions/validate.test.ts (5 tests) 1047ms
✓ extensions validate command > should fail if no path is provided 302ms
✓ handleValidate > should validate an extension from a local dir 402ms
[?25h ✓ src/utils/logCleanup.test.ts (4 tests) 349ms
[?2004h ✓ src/ui/hooks/useTurnActivityMonitor.test.ts (4 tests) 2807ms
✓ useTurnActivityMonitor > should set operationStartTime when entering Responding state 1325ms
✓ useTurnActivityMonitor > should reset operationStartTime when PTY ID changes while responding 320ms
✓ useTurnActivityMonitor > should detect redirection from tool calls 342ms
✓ useTurnActivityMonitor > should reset everything when idle 767ms
[?25h ✓ src/ui/components/ShowMoreLines.test.tsx (8 tests) 11180ms
✓ ShowMoreLines > renders nothing when: overflow=Set{}, streaming=idle, constrain=true 2065ms
✓ ShowMoreLines > renders nothing when: overflow=Set{ '1' }, streaming=idle, constrain=false 1310ms
✓ ShowMoreLines > renders message in STANDARD mode when overflowing 1655ms
✓ ShowMoreLines > renders message in ASB mode when overflowing and state is idle 1316ms
✓ ShowMoreLines > renders message in ASB mode when overflowing and state is waiting_for_confirmation 1199ms
✓ ShowMoreLines > renders message in ASB mode when overflowing and state is responding 1282ms
✓ ShowMoreLines > renders message in ASB mode when isOverflowing prop is true even if internal overflow state is empty 1196ms
✓ ShowMoreLines > renders nothing when isOverflowing prop is false even if internal overflow state has IDs 1126ms
[?2004h[?25h ✓ src/ui/components/messages/ToolOverflowConsistencyChecks.test.tsx (2 tests) 6717ms
✓ ToolOverflowConsistencyChecks: ToolGroupMessage and ToolResultDisplay synchronization > should ensure ToolGroupMessage correctly reports overflow to the global state in Alternate Buffer (ASB) mode 4666ms
✓ ToolOverflowConsistencyChecks: ToolGroupMessage and ToolResultDisplay synchronization > should ensure ToolGroupMessage correctly reports overflow in Standard mode 2016ms
✓ src/utils/dialogScopeUtils.test.ts (4 tests) 232ms
[?2004h[?2004h ✓ src/ui/commands/initCommand.test.ts (3 tests) 661ms
✓ initCommand > should inform the user if GEMINI.md already exists 345ms
[?2004h[?2004h[?2004h[?25h[?25h[?2004h[?2004h ❯ src/ui/components/messages/ToolMessageFocusHint.test.tsx (5 tests | 3 failed) 5432ms
✓ Focus Hint > 'ToolMessage' > shows focus hint after delay even with NO output 2946ms
× Focus Hint > 'ToolMessage' > shows focus hint after delay with output 836ms
→ Snapshot `Focus Hint > 'ToolMessage' > shows focus hint after delay with output > after-delay-with-output 1` mismatched
× Focus Hint > 'ShellToolMessage' > shows focus hint after delay even with NO output 549ms
→ Snapshot `Focus Hint > 'ShellToolMessage' > shows focus hint after delay even with NO output > after-delay-no-output 1` mismatched
× Focus Hint > 'ShellToolMessage' > shows focus hint after delay with output 471ms
→ Snapshot `Focus Hint > 'ShellToolMessage' > shows focus hint after delay with output > after-delay-with-output 1` mismatched
✓ Focus Hint > handles long descriptions by shrinking them to show the focus hint 595ms
[?2004h ✓ src/ui/hooks/useRewind.test.ts (5 tests) 8047ms
✓ useRewindLogic > should initialize with no selection 2180ms
✓ useRewindLogic > should update state when a message is selected 1381ms
✓ useRewindLogic > should not update state if selected message is not found 1151ms
✓ useRewindLogic > should clear selection correctly 1155ms
✓ useRewindLogic > should proxy getStats call to utility function 2115ms
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/StatusRow.test.tsx (3 tests) 7106ms
✓ > renders status and tip correctly when they both fit 3740ms
✓ > renders correctly when interactive shell is waiting 1914ms
✓ > renders tip with absolute positioning when it fits but might collide (verification of container logic) 1405ms
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useAnimatedScrollbar.test.tsx (7 tests) 2632ms
✓ useAnimatedScrollbar > should not increment debugNumAnimatedComponents when not focused 1013ms
✓ useAnimatedScrollbar > should decrement debugNumAnimatedComponents after animation finishes 318ms
[?2004h ✓ src/ui/components/DetailedMessagesDisplay.test.tsx (5 tests) 11270ms
✓ DetailedMessagesDisplay > renders nothing when messages are empty 3528ms
✓ DetailedMessagesDisplay > renders messages correctly 2636ms
✓ DetailedMessagesDisplay > shows the F12 hint even in low error verbosity mode 1581ms
✓ DetailedMessagesDisplay > shows the F12 hint in full error verbosity mode 1641ms
✓ DetailedMessagesDisplay > renders message counts 1826ms
✓ src/ui/components/shared/SlicingMaxSizedBox.test.tsx (5 tests) 7268ms
✓ > renders string data without slicing when it fits 2699ms
✓ > slices string data by characters when very long 1352ms
✓ > slices string data by lines when maxLines is provided 871ms
✓ > slices array data when maxLines is provided 566ms
✓ > does not slice when isAlternateBuffer is true 1713ms
[?2004h[?2004h[?2004h[?25h ✓ src/ui/components/PolicyUpdateDialog.test.tsx (4 tests) 9802ms
✓ PolicyUpdateDialog > renders correctly and matches snapshot 4161ms
✓ PolicyUpdateDialog > handles ACCEPT correctly 1807ms
✓ PolicyUpdateDialog > handles IGNORE correctly 2265ms
✓ PolicyUpdateDialog > calls onClose when Escape key is pressed 1539ms
(node:6232) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 render listeners added to [XtermStdout]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?2004h[?2004h[?2004h ✓ src/ui/components/GradientRegression.test.tsx (5 tests) 12777ms
✓ Gradient Crash Regression Tests > should not crash when theme.ui.gradient is empty 4605ms
✓ Gradient Crash Regression Tests > should not crash when theme.ui.gradient is empty 2082ms
✓ Gradient Crash Regression Tests > should not crash when theme.ui.gradient is empty 1329ms
✓ Gradient Crash Regression Tests > should not crash when theme.ui.gradient has only one color (or empty) and nightly is true 2326ms
✓ Gradient Crash Regression Tests > should not crash when theme.ui.gradient is empty 2398ms
[?25h ✓ src/ui/components/messages/TopicMessage.test.tsx (6 tests) 10663ms
✓ > renders title and intent by default (collapsed) 3247ms
✓ > renders summary when globally expanded (Ctrl+O) 1583ms
✓ > renders summary when selectively expanded via context 1376ms
✓ > calls toggleExpansion when clicked 1687ms
✓ > falls back to summary if strategic_intent is missing 1540ms
✓ > renders only strategic_intent if summary is missing 1195ms
[?25h[?25h[?25h[?25h ✓ src/ui/components/views/SkillsList.test.tsx (6 tests) 9285ms
✓ SkillsList Component > should render enabled and disabled skills separately 2746ms
✓ SkillsList Component > should not render descriptions when showDescriptions is false 1459ms
✓ SkillsList Component > should render "No skills available" when skills list is empty 1289ms
✓ SkillsList Component > should only render Available Agent Skills section when all skills are enabled 1259ms
✓ SkillsList Component > should only render Disabled Skills section when all skills are disabled 1247ms
✓ SkillsList Component > should render [Built-in] tag for built-in skills 1240ms
[?2004h ✓ src/config/auth.test.ts (8 tests) 125ms
[?25h[?25hstdout | src/commands/extensions/new.test.ts > extensions new command > should create directory when no template is provided
Successfully created new extension at /some/path.
You can install this using "gemini extensions link /some/path" to test it out.
stdout | src/commands/extensions/new.test.ts > extensions new command > should create directory and copy files when path does not exist
Successfully created new extension from template "context" at /some/path.
You can install this using "gemini extensions link /some/path" to test it out.
✓ src/commands/extensions/new.test.ts (4 tests) 972ms
✓ extensions new command > should fail if no path is provided 436ms
[?2004h[?2004h ❯ src/ui/ToolConfirmationFullFrame.test.tsx (1 test | 1 failed) 18569ms
× Full Terminal Tool Confirmation Snapshot > renders tool confirmation box in the frame of the entire terminal 18539ms
→ 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[?2004h[?25h ✓ src/ui/hooks/useSnowfall.test.tsx (5 tests) 2536ms
✓ useSnowfall > initially enables animation during holiday season with Holiday theme 1468ms
✓ useSnowfall > stops animation after 15 seconds 397ms
✓ src/ui/utils/textOutput.test.ts (10 tests) 534ms
✓ src/commands/extensions.test.tsx (3 tests) 445ms
[?25h ✓ src/ui/hooks/shell-completions/npmProvider.test.ts (5 tests) 280ms
[?2004h[?2004h ✓ src/ui/utils/pendingAttentionNotification.test.ts (3 tests) 185ms
❯ src/ui/utils/CodeColorizer.test.tsx (3 tests | 1 failed) 6664ms
✓ colorizeCode > renders empty lines correctly when useAlternateBuffer is true 3924ms
× colorizeCode > does not let colors from ansi escape codes leak into colorized code 2645ms
→ 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 53ms
[?25h[?2004h ✓ src/commands/skills/uninstall.test.ts (5 tests) 468ms
[?25h ✓ src/ui/auth/AuthInProgress.test.tsx (5 tests) 3591ms
✓ AuthInProgress > renders initial state with spinner 1820ms
✓ AuthInProgress > calls onTimeout when ESC is pressed 389ms
✓ AuthInProgress > calls onTimeout when Ctrl+C is pressed 386ms
✓ AuthInProgress > calls onTimeout and shows timeout message after 3 minutes 707ms
[?2004h ✓ src/ui/commands/docsCommand.test.ts (3 tests) 555ms
✓ docsCommand > should add an info message and call 'open' in a non-sandbox environment 395ms
[?2004h[?2004h[?25h[?2004h[?2004h ✓ src/ui/components/messages/SubagentGroupDisplay.test.tsx (3 tests) 7829ms
✓ > renders nothing if there are no agent tool calls 2353ms
✓ > renders collapsed view by default with correct agent counts and states 3031ms
✓ > expands when availableTerminalHeight is undefined 2420ms
✓ src/config/extensions/storage.test.ts (5 tests) 432ms
[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/messages/ToolResultDisplayOverflow.test.tsx (3 tests) 7109ms
✓ ToolResultDisplay Overflow > shows the head of the content when overflowDirection is bottom (string) 4090ms
✓ ToolResultDisplay Overflow > shows the tail of the content when overflowDirection is top (string default) 1513ms
✓ ToolResultDisplay Overflow > shows the head of the content when overflowDirection is bottom (ANSI) 1474ms
[?2004h ✓ src/ui/utils/displayUtils.test.ts (8 tests) 218ms
[?2004h[?2004h ✓ src/ui/hooks/useBanner.test.ts (5 tests) 7210ms
✓ useBanner > should return warning text and warning color if warningText is present 2180ms
✓ useBanner > should hide banner if show count exceeds max limit (Legacy format) 1305ms
✓ useBanner > should increment the persistent count when banner is shown 1196ms
✓ useBanner > should increment count if warning text is shown instead 1238ms
✓ useBanner > should handle newline replacements 1261ms
[?2004h[?2004h[?2004hstderr | src/ui/components/IdeTrustChangeDialog.test.tsx > IdeTrustChangeDialog > calls relaunchApp when "r" is pressed
IdeTrustChangeDialog rendered with unexpected reason "NONE"
✓ src/ui/components/ConsentPrompt.test.tsx (5 tests) 10932ms
✓ ConsentPrompt > renders a string prompt with MarkdownDisplay 3162ms
✓ ConsentPrompt > renders a ReactNode prompt directly 1474ms
✓ ConsentPrompt > calls onConfirm with true when "Yes" is selected 2411ms
✓ ConsentPrompt > calls onConfirm with false when "No" is selected 2320ms
✓ ConsentPrompt > passes correct items to RadioButtonSelect 1497ms
✓ src/ui/hooks/useShellInactivityStatus.test.ts (4 tests) 1848ms
✓ useShellInactivityStatus > should show action_required status after 30s when output has been produced 1029ms
✓ useShellInactivityStatus > should suppress focus hint when redirected 350ms
[?2004h[?2004h(node:6232) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 101 settings-changed listeners added to [CoreEventEmitter]. MaxListeners is 100. Use emitter.setMaxListeners() to increase limit
[?2004h[?25h[?2004h[?2004h[?2004h[?25h ✓ src/test-utils/render.test.tsx (6 tests) 14298ms
✓ render > should render a component 2726ms
✓ render > should support rerender 2491ms
✓ render > should support unmount 1238ms
✓ renderHook > should rerender with previous props when called without arguments 3393ms
✓ renderHook > should handle initial render without props 2218ms
✓ renderHook > should update props if undefined is passed explicitly 2183ms
✓ src/ui/components/IdeTrustChangeDialog.test.tsx (6 tests) 13227ms
✓ IdeTrustChangeDialog > renders the correct message for CONNECTION_CHANGE 3506ms
✓ IdeTrustChangeDialog > renders the correct message for TRUST_CHANGE 1475ms
✓ IdeTrustChangeDialog > renders a generic message and logs an error for NONE reason 1301ms
✓ IdeTrustChangeDialog > calls relaunchApp when "r" is pressed 2338ms
✓ IdeTrustChangeDialog > calls relaunchApp when "R" is pressed 2275ms
✓ IdeTrustChangeDialog > does not call relaunchApp when another key is pressed 2296ms
✓ src/ui/components/LogoutConfirmationDialog.test.tsx (5 tests) 13074ms
✓ LogoutConfirmationDialog > should render the dialog with title, description, and hint 4003ms
✓ LogoutConfirmationDialog > should render RadioButtonSelect with Login and Exit options 1405ms
✓ LogoutConfirmationDialog > should call onSelect with LOGIN when Login is selected 2463ms
✓ LogoutConfirmationDialog > should call onSelect with EXIT when Exit is selected 2783ms
✓ LogoutConfirmationDialog > should call onSelect with EXIT when escape key is pressed 2372ms
[?25h[?2004h[?2004h ✓ src/ui/components/ColorsDisplay.test.tsx (1 test) 5826ms
✓ ColorsDisplay > renders correctly 5789ms
[?25h[?2004h ✓ src/utils/persistentState.test.ts (5 tests) 246ms
[?25h[?25h ✓ src/ui/commands/terminalSetupCommand.test.ts (5 tests) 185ms
[?25h[?2004h[?25h[?25h[?2004h[?25h ✓ src/ui/components/QuotaDisplay.test.tsx (9 tests) 4276ms
✓ QuotaDisplay > should not render when remaining is undefined 1052ms
✓ QuotaDisplay > should not render when limit is undefined 386ms
✓ QuotaDisplay > should not render when usage < 80% 383ms
✓ QuotaDisplay > should render warning when used >= 80% 843ms
✓ QuotaDisplay > should render critical when used >= 95% 302ms
✓ QuotaDisplay > should render with reset time when provided 331ms
✓ QuotaDisplay > should NOT render reset time when terse is true 382ms
✓ src/ui/hooks/useMcpStatus.test.tsx (4 tests) 6202ms
✓ useMcpStatus > should initialize with correct values (no servers) 2489ms
✓ useMcpStatus > should initialize with correct values (with servers, not started) 1213ms
✓ useMcpStatus > should not be ready while in progress 1203ms
✓ useMcpStatus > should update state when McpClientUpdate is emitted 1266ms
✓ src/utils/jsonoutput.test.ts (15 tests) 283ms
✓ src/utils/readStdin_safety.test.ts (2 tests) 270ms
✓ src/ui/components/GeminiRespondingSpinner.test.tsx (5 tests) 8393ms
✓ GeminiRespondingSpinner > renders spinner when responding 2918ms
✓ GeminiRespondingSpinner > renders screen reader text when responding and screen reader enabled 1826ms
✓ GeminiRespondingSpinner > renders nothing when not responding and no non-responding display 1171ms
✓ GeminiRespondingSpinner > renders non-responding display when provided 1283ms
✓ GeminiRespondingSpinner > renders screen reader loading text when non-responding display provided and screen reader enabled 1164ms
[?25h(node:6232) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 render listeners added to [XtermStdout]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?25h[?25h ✓ src/ui/components/ShowMoreLinesLayout.test.tsx (2 tests) 3644ms
✓ ShowMoreLines layout and padding > renders with single padding (paddingX=1, marginBottom=1) 2364ms
✓ ShowMoreLines layout and padding > renders in Standard mode as well 1261ms
✓ src/ui/auth/LoginWithGoogleRestartDialog.test.tsx (4 tests) 5922ms
✓ LoginWithGoogleRestartDialog > renders correctly 3152ms
✓ LoginWithGoogleRestartDialog > calls onDismiss when escape is pressed 1646ms
✓ LoginWithGoogleRestartDialog > calls runExitCleanup and process.exit when r is pressed 744ms
✓ LoginWithGoogleRestartDialog > calls runExitCleanup and process.exit when R is pressed 330ms
✓ src/ui/contexts/TerminalContext.test.tsx (2 tests) 6616ms
✓ TerminalContext > should parse OSC 11 response 2761ms
✓ TerminalContext > should handle partial chunks 3805ms
✓ src/ui/utils/urlSecurityUtils.test.ts (9 tests) 318ms
✓ src/ui/hooks/useBatchedScroll.test.ts (7 tests) 9375ms
✓ useBatchedScroll > returns initial scrollTop 2216ms
✓ useBatchedScroll > returns updated scrollTop from props 1229ms
✓ useBatchedScroll > returns pending scrollTop when set 1140ms
✓ useBatchedScroll > overwrites pending scrollTop with subsequent sets before render 1178ms
✓ useBatchedScroll > resets pending scrollTop after rerender 1164ms
✓ useBatchedScroll > resets pending scrollTop after rerender even if prop is same 1204ms
✓ useBatchedScroll > maintains stable function references 1207ms
[?2004h ✓ src/utils/startupWarnings.test.ts (4 tests) 136ms
[?2004h[?2004h[?25h[?2004h[?2004h[?25h[?2004h ✓ src/ui/components/messages/ToolMessageRawMarkdown.test.tsx (6 tests) 7662ms
✓ - Raw Markdown Display Snapshots > renders with renderMarkdown=true, useAlternateBuffer=false '(default, regular buffer)' 4013ms
✓ - Raw Markdown Display Snapshots > renders with renderMarkdown=true, useAlternateBuffer=true '(default, alternate buffer)' 783ms
✓ - Raw Markdown Display Snapshots > renders with renderMarkdown=false, useAlternateBuffer=false '(raw markdown, regular buffer)' 1556ms
✓ - Raw Markdown Display Snapshots > renders with renderMarkdown=false, useAlternateBuffer=true '(raw markdown, alternate buffer)' 439ms
✓ - Raw Markdown Display Snapshots > renders with renderMarkdown=true, useAlternateBuffer=false '(constrained height, regular buffer -…' 415ms
✓ - Raw Markdown Display Snapshots > renders with renderMarkdown=true, useAlternateBuffer=true '(constrained height, alternate buffer…' 423ms
[?25h[?25h[?2004h[?2004h ✓ src/ui/components/QueuedMessageDisplay.test.tsx (5 tests) 7748ms
✓ QueuedMessageDisplay > renders nothing when message queue is empty 1874ms
✓ QueuedMessageDisplay > displays single queued message 1991ms
✓ QueuedMessageDisplay > displays multiple queued messages 1276ms
✓ QueuedMessageDisplay > shows overflow indicator when more than 3 messages are queued 1338ms
✓ QueuedMessageDisplay > normalizes whitespace in messages 1226ms
❯ src/ui/components/HookStatusDisplay.test.tsx (6 tests | 1 failed) 14552ms
✓ > should render a single executing hook 3108ms
✓ > should render multiple executing hooks 2297ms
✓ > should render sequential hook progress 2259ms
✓ > should return empty string if no active hooks 2234ms
✓ > should show generic message when only system hooks are active 2227ms
× > matches SVG snapshot for single hook 2397ms
→ Snapshot ` > matches SVG snapshot for single hook 2` mismatched
[?2004h[?2004h[?25h ✓ src/ui/components/ContextSummaryDisplay.test.tsx (3 tests) 4799ms
✓ > should render on a single line on a wide screen 2301ms
✓ > should render on multiple lines on a narrow screen 1308ms
✓ > should not render empty parts 1169ms
[?2004h ❯ src/ui/components/NewAgentsNotification.test.tsx (3 tests | 1 failed) 7715ms
✓ NewAgentsNotification > renders agent list 3858ms
× NewAgentsNotification > truncates list if more than 5 agents 1723ms
→ Snapshot `NewAgentsNotification > truncates list if more than 5 agents 1` mismatched
✓ NewAgentsNotification > shows processing state when an option is selected 2097ms
❯ src/ui/components/Table.test.tsx (4 tests | 3 failed) 6975ms
× Table > should render headers and data correctly 3233ms
→ Snapshot `Table > should render headers and data correctly 2` mismatched
× Table > should support custom cell rendering 1299ms
→ Snapshot `Table > should support custom cell rendering 2` mismatched
✓ Table > should handle undefined values gracefully 1189ms
× Table > should support inverse text rendering 1233ms
→ Snapshot `Table > should support inverse text rendering 2` mismatched
[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/commands/skills/link.test.ts (3 tests) 251ms
[?25h[?25h ✓ src/ui/components/messages/SubagentHistoryMessage.test.tsx (4 tests) 12396ms
✓ SubagentHistoryMessage > renders header with agent name and item count 5043ms
✓ SubagentHistoryMessage > renders thought activities with brain icon 2521ms
✓ SubagentHistoryMessage > renders tool call activities with tool icon 2361ms
✓ SubagentHistoryMessage > renders status indicators correctly 2419ms
✓ src/ui/components/shared/DescriptiveRadioButtonSelect.test.tsx (2 tests) 7658ms
✓ DescriptiveRadioButtonSelect > should render correctly with default props 4607ms
✓ DescriptiveRadioButtonSelect > should render correctly with custom props 3014ms
✓ src/ui/hooks/useAlternateBuffer.test.ts (5 tests) 4544ms
✓ useAlternateBuffer > should return false when config.getUseAlternateBuffer returns false 1919ms
✓ useAlternateBuffer > should return true when config.getUseAlternateBuffer returns true 1196ms
✓ useAlternateBuffer > should return the immutable config value, not react to settings changes 1275ms
[?2004h ✓ src/ui/hooks/useMouseClick.test.ts (2 tests) 5239ms
✓ useMouseClick > should call handler with relative coordinates when click is inside bounds 2811ms
✓ useMouseClick > should not call handler when click is outside bounds 2400ms
[?25h[?25h[?25h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?25h[?25h[?2004h ✓ src/ui/components/shared/HalfLinePaddedBox.test.tsx (4 tests) 7825ms
✓ > renders standard background and blocks when not iTerm2 3425ms
✓ > renders iTerm2-specific blocks when iTerm2 is detected 1709ms
✓ > renders nothing when useBackgroundColor is false 1345ms
✓ > renders nothing when screen reader is enabled 1308ms
✓ src/ui/utils/clipboardUtils.windows.test.ts (1 test) 242ms
[?2004h[?25h ❯ src/ui/components/RewindConfirmation.test.tsx (4 tests | 2 failed) 10222ms
✓ RewindConfirmation > renders correctly with stats 4520ms
× RewindConfirmation > renders correctly without stats 1577ms
→ Snapshot `RewindConfirmation > renders correctly without stats 1` mismatched
✓ RewindConfirmation > calls onConfirm with Cancel on Escape 2065ms
× RewindConfirmation > renders timestamp when provided 2020ms
→ Snapshot `RewindConfirmation > renders timestamp when provided 1` mismatched
✓ src/ui/utils/markdownUtilities.test.ts (7 tests) 323ms
(node:6232) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 render listeners added to [XtermStdout]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
[?25h[?2004h[?2004h ❯ src/ui/components/shared/performance.test.ts (3 tests | 1 failed) 20221ms
✓ text-buffer performance > should handle pasting large amounts of text efficiently 4596ms
× text-buffer performance > should handle character-by-character insertion in a large buffer efficiently 15307ms
→ expected 11425 to be less than 5000
✓ text-buffer performance > should highlight many lines efficiently 76ms
[?25h[?2004h[?2004h[?2004h ✓ src/commands/mcp.test.ts (3 tests) 527ms
✓ mcp command > should show help when no subcommand is provided 339ms
[?2004h[?2004h ✓ src/ui/components/AboutBox.test.tsx (6 tests) 10813ms
✓ AboutBox > renders with required props 3394ms
✓ AboutBox > renders optional prop gcpProject 1475ms
✓ AboutBox > renders optional prop ideClient 1393ms
✓ AboutBox > renders optional prop tier 1697ms
✓ AboutBox > renders Auth Method with email when userEmail is provided 1441ms
✓ AboutBox > renders Auth Method correctly when not oauth 1370ms
[?2004h[?25h[?2004h[?2004h[?2004h ✓ src/ui/components/ModelQuotaDisplay.test.tsx (3 tests) 5082ms
✓ > renders quota information when buckets are provided 2247ms
✓ > renders nothing when no buckets are provided 1375ms
✓ > filters models based on modelsToShow prop 1418ms
[?2004h[?2004h ✓ src/ui/utils/input.test.ts (6 tests) 127ms
✓ src/ui/hooks/useMemoryMonitor.test.tsx (3 tests) 1760ms
✓ useMemoryMonitor > should not warn when memory usage is below threshold 1082ms
✓ useMemoryMonitor > should warn when memory usage is above threshold 398ms
✓ src/ui/components/Checklist.test.tsx (5 tests) 7278ms
✓ > renders nothing when list is empty 1721ms
✓ > renders nothing when collapsed and no active items 1194ms
✓ > renders summary view correctly (collapsed) 1816ms
✓ > renders expanded view correctly 1354ms
✓ > renders summary view without in-progress item if none exists 1158ms
[?2004h ✓ src/ui/components/ContextUsageDisplay.test.tsx (5 tests) 7989ms
✓ ContextUsageDisplay > renders correct percentage used 2523ms
✓ ContextUsageDisplay > renders correctly when usage is 0% 1241ms
✓ ContextUsageDisplay > renders abbreviated label when terminal width is small 1166ms
✓ ContextUsageDisplay > renders 80% correctly 1327ms
✓ ContextUsageDisplay > renders 100% when full 1702ms
[?25h ✓ src/test-utils/mockCommandContext.test.ts (3 tests) 601ms
✓ createMockCommandContext > should return a valid CommandContext object with default mocks 349ms
✓ src/ui/hooks/useLogger.test.tsx (2 tests) 3087ms
✓ useLogger > should initialize with the global sessionId by default 1784ms
✓ useLogger > should initialize with the active sessionId from ConfigContext when available 1267ms
✓ src/ui/hooks/vim-passthrough.test.tsx (4 tests) 5723ms
✓ useVim passthrough > should pass through 'F12' in 'INSERT' mode 1954ms
✓ useVim passthrough > should pass through 'Ctrl-X' in 'INSERT' mode 1216ms
✓ useVim passthrough > should pass through 'F12' in 'NORMAL' mode 1321ms
✓ useVim passthrough > should pass through 'Ctrl-X' in 'NORMAL' mode 1201ms
[?25h ✓ src/acp/acpErrors.test.ts (7 tests) 360ms
[?25h[?25h[?25h[?25h ✓ src/commands/skills.test.tsx (3 tests) 218ms
[?25h ✓ src/ui/components/QuittingDisplay.test.tsx (2 tests) 3619ms
✓ QuittingDisplay > renders nothing when no quitting messages 1947ms
✓ QuittingDisplay > renders quitting messages 1633ms
✓ src/acp/commands/help.test.ts (1 test) 135ms
[?2004h ✓ src/ui/privacy/PrivacyNotice.test.tsx (4 tests) 6490ms
✓ PrivacyNotice > renders 'GeminiPrivacyNotice' when authType is 'gemini-api-key' 2721ms
✓ PrivacyNotice > renders 'CloudPaidPrivacyNotice' when authType is 'vertex-ai' 1304ms
✓ PrivacyNotice > renders 'CloudFreePrivacyNotice' when authType is 'oauth-personal' 1230ms
✓ PrivacyNotice > renders 'CloudFreePrivacyNotice' when authType is 'UNKNOWN' 1194ms
✓ src/ui/commands/commandsCommand.test.ts (2 tests) 371ms
[?25h ✓ src/core/theme.test.ts (3 tests) 130ms
[?2004h[?2004h ✓ src/ui/components/messages/ToolShared.test.tsx (5 tests) 7711ms
✓ McpProgressIndicator > renders determinate progress at 50% 2781ms
✓ McpProgressIndicator > renders complete progress at 100% 1283ms
✓ McpProgressIndicator > renders indeterminate progress with raw count 1193ms
✓ McpProgressIndicator > renders progress with a message 1244ms
✓ McpProgressIndicator > clamps progress exceeding total to 100% 1166ms
✓ src/ui/components/Help.test.tsx (3 tests) 6832ms
✓ Help Component > should not render hidden commands 3322ms
✓ Help Component > should not render hidden subcommands 1754ms
✓ Help Component > should render keyboard shortcuts 1715ms
[?25h[?2004h[?2004h ✓ src/ui/components/ExitWarning.test.tsx (4 tests) 6858ms
✓ ExitWarning > renders nothing by default 2329ms
✓ ExitWarning > renders Ctrl+C warning when pressed once and dialogs visible 2038ms
✓ ExitWarning > renders Ctrl+D warning when pressed once and dialogs visible 1256ms
✓ ExitWarning > renders nothing if dialogs are not visible 1199ms
[?2004h ✓ src/ui/components/messages/GeminiMessage.test.tsx (5 tests) 9191ms
✓ - Raw Markdown Display Snapshots > renders with renderMarkdown=true '(default)' 3478ms
✓ - Raw Markdown Display Snapshots > renders with renderMarkdown=false '(raw markdown with syntax highlightin…' 1512ms
✓ - Raw Markdown Display Snapshots > renders pending state with renderMarkdown=true 1343ms
✓ - Raw Markdown Display Snapshots > renders pending state with renderMarkdown=false 1320ms
✓ - Raw Markdown Display Snapshots > wraps long lines correctly in raw markdown mode 1505ms
(node:6232) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 render listeners added to [XtermStdout]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
✓ src/ui/hooks/useMouse.test.ts (4 tests) 5279ms
✓ useMouse > should not subscribe when isActive is false 1711ms
✓ useMouse > should subscribe when isActive is true 1161ms
✓ useMouse > should unsubscribe on unmount 1145ms
✓ useMouse > should unsubscribe when isActive becomes false 1227ms
✓ src/ui/commands/helpCommand.test.ts (2 tests) 448ms
✓ helpCommand > should add a help message to the UI history 375ms
✓ src/ui/commands/quitCommand.test.ts (1 test) 254ms
[?25h[?25h[?25h[?2004h[?25h[?25h[?2004h ✓ src/ui/components/SessionBrowser/SessionBrowserSearchNav.test.tsx (5 tests) 8734ms
✓ SessionBrowser Search and Navigation Components > SearchModeDisplay renders correctly with query 2877ms
✓ SessionBrowser Search and Navigation Components > NavigationHelp renders correctly 1540ms
✓ SessionBrowser Search and Navigation Components > SessionListHeader renders correctly 1635ms
✓ SessionBrowser Search and Navigation Components > SessionListHeader renders correctly with filter 1289ms
✓ SessionBrowser Search and Navigation Components > NoResultsDisplay renders correctly 1220ms
✓ src/ui/commands/resumeCommand.test.ts (3 tests) 127ms
[?2004h[?2004h ✓ src/ui/commands/privacyCommand.test.ts (2 tests) 431ms
✓ privacyCommand > should return a dialog action to open the privacy dialog 345ms
[?2004h ✓ src/services/prompt-processors/argumentProcessor.test.ts (2 tests) 459ms
✓ Argument Processors > DefaultArgumentProcessor > should append the full command if args are provided 387ms
✓ src/ui/components/messages/UserMessage.test.tsx (4 tests) 7503ms
✓ UserMessage > renders normal user message with correct prefix 3153ms
✓ UserMessage > renders slash command message 1571ms
✓ UserMessage > renders multiline user message 1381ms
✓ UserMessage > transforms image paths in user message 1348ms
[?2004h[?2004h ✓ src/ui/components/ApprovalModeIndicator.test.tsx (6 tests) 8674ms
✓ ApprovalModeIndicator > renders correctly for AUTO_EDIT mode 2395ms
✓ ApprovalModeIndicator > renders correctly for AUTO_EDIT mode with plan enabled 1374ms
✓ ApprovalModeIndicator > renders correctly for PLAN mode 1236ms
✓ ApprovalModeIndicator > renders correctly for YOLO mode 1200ms
✓ ApprovalModeIndicator > renders correctly for DEFAULT mode 1200ms
✓ ApprovalModeIndicator > renders correctly for DEFAULT mode with plan enabled 1235ms
[?25h[?2004h[?2004h ✓ src/utils/processUtils.test.ts (1 test) 128ms
✓ src/ui/components/views/ToolsList.test.tsx (3 tests) 6142ms
✓ > renders correctly with descriptions 3545ms
✓ > renders correctly without descriptions 1359ms
✓ > renders correctly with no tools 1201ms
✓ src/ui/components/MemoryUsageDisplay.test.tsx (2 tests) 1724ms
✓ MemoryUsageDisplay > renders memory usage 1357ms
✓ MemoryUsageDisplay > updates memory usage over time 339ms
[?2004h[?2004h ✓ src/ui/components/ChecklistItem.test.tsx (7 tests) 10633ms
✓ > renders { status: 'pending', label: 'Do this' } item correctly 2523ms
✓ > renders { status: 'in_progress', label: 'Doing this' } item correctly 1260ms
✓ > renders { status: 'completed', label: 'Done this' } item correctly 1366ms
✓ > renders { status: 'cancelled', label: 'Skipped this' } item correctly 1238ms
✓ > renders { status: 'blocked', label: 'Blocked this' } item correctly 1159ms
✓ > truncates long text when wrap="truncate" 1240ms
✓ > wraps long text by default 1791ms
[?25h[?2004h ✓ src/commands/utils.test.ts (2 tests) 167ms
✓ src/ui/privacy/GeminiPrivacyNotice.test.tsx (2 tests) 4923ms
✓ GeminiPrivacyNotice > renders correctly 2523ms
✓ GeminiPrivacyNotice > exits on Escape 2372ms
[?2004h[?25h ✓ src/ui/privacy/CloudPaidPrivacyNotice.test.tsx (2 tests) 5729ms
✓ CloudPaidPrivacyNotice > renders correctly 3202ms
✓ CloudPaidPrivacyNotice > exits on Escape 2486ms
❯ src/ui/components/ShortcutsHelp.test.tsx (5 tests | 4 failed) 11297ms
✓ ShortcutsHelp > renders correctly in 'wide' mode on 'mac' 3667ms
× ShortcutsHelp > renders correctly in 'narrow' mode on 'mac' 1785ms
→ expected '─────────────────────────────────────…' to contain 'shell mode'
× ShortcutsHelp > renders correctly in 'wide' mode on 'linux' 2758ms
→ expected '─────────────────────────────────────…' to contain 'shell mode'
× ShortcutsHelp > renders correctly in 'narrow' mode on 'linux' 1475ms
→ expected '─────────────────────────────────────…' to contain 'shell mode'
× ShortcutsHelp > always shows Tab focus UI shortcut 1571ms
→ expected '─────────────────────────────────────…' to contain 'Tab focus UI'
❯ src/ui/components/BubblingRegression.test.tsx (1 test | 1 failed) 7394ms
× Key Bubbling Regression > does not navigate when pressing "j" or "k" in a focused text input 7373ms
→ expected 'Choice Q?\n\n 1.\n O\n p\n …' to contain 'jk'
[?25h[?25h ✓ src/ui/components/views/ChatList.test.tsx (3 tests) 5319ms
✓ > renders correctly with a list of chats 2784ms
✓ > renders correctly with no chats 1261ms
✓ > handles invalid date formats gracefully 1230ms
✓ src/ui/commands/themeCommand.test.ts (2 tests) 271ms
✓ src/ui/commands/settingsCommand.test.ts (2 tests) 284ms
[?2004h[?25h[?2004h[?25h[?2004h[?2004h[?25h[?2004h ✓ src/ui/components/messages/RedirectionConfirmation.test.tsx (1 test) 6524ms
✓ ToolConfirmationMessage Redirection > should display redirection warning and tip for redirected commands 4258ms
✓ src/ui/components/CopyModeWarning.test.tsx (2 tests) 4139ms
✓ CopyModeWarning > renders nothing when copy mode is disabled 2442ms
✓ CopyModeWarning > renders warning when copy mode is enabled 1663ms
[?2004h[?2004h[?25h ✓ src/utils/resolvePath.test.ts (7 tests) 191ms
[?25h[?2004h[?2004h ✓ src/utils/tierUtils.test.ts (3 tests) 136ms
✓ src/ui/commands/tasksCommand.test.ts (3 tests) 224ms
[?2004h ✓ src/ui/components/AdminSettingsChangedDialog.test.tsx (4 tests) 6676ms
✓ AdminSettingsChangedDialog > renders correctly 2844ms
✓ AdminSettingsChangedDialog > restarts on "r" key press 1308ms
✓ AdminSettingsChangedDialog > restarts on "r" key press 1224ms
✓ AdminSettingsChangedDialog > restarts on "R" key press 1270ms
✓ src/ui/commands/corgiCommand.test.ts (2 tests) 250ms
✓ src/ui/hooks/useTips.test.ts (3 tests) 4623ms
✓ useTips() > should return false and call set(1) if state is undefined 2171ms
✓ useTips() > should return false and call set(6) if state is 5 1260ms
✓ useTips() > should return true if state is 10 1169ms
[?2004h ✓ src/ui/hooks/useModelCommand.test.tsx (3 tests) 4319ms
✓ useModelCommand > should initialize with the model dialog closed 1926ms
✓ useModelCommand > should open the model dialog when openModelDialog is called 1208ms
✓ useModelCommand > should close the model dialog when closeModelDialog is called 1149ms
✓ src/acp/commandHandler.test.ts (1 test) 223ms
[?2004h ❯ src/ui/components/AskUserDialog.test.tsx (42 tests | 22 failed) 792199ms
✓ AskUserDialog > renders question and options 4056ms
✓ AskUserDialog > Submission: 'Single Select' > submits correct values for Single Select 3980ms
✓ AskUserDialog > Submission: 'Multi-select' > submits correct values for Multi-select 12852ms
✓ AskUserDialog > Submission: 'All of the above' > submits correct values for All of the above 12055ms
✓ AskUserDialog > Submission: 'Text Input' > submits correct values for Text Input 2742ms
✓ AskUserDialog > verifies "All of the above" visual state with snapshot 7571ms
× AskUserDialog > handles custom option in single select with inline typing 44998ms
→ expected 'Which authentication method should we…' to contain 'Enter a custom value'
× AskUserDialog > supports multi-line input for "Other" option in choice questions 21378ms
→ expected 'Which authentication method?\n\n 1.\…' to contain 'Line 1'
✓ AskUserDialog > Scroll Arrows (useAlternateBuffer: true) > shows scroll arrows correctly when useAlternateBuffer is true 8374ms
✓ AskUserDialog > Scroll Arrows (useAlternateBuffer: false) > shows scroll arrows correctly when useAlternateBuffer is false 8794ms
× AskUserDialog > navigates to custom option when typing unbound characters (Type-to-Jump) 60075ms
→ Test timed out in 60000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
× AskUserDialog > shows progress header for multiple questions 2554ms
→ Snapshot `AskUserDialog > shows progress header for multiple questions 1` mismatched
× AskUserDialog > hides progress header for single question 2800ms
→ Snapshot `AskUserDialog > hides progress header for single question 1` mismatched
× AskUserDialog > shows keyboard hints 2728ms
→ Snapshot `AskUserDialog > shows keyboard hints 1` mismatched
× AskUserDialog > navigates between questions with arrow keys 33985ms
→ expected '← □ Testing │ □ CI │ ≡ Review →\n\nWh…' to contain 'Which testing framework?'
× AskUserDialog > preserves answers when navigating back 47308ms
→ expected '← □ Package │ □ Bundler │ ≡ Review →\…' to contain 'Which bundler?'
× AskUserDialog > shows Review tab in progress header for multiple questions 2044ms
→ Snapshot `AskUserDialog > shows Review tab in progress header for multiple questions 1` mismatched
× AskUserDialog > allows navigating to Review tab and back 47409ms
→ expected '← □ Tests │ □ Docs │ ≡ Review →\n\nCr…' to contain 'Add documentation?'
✓ AskUserDialog > shows warning for unanswered questions on Review tab 4169ms
× AskUserDialog > submits with unanswered questions when user confirms on Review 4098ms
→ expected "spy" to be called with arguments: [ { '0': 'Node 20' } ][90m
Number of calls: [1m0[22m
[39m
✓ AskUserDialog > Text type questions > renders text input for type: "text" 1332ms
✓ AskUserDialog > Text type questions > shows default placeholder when none provided 1334ms
× AskUserDialog > Text type questions > supports backspace in text mode 47036ms
→ expected 'Enter the function name:\n\n> Enter y…' to contain 'abc'
✓ AskUserDialog > Text type questions > shows correct keyboard hints for text type 1419ms
× AskUserDialog > Text type questions > preserves text answer when navigating between questions 46561ms
→ expected '← □ Hook │ □ Async │ ≡ Review →\n\nWh…' to contain 'Should it be async?'
× AskUserDialog > Text type questions > handles mixed text and choice questions 46672ms
→ expected '← □ Name │ □ Style │ ≡ Review →\n\nWh…' to contain 'Which styling approach?'
× AskUserDialog > Text type questions > submits empty text as unanswered 3678ms
→ expected "spy" to be called with arguments: [ {} ][90m
Number of calls: [1m0[22m
[39m
× AskUserDialog > Text type questions > clears text on Ctrl+C 46871ms
→ expected 'Enter the class name:\n\n> Enter your…' to contain 'SomeText'
× AskUserDialog > Text type questions > allows immediate arrow navigation after switching away from text input 46917ms
→ expected '← □ Choice │ □ Text │ ≡ Review →\n\nC…' to contain 'Text Q?'
× AskUserDialog > Text type questions > handles rapid sequential answers correctly (stale closure protection) 47223ms
→ expected '← □ Q1 │ □ Q2 │ ≡ Review →\n\nQuestio…' to contain 'Question 2?'
✓ AskUserDialog > Markdown rendering > auto-bolds plain single-line questions 2556ms
✓ AskUserDialog > Markdown rendering > does not auto-bold questions that already have markdown 2857ms
✓ AskUserDialog > Markdown rendering > renders bold markdown in question 2550ms
✓ AskUserDialog > Markdown rendering > renders inline code markdown in question 2626ms
✓ AskUserDialog > uses availableTerminalHeight from UIStateContext if availableHeight prop is missing 3642ms
✓ AskUserDialog > does NOT truncate the question when in alternate buffer mode even with small height 3407ms
✓ AskUserDialog > Choice question placeholder > uses placeholder for "Other" option when provided 3608ms
✓ AskUserDialog > Choice question placeholder > uses default placeholder when not provided 3548ms
× AskUserDialog > Choice question placeholder > supports "Other" option for yesno questions 46207ms
→ expected 'Is this correct?\n\n●1. …' to contain 'Enter a custom value'
× AskUserDialog > expands paste placeholders in multi-select custom option via Done 3983ms
→ expected "spy" to be called with arguments: [ Array(1) ][90m
Number of calls: [1m0[22m
[39m
× AskUserDialog > shows at least 3 selection options even in small terminal heights 46872ms
→ expected 'A very long question that would norma…' to contain '1. Option 1'
× AskUserDialog > allows the question to exceed 15 lines in a tall terminal 47244ms
→ expected 'Line 1\nLine 2\nLine 3\nLine 4\nLine …' to contain '1. Option 1'
[?2004h[?25h[?25h ✓ src/ui/utils/ui-sizing.test.ts (4 tests) 192ms
[?25h ✓ src/ui/components/CliSpinner.test.tsx (2 tests) 4407ms
✓ > should increment debugNumAnimatedComponents on mount and decrement on unmount 3146ms
✓ > should not render when showSpinner is false 1228ms
[?2004h[?2004h ✓ src/utils/events.test.ts (2 tests) 134ms
✓ src/config/settingPaths.test.ts (2 tests) 138ms
[?25h[?25h[?2004h ❯ src/ui/components/LoopDetectionConfirmation.test.tsx (2 tests | 1 failed) 6888ms
✓ LoopDetectionConfirmation > renders correctly 4698ms
× LoopDetectionConfirmation > contains the expected options 2160ms
→ expected ' ╭╮\n ││?\n ││\n ││T\n ││h\n ││i\n ││…' to contain 'A potential loop was detected'
✓ src/ui/components/RawMarkdownIndicator.test.tsx (2 tests) 3819ms
✓ RawMarkdownIndicator > renders correct key binding for darwin 2493ms
✓ RawMarkdownIndicator > renders correct key binding for other platforms 1291ms
✓ src/ui/commands/editorCommand.test.ts (2 tests) 316ms
[?2004h[?25h[?2004h[?2004h[?2004h[?2004h ✓ src/utils/updateEventEmitter.test.ts (1 test) 79ms
[?2004h[?2004h[?25h ✓ src/ui/components/shared/SectionHeader.test.tsx (4 tests) 7272ms
✓ > 'renders correctly with a standard tit…' 3487ms
✓ > 'renders correctly when title is trunc…' 1386ms
✓ > 'renders correctly in a narrow contain…' 1191ms
✓ > 'renders correctly with a subtitle' 1178ms
✓ src/ui/components/SessionBrowser/SessionBrowserStates.test.tsx (3 tests) 4655ms
✓ SessionBrowser UI States > SessionBrowserLoading renders correctly 2228ms
✓ SessionBrowser UI States > SessionBrowserError renders correctly 1227ms
✓ SessionBrowser UI States > SessionBrowserEmpty renders correctly 1170ms
[?25h[?2004h[?2004h[?2004h[?25h[?25h ✓ src/utils/math.test.ts (7 tests) 249ms
❯ src/ui/components/AppHeaderIcon.test.tsx (2 tests | 2 failed) 8244ms
× AppHeader Icon Rendering > renders the default icon in standard terminals 5347ms
→ Snapshot `AppHeader Icon Rendering > renders the default icon in standard terminals 2` mismatched
× AppHeader Icon Rendering > renders the symmetric icon in Apple Terminal 2864ms
→ Snapshot `AppHeader Icon Rendering > renders the symmetric icon in Apple Terminal 2` mismatched
[?2004h ✓ src/ui/components/messages/InfoMessage.test.tsx (3 tests) 5315ms
✓ InfoMessage > renders with the correct default prefix and text 2646ms
✓ InfoMessage > renders with a custom icon 1406ms
✓ InfoMessage > renders multiline info messages 1241ms
[?2004h ✓ src/ui/components/ProgressBar.test.tsx (4 tests) 6226ms
✓ > renders 0% correctly 2547ms
✓ > renders 50% correctly 1237ms
✓ > renders warning threshold correctly 1213ms
✓ > renders error threshold correctly at 100% 1189ms
[?25h[?2004h[?25h ✓ src/ui/components/messages/ErrorMessage.test.tsx (2 tests) 3816ms
✓ ErrorMessage > renders with the correct prefix and text 2473ms
✓ ErrorMessage > renders multiline error messages 1309ms
[?2004h ✓ src/ui/components/ThemedGradient.test.tsx (1 test) 2242ms
✓ ThemedGradient > renders children 2214ms
[?25hstdout | src/integration-tests/modelSteering.test.tsx > Model Steering Integration > should steer the model using a hint during a tool turn
File /build/.cache/vscode-ripgrep/ripgrep-v13.0.0-10-i686-unknown-linux-musl.tar.gz has been cached
[?25h[?1006l[?1002l[?2004h ✓ src/ui/components/messages/WarningMessage.test.tsx (2 tests) 3616ms
✓ WarningMessage > renders with the correct prefix and text 2339ms
✓ WarningMessage > renders multiline warning messages 1248ms
✓ src/ui/components/Tips.test.tsx (2 tests) 3849ms
✓ Tips > 'renders all tips including GEMINI.md …' 2382ms
✓ Tips > 'renders fewer tips when GEMINI.md exi…' 1447ms
[?25h ❯ src/ui/components/Banner.test.tsx (4 tests | 2 failed) 11550ms
✓ Banner > renders in warning mode 4127ms
× Banner > renders in info mode 2814ms
→ Snapshot `Banner > renders in info mode 2` mismatched
✓ Banner > renders in multi-line warning 2303ms
× Banner > handles newlines in text 2273ms
→ Snapshot `Banner > handles newlines in text 2` mismatched
stderr | src/test-utils/AppRig.test.tsx > AppRig > should handle deterministic tool turns with breakpoints
[STARTUP] Cannot start phase 'load_builtin_commands': phase is already active. Call end() before starting again.
✓ src/ui/components/ConsoleSummaryDisplay.test.tsx (3 tests) 5693ms
✓ ConsoleSummaryDisplay > renders nothing when errorCount is 0 1629ms
✓ ConsoleSummaryDisplay > renders correct message for 1 errors 2108ms
✓ ConsoleSummaryDisplay > renders correct message for 5 errors 1919ms
✓ src/ui/components/StickyHeader.test.tsx (2 tests) 4346ms
✓ StickyHeader > renders children with isFirst=true 3024ms
✓ StickyHeader > renders children with isFirst=false 1303ms
[?25h[?25h[?25h[?1006l[?1002l[?2004h[?25h[?25hstderr | src/integration-tests/modelSteering.test.tsx > Model Steering Integration > should steer the model using a hint during a tool turn
[STARTUP] Cannot start phase 'load_builtin_commands': phase is already active. Call end() before starting again.
✓ src/ui/components/ShellModeIndicator.test.tsx (1 test) 2138ms
✓ ShellModeIndicator > renders correctly 2111ms
[?25h ✓ src/ui/components/UpdateNotification.test.tsx (1 test) 2571ms
✓ UpdateNotification > renders message 2551ms
[?25hstdout | src/test-utils/AppRig.test.tsx > AppRig > should render the app and handle a simple message
File /build/.cache/vscode-ripgrep/ripgrep-v13.0.0-10-i686-unknown-linux-musl.tar.gz has been cached
[?1006l[?1002l[?2004hstderr | src/test-utils/AppRig.test.tsx > AppRig > should render the app and handle a simple message
[STARTUP] Cannot start phase 'load_builtin_commands': phase is already active. Call end() before starting again.
✓ src/test-utils/AppRig.test.tsx (2 tests) 23523ms
✓ AppRig > should handle deterministic tool turns with breakpoints 18488ms
✓ AppRig > should render the app and handle a simple message 5004ms
[?25h ✓ src/integration-tests/modelSteering.test.tsx (1 test) 19762ms
✓ Model Steering Integration > should steer the model using a hint during a tool turn 19732ms
[?25h
⎯⎯⎯⎯⎯⎯ Failed Suites 6 ⎯⎯⎯⎯⎯⎯⎯
FAIL src/gemini.test.tsx [ src/gemini.test.tsx ]
FAIL src/utils/sandbox.test.ts [ src/utils/sandbox.test.ts ]
FAIL src/ui/hooks/useAtCompletion.test.ts [ src/ui/hooks/useAtCompletion.test.ts ]
FAIL src/ui/hooks/useAtCompletion_agents.test.ts [ src/ui/hooks/useAtCompletion_agents.test.ts ]
FAIL src/ui/hooks/useShellCompletion.test.ts [ src/ui/hooks/useShellCompletion.test.ts ]
Error: The @lydell/node-pty package currently does not support your platform: linux-riscv64
❯ Object.requireBinary ../../node_modules/@lydell/node-pty/requireBinary.js:12:19
❯ Object. ../../node_modules/@lydell/node-pty/unixTerminal.js:20:27
❯ Object. ../../node_modules/@lydell/node-pty/index.js:13:20
Caused by: Error: Cannot find module '@lydell/node-pty-linux-riscv64/pty.node'
Require stack:
- /build/gemini-cli/src/gemini-cli/node_modules/@lydell/node-pty/requireBinary.js
- /build/gemini-cli/src/gemini-cli/node_modules/@lydell/node-pty/unixTerminal.js
- /build/gemini-cli/src/gemini-cli/node_modules/@lydell/node-pty/index.js
❯ Object.requireBinary ../../node_modules/@lydell/node-pty/requireBinary.js:7:16
❯ Object. ../../node_modules/@lydell/node-pty/unixTerminal.js:20:27
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { code: 'MODULE_NOT_FOUND', requireStack: [ '/build/gemini-cli/src/gemini-cli/node_modules/@lydell/node-pty/requireBinary.js', '/build/gemini-cli/src/gemini-cli/node_modules/@lydell/node-pty/unixTerminal.js', '/build/gemini-cli/src/gemini-cli/node_modules/@lydell/node-pty/index.js' ] }
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/292]⎯
FAIL src/ui/components/shared/BaseSelectionList.test.tsx [ src/ui/components/shared/BaseSelectionList.test.tsx ]
RuntimeError: Aborted(RangeError: WebAssembly.instantiate(): Out of memory: Cannot allocate Wasm memory for new instance). Build with -sASSERTIONS for more info.
❯ x ../../node_modules/yoga-layout/dist/binaries/yoga-wasm-base64-esm.js:13:73
❯ ../../node_modules/yoga-layout/dist/binaries/yoga-wasm-base64-esm.js:63:418
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/292]⎯
⎯⎯⎯⎯⎯⎯ Failed Tests 286 ⎯⎯⎯⎯⎯⎯
FAIL src/ui/App.test.tsx > App > should render dialog manager when dialogs are visible
AssertionError: expected 'Notifications\n\nDialogManager\n' to contain 'Tips for getting started'
[32m- Expected[39m
[31m+ Received[39m
[32m- Tips for getting started[39m
[31m+ Notifications[39m
[31m+[39m
[31m+ DialogManager[39m
[31m+[39m
❯ src/ui/App.test.tsx:150:25
148| });
149|
150| expect(lastFrame()).toContain('Tips for getting started');
| ^
151| expect(lastFrame()).toContain('Notifications');
152| expect(lastFrame()).toContain('DialogManager');
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/292]⎯
FAIL src/ui/App.test.tsx > App > should render ScreenReaderAppLayout when screen reader is enabled
AssertionError: expected 'Notifications\nFooter\n\n\n\n\n\n\n\n…' to contain 'Tips for getting started'
[32m- Expected[39m
[31m+ Received[39m
[32m- Tips for getting started[39m
[31m+ Notifications[39m
[31m+ Footer[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+ Composer[39m
[31m+[39m
❯ src/ui/App.test.tsx:188:25
186| expect(lastFrame()).toContain('Notifications');
187| expect(lastFrame()).toContain('Footer');
188| expect(lastFrame()).toContain('Tips for getting started');
| ^
189| expect(lastFrame()).toContain('Composer');
190| unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/292]⎯
FAIL src/ui/App.test.tsx > App > should render DefaultAppLayout when screen reader is not enabled
AssertionError: expected 'Notifications\n\nComposer\n' to contain 'Tips for getting started'
[32m- Expected[39m
[31m+ Received[39m
[32m- Tips for getting started[39m
[31m+ Notifications[39m
[31m+[39m
[31m+ Composer[39m
[31m+[39m
❯ src/ui/App.test.tsx:201:25
199| });
200|
201| expect(lastFrame()).toContain('Tips for getting started');
| ^
202| expect(lastFrame()).toContain('Notifications');
203| expect(lastFrame()).toContain('Composer');
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/292]⎯
FAIL src/ui/App.test.tsx > App > should render ToolConfirmationQueue along with Composer when tool is confirming and experiment is on
AssertionError: expected 'Notifications\n\nComposer\n' to contain 'Tips for getting started'
[32m- Expected[39m
[31m+ Received[39m
[32m- Tips for getting started[39m
[31m+ Notifications[39m
[31m+[39m
[31m+ Composer[39m
[31m+[39m
❯ src/ui/App.test.tsx:253:25
251| });
252|
253| expect(lastFrame()).toContain('Tips for getting started');
| ^
254| expect(lastFrame()).toContain('Notifications');
255| expect(lastFrame()).toContain('Action Required'); // From ToolConf…
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/292]⎯
FAIL src/ui/App.test.tsx > App > Snapshots > renders default layout correctly
Error: Snapshot `App > Snapshots > renders default layout correctly 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[32m- "[39m
[32m- ▝▜▄ ▗█▀▀▜▙▝█▛▀▀▌▜██▖▟██▘▜█▘▜██▖▝█▛▝█▛[39m
[32m- ▝▜▄ █▌ █▙▟ ▐█▝█▛▐█ ▐█ ▐█▝█▖█▌ █▌[39m
[32m- ▗▟▀ ▜▙ ▝█▛ █▌▝ ▖▐█ ▐█ ▐█ ▐█ ▝██▌ █▌[39m
[32m- ▝▀ ▀▀▀▀▘▝▀▀▀▀▘▀▀▘ ▀▀▘▀▀▘▀▀▘ ▝▀▀▝▀▀[39m
[32m-[39m
[32m- Gemini CLI v1.2.3[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m- Tips for getting started:[39m
[32m- 1. Create GEMINI.md files to customize your interactions[39m
[32m- 2. /help for more information[39m
[32m- 3. Ask coding questions, edit code or run commands[39m
[32m- 4. Be specific for the best results[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m- Notifications[39m
[31m+ "Notifications[39m
[2m Composer[22m
[2m "[22m
❯ src/ui/App.test.tsx:268:27
266| settings: createMockSettings({ ui: { useAlternateBuffer: true …
267| });
268| expect(lastFrame()).toMatchSnapshot();
| ^
269| unmount();
270| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[7/292]⎯
FAIL src/ui/App.test.tsx > App > Snapshots > renders screen reader layout correctly
Error: Snapshot `App > Snapshots > renders screen reader layout correctly 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "Notifications[22m
[2m Footer[22m
[32m- ▝▜▄ ▗█▀▀▜▙▝█▛▀▀▌▜██▖▟██▘▜█▘▜██▖▝█▛▝█▛[39m
[32m- ▝▜▄ █▌ █▙▟ ▐█▝█▛▐█ ▐█ ▐█▝█▖█▌ █▌[39m
[32m- ▗▟▀ ▜▙ ▝█▛ █▌▝ ▖▐█ ▐█ ▐█ ▐█ ▝██▌ █▌[39m
[32m- ▝▀ ▀▀▀▀▘▝▀▀▀▀▘▀▀▘ ▀▀▘▀▀▘▀▀▘ ▝▀▀▝▀▀[39m
[32m-[39m
[32m- Gemini CLI v1.2.3[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m- Tips for getting started:[39m
[32m- 1. Create GEMINI.md files to customize your interactions[39m
[32m- 2. /help for more information[39m
[32m- 3. Ask coding questions, edit code or run commands[39m
[32m- 4. Be specific for the best results[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[2m Composer[22m
[2m "[22m
❯ src/ui/App.test.tsx:278:27
276| settings: createMockSettings({ ui: { useAlternateBuffer: true …
277| });
278| expect(lastFrame()).toMatchSnapshot();
| ^
279| unmount();
280| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[8/292]⎯
FAIL src/ui/App.test.tsx > App > Snapshots > renders with dialogs visible
Error: Snapshot `App > Snapshots > renders with dialogs visible 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[32m- "[39m
[32m- ▝▜▄ ▗█▀▀▜▙▝█▛▀▀▌▜██▖▟██▘▜█▘▜██▖▝█▛▝█▛[39m
[32m- ▝▜▄ █▌ █▙▟ ▐█▝█▛▐█ ▐█ ▐█▝█▖█▌ █▌[39m
[32m- ▗▟▀ ▜▙ ▝█▛ █▌▝ ▖▐█ ▐█ ▐█ ▐█ ▝██▌ █▌[39m
[32m- ▝▀ ▀▀▀▀▘▝▀▀▀▀▘▀▀▘ ▀▀▘▀▀▘▀▀▘ ▝▀▀▝▀▀[39m
[32m-[39m
[32m- Gemini CLI v1.2.3[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m-[39m
[32m- Notifications[39m
[31m+ "Notifications[39m
[2m DialogManager[22m
[2m "[22m
❯ src/ui/App.test.tsx:291:27
289| settings: createMockSettings({ ui: { useAlternateBuffer: true …
290| });
291| expect(lastFrame()).toMatchSnapshot();
| ^
292| unmount();
293| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[9/292]⎯
FAIL src/ui/ToolConfirmationFullFrame.test.tsx > Full Terminal Tool Confirmation Snapshot > renders tool confirmation box in the frame of the entire terminal
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.
❯ Object.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…
❯ Object.toMatchSvgSnapshot src/test-utils/customMatchers.ts:44:34
❯ src/ui/ToolConfirmationFullFrame.test.tsx:176:46
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[10/292]⎯
FAIL src/ui/components/AgentConfigDialog.test.tsx > AgentConfigDialog > rendering > should render all configuration fields
AssertionError: expected '╭────────────────────────────────────…' to contain 'Enabled'
[32m- Expected[39m
[31m+ Received[39m
[32m- Enabled[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● E t │[39m
[31m+ │ n r │[39m
[31m+ │ a u │[39m
[31m+ │ b e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ M i │[39m
[31m+ │ o n │[39m
[31m+ │ d h │[39m
[31m+ │ e e │[39m
[31m+ │ l r │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ │[39m
[31m+ │ T 1 │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ p │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ T ( │[39m
[31m+ │ o d │[39m
[31m+ │ p e │[39m
[31m+ │ P f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ T ( │[39m
[31m+ │ o d │[39m
[31m+ │ p e │[39m
[31m+ │ K f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ M ( │[39m
[31m+ │ a d │[39m
[31m+ │ x e │[39m
[31m+ │ O f │[39m
[31m+ │ u a │[39m
[31m+ │ t u │[39m
[31m+ │ p l │[39m
[31m+ │ u t │[39m
[31m+ │ t ) │[39m
[31m+ │ T │[39m
[31m+ │ o │[39m
[31m+ │ k │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ M 5 │[39m
[31m+ │ a │[39m
[31m+ │ x │[39m
[31m+ │ T │[39m
[31m+ │ i │[39m
[31m+ │ m │[39m
[31m+ │ e │[39m
[31m+ │ ( │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ M 1 │[39m
[31m+ │ a 0 │[39m
[31m+ │ x │[39m
[31m+ │ T │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/AgentConfigDialog.test.tsx:145:21
143| const frame = lastFrame();
144|
145| expect(frame).toContain('Enabled');
| ^
146| expect(frame).toContain('Model');
147| expect(frame).toContain('Temperature');
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[11/292]⎯
FAIL src/ui/components/AgentConfigDialog.test.tsx > AgentConfigDialog > rendering > should render scope selector
AssertionError: expected '╭────────────────────────────────────…' to contain 'Apply To'
[32m- Expected[39m
[31m+ Received[39m
[32m- Apply To[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● E t │[39m
[31m+ │ n r │[39m
[31m+ │ a u │[39m
[31m+ │ b e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ M i │[39m
[31m+ │ o n │[39m
[31m+ │ d h │[39m
[31m+ │ e e │[39m
[31m+ │ l r │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ │[39m
[31m+ │ T 1 │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ p │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ T ( │[39m
[31m+ │ o d │[39m
[31m+ │ p e │[39m
[31m+ │ P f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ T ( │[39m
[31m+ │ o d │[39m
[31m+ │ p e │[39m
[31m+ │ K f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ M ( │[39m
[31m+ │ a d │[39m
[31m+ │ x e │[39m
[31m+ │ O f │[39m
[31m+ │ u a │[39m
[31m+ │ t u │[39m
[31m+ │ p l │[39m
[31m+ │ u t │[39m
[31m+ │ t ) │[39m
[31m+ │ T │[39m
[31m+ │ o │[39m
[31m+ │ k │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ M 5 │[39m
[31m+ │ a │[39m
[31m+ │ x │[39m
[31m+ │ T │[39m
[31m+ │ i │[39m
[31m+ │ m │[39m
[31m+ │ e │[39m
[31m+ │ ( │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ M 1 │[39m
[31m+ │ a 0 │[39m
[31m+ │ x │[39m
[31m+ │ T │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/AgentConfigDialog.test.tsx:160:27
158| const { lastFrame, unmount } = await renderDialog(settings);
159|
160| expect(lastFrame()).toContain('Apply To');
| ^
161| expect(lastFrame()).toContain('User Settings');
162| expect(lastFrame()).toContain('Workspace Settings');
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[12/292]⎯
FAIL src/ui/components/AgentConfigDialog.test.tsx > AgentConfigDialog > rendering > should render help text
AssertionError: expected '╭────────────────────────────────────…' to contain 'Use Enter to select'
[32m- Expected[39m
[31m+ Received[39m
[32m- Use Enter to select[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● E t │[39m
[31m+ │ n r │[39m
[31m+ │ a u │[39m
[31m+ │ b e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ M i │[39m
[31m+ │ o n │[39m
[31m+ │ d h │[39m
[31m+ │ e e │[39m
[31m+ │ l r │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ │[39m
[31m+ │ T 1 │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ p │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ T ( │[39m
[31m+ │ o d │[39m
[31m+ │ p e │[39m
[31m+ │ P f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ T ( │[39m
[31m+ │ o d │[39m
[31m+ │ p e │[39m
[31m+ │ K f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ M ( │[39m
[31m+ │ a d │[39m
[31m+ │ x e │[39m
[31m+ │ O f │[39m
[31m+ │ u a │[39m
[31m+ │ t u │[39m
[31m+ │ p l │[39m
[31m+ │ u t │[39m
[31m+ │ t ) │[39m
[31m+ │ T │[39m
[31m+ │ o │[39m
[31m+ │ k │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ M 5 │[39m
[31m+ │ a │[39m
[31m+ │ x │[39m
[31m+ │ T │[39m
[31m+ │ i │[39m
[31m+ │ m │[39m
[31m+ │ e │[39m
[31m+ │ ( │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ M 1 │[39m
[31m+ │ a 0 │[39m
[31m+ │ x │[39m
[31m+ │ T │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/AgentConfigDialog.test.tsx:170:27
168| const { lastFrame, unmount } = await renderDialog(settings);
169|
170| expect(lastFrame()).toContain('Use Enter to select');
| ^
171| expect(lastFrame()).toContain('Tab to change focus');
172| expect(lastFrame()).toContain('Esc to close');
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[13/292]⎯
FAIL src/ui/components/AgentConfigDialog.test.tsx > AgentConfigDialog > keyboard navigation > should navigate down with arrow key
AssertionError: expected '╭────────────────────────────────────…' to contain 'Model'
[32m- Expected[39m
[31m+ Received[39m
[32m- Model[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ E t │[39m
[31m+ │ n r │[39m
[31m+ │ a u │[39m
[31m+ │ b e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● M i │[39m
[31m+ │ o n │[39m
[31m+ │ d h │[39m
[31m+ │ e e │[39m
[31m+ │ l r │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ │[39m
[31m+ │ T 1 │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ p │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ T ( │[39m
[31m+ │ o d │[39m
[31m+ │ p e │[39m
[31m+ │ P f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ T ( │[39m
[31m+ │ o d │[39m
[31m+ │ p e │[39m
[31m+ │ K f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ M ( │[39m
[31m+ │ a d │[39m
[31m+ │ x e │[39m
[31m+ │ O f │[39m
[31m+ │ u a │[39m
[31m+ │ t u │[39m
[31m+ │ p l │[39m
[31m+ │ u t │[39m
[31m+ │ t ) │[39m
[31m+ │ T │[39m
[31m+ │ o │[39m
[31m+ │ k │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ M 5 │[39m
[31m+ │ a │[39m
[31m+ │ x │[39m
[31m+ │ T │[39m
[31m+ │ i │[39m
[31m+ │ m │[39m
[31m+ │ e │[39m
[31m+ │ ( │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ M 1 │[39m
[31m+ │ a 0 │[39m
[31m+ │ x │[39m
[31m+ │ T │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/AgentConfigDialog.test.tsx:212:29
210| await waitFor(() => {
211| // Model field should now be highlighted
212| expect(lastFrame()).toContain('Model');
| ^
213| });
214| unmount();
❯ waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/AgentConfigDialog.test.tsx:210:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[14/292]⎯
FAIL src/ui/components/AgentConfigDialog.test.tsx > AgentConfigDialog > keyboard navigation > should switch focus with Tab
AssertionError: expected '╭────────────────────────────────────…' to contain '> Configure: Test Agent'
[32m- Expected[39m
[31m+ Received[39m
[32m- > Configure: Test Agent[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● E t │[39m
[31m+ │ n r │[39m
[31m+ │ a u │[39m
[31m+ │ b e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ M i │[39m
[31m+ │ o n │[39m
[31m+ │ d h │[39m
[31m+ │ e e │[39m
[31m+ │ l r │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ │[39m
[31m+ │ T 1 │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ p │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ T ( │[39m
[31m+ │ o d │[39m
[31m+ │ p e │[39m
[31m+ │ P f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ T ( │[39m
[31m+ │ o d │[39m
[31m+ │ p e │[39m
[31m+ │ K f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ M ( │[39m
[31m+ │ a d │[39m
[31m+ │ x e │[39m
[31m+ │ O f │[39m
[31m+ │ u a │[39m
[31m+ │ t u │[39m
[31m+ │ p l │[39m
[31m+ │ u t │[39m
[31m+ │ t ) │[39m
[31m+ │ T │[39m
[31m+ │ o │[39m
[31m+ │ k │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ M 5 │[39m
[31m+ │ a │[39m
[31m+ │ x │[39m
[31m+ │ T │[39m
[31m+ │ i │[39m
[31m+ │ m │[39m
[31m+ │ e │[39m
[31m+ │ ( │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ M 1 │[39m
[31m+ │ a 0 │[39m
[31m+ │ x │[39m
[31m+ │ T │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/AgentConfigDialog.test.tsx:223:27
221|
222| // Initially settings section is focused
223| expect(lastFrame()).toContain('> Configure: Test Agent');
| ^
224|
225| // Press Tab to switch to scope selector
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[15/292]⎯
FAIL src/ui/components/AgentConfigDialog.test.tsx > AgentConfigDialog > default values > should show values from agent definition as defaults
AssertionError: expected '╭────────────────────────────────────…' to contain 'gemini-2.0-flash'
[32m- Expected[39m
[31m+ Received[39m
[32m- gemini-2.0-flash[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● E t │[39m
[31m+ │ n r │[39m
[31m+ │ a u │[39m
[31m+ │ b e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ M g │[39m
[31m+ │ o e │[39m
[31m+ │ d m │[39m
[31m+ │ e i │[39m
[31m+ │ l n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 0 │[39m
[31m+ │ - │[39m
[31m+ │ f │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ │[39m
[31m+ │ T 0 │[39m
[31m+ │ e . │[39m
[31m+ │ m 7 │[39m
[31m+ │ p │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ T ( │[39m
[31m+ │ o d │[39m
[31m+ │ p e │[39m
[31m+ │ P f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ T ( │[39m
[31m+ │ o d │[39m
[31m+ │ p e │[39m
[31m+ │ K f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ M ( │[39m
[31m+ │ a d │[39m
[31m+ │ x e │[39m
[31m+ │ O f │[39m
[31m+ │ u a │[39m
[31m+ │ t u │[39m
[31m+ │ p l │[39m
[31m+ │ u t │[39m
[31m+ │ t ) │[39m
[31m+ │ T │[39m
[31m+ │ o │[39m
[31m+ │ k │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ M 1 │[39m
[31m+ │ a 0 │[39m
[31m+ │ x │[39m
[31m+ │ T │[39m
[31m+ │ i │[39m
[31m+ │ m │[39m
[31m+ │ e │[39m
[31m+ │ ( │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ M 2 │[39m
[31m+ │ a 0 │[39m
[31m+ │ x │[39m
[31m+ │ T │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/AgentConfigDialog.test.tsx:279:21
277| const frame = lastFrame();
278|
279| expect(frame).toContain('gemini-2.0-flash');
| ^
280| expect(frame).toContain('0.7');
281| expect(frame).toContain('10');
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[16/292]⎯
FAIL src/ui/components/AgentConfigDialog.test.tsx > AgentConfigDialog > default values > should show experimental agents as disabled by default
AssertionError: expected '╭────────────────────────────────────…' to contain 'false'
[32m- Expected[39m
[31m+ Received[39m
[32m- false[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● E f │[39m
[31m+ │ n a │[39m
[31m+ │ a l │[39m
[31m+ │ b s │[39m
[31m+ │ l e │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ M i │[39m
[31m+ │ o n │[39m
[31m+ │ d h │[39m
[31m+ │ e e │[39m
[31m+ │ l r │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ │[39m
[31m+ │ T 1 │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ p │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ T ( │[39m
[31m+ │ o d │[39m
[31m+ │ p e │[39m
[31m+ │ P f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ T ( │[39m
[31m+ │ o d │[39m
[31m+ │ p e │[39m
[31m+ │ K f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ M ( │[39m
[31m+ │ a d │[39m
[31m+ │ x e │[39m
[31m+ │ O f │[39m
[31m+ │ u a │[39m
[31m+ │ t u │[39m
[31m+ │ p l │[39m
[31m+ │ u t │[39m
[31m+ │ t ) │[39m
[31m+ │ T │[39m
[31m+ │ o │[39m
[31m+ │ k │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ M 5 │[39m
[31m+ │ a │[39m
[31m+ │ x │[39m
[31m+ │ T │[39m
[31m+ │ i │[39m
[31m+ │ m │[39m
[31m+ │ e │[39m
[31m+ │ ( │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ M 1 │[39m
[31m+ │ a 0 │[39m
[31m+ │ x │[39m
[31m+ │ T │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/AgentConfigDialog.test.tsx:294:27
292|
293| // Experimental agents default to disabled
294| expect(lastFrame()).toContain('false');
| ^
295| unmount();
296| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[17/292]⎯
FAIL src/ui/components/AgentConfigDialog.test.tsx > AgentConfigDialog > existing overrides > should show existing override values with * indicator
AssertionError: expected '╭────────────────────────────────────…' to contain 'custom-model'
[32m- Expected[39m
[31m+ Received[39m
[32m- custom-model[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ * │[39m
[31m+ │ d │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ m │[39m
[31m+ │ - │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ * │[39m
[31m+ │ │[39m
[31m+ │ 1 │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ p │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ ) │[39m
[31m+ │ T │[39m
[31m+ │ o │[39m
[31m+ │ k │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ 5 │[39m
[31m+ │ a │[39m
[31m+ │ x │[39m
[31m+ │ T │[39m
[31m+ │ i │[39m
[31m+ │ m │[39m
[31m+ │ e │[39m
[31m+ │ ( │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ 1 │[39m
[31m+ │ 0 │[39m
[31m+ │ x │[39m
[31m+ │ T │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/AgentConfigDialog.test.tsx:317:21
315|
316| // Should show the overridden values
317| expect(frame).toContain('custom-model');
| ^
318| expect(frame).toContain('false');
319| unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[18/292]⎯
FAIL src/ui/components/AgentConfigDialog.test.tsx > AgentConfigDialog > existing overrides > should respond to availableTerminalHeight and truncate list
AssertionError: expected '╭────────────────────────────────────…' to contain 'Configure: Test Agent'
[32m- Expected[39m
[31m+ Received[39m
[32m- Configure: Test Agent[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ▲ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ │[39m
[31m+ │ 1 │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ p │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ▼ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/AgentConfigDialog.test.tsx:338:29
336| );
337| await waitFor(() =>
338| expect(lastFrame()).toContain('Configure: Test Agent'),
| ^
339| );
340|
❯ waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/AgentConfigDialog.test.tsx:337:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[19/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -12,9 +12,19 @@[39m
[2m 1. Create GEMINI.md files to customize your interactions[22m
[2m 2. /help for more information[22m
[2m 3. Ask coding questions, edit code or run commands[22m
[2m 4. Be specific for the best results[22m
[2m ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀[22m
[32m- > H[7mello Gemini[27m [39m
[31m+ > H[7m [27m[39m
[31m+ e [39m
[31m+ l [39m
[31m+ l [39m
[31m+ o [39m
[31m+ G [39m
[31m+ e [39m
[31m+ m [39m
[31m+ i [39m
[31m+ n [39m
[31m+ [7m i [27m [39m
[2m ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[22m
[2m ✦ Hello User![22m
[2m "[22m
❯ src/ui/components/AlternateBufferQuittingDisplay.test.tsx:228:25
226| },
227| );
228| expect(lastFrame()).toMatchSnapshot('with_user_gemini_messages');
| ^
229| unmount();
230| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[20/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,33 +2,33 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ▝[39m
[31m+ ▝[39m
[32m- ▜[39m
[31m+ ▜[39m
[32m- ▄[39m
[31m+ ▄[39m
[2m ▗█▀▀▜▙▝█▛▀▀▌▜██▖▟██▘▜█▘▜██▖▝█▛▝█▛[22m
[32m- ▝[39m
[31m+ ▝[39m
[32m- ▜[39m
[31m+ ▜[39m
[32m- ▄[39m
[31m+ ▄[39m
[2m █▌ █▙▟ ▐█▝█▛▐█ ▐█ ▐█▝█▖█▌ █▌[22m
[32m- ▗[39m
[31m+ ▗[39m
[32m- ▟[39m
[31m+ ▟[39m
[32m- ▀[39m
[31m+ ▀[39m
[2m ▜▙ ▝█▛ █▌▝ ▖▐█ ▐█ ▐█ ▐█ ▝██▌ █▌[22m
[32m- ▝[39m
[31m+ ▝[39m
[32m- ▀[39m
[31m+ ▀[39m
[2m ▀▀▀▀▘▝▀▀▀▀▘▀▀▘ ▀▀▘▀▀▘▀▀▘ ▝▀▀▝▀▀[22m
[2m Gemini CLI[22m
[32m- v1.0.0[39m
[31m+ v1.0.0[39m
[2m Tips for getting started:[22m
[2m 1. Create [22m
[2m GEMINI.md[22m
[2m files to customize your interactions[22m
[2m 2. [22m
[32m- /help[39m
[31m+ /help[39m
[2m for more information[22m
[2m 3. Ask coding questions, edit code or run commands[22m
[2m 4. Be specific for the best results[22m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[21/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,34 +2,34 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ▝[39m
[31m+ ▝[39m
[32m- ▜[39m
[31m+ ▜[39m
[32m- ▄[39m
[31m+ ▄[39m
[2m ▗█▀▀▜▙▝█▛▀▀▌▜██▖▟██▘▜█▘▜██▖▝█▛▝█▛[22m
[32m- ▝[39m
[31m+ ▝[39m
[32m- ▜[39m
[31m+ ▜[39m
[32m- ▄[39m
[31m+ ▄[39m
[2m █▌ █▙▟ ▐█▝█▛▐█ ▐█ ▐█▝█▖█▌ █▌[22m
[32m- ▗[39m
[31m+ ▗[39m
[32m- ▟[39m
[31m+ ▟[39m
[32m- ▀[39m
[31m+ ▀[39m
[2m ▜▙ ▝█▛ █▌▝ ▖▐█ ▐█ ▐█ ▐█ ▝██▌ █▌[22m
[32m- ▗[39m
[31m+ ▗[39m
[32m- ▟[39m
[31m+ ▟[39m
[32m- ▀[39m
[31m+ ▀[39m
[2m ▀▀▀▀▘▝▀▀▀▀▘▀▀▘ ▀▀▘▀▀▘▀▀▘ ▝▀▀▝▀▀[22m
[2m Gemini CLI[22m
[32m- v1.0.0[39m
[31m+ v1.0.0[39m
[2m Tips for getting started:[22m
[2m 1. Create [22m
[2m GEMINI.md[22m
[2m files to customize your interactions[22m
[2m 2. [22m
[32m- /help[39m
[31m+ /help[39m
[2m for more information[22m
[2m 3. Ask coding questions, edit code or run commands[22m
[2m 4. Be specific for the best results[22m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[22/292]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > handles custom option in single select with inline typing
AssertionError: expected 'Which authentication method should we…' to contain 'Enter a custom value'
[32m- Expected[39m
[31m+ Received[39m
[32m- Enter a custom value[39m
[31m+ Which authentication method should we use?[39m
[31m+[39m
[31m+ 1.[39m
[31m+ O[39m
[31m+ A[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ 2[39m
[31m+ .[39m
[31m+ 0[39m
[31m+[39m
[31m+ I[39m
[31m+ n[39m
[31m+ d[39m
[31m+ u[39m
[31m+ s[39m
[31m+ t[39m
[31m+ r[39m
[31m+ y[39m
[31m+ s[39m
[31m+ t[39m
[31m+ a[39m
[31m+ n[39m
[31m+ d[39m
[31m+ a[39m
[31m+ r[39m
[31m+ d[39m
[31m+ ,[39m
[31m+ s[39m
[31m+ u[39m
[31m+ p[39m
[31m+ p[39m
[31m+ o[39m
[31m+ r[39m
[31m+ t[39m
[31m+ s[39m
[31m+ S[39m
[31m+ S[39m
[31m+ O[39m
[31m+ 2.[39m
[31m+ J[39m
[31m+ W[39m
[31m+ T[39m
[31m+ t[39m
[31m+ o[39m
[31m+ k[39m
[31m+ e[39m
[31m+ n[39m
[31m+ s[39m
[31m+[39m
[31m+ S[39m
[31m+ t[39m
[31m+ a[39m
[31m+ t[39m
[31m+ e[39m
[31m+ l[39m
[31m+ e[39m
[31m+ s[39m
[31m+ s[39m
[31m+ ,[39m
[31m+ g[39m
[31m+ o[39m
[31m+ o[39m
[31m+ d[39m
[31m+ f[39m
[31m+ o[39m
[31m+ r[39m
[31m+ A[39m
[31m+ P[39m
[31m+ I[39m
[31m+ s[39m
[31m+ ● 3. E [39m
[31m+ n [39m
[31m+ t [39m
[31m+ e [39m
[31m+ r [39m
[31m+ a [39m
[31m+ c [39m
[31m+ u [39m
[31m+ s [39m
[31m+ t [39m
[31m+ o [39m
[31m+ m [39m
[31m+ v [39m
[31m+ a [39m
[31m+ l [39m
[31m+ u [39m
[31m+ e [39m
[31m+[39m
[31m+ Enter to submit · Esc to cancel[39m
[31m+[39m
❯ src/ui/components/AskUserDialog.test.tsx:214:27
212| await waitFor(async () => {
213| await waitUntilReady();
214| expect(lastFrame()).toContain('Enter a custom value');
| ^
215| });
216|
❯ waitFor src/test-utils/async.ts:23:7
❯ src/ui/components/AskUserDialog.test.tsx:212:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[23/292]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > supports multi-line input for "Other" option in choice questions
AssertionError: expected 'Which authentication method?\n\n 1.\…' to contain 'Line 1'
[32m- Expected[39m
[31m+ Received[39m
[32m- Line 1[39m
[31m+ Which authentication method?[39m
[31m+[39m
[31m+ 1.[39m
[31m+ O[39m
[31m+ A[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ 2[39m
[31m+ .[39m
[31m+ 0[39m
[31m+ ●2. L [39m
[31m+ L [39m
[31m+ i[39m
[31m+ Enter to submit · Esc to cancel[39m
[31m+[39m
❯ src/ui/components/AskUserDialog.test.tsx:276:27
274| await waitFor(async () => {
275| await waitUntilReady();
276| expect(lastFrame()).toContain('Line 1');
| ^
277| await waitUntilReady();
278| expect(lastFrame()).toContain('Line 2');
❯ waitFor src/test-utils/async.ts:23:7
❯ src/ui/components/AskUserDialog.test.tsx:274:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[24/292]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > navigates to custom option when typing unbound characters (Type-to-Jump)
Error: Test timed out in 60000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
❯ src/ui/components/AskUserDialog.test.tsx:342:3
340| );
341|
342| it('navigates to custom option when typing unbound characters (Type-…
| ^
343| const { stdin, lastFrame, waitUntilReady } = await renderWithProvi…
344| AskUserDialog > shows progress header for multiple questions
Error: Snapshot `AskUserDialog > shows progress header for multiple questions 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "← □ Database │ □ ORM │ ≡ Review →[22m
[2m Which database should we use?[22m
[32m- ●[7m [27m1. [7mPostgreSQL [27m[39m
[32m- Relational database [39m
[32m- 2. MongoDB[39m
[32m- [7m Document databas[27me[39m
[31m+ ●1. [7m [27m[39m
[31m+ P [39m
[31m+ o [39m
[31m+ s [39m
[31m+ t [39m
[31m+ g [39m
[31m+ r [39m
[31m+ e [39m
[31m+ S [39m
[31m+ Q [39m
[31m+ L [39m
[31m+ [39m
[31m+ R [39m
[31m+ e [39m
[31m+ l [39m
[31m+ a [39m
[31m+ t [39m
[31m+ i [39m
[31m+ o [39m
[31m+ n [39m
[31m+ a [39m
[31m+ l [39m
[31m+ d [39m
[31m+ a [39m
[31m+ t [39m
[31m+ a [39m
[31m+ b [39m
[31m+ a [39m
[31m+ s [39m
[31m+ e [39m
[31m+ 2.[39m
[31m+ M[39m
[31m+ o[39m
[31m+ n[39m
[31m+ g[39m
[31m+ o[39m
[31m+ D[39m
[31m+ B[39m
[31m+[39m
[31m+ D[39m
[31m+ o[39m
[31m+ c[39m
[31m+ u[39m
[31m+ m[39m
[31m+ e[39m
[31m+ n[39m
[31m+ t[39m
[31m+ d[39m
[31m+ a[39m
[31m+ t[39m
[31m+ a[39m
[31m+ b[39m
[31m+ a[39m
[31m+ s[39m
[31m+ [7m [27me[39m
[32m- [7m [27m 3. [7m Enter a custom valu[27me[39m
[31m+ 3. [7mE[27m[39m
[31m+ n[39m
[31m+ t[39m
[31m+ e[39m
[31m+ r[39m
[31m+ a[39m
[31m+ c[39m
[31m+ u[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ m[39m
[31m+ v[39m
[31m+ a[39m
[31m+ l[39m
[31m+ u[39m
[31m+ [7m [27me[39m
[2m Enter to select · ←/→ to switch questions · Esc to cancel[22m
[2m "[22m
❯ src/ui/components/AskUserDialog.test.tsx:409:25
407| );
408|
409| expect(lastFrame()).toMatchSnapshot();
| ^
410| });
411|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[26/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[2m "Which authentication method should we use?[22m
[32m- ●[7m [27m1. [7mOAuth 2.0 [27m[39m
[32m- Industry standard, supports SSO [39m
[32m- 2. JWT tokens[39m
[32m- [7m Stateless, good for API[27ms[39m
[31m+ ●1. [7m [27m[39m
[31m+ O [39m
[31m+ A [39m
[31m+ u [39m
[31m+ t [39m
[31m+ h [39m
[31m+ 2 [39m
[31m+ . [39m
[31m+ 0 [39m
[31m+ [39m
[31m+ I [39m
[31m+ n [39m
[31m+ d [39m
[31m+ u [39m
[31m+ s [39m
[31m+ t [39m
[31m+ r [39m
[31m+ y [39m
[31m+ s [39m
[31m+ t [39m
[31m+ a [39m
[31m+ n [39m
[31m+ d [39m
[31m+ a [39m
[31m+ r [39m
[31m+ d [39m
[31m+ , [39m
[31m+ s [39m
[31m+ u [39m
[31m+ p [39m
[31m+ p [39m
[31m+ o [39m
[31m+ r [39m
[31m+ t [39m
[31m+ s [39m
[31m+ S [39m
[31m+ S [39m
[31m+ O [39m
[31m+ 2.[39m
[31m+ J[39m
[31m+ W[39m
[31m+ T[39m
[31m+ t[39m
[31m+ o[39m
[31m+ k[39m
[31m+ e[39m
[31m+ n[39m
[31m+ s[39m
[31m+[39m
[31m+ S[39m
[31m+ t[39m
[31m+ a[39m
[31m+ t[39m
[31m+ e[39m
[31m+ l[39m
[31m+ e[39m
[31m+ s[39m
[31m+ s[39m
[31m+ ,[39m
[31m+ g[39m
[31m+ o[39m
[31m+ o[39m
[31m+ d[39m
[31m+ f[39m
[31m+ o[39m
[31m+ r[39m
[31m+ A[39m
[31m+ P[39m
[31m+ I[39m
[31m+ [7m [27ms[39m
[32m- [7m [27m 3.[7m [27m E[7mnter a custom valu[27me[39m
[31m+ 3. E[39m
[31m+ n[39m
[31m+ t[39m
[31m+ e[39m
[31m+ r[39m
[31m+ a[39m
[31m+ c[39m
[31m+ u[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ m[39m
[31m+ v[39m
[31m+ a[39m
[31m+ l[39m
[31m+ u[39m
[31m+ [7m [27me[39m
[2m Enter to select · ↑/↓ to navigate · Esc to cancel[22m
[2m "[22m
❯ src/ui/components/AskUserDialog.test.tsx:423:25
421| );
422|
423| expect(lastFrame()).toMatchSnapshot();
| ^
424| });
425|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[27/292]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > shows keyboard hints
Error: Snapshot `AskUserDialog > shows keyboard hints 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "Which authentication method should we use?[22m
[32m- ●[7m [27m1. [7mOAuth 2.0 [27m[39m
[32m- Industry standard, supports SSO [39m
[32m- 2. JWT tokens[39m
[32m- [7m Stateless, good for API[27ms[39m
[31m+ ●1. [7m [27m[39m
[31m+ O [39m
[31m+ A [39m
[31m+ u [39m
[31m+ t [39m
[31m+ h [39m
[31m+ 2 [39m
[31m+ . [39m
[31m+ 0 [39m
[31m+ [39m
[31m+ I [39m
[31m+ n [39m
[31m+ d [39m
[31m+ u [39m
[31m+ s [39m
[31m+ t [39m
[31m+ r [39m
[31m+ y [39m
[31m+ s [39m
[31m+ t [39m
[31m+ a [39m
[31m+ n [39m
[31m+ d [39m
[31m+ a [39m
[31m+ r [39m
[31m+ d [39m
[31m+ , [39m
[31m+ s [39m
[31m+ u [39m
[31m+ p [39m
[31m+ p [39m
[31m+ o [39m
[31m+ r [39m
[31m+ t [39m
[31m+ s [39m
[31m+ S [39m
[31m+ S [39m
[31m+ O [39m
[31m+ 2.[39m
[31m+ J[39m
[31m+ W[39m
[31m+ T[39m
[31m+ t[39m
[31m+ o[39m
[31m+ k[39m
[31m+ e[39m
[31m+ n[39m
[31m+ s[39m
[31m+[39m
[31m+ S[39m
[31m+ t[39m
[31m+ a[39m
[31m+ t[39m
[31m+ e[39m
[31m+ l[39m
[31m+ e[39m
[31m+ s[39m
[31m+ s[39m
[31m+ ,[39m
[31m+ g[39m
[31m+ o[39m
[31m+ o[39m
[31m+ d[39m
[31m+ f[39m
[31m+ o[39m
[31m+ r[39m
[31m+ A[39m
[31m+ P[39m
[31m+ I[39m
[31m+ [7m [27ms[39m
[32m- [7m [27m 3.[7m [27m E[7mnter a custom valu[27me[39m
[31m+ 3. E[39m
[31m+ n[39m
[31m+ t[39m
[31m+ e[39m
[31m+ r[39m
[31m+ a[39m
[31m+ c[39m
[31m+ u[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ m[39m
[31m+ v[39m
[31m+ a[39m
[31m+ l[39m
[31m+ u[39m
[31m+ [7m [27me[39m
[2m Enter to select · ↑/↓ to navigate · Esc to cancel[22m
[2m "[22m
❯ src/ui/components/AskUserDialog.test.tsx:437:25
435| );
436|
437| expect(lastFrame()).toMatchSnapshot();
| ^
438| });
439|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[28/292]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > navigates between questions with arrow keys
AssertionError: expected '← □ Testing │ □ CI │ ≡ Review →\n\nWh…' to contain 'Which testing framework?'
[32m- Expected[39m
[31m+ Received[39m
[32m- Which testing framework?[39m
[31m+ ← □ Testing │ □ CI │ ≡ Review →[39m
[31m+[39m
[31m+ Which CI provider?[39m
[31m+[39m
[31m+ ●1. [39m
[31m+ G [39m
[31m+ i [39m
[31m+ t [39m
[31m+ H [39m
[31m+ u [39m
[31m+ b [39m
[31m+ A [39m
[31m+ c [39m
[31m+ t [39m
[31m+ i [39m
[31m+ o [39m
[31m+ n [39m
[31m+ s [39m
[31m+ [39m
[31m+ B [39m
[31m+ u [39m
[31m+ i [39m
[31m+ l [39m
[31m+ t [39m
[31m+ i [39m
[31m+ n [39m
[31m+ t [39m
[31m+ o [39m
[31m+ G [39m
[31m+ i [39m
[31m+ t [39m
[31m+ H [39m
[31m+ u [39m
[31m+ b [39m
[31m+ 2. E[39m
[31m+ n[39m
[31m+ t[39m
[31m+ e[39m
[31m+ r[39m
[31m+ a[39m
[31m+ c[39m
[31m+ u[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ m[39m
[31m+ v[39m
[31m+ a[39m
[31m+ l[39m
[31m+ u[39m
[31m+ e[39m
[31m+[39m
[31m+ Enter to select · ←/→ to switch questions · Esc to cancel[39m
[31m+[39m
❯ src/ui/components/AskUserDialog.test.tsx:483:27
481| await waitFor(async () => {
482| await waitUntilReady();
483| expect(lastFrame()).toContain('Which testing framework?');
| ^
484| });
485| });
❯ waitFor src/test-utils/async.ts:23:7
❯ src/ui/components/AskUserDialog.test.tsx:481:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[29/292]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > preserves answers when navigating back
AssertionError: expected '← □ Package │ □ Bundler │ ≡ Review →\…' to contain 'Which bundler?'
[32m- Expected[39m
[31m+ Received[39m
[32m- Which bundler?[39m
[31m+ ← □ Package │ □ Bundler │ ≡ Review →[39m
[31m+[39m
[31m+ Which package manager?[39m
[31m+[39m
[31m+ ●1. [39m
[31m+ p [39m
[31m+ n [39m
[31m+ p [39m
[31m+ m [39m
[31m+ [39m
[31m+ F [39m
[31m+ a [39m
[31m+ s [39m
[31m+ t [39m
[31m+ , [39m
[31m+ d [39m
[31m+ i [39m
[31m+ s [39m
[31m+ k [39m
[31m+ e [39m
[31m+ f [39m
[31m+ f [39m
[31m+ i [39m
[31m+ c [39m
[31m+ i [39m
[31m+ e [39m
[31m+ n [39m
[31m+ t [39m
[31m+ 2. E[39m
[31m+ n[39m
[31m+ t[39m
[31m+ e[39m
[31m+ r[39m
[31m+ a[39m
[31m+ c[39m
[31m+ u[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ m[39m
[31m+ v[39m
[31m+ a[39m
[31m+ l[39m
[31m+ u[39m
[31m+ e[39m
[31m+[39m
[31m+ Enter to select · ←/→ to switch questions · Esc to cancel[39m
[31m+[39m
❯ src/ui/components/AskUserDialog.test.tsx:521:27
519| await waitFor(async () => {
520| await waitUntilReady();
521| expect(lastFrame()).toContain('Which bundler?');
| ^
522| });
523|
❯ waitFor src/test-utils/async.ts:23:7
❯ src/ui/components/AskUserDialog.test.tsx:519:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[30/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[2m "← □ Framework │ □ Styling │ ≡ Review →[22m
[2m Which framework?[22m
[32m- ●[7m [27m1. [7mReact [27m[39m
[32m- Component library [39m
[32m- [7m 2. Vu[27me[39m
[31m+ ●1. [7m [27m[39m
[31m+ R [39m
[31m+ e [39m
[31m+ a [39m
[31m+ c [39m
[31m+ t [39m
[31m+ [39m
[31m+ C [39m
[31m+ o [39m
[31m+ m [39m
[31m+ p [39m
[31m+ o [39m
[31m+ n [39m
[31m+ e [39m
[31m+ n [39m
[31m+ t [39m
[31m+ l [39m
[31m+ i [39m
[31m+ b [39m
[31m+ r [39m
[31m+ a [39m
[31m+ r [39m
[31m+ y [39m
[31m+ 2.[39m
[31m+ V[39m
[31m+ u[39m
[31m+ [7m [27me[39m
[32m- [7m Progressive framework[27m[39m
[32m- [7m 3. Enter a custom valu[27me[39m
[31m+[39m
[31m+ [7mP[27m[39m
[31m+ r[39m
[31m+ o[39m
[31m+ g[39m
[31m+ r[39m
[31m+ e[39m
[31m+ s[39m
[31m+ s[39m
[31m+ i[39m
[31m+ v[39m
[31m+ e[39m
[31m+ f[39m
[31m+ r[39m
[31m+ a[39m
[31m+ m[39m
[31m+ e[39m
[31m+ w[39m
[31m+ o[39m
[31m+ r[39m
[31m+ k[39m
[31m+ 3. E[39m
[31m+ n[39m
[31m+ t[39m
[31m+ e[39m
[31m+ r[39m
[31m+ a[39m
[31m+ c[39m
[31m+ u[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ m[39m
[31m+ v[39m
[31m+ a[39m
[31m+ l[39m
[31m+ u[39m
[31m+ [7m [27me[39m
[2m Enter to select · ←/→ to switch questions · Esc to cancel[22m
[2m "[22m
❯ src/ui/components/AskUserDialog.test.tsx:590:25
588| );
589|
590| expect(lastFrame()).toMatchSnapshot();
| ^
591| });
592|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[31/292]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > allows navigating to Review tab and back
AssertionError: expected '← □ Tests │ □ Docs │ ≡ Review →\n\nCr…' to contain 'Add documentation?'
[32m- Expected[39m
[31m+ Received[39m
[32m- Add documentation?[39m
[31m+ ← □ Tests │ □ Docs │ ≡ Review →[39m
[31m+[39m
[31m+ Create tests?[39m
[31m+[39m
[31m+ ●1. [39m
[31m+ Y [39m
[31m+ e [39m
[31m+ s [39m
[31m+ [39m
[31m+ G [39m
[31m+ e [39m
[31m+ n [39m
[31m+ e [39m
[31m+ r [39m
[31m+ a [39m
[31m+ t [39m
[31m+ e [39m
[31m+ t [39m
[31m+ e [39m
[31m+ s [39m
[31m+ t [39m
[31m+ f [39m
[31m+ i [39m
[31m+ l [39m
[31m+ e [39m
[31m+ s [39m
[31m+ 2. E[39m
[31m+ n[39m
[31m+ t[39m
[31m+ e[39m
[31m+ r[39m
[31m+ a[39m
[31m+ c[39m
[31m+ u[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ m[39m
[31m+ v[39m
[31m+ a[39m
[31m+ l[39m
[31m+ u[39m
[31m+ e[39m
[31m+[39m
[31m+ Enter to select · ←/→ to switch questions · Esc to cancel[39m
[31m+[39m
❯ src/ui/components/AskUserDialog.test.tsx:625:27
623| await waitFor(async () => {
624| await waitUntilReady();
625| expect(lastFrame()).toContain('Add documentation?');
| ^
626| });
627|
❯ waitFor src/test-utils/async.ts:23:7
❯ src/ui/components/AskUserDialog.test.tsx:623:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[32/292]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > submits with unanswered questions when user confirms on Review
AssertionError: expected "spy" to be called with arguments: [ { '0': 'Node 20' } ][90m
Number of calls: [1m0[22m
[39m
❯ src/ui/components/AskUserDialog.test.tsx:718:24
716|
717| await waitFor(async () => {
718| expect(onSubmit).toHaveBeenCalledWith({ '0': 'Node 20' });
| ^
719| });
720| });
❯ waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/AskUserDialog.test.tsx:717:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[33/292]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > Text type questions > supports backspace in text mode
AssertionError: expected 'Enter the function name:\n\n> Enter y…' to contain 'abc'
[32m- Expected[39m
[31m+ Received[39m
[32m- abc[39m
[31m+ Enter the function name:[39m
[31m+[39m
[31m+ > Enter your response[39m
[31m+[39m
[31m+[39m
[31m+ Enter to submit · Esc to cancel[39m
[31m+[39m
❯ src/ui/components/AskUserDialog.test.tsx:793:29
791| await waitFor(async () => {
792| await waitUntilReady();
793| expect(lastFrame()).toContain('abc');
| ^
794| });
795|
❯ waitFor src/test-utils/async.ts:23:7
❯ src/ui/components/AskUserDialog.test.tsx:791:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[34/292]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > Text type questions > preserves text answer when navigating between questions
AssertionError: expected '← □ Hook │ □ Async │ ≡ Review →\n\nWh…' to contain 'Should it be async?'
[32m- Expected[39m
[31m+ Received[39m
[32m- Should it be async?[39m
[31m+ ← □ Hook │ □ Async │ ≡ Review →[39m
[31m+[39m
[31m+ What should we name this hook?[39m
[31m+[39m
[31m+ > Enter your response[39m
[31m+[39m
[31m+[39m
[31m+ Enter to submit · Tab/Shift+Tab to switch questions · Esc to cancel[39m
[31m+[39m
❯ src/ui/components/AskUserDialog.test.tsx:865:29
863| await waitFor(async () => {
864| await waitUntilReady();
865| expect(lastFrame()).toContain('Should it be async?');
| ^
866| });
867|
❯ waitFor src/test-utils/async.ts:23:7
❯ src/ui/components/AskUserDialog.test.tsx:863:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[35/292]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > Text type questions > handles mixed text and choice questions
AssertionError: expected '← □ Name │ □ Style │ ≡ Review →\n\nWh…' to contain 'Which styling approach?'
[32m- Expected[39m
[31m+ Received[39m
[32m- Which styling approach?[39m
[31m+ ← □ Name │ □ Style │ ≡ Review →[39m
[31m+[39m
[31m+ What should we name this component?[39m
[31m+[39m
[31m+ > Enter component name[39m
[31m+[39m
[31m+[39m
[31m+ Enter to submit · Tab/Shift+Tab to switch questions · Esc to cancel[39m
[31m+[39m
❯ src/ui/components/AskUserDialog.test.tsx:915:29
913| await waitFor(async () => {
914| await waitUntilReady();
915| expect(lastFrame()).toContain('Which styling approach?');
| ^
916| });
917|
❯ waitFor src/test-utils/async.ts:23:7
❯ src/ui/components/AskUserDialog.test.tsx:913:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[36/292]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > Text type questions > submits empty text as unanswered
AssertionError: expected "spy" to be called with arguments: [ {} ][90m
Number of calls: [1m0[22m
[39m
❯ src/ui/components/AskUserDialog.test.tsx:966:26
964|
965| await waitFor(async () => {
966| expect(onSubmit).toHaveBeenCalledWith({});
| ^
967| });
968| });
❯ waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/AskUserDialog.test.tsx:965:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[37/292]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > Text type questions > clears text on Ctrl+C
AssertionError: expected 'Enter the class name:\n\n> Enter your…' to contain 'SomeText'
[32m- Expected[39m
[31m+ Received[39m
[32m- SomeText[39m
[31m+ Enter the class name:[39m
[31m+[39m
[31m+ > Enter your response[39m
[31m+[39m
[31m+[39m
[31m+ Enter to submit · Esc to cancel[39m
[31m+[39m
❯ src/ui/components/AskUserDialog.test.tsx:996:29
994| await waitFor(async () => {
995| await waitUntilReady();
996| expect(lastFrame()).toContain('SomeText');
| ^
997| });
998|
❯ waitFor src/test-utils/async.ts:23:7
❯ src/ui/components/AskUserDialog.test.tsx:994:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[38/292]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > Text type questions > allows immediate arrow navigation after switching away from text input
AssertionError: expected '← □ Choice │ □ Text │ ≡ Review →\n\nC…' to contain 'Text Q?'
[32m- Expected[39m
[31m+ Received[39m
[32m- Text Q?[39m
[31m+ ← □ Choice │ □ Text │ ≡ Review →[39m
[31m+[39m
[31m+ Choice Q?[39m
[31m+[39m
[31m+ ●1. [39m
[31m+ O [39m
[31m+ p [39m
[31m+ t [39m
[31m+ i [39m
[31m+ o [39m
[31m+ n [39m
[31m+ 1 [39m
[31m+ 2. E[39m
[31m+ n[39m
[31m+ t[39m
[31m+ e[39m
[31m+ r[39m
[31m+ a[39m
[31m+ c[39m
[31m+ u[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ m[39m
[31m+ v[39m
[31m+ a[39m
[31m+ l[39m
[31m+ u[39m
[31m+ e[39m
[31m+[39m
[31m+ Enter to select · ←/→ to switch questions · Esc to cancel[39m
[31m+[39m
❯ src/ui/components/AskUserDialog.test.tsx:1044:29
1042| await waitFor(async () => {
1043| await waitUntilReady();
1044| expect(lastFrame()).toContain('Text Q?');
| ^
1045| });
1046|
❯ waitFor src/test-utils/async.ts:23:7
❯ src/ui/components/AskUserDialog.test.tsx:1042:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[39/292]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > Text type questions > handles rapid sequential answers correctly (stale closure protection)
AssertionError: expected '← □ Q1 │ □ Q2 │ ≡ Review →\n\nQuestio…' to contain 'Question 2?'
[32m- Expected[39m
[31m+ Received[39m
[32m- Question 2?[39m
[31m+ ← □ Q1 │ □ Q2 │ ≡ Review →[39m
[31m+[39m
[31m+ Question 1?[39m
[31m+[39m
[31m+ ●1. [39m
[31m+ A [39m
[31m+ 1 [39m
[31m+ 2. E[39m
[31m+ n[39m
[31m+ t[39m
[31m+ e[39m
[31m+ r[39m
[31m+ a[39m
[31m+ c[39m
[31m+ u[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ m[39m
[31m+ v[39m
[31m+ a[39m
[31m+ l[39m
[31m+ u[39m
[31m+ e[39m
[31m+[39m
[31m+ Enter to select · ←/→ to switch questions · Esc to cancel[39m
[31m+[39m
❯ src/ui/components/AskUserDialog.test.tsx:1112:29
1110| await waitFor(async () => {
1111| await waitUntilReady();
1112| expect(lastFrame()).toContain('Question 2?');
| ^
1113| });
1114|
❯ waitFor src/test-utils/async.ts:23:7
❯ src/ui/components/AskUserDialog.test.tsx:1110:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[40/292]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > Choice question placeholder > supports "Other" option for yesno questions
AssertionError: expected 'Is this correct?\n\n●1. …' to contain 'Enter a custom value'
[32m- Expected[39m
[31m+ Received[39m
[32m- Enter a custom value[39m
[31m+ Is this correct?[39m
[31m+[39m
[31m+ ●1. [39m
[31m+ Y [39m
[31m+ e [39m
[31m+ s [39m
[31m+ 2.[39m
[31m+ N[39m
[31m+ o[39m
[31m+ 3. E[39m
[31m+ n[39m
[31m+ t[39m
[31m+ e[39m
[31m+ r[39m
[31m+ a[39m
[31m+ c[39m
[31m+ u[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ m[39m
[31m+ v[39m
[31m+ a[39m
[31m+ l[39m
[31m+ u[39m
[31m+ e[39m
[31m+[39m
[31m+ Enter to select · ↑/↓ to navigate · Esc to cancel[39m
[31m+[39m
❯ src/ui/components/AskUserDialog.test.tsx:1439:29
1437| await waitFor(async () => {
1438| await waitUntilReady();
1439| expect(lastFrame()).toContain('Enter a custom value');
| ^
1440| });
1441|
❯ waitFor src/test-utils/async.ts:23:7
❯ src/ui/components/AskUserDialog.test.tsx:1437:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[41/292]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > expands paste placeholders in multi-select custom option via Done
AssertionError: expected "spy" to be called with arguments: [ Array(1) ][90m
Number of calls: [1m0[22m
[39m
❯ src/ui/components/AskUserDialog.test.tsx:1498:24
1496|
1497| await waitFor(() => {
1498| expect(onSubmit).toHaveBeenCalledWith({
| ^
1499| '0': `TypeScript, ${pastedText}`,
1500| });
❯ waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/AskUserDialog.test.tsx:1497:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[42/292]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > shows at least 3 selection options even in small terminal heights
AssertionError: expected 'A very long question that would norma…' to contain '1. Option 1'
[32m- Expected[39m
[31m+ Received[39m
[32m- 1. Option 1[39m
[31m+ A very long question that would normally take up most of the space and squeeze[39m
[31m+ the list if we did not have a heuristic to prevent it. This line is just to make[39m
[31m+ it longer. And another one. Imagine this is a plan.[39m
[31m+[39m
[31m+ ▲[39m
[31m+ ●1. [39m
[31m+ O [39m
[31m+ p [39m
[31m+ t [39m
[31m+ i [39m
[31m+ o [39m
[31m+ n [39m
[31m+ 1 [39m
[31m+ [39m
[31m+ D [39m
[31m+ e [39m
[31m+ s [39m
[31m+ c [39m
[31m+ r [39m
[31m+ i [39m
[31m+ p [39m
[31m+ t [39m
[31m+ i [39m
[31m+ o [39m
[31m+ n [39m
[31m+ 1 [39m
[31m+ 2.[39m
[31m+ O[39m
[31m+ p[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ 2[39m
[31m+[39m
[31m+ D[39m
[31m+ e[39m
[31m+ s[39m
[31m+ c[39m
[31m+ r[39m
[31m+ i[39m
[31m+ p[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ 2[39m
[31m+ 3.[39m
[31m+ O[39m
[31m+ p[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ 3[39m
[31m+[39m
[31m+ D[39m
[31m+ e[39m
[31m+ s[39m
[31m+ c[39m
[31m+ r[39m
[31m+ i[39m
[31m+ p[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ 3[39m
[31m+ ▼[39m
[31m+[39m
[31m+ Enter to select · ↑/↓ to navigate · Esc to cancel[39m
[31m+[39m
❯ src/ui/components/AskUserDialog.test.tsx:1536:21
1534| const frame = lastFrame();
1535| // Should show at least 3 options
1536| expect(frame).toContain('1. Option 1');
| ^
1537| expect(frame).toContain('2. Option 2');
1538| expect(frame).toContain('3. Option 3');
❯ waitFor src/test-utils/async.ts:23:7
❯ src/ui/components/AskUserDialog.test.tsx:1532:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[43/292]⎯
FAIL src/ui/components/AskUserDialog.test.tsx > AskUserDialog > allows the question to exceed 15 lines in a tall terminal
AssertionError: expected 'Line 1\nLine 2\nLine 3\nLine 4\nLine …' to contain '1. Option 1'
[32m- Expected[39m
[31m+ Received[39m
[32m- 1. Option 1[39m
[31m+ Line 1[39m
[31m+ Line 2[39m
[31m+ Line 3[39m
[31m+ Line 4[39m
[31m+ Line 5[39m
[31m+ Line 6[39m
[31m+ Line 7[39m
[31m+ Line 8[39m
[31m+ Line 9[39m
[31m+ Line 10[39m
[31m+ Line 11[39m
[31m+ Line 12[39m
[31m+ Line 13[39m
[31m+ Line 14[39m
[31m+ Line 15[39m
[31m+ Line 16[39m
[31m+ Line 17[39m
[31m+ Line 18[39m
[31m+ Line 19[39m
[31m+ Line 20[39m
[31m+ Line 21[39m
[31m+ Line 22[39m
[31m+ Line 23[39m
[31m+ Line 24[39m
[31m+ Line 25[39m
[31m+[39m
[31m+ ▲[39m
[31m+ ●1. [39m
[31m+ O [39m
[31m+ p [39m
[31m+ t [39m
[31m+ i [39m
[31m+ o [39m
[31m+ n [39m
[31m+ 1 [39m
[31m+ [39m
[31m+ D [39m
[31m+ 1 [39m
[31m+ 2.[39m
[31m+ O[39m
[31m+ p[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ 2[39m
[31m+[39m
[31m+ D[39m
[31m+ 2[39m
[31m+ 3.[39m
[31m+ O[39m
[31m+ p[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ 3[39m
[31m+[39m
[31m+ D[39m
[31m+ 3[39m
[31m+ ▼[39m
[31m+[39m
[31m+ Enter to select · ↑/↓ to navigate · Esc to cancel[39m
[31m+[39m
❯ src/ui/components/AskUserDialog.test.tsx:1581:21
1579| expect(frame).toContain('Line 25');
1580| // Should still show the options
1581| expect(frame).toContain('1. Option 1');
| ^
1582| });
1583| });
❯ waitFor src/test-utils/async.ts:23:7
❯ src/ui/components/AskUserDialog.test.tsx:1573:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[44/292]⎯
FAIL src/ui/components/BackgroundTaskDisplay.test.tsx > > renders the process list when isListOpenProp is true
Error: Snapshot ` > renders the process list when isListOpenProp is true 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,10 +2,49 @@[39m
[2m │ 1: npm sta.. (PID: 1001) Close (Ctrl+B) | Kill (Ctrl+K) | List │[22m
[2m │ (Focused) (Ctrl+L) │[22m
[2m │ │[22m
[2m │ Select Process (Enter to select, Ctrl+K to kill, Esc to cancel): │[22m
[2m │ │[22m
[32m- │ [7m● 1. npm start (PID: 1001) │[27m[39m
[32m- [7m│ 2. tail -f log.txt (PID: 1002)[27m │[39m
[31m+ │ [7m 2│[27m[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ [7m│ [27m │[39m
[2m │ Log: ~/.gemini/tmp/background-processes/background-1001.log │[22m
[2m └──────────────────────────────────────────────────────────────────────────────┘[22m
[2m "[22m
❯ src/ui/components/BackgroundTaskDisplay.test.tsx:265:25
263| );
264|
265| expect(lastFrame()).toMatchSnapshot();
| ^
266| unmount();
267| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[45/292]⎯
FAIL src/ui/components/BackgroundTaskDisplay.test.tsx > > scrolls to active shell when list opens
Error: Snapshot ` > scrolls to active shell when list opens 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,10 +2,49 @@[39m
[2m │ 1: npm sta.. (PID: 1002) Close (Ctrl+B) | Kill (Ctrl+K) | List │[22m
[2m │ (Focused) (Ctrl+L) │[22m
[2m │ │[22m
[2m │ Select Process (Enter to select, Ctrl+K to kill, Esc to cancel): │[22m
[2m │ │[22m
[32m- │ [7m 1. npm start (PID: 1001) │[27m[39m
[32m- [7m│ ● 2. tail -f log.txt (PID: 1002)[27m │[39m
[31m+ │ [7m● 2│[27m[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ [7m│ [27m │[39m
[2m │ Log: ~/.gemini/tmp/background-processes/background-1002.log │[22m
[2m └──────────────────────────────────────────────────────────────────────────────┘[22m
[2m "[22m
❯ src/ui/components/BackgroundTaskDisplay.test.tsx:373:25
371| );
372|
373| expect(lastFrame()).toMatchSnapshot();
| ^
374| unmount();
375| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[46/292]⎯
FAIL src/ui/components/BackgroundTaskDisplay.test.tsx > > keeps exit code status color even when selected
Error: Snapshot ` > keeps exit code status color even when selected 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,11 +2,76 @@[39m
[2m │ 1: npm sta.. (PID: 1003) Close (Ctrl+B) | Kill (Ctrl+K) | List │[22m
[2m │ (Focused) (Ctrl+L) │[22m
[2m │ │[22m
[2m │ Select Process (Enter to select, Ctrl+K to kill, Esc to cancel): │[22m
[2m │ │[22m
[32m- │ [7m 1. npm start (PID: 1001) │[27m[39m
[32m- │ 2. tail -f log.txt (PID: 1002) │[39m
[32m- [7m│ ● 3. exit 0 (PID: 1003) (Exit Code: 0)[27m │[39m
[31m+ │ [7m● 3│[27m[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ [7m│ [27m │[39m
[2m │ Log: ~/.gemini/tmp/background-processes/background-1003.log │[22m
[2m └──────────────────────────────────────────────────────────────────────────────┘[22m
[2m "[22m
❯ src/ui/components/BackgroundTaskDisplay.test.tsx:404:25
402| );
403|
404| expect(lastFrame()).toMatchSnapshot();
| ^
405| unmount();
406| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[47/292]⎯
FAIL src/ui/components/Banner.test.tsx > Banner > renders in info mode
Error: Snapshot `Banner > renders in info mode 2` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,22 +2,17 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ╭──────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────╮[39m
[32m- │[39m
[31m+ │[39m
[32m- I[39m
[31m+ I[39m
[32m- n[27m[39m
[32m- f[39m
[32m- [7m [7mo[27m[39m
[31m+ [7mnfo [27m[39m
[32m- M[27m[39m
[32m- e[39m
[32m- [7m s[39m
[31m+ [7mMe[27ms[39m
[32m- s[7m[27m[39m
[32m- [7m [27ma[39m
[31m+ sa[39m
[32m- g[39m
[31m+ g[39m
[32m- e[39m
[31m+ e[39m
[32m- │[39m
[31m+ │[39m
[32m- ╰──────────────────────────────────────────────────────────────────────────────╯[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────╯[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[48/292]⎯
FAIL src/ui/components/Banner.test.tsx > Banner > handles newlines in text
Error: Snapshot `Banner > handles newlines in text 2` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,19 +2,18 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ╭──────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────╮[39m
[32m- │[39m
[31m+ │[39m
[32m- L[39m
[31m+ L[39m
[32m- i[39m
[31m+ i[39m
[32m- n[27m[39m
[32m- [7m e[39m
[31m+ [7mn[27me[39m
[32m- 1[39m
[31m+ 1[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Line 2[22m
[32m- │[39m
[31m+ │[39m
[32m- ╰──────────────────────────────────────────────────────────────────────────────╯[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────╯[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[49/292]⎯
FAIL src/ui/components/BubblingRegression.test.tsx > Key Bubbling Regression > does not navigate when pressing "j" or "k" in a focused text input
AssertionError: expected 'Choice Q?\n\n 1.\n O\n p\n …' to contain 'jk'
[32m- Expected[39m
[31m+ Received[39m
[32m- jk[39m
[31m+ Choice Q?[39m
[31m+[39m
[31m+ 1.[39m
[31m+ O[39m
[31m+ p[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ 1[39m
[31m+ 2.[39m
[31m+ O[39m
[31m+ p[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ 2[39m
[31m+ ● 3. j [39m
[31m+ k [39m
[31m+ Enter to submit · Esc to cancel[39m
[31m+[39m
❯ src/ui/components/BubblingRegression.test.tsx:73:27
71|
72| await waitFor(() => {
73| expect(lastFrame()).toContain('jk');
| ^
74| expect(lastFrame()).toMatch(/● 3\.\s+jk/);
75| });
❯ waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/BubblingRegression.test.tsx:72:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[50/292]⎯
FAIL src/ui/components/Composer.test.tsx > Composer > Loading Indicator > renders LoadingIndicator with thought when streaming
AssertionError: expected '\n L\n o\n a\n d\n i\n n\n g\n I\n n\…' to contain 'LoadingIndicator: Processing'
[32m- Expected[39m
[31m+ Received[39m
[32m- LoadingIndicator: Processing[39m
[31m+[39m
[31m+ L[39m
[31m+ o[39m
[31m+ a[39m
[31m+ d[39m
[31m+ i[39m
[31m+ n[39m
[31m+ g[39m
[31m+ I[39m
[31m+ n[39m
[31m+ d[39m
[31m+ i[39m
[31m+ c[39m
[31m+ a[39m
[31m+ t ? for shortcuts[39m
[31m+ o[39m
[31m+ r[39m
[31m+ :[39m
[31m+ P[39m
[31m+ r[39m
[31m+ o[39m
[31m+ c[39m
[31m+ e[39m
[31m+ s[39m
[31m+ s[39m
[31m+ i[39m
[31m+ n[39m
[31m+ g[39m
[31m+ ────────────────────────────────────────────────────────────────────────────────────────────────────[39m
[31m+ ApprovalModeIndicator: default StatusDisplay[39m
[31m+ InputPrompt: Type your message or @path/to/file[39m
[31m+ Footer[39m
[31m+[39m
❯ src/ui/components/Composer.test.tsx:385:22
383|
384| const output = lastFrame();
385| expect(output).toContain('LoadingIndicator: Processing');
| ^
386| });
387|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[51/292]⎯
FAIL src/ui/components/Composer.test.tsx > Composer > Loading Indicator > renders generic thinking text in loading indicator when full inline thinking is enabled
AssertionError: expected '\n L\n o\n a\n d\n i\n n\n g\n I\n n\…' to contain 'LoadingIndicator: Thinking about code'
[32m- Expected[39m
[31m+ Received[39m
[32m- LoadingIndicator: Thinking about code[39m
[31m+[39m
[31m+ L[39m
[31m+ o[39m
[31m+ a[39m
[31m+ d[39m
[31m+ i[39m
[31m+ n[39m
[31m+ g[39m
[31m+ I[39m
[31m+ n[39m
[31m+ d[39m
[31m+ i[39m
[31m+ c[39m
[31m+ a[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+ :[39m
[31m+ T ? for shortcuts[39m
[31m+ h[39m
[31m+ i[39m
[31m+ n[39m
[31m+ k[39m
[31m+ i[39m
[31m+ n[39m
[31m+ g[39m
[31m+ a[39m
[31m+ b[39m
[31m+ o[39m
[31m+ u[39m
[31m+ t[39m
[31m+ c[39m
[31m+ o[39m
[31m+ d[39m
[31m+ e[39m
[31m+ ────────────────────────────────────────────────────────────────────────────────────────────────────[39m
[31m+ ApprovalModeIndicator: default StatusDisplay[39m
[31m+ InputPrompt: Type your message or @path/to/file[39m
[31m+ Footer[39m
[31m+[39m
❯ src/ui/components/Composer.test.tsx:405:22
403| // In Refreshed UX, we don't force 'Thinking...' label in render…
404| // It uses the subject directly
405| expect(output).toContain('LoadingIndicator: Thinking about code'…
| ^
406| });
407|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[52/292]⎯
FAIL src/ui/components/Composer.test.tsx > Composer > Loading Indicator > shows shortcuts hint while loading
AssertionError: expected 'L\no\na\nd\ni\nn\ng\nI\nn …' to contain 'LoadingIndicator'
[32m- Expected[39m
[31m+ Received[39m
[32m- L[7moadingIndicator[27m[39m
[31m+ L[39m
[31m+ o[39m
[31m+ a[39m
[31m+ d[39m
[31m+ i[39m
[31m+ n[39m
[31m+ g[39m
[31m+ I[39m
[31m+ n press tab twice for more[39m
[31m+ d[39m
[31m+ i[39m
[31m+ c[39m
[31m+ a[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+ InputPrompt: Type your message or @path/to/file[39m
[31m+[39m
❯ src/ui/components/Composer.test.tsx:418:22
416|
417| const output = lastFrame();
418| expect(output).toContain('LoadingIndicator');
| ^
419| expect(output).toContain('press tab twice for more');
420| expect(output).not.toContain('? for shortcuts');
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[53/292]⎯
FAIL src/ui/components/Composer.test.tsx > Composer > Loading Indicator > renders LoadingIndicator with thought when loadingPhrases is off
AssertionError: expected '\n L\n o\n a\n d\n i\n n\n g\n I\n n\…' to contain 'LoadingIndicator'
[32m- Expected[39m
[31m+ Received[39m
[32m- LoadingIndicator[39m
[31m+[39m
[31m+ L[39m
[31m+ o[39m
[31m+ a[39m
[31m+ d[39m
[31m+ i[39m
[31m+ n[39m
[31m+ g[39m
[31m+ I[39m
[31m+ n[39m
[31m+ d[39m
[31m+ i[39m
[31m+ c ? for shortcuts[39m
[31m+ a[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+ :[39m
[31m+ H[39m
[31m+ i[39m
[31m+ d[39m
[31m+ d[39m
[31m+ e[39m
[31m+ n[39m
[31m+ ────────────────────────────────────────────────────────────────────────────────────────────────────[39m
[31m+ ApprovalModeIndicator: default StatusDisplay[39m
[31m+ InputPrompt: Type your message or @path/to/file[39m
[31m+ Footer[39m
[31m+[39m
❯ src/ui/components/Composer.test.tsx:435:22
433|
434| const output = lastFrame();
435| expect(output).toContain('LoadingIndicator');
| ^
436| expect(output).toContain('LoadingIndicator: Hidden');
437| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[54/292]⎯
FAIL src/ui/components/Composer.test.tsx > Composer > Loading Indicator > renders LoadingIndicator when embedded shell is focused but background shell is visible
AssertionError: expected '\n L\n o\n a\n d\n i\n n\n g\n I\n n …' to contain 'LoadingIndicator'
[32m- Expected[39m
[31m+ Received[39m
[32m- LoadingIndicator[39m
[31m+[39m
[31m+ L[39m
[31m+ o[39m
[31m+ a[39m
[31m+ d[39m
[31m+ i[39m
[31m+ n[39m
[31m+ g[39m
[31m+ I[39m
[31m+ n ? for shortcuts[39m
[31m+ d[39m
[31m+ i[39m
[31m+ c[39m
[31m+ a[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+ ────────────────────────────────────────────────────────────────────────────────────────────────────[39m
[31m+ ApprovalModeIndicator: default StatusDisplay[39m
[31m+ InputPrompt: Type your message or @path/to/file[39m
[31m+ Footer[39m
[31m+[39m
❯ src/ui/components/Composer.test.tsx:490:22
488|
489| const output = lastFrame();
490| expect(output).toContain('LoadingIndicator');
| ^
491| });
492|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[55/292]⎯
FAIL src/ui/components/Composer.test.tsx > Composer > Loading Indicator > renders both LoadingIndicator and ApprovalModeIndicator when streaming in full UI mode
AssertionError: expected '\n L\n o\n a\n d\n i\n n\n g\n I\n n\…' to contain 'LoadingIndicator: Thinking'
[32m- Expected[39m
[31m+ Received[39m
[32m- LoadingIndicator: Thinking[39m
[31m+[39m
[31m+ L[39m
[31m+ o[39m
[31m+ a[39m
[31m+ d[39m
[31m+ i[39m
[31m+ n[39m
[31m+ g[39m
[31m+ I[39m
[31m+ n[39m
[31m+ d[39m
[31m+ i[39m
[31m+ c[39m
[31m+ a ? for shortcuts[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+ :[39m
[31m+ T[39m
[31m+ h[39m
[31m+ i[39m
[31m+ n[39m
[31m+ k[39m
[31m+ i[39m
[31m+ n[39m
[31m+ g[39m
[31m+ ────────────────────────────────────────────────────────────────────────────────────────────────────[39m
[31m+ ApprovalModeIndicator: plan StatusDisplay[39m
[31m+ InputPrompt: Type your message or @path/to/file[39m
[31m+ Footer[39m
[31m+[39m
❯ src/ui/components/Composer.test.tsx:506:22
504|
505| const output = lastFrame();
506| expect(output).toContain('LoadingIndicator: Thinking');
| ^
507| expect(output).toContain('ApprovalModeIndicator');
508| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[56/292]⎯
FAIL src/ui/components/Composer.test.tsx > Composer > Input and Indicators > hides minimal mode badge while loading in clean mode
AssertionError: expected 'L\no\na\nd\ni\nn\ng\nI\nn …' to contain 'LoadingIndicator'
[32m- Expected[39m
[31m+ Received[39m
[32m- L[7moadingIndicator[27m[39m
[31m+ L[39m
[31m+ o[39m
[31m+ a[39m
[31m+ d[39m
[31m+ i[39m
[31m+ n[39m
[31m+ g[39m
[31m+ I[39m
[31m+ n press tab twice for more[39m
[31m+ d[39m
[31m+ i[39m
[31m+ c[39m
[31m+ a[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+ InputPrompt: Type your message or @path/to/file[39m
[31m+[39m
❯ src/ui/components/Composer.test.tsx:722:22
720| const { lastFrame } = await renderComposer(uiState);
721| const output = lastFrame();
722| expect(output).toContain('LoadingIndicator');
| ^
723| expect(output).not.toContain('plan');
724| expect(output).toContain('press tab twice for more');
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[57/292]⎯
FAIL src/ui/components/Composer.test.tsx > Composer > Shortcuts Hint > shows shortcuts hint while loading when full UI details are visible
AssertionError: expected '\n L\n o\n a\n d\n i\n n\n g\n I\n n …' to contain 'LoadingIndicator'
[32m- Expected[39m
[31m+ Received[39m
[32m- LoadingIndicator[39m
[31m+[39m
[31m+ L[39m
[31m+ o[39m
[31m+ a[39m
[31m+ d[39m
[31m+ i[39m
[31m+ n[39m
[31m+ g[39m
[31m+ I[39m
[31m+ n ? for shortcuts[39m
[31m+ d[39m
[31m+ i[39m
[31m+ c[39m
[31m+ a[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+ ────────────────────────────────────────────────────────────────────────────────────────────────────[39m
[31m+ ApprovalModeIndicator: default StatusDisplay[39m
[31m+ InputPrompt: Type your message or @path/to/file[39m
[31m+ Footer[39m
[31m+[39m
❯ src/ui/components/Composer.test.tsx:963:27
961|
962| // In experimental layout, status row is visible during loading
963| expect(lastFrame()).toContain('LoadingIndicator');
| ^
964| expect(lastFrame()).toContain('? for shortcuts');
965| expect(lastFrame()).not.toContain('press tab twice for more');
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[58/292]⎯
FAIL src/ui/components/Composer.test.tsx > Composer > Shortcuts Hint > shows shortcuts hint while loading in minimal mode
AssertionError: expected 'L\no\na\nd\ni\nn\ng\nI\nn …' to contain 'LoadingIndicator'
[32m- Expected[39m
[31m+ Received[39m
[32m- L[7moadingIndicator[27m[39m
[31m+ L[39m
[31m+ o[39m
[31m+ a[39m
[31m+ d[39m
[31m+ i[39m
[31m+ n[39m
[31m+ g[39m
[31m+ I[39m
[31m+ n press tab twice for more[39m
[31m+ d[39m
[31m+ i[39m
[31m+ c[39m
[31m+ a[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+ InputPrompt: Type your message or @path/to/file[39m
[31m+[39m
❯ src/ui/components/Composer.test.tsx:982:27
980|
981| // In experimental layout, status row is visible in clean mode w…
982| expect(lastFrame()).toContain('LoadingIndicator');
| ^
983| expect(lastFrame()).toContain('press tab twice for more');
984| expect(lastFrame()).not.toContain('? for shortcuts');
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[59/292]⎯
FAIL src/ui/components/Composer.test.tsx > Composer > Snapshots > matches snapshot in idle state
Error: Snapshot `Composer > Snapshots > matches snapshot in idle state 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[32m- "[39m
[32m- ? for shortcuts[39m
[31m+ " ? for shortcuts[39m
[2m ────────────────────────────────────────────────────────────────────────────────────────────────────[22m
[2m ApprovalModeIndicator: default StatusDisplay[22m
[2m InputPrompt: Type your message or @path/to/file[22m
[2m Footer[22m
[2m "[22m
❯ src/ui/components/Composer.test.tsx:1091:27
1089| const uiState = createMockUIState();
1090| const { lastFrame } = await renderComposer(uiState);
1091| expect(lastFrame()).toMatchSnapshot();
| ^
1092| });
1093|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[60/292]⎯
FAIL src/ui/components/Composer.test.tsx > Composer > Snapshots > matches snapshot while streaming
Error: Snapshot `Composer > Snapshots > matches snapshot while streaming 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[32m- "[39m
[32m- [7m LoadingIndicator: Thinking[27m ? for shortcuts[39m
[31m+ "[7m L[27m[39m
[31m+ o[39m
[31m+ a[39m
[31m+ d[39m
[31m+ i[39m
[31m+ n[39m
[31m+ g[39m
[31m+ I[39m
[31m+ n[39m
[31m+ d[39m
[31m+ i[39m
[31m+ c[39m
[31m+ [7m a [27m ? for shortcuts[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+ :[39m
[31m+ T[39m
[31m+ h[39m
[31m+ i[39m
[31m+ n[39m
[31m+ k[39m
[31m+ i[39m
[31m+ n[39m
[31m+ g[39m
[2m ────────────────────────────────────────────────────────────────────────────────────────────────────[22m
[2m ApprovalModeIndicator: default StatusDisplay[22m
[2m InputPrompt: Type your message or @path/to/file[22m
[2m Footer[22m
[2m "[22m
❯ src/ui/components/Composer.test.tsx:1103:27
1101| });
1102| const { lastFrame } = await renderComposer(uiState);
1103| expect(lastFrame()).toMatchSnapshot();
| ^
1104| });
1105|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[61/292]⎯
FAIL src/ui/components/Composer.test.tsx > Composer > Snapshots > matches snapshot in narrow view
Error: Snapshot `Composer > Snapshots > matches snapshot in narrow view 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -1,7 +1,6 @@[39m
[32m- "[39m
[32m- ? for shortcuts[39m
[31m+ " ? for shortcuts[39m
[2m ────────────────────────────────────────[22m
[2m ApprovalModeIndicator: StatusDispl[22m
[2m default ay[22m
[2m InputPrompt: Type your message or[22m
[2m @path/to/file[22m
❯ src/ui/components/Composer.test.tsx:1111:27
1109| });
1110| const { lastFrame } = await renderComposer(uiState);
1111| expect(lastFrame()).toMatchSnapshot();
| ^
1112| });
1113|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[62/292]⎯
FAIL src/ui/components/Composer.test.tsx > Composer > Snapshots > matches snapshot in minimal UI mode while loading
Error: Snapshot `Composer > Snapshots > matches snapshot in minimal UI mode while loading 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[32m- "L[7moadingIndicator[27m press tab twice for more[39m
[31m+ "L[39m
[31m+ o[39m
[31m+ a[39m
[31m+ d[39m
[31m+ i[39m
[31m+ n[39m
[31m+ g[39m
[31m+ I[39m
[31m+ [7mn [27m [7m [27mpress tab twice for more[39m
[31m+ d[39m
[31m+ i[39m
[31m+ c[39m
[31m+ a[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[2m InputPrompt: Type your message or @path/to/file[22m
[2m "[22m
❯ src/ui/components/Composer.test.tsx:1129:27
1127| });
1128| const { lastFrame } = await renderComposer(uiState);
1129| expect(lastFrame()).toMatchSnapshot();
| ^
1130| });
1131| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[63/292]⎯
FAIL src/ui/components/EmptyWalletDialog.test.tsx > EmptyWalletDialog > rendering > should match snapshot without fallback
Error: Snapshot `EmptyWalletDialog > rendering > should match snapshot without fallback 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -10,11 +10,11 @@[39m
[2m │ Newly purchased AI credits may take a few minutes to update. │[22m
[2m │ │[22m
[2m │ How would you like to proceed? │[22m
[2m │ │[22m
[2m │ │[22m
[32m- │ ● 1. [7mGet AI Credits - Open browser to purchase credits │[27m[39m
[32m- [7m│ 2. Stop - Abort request[27m │[39m
[31m+ │ ● 1. [7m │[27m[39m
[31m+ [7m│ 2. [27m │[39m
[2m │ │[22m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
[2m "[22m
❯ src/ui/components/EmptyWalletDialog.test.tsx:54:27
52| );
53|
54| expect(lastFrame()).toMatchSnapshot();
| ^
55| unmount();
56| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[64/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,44 +2,1298 @@[39m
[2m Implement a comprehensive authentication system with multiple providers.[22m
[2m Implementation Steps[22m
[32m- 1. C[7mreate src/auth/AuthService.ts with login/logout methods[27m[39m
[32m- 2. Add session storage in src/storage/SessionStore.ts[39m
[32m- 3. Update src/commands/index.ts to check auth status[39m
[32m- 4. Add OAuth2 provider support in src/auth/providers/OAuth2Provider.ts[39m
[32m- 5. Add SAML provider support in src/auth/providers/SAMLProvider.ts[39m
[32m- 6. Add LDAP provider support in src/auth/providers/LDAPProvider.ts[39m
[32m- 7. Create token refresh mechanism in src/auth/TokenManager.ts[39m
[32m- 8. Add multi-factor authentication in src/auth/MFAService.ts[39m
[32m- 9. Implement session timeout handling in src/auth/SessionManager.ts[39m
[32m- 10. Add audit logging for auth events in src/auth/AuditLogger.ts[39m
[32m- 11. Create user profile management in src/auth/UserProfile.ts[39m
[32m- 12. Add role-based access control in src/auth/RBACService.ts[39m
[32m- 13. Implement password policy enforcement in src/auth/PasswordPolicy.ts[39m
[32m- 14. Add brute force protection in src/auth/BruteForceGuard.ts[39m
[32m- 15. Create secure cookie handling in src/auth/CookieManager.ts[39m
[32m-[39m
[32m- Files to Modify[39m
[32m-[39m
[32m- - src/index.ts - Add auth middleware[39m
[32m- - src/config.ts - Add auth configuration options[39m
[32m- - src/routes/api.ts - Add auth endpoints[39m
[32m- - src/middleware/cors.ts - Update CORS for auth headers[39m
[32m- - src/utils/crypto.ts - Add encryption utilities[39m
[32m-[39m
[32m- Testing Strategy[39m
[32m-[39m
[32m- - Unit tests for each auth provider[39m
[32m- - Integration tests for full auth flows[39m
[32m- - Security penetration testing[39m
[32m- - Load testing for session management[39m
[32m-[39m
[32m- ● 1. Yes, automatically accept edits [39m
[32m- Approves plan and allows tools to run automatically [39m
[32m- 2. Yes, manually accept edits[39m
[32m- Approves plan but requires confirmation for each tool[39m
[32m- [7m 3. Type your feedback..[27m.[39m
[31m+ 1. C[39m
[31m+ r[39m
[31m+ e[39m
[31m+ a[39m
[31m+ t[39m
[31m+ e[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ /[39m
[31m+ A[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ S[39m
[31m+ e[39m
[31m+ r[39m
[31m+ v[39m
[31m+ i[39m
[31m+ c[39m
[31m+ e[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ w[39m
[31m+ i[39m
[31m+ t[39m
[31m+ h[39m
[31m+ l[39m
[31m+ o[39m
[31m+ g[39m
[31m+ i[39m
[31m+ n[39m
[31m+ /[39m
[31m+ l[39m
[31m+ o[39m
[31m+ g[39m
[31m+ o[39m
[31m+ u[39m
[31m+ t[39m
[31m+ m[39m
[31m+ e[39m
[31m+ t[39m
[31m+ h[39m
[31m+ o[39m
[31m+ d[39m
[31m+ s[39m
[31m+ 2. A[39m
[31m+ d[39m
[31m+ d[39m
[31m+ s[39m
[31m+ e[39m
[31m+ s[39m
[31m+ s[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+ a[39m
[31m+ g[39m
[31m+ e[39m
[31m+ i[39m
[31m+ n[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+ a[39m
[31m+ g[39m
[31m+ e[39m
[31m+ /[39m
[31m+ S[39m
[31m+ e[39m
[31m+ s[39m
[31m+ s[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ S[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+ e[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ 3. U[39m
[31m+ p[39m
[31m+ d[39m
[31m+ a[39m
[31m+ t[39m
[31m+ e[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ c[39m
[31m+ o[39m
[31m+ m[39m
[31m+ m[39m
[31m+ a[39m
[31m+ n[39m
[31m+ d[39m
[31m+ s[39m
[31m+ /[39m
[31m+ i[39m
[31m+ n[39m
[31m+ d[39m
[31m+ e[39m
[31m+ x[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ c[39m
[31m+ h[39m
[31m+ e[39m
[31m+ c[39m
[31m+ k[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ s[39m
[31m+ t[39m
[31m+ a[39m
[31m+ t[39m
[31m+ u[39m
[31m+ s[39m
[31m+ 4. A[39m
[31m+ d[39m
[31m+ d[39m
[31m+ O[39m
[31m+ A[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ 2[39m
[31m+ p[39m
[31m+ r[39m
[31m+ o[39m
[31m+ v[39m
[31m+ i[39m
[31m+ d[39m
[31m+ e[39m
[31m+ r[39m
[31m+ s[39m
[31m+ u[39m
[31m+ p[39m
[31m+ p[39m
[31m+ o[39m
[31m+ r[39m
[31m+ t[39m
[31m+ i[39m
[31m+ n[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ /[39m
[31m+ p[39m
[31m+ r[39m
[31m+ o[39m
[31m+ v[39m
[31m+ i[39m
[31m+ d[39m
[31m+ e[39m
[31m+ r[39m
[31m+ s[39m
[31m+ /[39m
[31m+ O[39m
[31m+ A[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ 2[39m
[31m+ P[39m
[31m+ r[39m
[31m+ o[39m
[31m+ v[39m
[31m+ i[39m
[31m+ d[39m
[31m+ e[39m
[31m+ r[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ 5. A[39m
[31m+ d[39m
[31m+ d[39m
[31m+ S[39m
[31m+ A[39m
[31m+ M[39m
[31m+ L[39m
[31m+ p[39m
[31m+ r[39m
[31m+ o[39m
[31m+ v[39m
[31m+ i[39m
[31m+ d[39m
[31m+ e[39m
[31m+ r[39m
[31m+ s[39m
[31m+ u[39m
[31m+ p[39m
[31m+ p[39m
[31m+ o[39m
[31m+ r[39m
[31m+ t[39m
[31m+ i[39m
[31m+ n[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ /[39m
[31m+ p[39m
[31m+ r[39m
[31m+ o[39m
[31m+ v[39m
[31m+ i[39m
[31m+ d[39m
[31m+ e[39m
[31m+ r[39m
[31m+ s[39m
[31m+ /[39m
[31m+ S[39m
[31m+ A[39m
[31m+ M[39m
[31m+ L[39m
[31m+ P[39m
[31m+ r[39m
[31m+ o[39m
[31m+ v[39m
[31m+ i[39m
[31m+ d[39m
[31m+ e[39m
[31m+ r[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ 6. A[39m
[31m+ d[39m
[31m+ d[39m
[31m+ L[39m
[31m+ D[39m
[31m+ A[39m
[31m+ P[39m
[31m+ p[39m
[31m+ r[39m
[31m+ o[39m
[31m+ v[39m
[31m+ i[39m
[31m+ d[39m
[31m+ e[39m
[31m+ r[39m
[31m+ s[39m
[31m+ u[39m
[31m+ p[39m
[31m+ p[39m
[31m+ o[39m
[31m+ r[39m
[31m+ t[39m
[31m+ i[39m
[31m+ n[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ /[39m
[31m+ p[39m
[31m+ r[39m
[31m+ o[39m
[31m+ v[39m
[31m+ i[39m
[31m+ d[39m
[31m+ e[39m
[31m+ r[39m
[31m+ s[39m
[31m+ /[39m
[31m+ L[39m
[31m+ D[39m
[31m+ A[39m
[31m+ P[39m
[31m+ P[39m
[31m+ r[39m
[31m+ o[39m
[31m+ v[39m
[31m+ i[39m
[31m+ d[39m
[31m+ e[39m
[31m+ r[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ 7. C[39m
[31m+ r[39m
[31m+ e[39m
[31m+ a[39m
[31m+ t[39m
[31m+ e[39m
[31m+ t[39m
[31m+ o[39m
[31m+ k[39m
[31m+ e[39m
[31m+ n[39m
[31m+ r[39m
[31m+ e[39m
[31m+ f[39m
[31m+ r[39m
[31m+ e[39m
[31m+ s[39m
[31m+ h[39m
[31m+ m[39m
[31m+ e[39m
[31m+ c[39m
[31m+ h[39m
[31m+ a[39m
[31m+ n[39m
[31m+ i[39m
[31m+ s[39m
[31m+ m[39m
[31m+ i[39m
[31m+ n[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ /[39m
[31m+ T[39m
[31m+ o[39m
[31m+ k[39m
[31m+ e[39m
[31m+ n[39m
[31m+ M[39m
[31m+ a[39m
[31m+ n[39m
[31m+ a[39m
[31m+ g[39m
[31m+ e[39m
[31m+ r[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ 8. A[39m
[31m+ d[39m
[31m+ d[39m
[31m+ m[39m
[31m+ u[39m
[31m+ l[39m
[31m+ t[39m
[31m+ i[39m
[31m+ -[39m
[31m+ f[39m
[31m+ a[39m
[31m+ c[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ e[39m
[31m+ n[39m
[31m+ t[39m
[31m+ i[39m
[31m+ c[39m
[31m+ a[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ i[39m
[31m+ n[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ /[39m
[31m+ M[39m
[31m+ F[39m
[31m+ A[39m
[31m+ S[39m
[31m+ e[39m
[31m+ r[39m
[31m+ v[39m
[31m+ i[39m
[31m+ c[39m
[31m+ e[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ 9. I[39m
[31m+ m[39m
[31m+ p[39m
[31m+ l[39m
[31m+ e[39m
[31m+ m[39m
[31m+ e[39m
[31m+ n[39m
[31m+ t[39m
[31m+ s[39m
[31m+ e[39m
[31m+ s[39m
[31m+ s[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ t[39m
[31m+ i[39m
[31m+ m[39m
[31m+ e[39m
[31m+ o[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ a[39m
[31m+ n[39m
[31m+ d[39m
[31m+ l[39m
[31m+ i[39m
[31m+ n[39m
[31m+ g[39m
[31m+ i[39m
[31m+ n[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ /[39m
[31m+ S[39m
[31m+ e[39m
[31m+ s[39m
[31m+ s[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ M[39m
[31m+ a[39m
[31m+ n[39m
[31m+ a[39m
[31m+ g[39m
[31m+ e[39m
[31m+ r[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ 10. A[39m
[31m+ d[39m
[31m+ d[39m
[31m+ a[39m
[31m+ u[39m
[31m+ d[39m
[31m+ i[39m
[31m+ t[39m
[31m+ l[39m
[31m+ o[39m
[31m+ g[39m
[31m+ g[39m
[31m+ i[39m
[31m+ n[39m
[31m+ g[39m
[31m+ f[39m
[31m+ o[39m
[31m+ r[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ e[39m
[31m+ v[39m
[31m+ e[39m
[31m+ n[39m
[31m+ t[39m
[31m+ s[39m
[31m+ i[39m
[31m+ n[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ /[39m
[31m+ A[39m
[31m+ u[39m
[31m+ d[39m
[31m+ i[39m
[31m+ t[39m
[31m+ L[39m
[31m+ o[39m
[31m+ g[39m
[31m+ g[39m
[31m+ e[39m
[31m+ r[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ 11. C[39m
[31m+ r[39m
[31m+ e[39m
[31m+ a[39m
[31m+ t[39m
[31m+ e[39m
[31m+ u[39m
[31m+ s[39m
[31m+ e[39m
[31m+ r[39m
[31m+ p[39m
[31m+ r[39m
[31m+ o[39m
[31m+ f[39m
[31m+ i[39m
[31m+ l[39m
[31m+ e[39m
[31m+ m[39m
[31m+ a[39m
[31m+ n[39m
[31m+ a[39m
[31m+ g[39m
[31m+ e[39m
[31m+ m[39m
[31m+ e[39m
[31m+ n[39m
[31m+ t[39m
[31m+ i[39m
[31m+ n[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ /[39m
[31m+ U[39m
[31m+ s[39m
[31m+ e[39m
[31m+ r[39m
[31m+ P[39m
[31m+ r[39m
[31m+ o[39m
[31m+ f[39m
[31m+ i[39m
[31m+ l[39m
[31m+ e[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ 12. A[39m
[31m+ d[39m
[31m+ d[39m
[31m+ r[39m
[31m+ o[39m
[31m+ l[39m
[31m+ e[39m
[31m+ -[39m
[31m+ b[39m
[31m+ a[39m
[31m+ s[39m
[31m+ e[39m
[31m+ d[39m
[31m+ a[39m
[31m+ c[39m
[31m+ c[39m
[31m+ e[39m
[31m+ s[39m
[31m+ s[39m
[31m+ c[39m
[31m+ o[39m
[31m+ n[39m
[31m+ t[39m
[31m+ r[39m
[31m+ o[39m
[31m+ l[39m
[31m+ i[39m
[31m+ n[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ /[39m
[31m+ R[39m
[31m+ B[39m
[31m+ A[39m
[31m+ C[39m
[31m+ S[39m
[31m+ e[39m
[31m+ r[39m
[31m+ v[39m
[31m+ i[39m
[31m+ c[39m
[31m+ e[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ 13. I[39m
[31m+ m[39m
[31m+ p[39m
[31m+ l[39m
[31m+ e[39m
[31m+ m[39m
[31m+ e[39m
[31m+ n[39m
[31m+ t[39m
[31m+ p[39m
[31m+ a[39m
[31m+ s[39m
[31m+ s[39m
[31m+ w[39m
[31m+ o[39m
[31m+ r[39m
[31m+ d[39m
[31m+ p[39m
[31m+ o[39m
[31m+ l[39m
[31m+ i[39m
[31m+ c[39m
[31m+ y[39m
[31m+ e[39m
[31m+ n[39m
[31m+ f[39m
[31m+ o[39m
[31m+ r[39m
[31m+ c[39m
[31m+ e[39m
[31m+ m[39m
[31m+ e[39m
[31m+ n[39m
[31m+ t[39m
[31m+ i[39m
[31m+ n[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ /[39m
[31m+ P[39m
[31m+ a[39m
[31m+ s[39m
[31m+ s[39m
[31m+ w[39m
[31m+ o[39m
[31m+ r[39m
[31m+ d[39m
[31m+ P[39m
[31m+ o[39m
[31m+ l[39m
[31m+ i[39m
[31m+ c[39m
[31m+ y[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ 14. A[39m
[31m+ d[39m
[31m+ d[39m
[31m+ b[39m
[31m+ r[39m
[31m+ u[39m
[31m+ t[39m
[31m+ e[39m
[31m+ f[39m
[31m+ o[39m
[31m+ r[39m
[31m+ c[39m
[31m+ e[39m
[31m+ p[39m
[31m+ r[39m
[31m+ o[39m
[31m+ t[39m
[31m+ e[39m
[31m+ c[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ i[39m
[31m+ n[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ /[39m
[31m+ B[39m
[31m+ r[39m
[31m+ u[39m
[31m+ t[39m
[31m+ e[39m
[31m+ F[39m
[31m+ o[39m
[31m+ r[39m
[31m+ c[39m
[31m+ e[39m
[31m+ G[39m
[31m+ u[39m
[31m+ a[39m
[31m+ r[39m
[31m+ d[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ 15. C[39m
[31m+ r[39m
[31m+ e[39m
[31m+ a[39m
[31m+ t[39m
[31m+ e[39m
[31m+ s[39m
[31m+ e[39m
[31m+ c[39m
[31m+ u[39m
[31m+ r[39m
[31m+ e[39m
[31m+ c[39m
[31m+ o[39m
[31m+ o[39m
[31m+ k[39m
[31m+ i[39m
[31m+ e[39m
[31m+ h[39m
[31m+ a[39m
[31m+ n[39m
[31m+ d[39m
[31m+ l[39m
[31m+ i[39m
[31m+ n[39m
[31m+ g[39m
[31m+ i[39m
[31m+ n[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ /[39m
[31m+ C[39m
[31m+ o[39m
[31m+ o[39m
[31m+ k[39m
[31m+ i[39m
[31m+ e[39m
[31m+ M[39m
[31m+ a[39m
[31m+ n[39m
[31m+ a[39m
[31m+ g[39m
[31m+ e[39m
[31m+ r[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+[39m
[31m+ Files to Modify[39m
[31m+[39m
[31m+ - s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ i[39m
[31m+ n[39m
[31m+ d[39m
[31m+ e[39m
[31m+ x[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ -[39m
[31m+ A[39m
[31m+ d[39m
[31m+ d[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ m[39m
[31m+ i[39m
[31m+ d[39m
[31m+ d[39m
[31m+ l[39m
[31m+ e[39m
[31m+ w[39m
[31m+ a[39m
[31m+ r[39m
[31m+ e[39m
[31m+ - s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ c[39m
[31m+ o[39m
[31m+ n[39m
[31m+ f[39m
[31m+ i[39m
[31m+ g[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ -[39m
[31m+ A[39m
[31m+ d[39m
[31m+ d[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ c[39m
[31m+ o[39m
[31m+ n[39m
[31m+ f[39m
[31m+ i[39m
[31m+ g[39m
[31m+ u[39m
[31m+ r[39m
[31m+ a[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ o[39m
[31m+ p[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ s[39m
[31m+ - s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ r[39m
[31m+ o[39m
[31m+ u[39m
[31m+ t[39m
[31m+ e[39m
[31m+ s[39m
[31m+ /[39m
[31m+ a[39m
[31m+ p[39m
[31m+ i[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ -[39m
[31m+ A[39m
[31m+ d[39m
[31m+ d[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ e[39m
[31m+ n[39m
[31m+ d[39m
[31m+ p[39m
[31m+ o[39m
[31m+ i[39m
[31m+ n[39m
[31m+ t[39m
[31m+ s[39m
[31m+ - s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ m[39m
[31m+ i[39m
[31m+ d[39m
[31m+ d[39m
[31m+ l[39m
[31m+ e[39m
[31m+ w[39m
[31m+ a[39m
[31m+ r[39m
[31m+ e[39m
[31m+ /[39m
[31m+ c[39m
[31m+ o[39m
[31m+ r[39m
[31m+ s[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ -[39m
[31m+ U[39m
[31m+ p[39m
[31m+ d[39m
[31m+ a[39m
[31m+ t[39m
[31m+ e[39m
[31m+ C[39m
[31m+ O[39m
[31m+ R[39m
[31m+ S[39m
[31m+ f[39m
[31m+ o[39m
[31m+ r[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ h[39m
[31m+ e[39m
[31m+ a[39m
[31m+ d[39m
[31m+ e[39m
[31m+ r[39m
[31m+ s[39m
[31m+ - s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ u[39m
[31m+ t[39m
[31m+ i[39m
[31m+ l[39m
[31m+ s[39m
[31m+ /[39m
[31m+ c[39m
[31m+ r[39m
[31m+ y[39m
[31m+ p[39m
[31m+ t[39m
[31m+ o[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ -[39m
[31m+ A[39m
[31m+ d[39m
[31m+ d[39m
[31m+ e[39m
[31m+ n[39m
[31m+ c[39m
[31m+ r[39m
[31m+ y[39m
[31m+ p[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ u[39m
[31m+ t[39m
[31m+ i[39m
[31m+ l[39m
[31m+ i[39m
[31m+ t[39m
[31m+ i[39m
[31m+ e[39m
[31m+ s[39m
[31m+[39m
[31m+ Testing Strategy[39m
[31m+[39m
[31m+ - U[39m
[31m+ n[39m
[31m+ i[39m
[31m+ t[39m
[31m+ t[39m
[31m+ e[39m
[31m+ s[39m
[31m+ t[39m
[31m+ s[39m
[31m+ f[39m
[31m+ o[39m
[31m+ r[39m
[31m+ e[39m
[31m+ a[39m
[31m+ c[39m
[31m+ h[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ p[39m
[31m+ r[39m
[31m+ o[39m
[31m+ v[39m
[31m+ i[39m
[31m+ d[39m
[31m+ e[39m
[31m+ r[39m
[31m+ - I[39m
[31m+ n[39m
[31m+ t[39m
[31m+ e[39m
[31m+ g[39m
[31m+ r[39m
[31m+ a[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ t[39m
[31m+ e[39m
[31m+ s[39m
[31m+ t[39m
[31m+ s[39m
[31m+ f[39m
[31m+ o[39m
[31m+ r[39m
[31m+ f[39m
[31m+ u[39m
[31m+ l[39m
[31m+ l[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ f[39m
[31m+ l[39m
[31m+ o[39m
[31m+ w[39m
[31m+ s[39m
[31m+ - S[39m
[31m+ e[39m
[31m+ c[39m
[31m+ u[39m
[31m+ r[39m
[31m+ i[39m
[31m+ t[39m
[31m+ y[39m
[31m+ p[39m
[31m+ e[39m
[31m+ n[39m
[31m+ e[39m
[31m+ t[39m
[31m+ r[39m
[31m+ a[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ t[39m
[31m+ e[39m
[31m+ s[39m
[31m+ t[39m
[31m+ i[39m
[31m+ n[39m
[31m+ g[39m
[31m+ - L[39m
[31m+ o[39m
[31m+ a[39m
[31m+ d[39m
[31m+ t[39m
[31m+ e[39m
[31m+ s[39m
[31m+ t[39m
[31m+ i[39m
[31m+ n[39m
[31m+ g[39m
[31m+ f[39m
[31m+ o[39m
[31m+ r[39m
[31m+ s[39m
[31m+ e[39m
[31m+ s[39m
[31m+ s[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ m[39m
[31m+ a[39m
[31m+ n[39m
[31m+ a[39m
[31m+ g[39m
[31m+ e[39m
[31m+ m[39m
[31m+ e[39m
[31m+ n[39m
[31m+ t[39m
[31m+[39m
[31m+ ● 1. [39m
[31m+ Y [39m
[31m+ e [39m
[31m+ s [39m
[31m+ , [39m
[31m+ a [39m
[31m+ u [39m
[31m+ t [39m
[31m+ o [39m
[31m+ m [39m
[31m+ a [39m
[31m+ t [39m
[31m+ i [39m
[31m+ c [39m
[31m+ a [39m
[31m+ l [39m
[31m+ l [39m
[31m+ y [39m
[31m+ a [39m
[31m+ c [39m
[31m+ c [39m
[31m+ e [39m
[31m+ p [39m
[31m+ t [39m
[31m+ e [39m
[31m+ d [39m
[31m+ i [39m
[31m+ t [39m
[31m+ s [39m
[31m+ [39m
[31m+ A [39m
[31m+ p [39m
[31m+ p [39m
[31m+ r [39m
[31m+ o [39m
[31m+ v [39m
[31m+ e [39m
[31m+ s [39m
[31m+ p [39m
[31m+ l [39m
[31m+ a [39m
[31m+ n [39m
[31m+ a [39m
[31m+ n [39m
[31m+ d [39m
[31m+ a [39m
[31m+ l [39m
[31m+ l [39m
[31m+ o [39m
[31m+ w [39m
[31m+ s [39m
[31m+ t [39m
[31m+ o [39m
[31m+ o [39m
[31m+ l [39m
[31m+ s [39m
[31m+ t [39m
[31m+ o [39m
[31m+ r [39m
[31m+ u [39m
[31m+ n [39m
[31m+ a [39m
[31m+ u [39m
[31m+ t [39m
[31m+ o [39m
[31m+ m [39m
[31m+ a [39m
[31m+ t [39m
[31m+ i [39m
[31m+ c [39m
[31m+ a [39m
[31m+ l [39m
[31m+ l [39m
[31m+ y [39m
[31m+ 2.[39m
[31m+ Y[39m
[31m+ e[39m
[31m+ s[39m
[31m+ ,[39m
[31m+ m[39m
[31m+ a[39m
[31m+ n[39m
[31m+ u[39m
[31m+ a[39m
[31m+ l[39m
[31m+ l[39m
[31m+ y[39m
[31m+ a[39m
[31m+ c[39m
[31m+ c[39m
[31m+ e[39m
[31m+ p[39m
[31m+ t[39m
[31m+ e[39m
[31m+ d[39m
[31m+ i[39m
[31m+ t[39m
[31m+ s[39m
[31m+[39m
[31m+ A[39m
[31m+ p[39m
[31m+ p[39m
[31m+ r[39m
[31m+ o[39m
[31m+ v[39m
[31m+ e[39m
[31m+ s[39m
[31m+ p[39m
[31m+ l[39m
[31m+ a[39m
[31m+ n[39m
[31m+ b[39m
[31m+ u[39m
[31m+ t[39m
[31m+ r[39m
[31m+ e[39m
[31m+ q[39m
[31m+ u[39m
[31m+ i[39m
[31m+ r[39m
[31m+ e[39m
[31m+ s[39m
[31m+ c[39m
[31m+ o[39m
[31m+ n[39m
[31m+ f[39m
[31m+ i[39m
[31m+ r[39m
[31m+ m[39m
[31m+ a[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ f[39m
[31m+ o[39m
[31m+ r[39m
[31m+ e[39m
[31m+ a[39m
[31m+ c[39m
[31m+ h[39m
[31m+ t[39m
[31m+ o[39m
[31m+ o[39m
[31m+ l[39m
[31m+ 3. T[39m
[31m+ y[39m
[31m+ p[39m
[31m+ e[39m
[31m+ y[39m
[31m+ o[39m
[31m+ u[39m
[31m+ r[39m
[31m+ f[39m
[31m+ e[39m
[31m+ e[39m
[31m+ d[39m
[31m+ b[39m
[31m+ a[39m
[31m+ c[39m
[31m+ k[39m
[31m+ .[39m
[31m+ .[39m
[31m+ [7m [27m.[39m
[2m Enter to select · ↑/↓ to navigate · Ctrl+G to edit plan · Esc to cancel[22m
[2m "[22m
❯ src/ui/components/ExitPlanModeDialog.test.tsx:365:29
363| });
364|
365| expect(lastFrame()).toMatchSnapshot();
| ^
366| });
367|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[65/292]⎯
FAIL src/ui/components/ExitPlanModeDialog.test.tsx > ExitPlanModeDialog > useAlternateBuffer: true > clears feedback text when Ctrl+C is pressed while editing
FAIL src/ui/components/ExitPlanModeDialog.test.tsx > ExitPlanModeDialog > useAlternateBuffer: false > clears feedback text when Ctrl+C is pressed while editing
AssertionError: expected 'Overview\n\nAdd user authentication t…' to contain 'test feedback'
[32m- Expected[39m
[31m+ Received[39m
[32m- test feedback[39m
[31m+ Overview[39m
[31m+[39m
[31m+ Add user authentication to the CLI application.[39m
[31m+[39m
[31m+ Implementation Steps[39m
[31m+[39m
[31m+ 1. C[39m
[31m+ r[39m
[31m+ e[39m
[31m+ a[39m
[31m+ t[39m
[31m+ e[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ /[39m
[31m+ A[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ S[39m
[31m+ e[39m
[31m+ r[39m
[31m+ v[39m
[31m+ i[39m
[31m+ c[39m
[31m+ e[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ w[39m
[31m+ i[39m
[31m+ t[39m
[31m+ h[39m
[31m+ l[39m
[31m+ o[39m
[31m+ g[39m
[31m+ i[39m
[31m+ n[39m
[31m+ /[39m
[31m+ l[39m
[31m+ o[39m
[31m+ g[39m
[31m+ o[39m
[31m+ u[39m
[31m+ t[39m
[31m+ m[39m
[31m+ e[39m
[31m+ t[39m
[31m+ h[39m
[31m+ o[39m
[31m+ d[39m
[31m+ s[39m
[31m+ 2. A[39m
[31m+ d[39m
[31m+ d[39m
[31m+ s[39m
[31m+ e[39m
[31m+ s[39m
[31m+ s[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+ a[39m
[31m+ g[39m
[31m+ e[39m
[31m+ i[39m
[31m+ n[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+ a[39m
[31m+ g[39m
[31m+ e[39m
[31m+ /[39m
[31m+ S[39m
[31m+ e[39m
[31m+ s[39m
[31m+ s[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ S[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+ e[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ 3. U[39m
[31m+ p[39m
[31m+ d[39m
[31m+ a[39m
[31m+ t[39m
[31m+ e[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ c[39m
[31m+ o[39m
[31m+ m[39m
[31m+ m[39m
[31m+ a[39m
[31m+ n[39m
[31m+ d[39m
[31m+ s[39m
[31m+ /[39m
[31m+ i[39m
[31m+ n[39m
[31m+ d[39m
[31m+ e[39m
[31m+ x[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ c[39m
[31m+ h[39m
[31m+ e[39m
[31m+ c[39m
[31m+ k[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ s[39m
[31m+ t[39m
[31m+ a[39m
[31m+ t[39m
[31m+ u[39m
[31m+ s[39m
[31m+ 4. A[39m
[31m+ d[39m
[31m+ d[39m
[31m+ t[39m
[31m+ e[39m
[31m+ s[39m
[31m+ t[39m
[31m+ s[39m
[31m+ i[39m
[31m+ n[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ /[39m
[31m+ _[39m
[31m+ _[39m
[31m+ t[39m
[31m+ e[39m
[31m+ s[39m
[31m+ t[39m
[31m+ s[39m
[31m+ _[39m
[31m+ _[39m
[31m+ /[39m
[31m+[39m
[31m+ Files to Modify[39m
[31m+[39m
[31m+ - s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ i[39m
[31m+ n[39m
[31m+ d[39m
[31m+ e[39m
[31m+ x[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ -[39m
[31m+ A[39m
[31m+ d[39m
[31m+ d[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ m[39m
[31m+ i[39m
[31m+ d[39m
[31m+ d[39m
[31m+ l[39m
[31m+ e[39m
[31m+ w[39m
[31m+ a[39m
[31m+ r[39m
[31m+ e[39m
[31m+ - s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ c[39m
[31m+ o[39m
[31m+ n[39m
[31m+ f[39m
[31m+ i[39m
[31m+ g[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ -[39m
[31m+ A[39m
[31m+ d[39m
[31m+ d[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ c[39m
[31m+ o[39m
[31m+ n[39m
[31m+ f[39m
[31m+ i[39m
[31m+ g[39m
[31m+ u[39m
[31m+ r[39m
[31m+ a[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ o[39m
[31m+ p[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ s[39m
[31m+[39m
[31m+ 1.[39m
[31m+ Y[39m
[31m+ e[39m
[31m+ s[39m
[31m+ ,[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ o[39m
[31m+ m[39m
[31m+ a[39m
[31m+ t[39m
[31m+ i[39m
[31m+ c[39m
[31m+ a[39m
[31m+ l[39m
[31m+ l[39m
[31m+ y[39m
[31m+ a[39m
[31m+ c[39m
[31m+ c[39m
[31m+ e[39m
[31m+ p[39m
[31m+ t[39m
[31m+ e[39m
[31m+ d[39m
[31m+ i[39m
[31m+ t[39m
[31m+ s[39m
[31m+[39m
[31m+ A[39m
[31m+ p[39m
[31m+ p[39m
[31m+ r[39m
[31m+ o[39m
[31m+ v[39m
[31m+ e[39m
[31m+ s[39m
[31m+ p[39m
[31m+ l[39m
[31m+ a[39m
[31m+ n[39m
[31m+ a[39m
[31m+ n[39m
[31m+ d[39m
[31m+ a[39m
[31m+ l[39m
[31m+ l[39m
[31m+ o[39m
[31m+ w[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ o[39m
[31m+ l[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+ u[39m
[31m+ n[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ o[39m
[31m+ m[39m
[31m+ a[39m
[31m+ t[39m
[31m+ i[39m
[31m+ c[39m
[31m+ a[39m
[31m+ l[39m
[31m+ l[39m
[31m+ y[39m
[31m+ 2.[39m
[31m+ Y[39m
[31m+ e[39m
[31m+ s[39m
[31m+ ,[39m
[31m+ m[39m
[31m+ a[39m
[31m+ n[39m
[31m+ u[39m
[31m+ a[39m
[31m+ l[39m
[31m+ l[39m
[31m+ y[39m
[31m+ a[39m
[31m+ c[39m
[31m+ c[39m
[31m+ e[39m
[31m+ p[39m
[31m+ t[39m
[31m+ e[39m
[31m+ d[39m
[31m+ i[39m
[31m+ t[39m
[31m+ s[39m
[31m+[39m
[31m+ A[39m
[31m+ p[39m
[31m+ p[39m
[31m+ r[39m
[31m+ o[39m
[31m+ v[39m
[31m+ e[39m
[31m+ s[39m
[31m+ p[39m
[31m+ l[39m
[31m+ a[39m
[31m+ n[39m
[31m+ b[39m
[31m+ u[39m
[31m+ t[39m
[31m+ r[39m
[31m+ e[39m
[31m+ q[39m
[31m+ u[39m
[31m+ i[39m
[31m+ r[39m
[31m+ e[39m
[31m+ s[39m
[31m+ c[39m
[31m+ o[39m
[31m+ n[39m
[31m+ f[39m
[31m+ i[39m
[31m+ r[39m
[31m+ m[39m
[31m+ a[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ f[39m
[31m+ o[39m
[31m+ r[39m
[31m+ e[39m
[31m+ a[39m
[31m+ c[39m
[31m+ h[39m
[31m+ t[39m
[31m+ o[39m
[31m+ o[39m
[31m+ l[39m
[31m+ ●3. t [39m
[31m+ e[39m
[31m+ Enter to submit · Ctrl+G to edit plan · Esc to cancel[39m
[31m+[39m
❯ src/ui/components/ExitPlanModeDialog.test.tsx:413:31
411|
412| await waitFor(() => {
413| expect(lastFrame()).toContain('test feedback');
| ^
414| });
415|
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/ExitPlanModeDialog.test.tsx:412:9
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[66/292]⎯
FAIL src/ui/components/ExitPlanModeDialog.test.tsx > ExitPlanModeDialog > useAlternateBuffer: true > bubbles up Ctrl+C when feedback is empty while editing
FAIL src/ui/components/ExitPlanModeDialog.test.tsx > ExitPlanModeDialog > useAlternateBuffer: false > bubbles up Ctrl+C when feedback is empty while editing
AssertionError: expected 'Overview\n\nAdd user authentication t…' to contain 'test'
[32m- Expected[39m
[31m+ Received[39m
[32m- test[39m
[31m+ Overview[39m
[31m+[39m
[31m+ Add user authentication to the CLI application.[39m
[31m+[39m
[31m+ Implementation Steps[39m
[31m+[39m
[31m+ 1. C[39m
[31m+ r[39m
[31m+ e[39m
[31m+ a[39m
[31m+ t[39m
[31m+ e[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ /[39m
[31m+ A[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ S[39m
[31m+ e[39m
[31m+ r[39m
[31m+ v[39m
[31m+ i[39m
[31m+ c[39m
[31m+ e[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ w[39m
[31m+ i[39m
[31m+ t[39m
[31m+ h[39m
[31m+ l[39m
[31m+ o[39m
[31m+ g[39m
[31m+ i[39m
[31m+ n[39m
[31m+ /[39m
[31m+ l[39m
[31m+ o[39m
[31m+ g[39m
[31m+ o[39m
[31m+ u[39m
[31m+ t[39m
[31m+ m[39m
[31m+ e[39m
[31m+ t[39m
[31m+ h[39m
[31m+ o[39m
[31m+ d[39m
[31m+ s[39m
[31m+ 2. A[39m
[31m+ d[39m
[31m+ d[39m
[31m+ s[39m
[31m+ e[39m
[31m+ s[39m
[31m+ s[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+ a[39m
[31m+ g[39m
[31m+ e[39m
[31m+ i[39m
[31m+ n[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+ a[39m
[31m+ g[39m
[31m+ e[39m
[31m+ /[39m
[31m+ S[39m
[31m+ e[39m
[31m+ s[39m
[31m+ s[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ S[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+ e[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ 3. U[39m
[31m+ p[39m
[31m+ d[39m
[31m+ a[39m
[31m+ t[39m
[31m+ e[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ c[39m
[31m+ o[39m
[31m+ m[39m
[31m+ m[39m
[31m+ a[39m
[31m+ n[39m
[31m+ d[39m
[31m+ s[39m
[31m+ /[39m
[31m+ i[39m
[31m+ n[39m
[31m+ d[39m
[31m+ e[39m
[31m+ x[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ c[39m
[31m+ h[39m
[31m+ e[39m
[31m+ c[39m
[31m+ k[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ s[39m
[31m+ t[39m
[31m+ a[39m
[31m+ t[39m
[31m+ u[39m
[31m+ s[39m
[31m+ 4. A[39m
[31m+ d[39m
[31m+ d[39m
[31m+ t[39m
[31m+ e[39m
[31m+ s[39m
[31m+ t[39m
[31m+ s[39m
[31m+ i[39m
[31m+ n[39m
[31m+ s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ /[39m
[31m+ _[39m
[31m+ _[39m
[31m+ t[39m
[31m+ e[39m
[31m+ s[39m
[31m+ t[39m
[31m+ s[39m
[31m+ _[39m
[31m+ _[39m
[31m+ /[39m
[31m+[39m
[31m+ Files to Modify[39m
[31m+[39m
[31m+ - s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ i[39m
[31m+ n[39m
[31m+ d[39m
[31m+ e[39m
[31m+ x[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ -[39m
[31m+ A[39m
[31m+ d[39m
[31m+ d[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ m[39m
[31m+ i[39m
[31m+ d[39m
[31m+ d[39m
[31m+ l[39m
[31m+ e[39m
[31m+ w[39m
[31m+ a[39m
[31m+ r[39m
[31m+ e[39m
[31m+ - s[39m
[31m+ r[39m
[31m+ c[39m
[31m+ /[39m
[31m+ c[39m
[31m+ o[39m
[31m+ n[39m
[31m+ f[39m
[31m+ i[39m
[31m+ g[39m
[31m+ .[39m
[31m+ t[39m
[31m+ s[39m
[31m+ -[39m
[31m+ A[39m
[31m+ d[39m
[31m+ d[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ h[39m
[31m+ c[39m
[31m+ o[39m
[31m+ n[39m
[31m+ f[39m
[31m+ i[39m
[31m+ g[39m
[31m+ u[39m
[31m+ r[39m
[31m+ a[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ o[39m
[31m+ p[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ s[39m
[31m+[39m
[31m+ 1.[39m
[31m+ Y[39m
[31m+ e[39m
[31m+ s[39m
[31m+ ,[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ o[39m
[31m+ m[39m
[31m+ a[39m
[31m+ t[39m
[31m+ i[39m
[31m+ c[39m
[31m+ a[39m
[31m+ l[39m
[31m+ l[39m
[31m+ y[39m
[31m+ a[39m
[31m+ c[39m
[31m+ c[39m
[31m+ e[39m
[31m+ p[39m
[31m+ t[39m
[31m+ e[39m
[31m+ d[39m
[31m+ i[39m
[31m+ t[39m
[31m+ s[39m
[31m+[39m
[31m+ A[39m
[31m+ p[39m
[31m+ p[39m
[31m+ r[39m
[31m+ o[39m
[31m+ v[39m
[31m+ e[39m
[31m+ s[39m
[31m+ p[39m
[31m+ l[39m
[31m+ a[39m
[31m+ n[39m
[31m+ a[39m
[31m+ n[39m
[31m+ d[39m
[31m+ a[39m
[31m+ l[39m
[31m+ l[39m
[31m+ o[39m
[31m+ w[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ o[39m
[31m+ l[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+ u[39m
[31m+ n[39m
[31m+ a[39m
[31m+ u[39m
[31m+ t[39m
[31m+ o[39m
[31m+ m[39m
[31m+ a[39m
[31m+ t[39m
[31m+ i[39m
[31m+ c[39m
[31m+ a[39m
[31m+ l[39m
[31m+ l[39m
[31m+ y[39m
[31m+ 2.[39m
[31m+ Y[39m
[31m+ e[39m
[31m+ s[39m
[31m+ ,[39m
[31m+ m[39m
[31m+ a[39m
[31m+ n[39m
[31m+ u[39m
[31m+ a[39m
[31m+ l[39m
[31m+ l[39m
[31m+ y[39m
[31m+ a[39m
[31m+ c[39m
[31m+ c[39m
[31m+ e[39m
[31m+ p[39m
[31m+ t[39m
[31m+ e[39m
[31m+ d[39m
[31m+ i[39m
[31m+ t[39m
[31m+ s[39m
[31m+[39m
[31m+ A[39m
[31m+ p[39m
[31m+ p[39m
[31m+ r[39m
[31m+ o[39m
[31m+ v[39m
[31m+ e[39m
[31m+ s[39m
[31m+ p[39m
[31m+ l[39m
[31m+ a[39m
[31m+ n[39m
[31m+ b[39m
[31m+ u[39m
[31m+ t[39m
[31m+ r[39m
[31m+ e[39m
[31m+ q[39m
[31m+ u[39m
[31m+ i[39m
[31m+ r[39m
[31m+ e[39m
[31m+ s[39m
[31m+ c[39m
[31m+ o[39m
[31m+ n[39m
[31m+ f[39m
[31m+ i[39m
[31m+ r[39m
[31m+ m[39m
[31m+ a[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ f[39m
[31m+ o[39m
[31m+ r[39m
[31m+ e[39m
[31m+ a[39m
[31m+ c[39m
[31m+ h[39m
[31m+ t[39m
[31m+ o[39m
[31m+ o[39m
[31m+ l[39m
[31m+ ●3. t [39m
[31m+ e[39m
[31m+ Enter to submit · Ctrl+G to edit plan · Esc to cancel[39m
[31m+[39m
❯ src/ui/components/ExitPlanModeDialog.test.tsx:507:31
505|
506| await waitFor(() => {
507| expect(lastFrame()).toContain('test');
| ^
508| });
509|
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/ExitPlanModeDialog.test.tsx:506:9
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[67/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,23 +2,182 @@[39m
[2m Add user authentication to the CLI application.[22m
[2m Implementation Steps[22m
[32m- 1. C[7mreate src/auth/AuthService.ts with login/logout methods[27m[39m
[32m- 2. Add session storage in src/storage/SessionStore.ts[39m
[32m- 3. Update src/commands/index.ts to check auth status[39m
[32m- 4. Add tests in src/auth/__tests__/[39m
[32m-[39m
[32m- Files to Modify[39m
[32m-[39m
[32m- - src/index.ts - Add auth middleware[39m
[32m- - src/config.ts - Add auth configuration options[39m
[32m-[39m
[32m- ● 1. Yes, automatically accept edits [39m
[32m- Approves plan and allows tools to run automatically [39m
[32m- [7m 2. Yes, manually accept edit[27ms[39m
[31m+ 1. C[39m
[31m+ r[39m
[31m+ e[39m
[31m+ a[39m
[31m+ t[39m
[31m+ e[39m
[31m+ s[39m
[31m+ r[39m
[31m+ ... last 237 lines hidden (Ctrl+O to show) ...[39m
[31m+[39m
[31m+ ●1. [39m
[31m+ Y [39m
[31m+ e [39m
[31m+ s [39m
[31m+ , [39m
[31m+ a [39m
[31m+ u [39m
[31m+ t [39m
[31m+ o [39m
[31m+ m [39m
[31m+ a [39m
[31m+ t [39m
[31m+ i [39m
[31m+ c [39m
[31m+ a [39m
[31m+ l [39m
[31m+ l [39m
[31m+ y [39m
[31m+ a [39m
[31m+ c [39m
[31m+ c [39m
[31m+ e [39m
[31m+ p [39m
[31m+ t [39m
[31m+ e [39m
[31m+ d [39m
[31m+ i [39m
[31m+ t [39m
[31m+ s [39m
[31m+ [39m
[31m+ A [39m
[31m+ p [39m
[31m+ p [39m
[31m+ r [39m
[31m+ o [39m
[31m+ v [39m
[31m+ e [39m
[31m+ s [39m
[31m+ p [39m
[31m+ l [39m
[31m+ a [39m
[31m+ n [39m
[31m+ a [39m
[31m+ n [39m
[31m+ d [39m
[31m+ a [39m
[31m+ l [39m
[31m+ l [39m
[31m+ o [39m
[31m+ w [39m
[31m+ s [39m
[31m+ t [39m
[31m+ o [39m
[31m+ o [39m
[31m+ l [39m
[31m+ s [39m
[31m+ t [39m
[31m+ o [39m
[31m+ r [39m
[31m+ u [39m
[31m+ n [39m
[31m+ a [39m
[31m+ u [39m
[31m+ t [39m
[31m+ o [39m
[31m+ m [39m
[31m+ a [39m
[31m+ t [39m
[31m+ i [39m
[31m+ c [39m
[31m+ a [39m
[31m+ l [39m
[31m+ l [39m
[31m+ y [39m
[31m+ 2.[39m
[31m+ Y[39m
[31m+ e[39m
[31m+ s[39m
[31m+ ,[39m
[31m+ m[39m
[31m+ a[39m
[31m+ n[39m
[31m+ u[39m
[31m+ a[39m
[31m+ l[39m
[31m+ l[39m
[31m+ y[39m
[31m+ a[39m
[31m+ c[39m
[31m+ c[39m
[31m+ e[39m
[31m+ p[39m
[31m+ t[39m
[31m+ e[39m
[31m+ d[39m
[31m+ i[39m
[31m+ t[39m
[31m+ [7m [27ms[39m
[32m- [7m Approves plan but requires confirmation for each too[27ml[39m
[31m+[39m
[31m+ [7mA[27m[39m
[31m+ p[39m
[31m+ p[39m
[31m+ r[39m
[31m+ o[39m
[31m+ v[39m
[31m+ e[39m
[31m+ s[39m
[31m+ p[39m
[31m+ l[39m
[31m+ a[39m
[31m+ n[39m
[31m+ b[39m
[31m+ u[39m
[31m+ t[39m
[31m+ r[39m
[31m+ e[39m
[31m+ q[39m
[31m+ u[39m
[31m+ i[39m
[31m+ r[39m
[31m+ e[39m
[31m+ s[39m
[31m+ c[39m
[31m+ o[39m
[31m+ n[39m
[31m+ f[39m
[31m+ i[39m
[31m+ r[39m
[31m+ m[39m
[31m+ a[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ f[39m
[31m+ o[39m
[31m+ r[39m
[31m+ e[39m
[31m+ a[39m
[31m+ c[39m
[31m+ h[39m
[31m+ t[39m
[31m+ o[39m
[31m+ o[39m
[31m+ [7m [27ml[39m
[32m- [7m [27m 3. [7m Type your feedback..[27m.[39m
[31m+ 3. [7mT[27m[39m
[31m+ y[39m
[31m+ p[39m
[31m+ e[39m
[31m+ y[39m
[31m+ o[39m
[31m+ u[39m
[31m+ r[39m
[31m+ f[39m
[31m+ e[39m
[31m+ e[39m
[31m+ d[39m
[31m+ b[39m
[31m+ a[39m
[31m+ c[39m
[31m+ k[39m
[31m+ .[39m
[31m+ .[39m
[31m+ [7m [27m.[39m
[2m Enter to select · ↑/↓ to navigate · Ctrl+G to edit plan · Esc to cancel[22m
[2m "[22m
❯ src/ui/components/ExitPlanModeDialog.test.tsx:206:29
204| });
205|
206| expect(lastFrame()).toMatchSnapshot();
| ^
207| });
208|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[68/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,23 +2,182 @@[39m
[2m Implement a comprehensive authentication system with multiple providers.[22m
[2m Implementation Steps[22m
[32m- 1. C[7mreate src/auth/AuthService.ts with login/logout methods[27m[39m
[32m- 2. Add session storage in src/storage/SessionStore.ts[39m
[32m- 3. Update src/commands/index.ts to check auth status[39m
[32m- 4. Add OAuth2 provider support in src/auth/providers/OAuth2Provider.ts[39m
[32m- 5. Add SAML provider support in src/auth/providers/SAMLProvider.ts[39m
[32m- 6. Add LDAP provider support in src/auth/providers/LDAPProvider.ts[39m
[32m- 7. Create token refresh mechanism in src/auth/TokenManager.ts[39m
[32m- 8. Add multi-factor authentication in src/auth/MFAService.ts[39m
[31m+ 1. C[39m
[31m+ r[39m
[31m+ e[39m
[31m+ a[39m
[31m+ t[39m
[31m+ e[39m
[31m+ s[39m
[31m+ r[39m
[32m- ... last [7m22[27m lines hidden (Ctrl+O to show) ...[39m
[31m+ ... last [7m1117[27m lines hidden (Ctrl+O to show) ...[39m
[32m- ●[7m [27m1. [7mYes, automatically accept edits [27m[39m
[32m- Approves plan and allows tools to run automatically [39m
[32m- [7m [27m 2. [7mYes, manually accept edit[27ms[39m
[31m+ ●1. [7m [27m[39m
[31m+ Y [39m
[31m+ e [39m
[31m+ s [39m
[31m+ , [39m
[31m+ a [39m
[31m+ u [39m
[31m+ t [39m
[31m+ o [39m
[31m+ m [39m
[31m+ a [39m
[31m+ t [39m
[31m+ i [39m
[31m+ c [39m
[31m+ a [39m
[31m+ l [39m
[31m+ l [39m
[31m+ y [39m
[31m+ a [39m
[31m+ c [39m
[31m+ c [39m
[31m+ e [39m
[31m+ p [39m
[31m+ t [39m
[31m+ e [39m
[31m+ d [39m
[31m+ i [39m
[31m+ t [39m
[31m+ s [39m
[31m+ [39m
[31m+ A [39m
[31m+ p [39m
[31m+ p [39m
[31m+ r [39m
[31m+ o [39m
[31m+ v [39m
[31m+ e [39m
[31m+ s [39m
[31m+ p [39m
[31m+ l [39m
[31m+ a [39m
[31m+ n [39m
[31m+ a [39m
[31m+ n [39m
[31m+ d [39m
[31m+ a [39m
[31m+ l [39m
[31m+ l [39m
[31m+ o [39m
[31m+ w [39m
[31m+ s [39m
[31m+ t [39m
[31m+ o [39m
[31m+ o [39m
[31m+ l [39m
[31m+ s [39m
[31m+ t [39m
[31m+ o [39m
[31m+ r [39m
[31m+ u [39m
[31m+ n [39m
[31m+ a [39m
[31m+ u [39m
[31m+ t [39m
[31m+ o [39m
[31m+ m [39m
[31m+ a [39m
[31m+ t [39m
[31m+ i [39m
[31m+ c [39m
[31m+ a [39m
[31m+ l [39m
[31m+ l [39m
[31m+ y [39m
[31m+ 2.[39m
[31m+ [7m Y[27m[39m
[31m+ e[39m
[31m+ s[39m
[31m+ ,[39m
[31m+ m[39m
[31m+ a[39m
[31m+ n[39m
[31m+ u[39m
[31m+ a[39m
[31m+ l[39m
[31m+ l[39m
[31m+ y[39m
[31m+ a[39m
[31m+ c[39m
[31m+ c[39m
[31m+ e[39m
[31m+ p[39m
[31m+ t[39m
[31m+ e[39m
[31m+ d[39m
[31m+ i[39m
[31m+ t[39m
[31m+ [7m [27ms[39m
[32m- [7m Approves plan but requires confirmation for each too[27ml[39m
[31m+[39m
[31m+ [7mA[27m[39m
[31m+ p[39m
[31m+ p[39m
[31m+ r[39m
[31m+ o[39m
[31m+ v[39m
[31m+ e[39m
[31m+ s[39m
[31m+ p[39m
[31m+ l[39m
[31m+ a[39m
[31m+ n[39m
[31m+ b[39m
[31m+ u[39m
[31m+ t[39m
[31m+ r[39m
[31m+ e[39m
[31m+ q[39m
[31m+ u[39m
[31m+ i[39m
[31m+ r[39m
[31m+ e[39m
[31m+ s[39m
[31m+ c[39m
[31m+ o[39m
[31m+ n[39m
[31m+ f[39m
[31m+ i[39m
[31m+ r[39m
[31m+ m[39m
[31m+ a[39m
[31m+ t[39m
[31m+ i[39m
[31m+ o[39m
[31m+ n[39m
[31m+ f[39m
[31m+ o[39m
[31m+ r[39m
[31m+ e[39m
[31m+ a[39m
[31m+ c[39m
[31m+ h[39m
[31m+ t[39m
[31m+ o[39m
[31m+ o[39m
[31m+ [7m [27ml[39m
[32m- [7m [27m 3. [7m Type your feedback..[27m.[39m
[31m+ 3. [7mT[27m[39m
[31m+ y[39m
[31m+ p[39m
[31m+ e[39m
[31m+ y[39m
[31m+ o[39m
[31m+ u[39m
[31m+ r[39m
[31m+ f[39m
[31m+ e[39m
[31m+ e[39m
[31m+ d[39m
[31m+ b[39m
[31m+ a[39m
[31m+ c[39m
[31m+ k[39m
[31m+ .[39m
[31m+ .[39m
[31m+ [7m [27m.[39m
[2m Enter to select · ↑/↓ to navigate · Ctrl+G to edit plan · Esc to cancel[22m
[2m "[22m
❯ src/ui/components/ExitPlanModeDialog.test.tsx:365:29
363| });
364|
365| expect(lastFrame()).toMatchSnapshot();
| ^
366| });
367|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[69/292]⎯
FAIL src/ui/components/FolderTrustDialog.test.tsx > FolderTrustDialog > directory display > should correctly display the folder name for a nested directory
AssertionError: expected ' ╭───────────────────────────────────…' to contain 'Trust folder (project)'
[32m- Expected[39m
[31m+ Received[39m
[32m- Trust folder (project)[39m
[31m+ ╭────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ Do you trust the files in this folder? │[39m
[31m+ │ │[39m
[31m+ │ Trusting a folder allows Gemini CLI to load its local configurations, including custom │[39m
[31m+ │ commands, hooks, MCP servers, agent skills, and settings. These configurations could execute │[39m
[31m+ │ code on your behalf or change the behavior of the CLI. │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ●1. │[39m
[31m+ │ 2. │[39m
[31m+ │ 3. │[39m
[31m+ │ │[39m
[31m+ ╰────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/FolderTrustDialog.test.tsx:303:27
301| ,
302| );
303| expect(lastFrame()).toContain('Trust folder (project)');
| ^
304| unmount();
305| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[70/292]⎯
FAIL src/ui/components/FolderTrustDialog.test.tsx > FolderTrustDialog > directory display > should correctly display the parent folder name for a nested directory
AssertionError: expected ' ╭───────────────────────────────────…' to contain 'Trust parent folder (user)'
[32m- Expected[39m
[31m+ Received[39m
[32m- Trust parent folder (user)[39m
[31m+ ╭────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ Do you trust the files in this folder? │[39m
[31m+ │ │[39m
[31m+ │ Trusting a folder allows Gemini CLI to load its local configurations, including custom │[39m
[31m+ │ commands, hooks, MCP servers, agent skills, and settings. These configurations could execute │[39m
[31m+ │ code on your behalf or change the behavior of the CLI. │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ●1. │[39m
[31m+ │ 2. │[39m
[31m+ │ 3. │[39m
[31m+ │ │[39m
[31m+ ╰────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/FolderTrustDialog.test.tsx:312:27
310| ,
311| );
312| expect(lastFrame()).toContain('Trust parent folder (user)');
| ^
313| unmount();
314| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[71/292]⎯
FAIL src/ui/components/FolderTrustDialog.test.tsx > FolderTrustDialog > directory display > should correctly display an empty parent folder name for a directory directly under root
AssertionError: expected ' ╭───────────────────────────────────…' to contain 'Trust parent folder ()'
[32m- Expected[39m
[31m+ Received[39m
[32m- Trust parent folder ()[39m
[31m+ ╭────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ Do you trust the files in this folder? │[39m
[31m+ │ │[39m
[31m+ │ Trusting a folder allows Gemini CLI to load its local configurations, including custom │[39m
[31m+ │ commands, hooks, MCP servers, agent skills, and settings. These configurations could execute │[39m
[31m+ │ code on your behalf or change the behavior of the CLI. │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ●1. │[39m
[31m+ │ 2. │[39m
[31m+ │ 3. │[39m
[31m+ │ │[39m
[31m+ ╰────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/FolderTrustDialog.test.tsx:321:27
319| ,
320| );
321| expect(lastFrame()).toContain('Trust parent folder ()');
| ^
322| unmount();
323| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[72/292]⎯
FAIL src/ui/components/Footer.test.tsx > > displays the usage indicator when usage is low
Error: Snapshot ` > displays the usage indicator when usage is low 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[32m- " workspace (/directory) [7m [27msandbox [7m [27m[7m [27m/model [7m [27m/stats[39m
[31m+ " workspace (/directory) sandbox /model /stats[39m
[32m- ~/project/foo/bar/and/some/more/directories/to/make/it/long [7m [27mno sandbox [7m [27mgemini-pro [7m [27m85%[39m
[31m+ ~/project/foo/bar/and/some/more/directories/to/make/it/long no sandbox gemini-pro 85%[39m
[2m "[22m
❯ src/ui/components/Footer.test.tsx:284:41
282| });
283| expect(lastFrame()).toContain('85%');
284| expect(normalizeFrame(lastFrame())).toMatchSnapshot();
| ^
285| unmount();
286| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[73/292]⎯
FAIL src/ui/components/Footer.test.tsx > > hides the usage indicator when usage is not near limit
Error: Snapshot ` > hides the usage indicator when usage is not near limit 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[32m- " workspace (/directory) [7m [27msandbox [7m [27m[7m [27m/model [7m [27m/stats[39m
[31m+ " workspace (/directory) sandbox /model /stats[39m
[32m- ~/project/foo/bar/and/some/more/directories/to/make/it/long [7m [27mno sandbox [7m [27mgemini-pro [7m [27m15%[39m
[31m+ ~/project/foo/bar/and/some/more/directories/to/make/it/long no sandbox gemini-pro 15%[39m
[2m "[22m
❯ src/ui/components/Footer.test.tsx:309:41
307| });
308| expect(normalizeFrame(lastFrame())).not.toContain('used');
309| expect(normalizeFrame(lastFrame())).toMatchSnapshot();
| ^
310| unmount();
311| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[74/292]⎯
FAIL src/ui/components/Footer.test.tsx > > displays "Limit reached" message when remaining is 0
Error: Snapshot ` > displays "Limit reached" message when remaining is 0 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[32m- " workspace (/directory) [7m [27msandbox [7m [27m[7m [27m/model [7m [27m/stats[39m
[31m+ " workspace (/directory) sandbox /model /stats[39m
[32m- ~/project/foo/bar/and/some/more/directories/to/make/it/long [7m [27m[7m [27mno sandbox [7m [27m[7m [27mgemini-pro [7m [27mlimit reached[39m
[31m+ ~/project/foo/bar/and/some/more/directories/to/make/it/long no sandbox gemini-pro limit reached[39m
[2m "[22m
❯ src/ui/components/Footer.test.tsx:334:41
332| });
333| expect(lastFrame()?.toLowerCase()).toContain('limit reached');
334| expect(normalizeFrame(lastFrame())).toMatchSnapshot();
| ^
335| unmount();
336| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[75/292]⎯
FAIL src/ui/components/Footer.test.tsx > > footer configuration filtering (golden snapshots) > renders complete footer with all sections visible (baseline)
Error: Snapshot ` > footer configuration filtering (golden snapshots) > renders complete footer with all sections visible (baseline) > complete-footer-wide 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[32m- " workspace (/directory) [7m [27msandbox [7m [27m[7m [27m/model [7m [27mcontext[39m
[31m+ " workspace (/directory) sandbox /model context[39m
[32m- ~/project/foo/bar/and/some/more/directories/to/make/it/long [7m [27mno sandbox [7m [27mgemini-pro [7m [27m14% used[39m
[31m+ ~/project/foo/bar/and/some/more/directories/to/make/it/long no sandbox gemini-pro 14% used[39m
[2m "[22m
❯ src/ui/components/Footer.test.tsx:455:43
453| }),
454| });
455| expect(normalizeFrame(lastFrame())).toMatchSnapshot(
| ^
456| 'complete-footer-wide',
457| );
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[76/292]⎯
FAIL src/ui/components/Footer.test.tsx > > footer configuration filtering (golden snapshots) > renders footer with only model info hidden (partial filtering)
Error: Snapshot ` > footer configuration filtering (golden snapshots) > renders footer with only model info hidden (partial filtering) > footer-no-model 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[32m- " workspace (/directory)[7m [27m sandbox[39m
[31m+ " workspace (/directory) sandbox[39m
[32m- ~/project/foo/bar/and/some/more/directories/to/make/it/long [7m [27mno sandbox[39m
[31m+ ~/project/foo/bar/and/some/more/directories/to/make/it/long no sandbox[39m
[2m "[22m
❯ src/ui/components/Footer.test.tsx:499:43
497| }),
498| });
499| expect(normalizeFrame(lastFrame())).toMatchSnapshot('footer-no-m…
| ^
500| unmount();
501| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[77/292]⎯
FAIL src/ui/components/Footer.test.tsx > > footer configuration filtering (golden snapshots) > renders complete footer in narrow terminal (baseline narrow)
Error: Snapshot ` > footer configuration filtering (golden snapshots) > renders complete footer in narrow terminal (baseline narrow) > complete-footer-narrow 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[32m- " workspace (/directory) [7m [27msandbox [7m [27m/model [7m [27mcontext[39m
[31m+ " workspace (/directory) sandbox /model context[39m
[32m- ...me/more/directories/to/make/it/long [7m [27mno sandbox [7m [27mgemini-pro [7m [27m14%[39m
[31m+ ...me/more/directories/to/make/it/long no sandbox gemini-pro 14%[39m
[2m "[22m
❯ src/ui/components/Footer.test.tsx:571:43
569| }),
570| });
571| expect(normalizeFrame(lastFrame())).toMatchSnapshot(
| ^
572| 'complete-footer-narrow',
573| );
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[78/292]⎯
FAIL src/ui/components/FooterConfigDialog.test.tsx > > renders correctly with default settings
Error: Snapshot ` > renders correctly with default settings 3` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,159 +2,159 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Configure Footer[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- Select which items to display in the footer.[39m
[31m+ Select which items to display in the footer.[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- [39m
[31m+ [39m
[2m >[22m
[32m- [39m
[31m+ [39m
[32m- [39m
[31m+ [39m
[2m [✓][22m
[32m- [39m
[31m+ [39m
[2m workspace[22m
[32m- [39m
[31m+ [39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- [39m
[31m+ [39m
[32m- [39m
[31m+ [39m
[32m- Current working directory[39m
[31m+ Current working directory[39m
[32m- [39m
[31m+ [39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m [✓][22m
[2m git-branch[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- Current git branch name (not shown when unavailable)[39m
[31m+ Current git branch name (not shown when unavailable)[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m [✓][22m
[2m sandbox[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- Sandbox type and trust indicator[39m
[31m+ Sandbox type and trust indicator[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m [✓][22m
[2m model-name[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- Current model identifier[39m
[31m+ Current model identifier[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m [✓][22m
[2m quota[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- Remaining usage on daily limit (not shown when unavailable)[39m
[31m+ Remaining usage on daily limit (not shown when unavailable)[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- [ ][39m
[31m+ [ ][39m
[2m context-used[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- Percentage of context window used[39m
[31m+ Percentage of context window used[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- [ ][39m
[31m+ [ ][39m
[2m memory-usage[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- Memory used by the application[39m
[31m+ Memory used by the application[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- [ ][39m
[31m+ [ ][39m
[2m session-id[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- Unique identifier for the current session[39m
[31m+ Unique identifier for the current session[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- [ ][39m
[31m+ [ ][39m
[2m auth[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- Current authentication info[39m
[31m+ Current authentication info[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- [ ][39m
[31m+ [ ][39m
[2m code-changes[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- Lines added/removed in the session (not shown when zero)[39m
[31m+ Lines added/removed in the session (not shown when zero)[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- [ ][39m
[31m+ [ ][39m
[2m token-count[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- Total tokens used in the session (not shown when zero)[39m
[31m+ Total tokens used in the session (not shown when zero)[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m [✓][22m
[2m Show footer labels[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Reset to default footer[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- Enter to select · ↑/↓ to navigate · ←/→ to reorder · Esc to close[39m
[31m+ Enter to select · ↑/↓ to navigate · ←/→ to reorder · Esc to close[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- ┌────────────────────────────────────────────────────────────────────────────────────────────┐[39m
[31m+ ┌────────────────────────────────────────────────────────────────────────────────────────────┐[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Preview:[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- [39m
[31m+ [39m
[2m workspace (/directory)[22m
[32m- branch[39m
[31m+ branch[39m
[32m- sandbox[39m
[31m+ sandbox[39m
[32m- /model[39m
[31m+ /model[39m
[32m- /stats[39m
[31m+ /stats[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- [39m
[31m+ [39m
[2m ~/project/path[22m
[32m- [39m
[31m+ [39m
[2m main[22m
[2m docker[22m
[2m gemini-2.5-pro[22m
[2m 97%[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- └────────────────────────────────────────────────────────────────────────────────────────────┘[39m
[31m+ └────────────────────────────────────────────────────────────────────────────────────────────┘[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[79/292]⎯
FAIL src/ui/components/FooterConfigDialog.test.tsx > > toggles an item when enter is pressed
AssertionError: expected '╭────────────────────────────────────…' to contain '[ ] workspace'
[32m- Expected[39m
[31m+ Received[39m
[32m- [ ] workspace[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ Configure Footer │[39m
[31m+ │ │[39m
[31m+ │ Select which items to display in the footer. │[39m
[31m+ │ │[39m
[31m+ │ > [ │[39m
[31m+ │ w │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ k │[39m
[31m+ │ s │[39m
[31m+ │ p │[39m
[31m+ │ a │[39m
[31m+ │ c │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ C │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ w │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ k │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ d │[39m
[31m+ │ i │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ [ │[39m
[31m+ │ g │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ - │[39m
[31m+ │ b │[39m
[31m+ │ r │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ │[39m
[31m+ │ C │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ g │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ b │[39m
[31m+ │ r │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ n │[39m
[31m+ │ a │[39m
[31m+ │ m │[39m
[31m+ │ e │[39m
[31m+ │ ( │[39m
[31m+ │ n │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ o │[39m
[31m+ │ w │[39m
[31m+ │ n │[39m
[31m+ │ w │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ a │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ i │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ [ │[39m
[31m+ │ s │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ b │[39m
[31m+ │ o │[39m
[31m+ │ x │[39m
[31m+ │ │[39m
[31m+ │ S │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ b │[39m
[31m+ │ o │[39m
[31m+ │ x │[39m
[31m+ │ t │[39m
[31m+ │ y │[39m
[31m+ │ p │[39m
[31m+ │ e │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ [ │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ - │[39m
[31m+ │ n │[39m
[31m+ │ a │[39m
[31m+ │ m │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ C │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ i │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ [ │[39m
[31m+ │ q │[39m
[31m+ │ u │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ │[39m
[31m+ │ R │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ a │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ a │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ i │[39m
[31m+ │ l │[39m
[31m+ │ y │[39m
[31m+ │ l │[39m
[31m+ │ i │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ ( │[39m
[31m+ │ n │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ o │[39m
[31m+ │ w │[39m
[31m+ │ n │[39m
[31m+ │ w │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ a │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ i │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ [ │[39m
[31m+ │ c │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ x │[39m
[31m+ │ t │[39m
[31m+ │ - │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ │[39m
[31m+ │ P │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ c │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ o │[39m
[31m+ │ f │[39m
[31m+ │ c │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ x │[39m
[31m+ │ t │[39m
[31m+ │ w │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ o │[39m
[31m+ │ w │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ [ │[39m
[31m+ │ m │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ - │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ a │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ M │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ b │[39m
[31m+ │ y │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ a │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ l │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ [ │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ s │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ - │[39m
[31m+ │ i │[39m
[31m+ │ d │[39m
[31m+ │ │[39m
[31m+ │ U │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ q │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ i │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ s │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ [ │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ │[39m
[31m+ │ C │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ [ │[39m
[31m+ │ c │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ - │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ L │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ a │[39m
[31m+ │ d │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ / │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ s │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ ( │[39m
[31m+ │ n │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ o │[39m
[31m+ │ w │[39m
[31m+ │ n │[39m
[31m+ │ w │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ z │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ ) │[39m
[31m+ │ [ │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ k │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ - │[39m
[31m+ │ c │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ │[39m
[31m+ │ T │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ k │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ s │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ ( │[39m
[31m+ │ n │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ o │[39m
[31m+ │ w │[39m
[31m+ │ n │[39m
[31m+ │ w │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ z │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ ) │[39m
[31m+ │ [ │[39m
[31m+ │ S │[39m
[31m+ │ h │[39m
[31m+ │ o │[39m
[31m+ │ w │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ R │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ │[39m
[31m+ │ Enter to select · ↑/↓ to navigate · ←/→ to reorder · Esc to close │[39m
[31m+ │ │[39m
[31m+ │ ┌────────────────────────────────────────────────────────────────────────────────────────────┐ │[39m
[31m+ │ │ Preview: │ │[39m
[31m+ │ │ branch sandbox /model /stats │ │[39m
[31m+ │ │ main docker gemini-2.5-pro 97% │ │[39m
[31m+ │ └────────────────────────────────────────────────────────────────────────────────────────────┘ │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/FooterConfigDialog.test.tsx:49:27
47|
48| await waitFor(() => {
49| expect(lastFrame()).toContain('[ ] workspace');
| ^
50| });
51|
❯ waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/FooterConfigDialog.test.tsx:48:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[80/292]⎯
FAIL src/ui/components/FooterConfigDialog.test.tsx > > reorders items with arrow keys
AssertionError: expected -1 to be greater than -1
❯ src/ui/components/FooterConfigDialog.test.tsx:72:20
70| const cwdIdx = output.indexOf('] workspace');
71| const branchIdx = output.indexOf('] git-branch');
72| expect(cwdIdx).toBeGreaterThan(-1);
| ^
73| expect(branchIdx).toBeGreaterThan(-1);
74| expect(cwdIdx).toBeLessThan(branchIdx);
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[81/292]⎯
FAIL src/ui/components/FooterConfigDialog.test.tsx > > highlights the active item in the preview
AssertionError: expected '╭────────────────────────────────────…' to match /> \[ \] code-changes/
[32m- Expected:[39m
/> \[ \] code-changes/
[31m+ Received:[39m
"╭──────────────────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ Configure Footer │
│ │
│ Select which items to display in the footer. │
│ │
│ [ │
│ w │
│ o │
│ r │
│ k │
│ s │
│ p │
│ a │
│ c │
│ e │
│ │
│ C │
│ u │
│ r │
│ r │
│ e │
│ n │
│ t │
│ w │
│ o │
│ r │
│ k │
│ i │
│ n │
│ g │
│ d │
│ i │
│ r │
│ e │
│ c │
│ t │
│ o │
│ r │
│ y │
│ [ │
│ g │
│ i │
│ t │
│ - │
│ b │
│ r │
│ a │
│ n │
│ c │
│ h │
│ │
│ C │
│ u │
│ r │
│ r │
│ e │
│ n │
│ t │
│ g │
│ i │
│ t │
│ b │
│ r │
│ a │
│ n │
│ c │
│ h │
│ n │
│ a │
│ m │
│ e │
│ ( │
│ n │
│ o │
│ t │
│ s │
│ h │
│ o │
│ w │
│ n │
│ w │
│ h │
│ e │
│ n │
│ u │
│ n │
│ a │
│ v │
│ a │
│ i │
│ l │
│ a │
│ b │
│ l │
│ e │
│ ) │
│ [ │
│ s │
│ a │
│ n │
│ d │
│ b │
│ o │
│ x │
│ │
│ S │
│ a │
│ n │
│ d │
│ b │
│ o │
│ x │
│ t │
│ y │
│ p │
│ e │
│ a │
│ n │
│ d │
│ t │
│ r │
│ u │
│ s │
│ t │
│ i │
│ n │
│ d │
│ i │
│ c │
│ a │
│ t │
│ o │
│ r │
│ [ │
│ m │
│ o │
│ d │
│ e │
│ l │
│ - │
│ n │
│ a │
│ m │
│ e │
│ │
│ C │
│ u │
│ r │
│ r │
│ e │
│ n │
│ t │
│ m │
│ o │
│ d │
│ e │
│ l │
│ i │
│ d │
│ e │
│ n │
│ t │
│ i │
│ f │
│ i │
│ e │
│ r │
│ >[ │
│ q │
│ u │
│ o │
│ t │
│ a │
│ │
│ R │
│ e │
│ m │
│ a │
│ i │
│ n │
│ i │
│ n │
│ g │
│ u │
│ s │
│ a │
│ g │
│ e │
│ o │
│ n │
│ d │
│ a │
│ i │
│ l │
│ y │
│ l │
│ i │
│ m │
│ i │
│ t │
│ ( │
│ n │
│ o │
│ t │
│ s │
│ h │
│ o │
│ w │
│ n │
│ w │
│ h │
│ e │
│ n │
│ u │
│ n │
│ a │
│ v │
│ a │
│ i │
│ l │
│ a │
│ b │
│ l │
│ e │
│ ) │
│ [ │
│ c │
│ o │
│ n │
│ t │
│ e │
│ x │
│ t │
│ - │
│ u │
│ s │
│ e │
│ d │
│ │
│ P │
│ e │
│ r │
│ c │
│ e │
│ n │
│ t │
│ a │
│ g │
│ e │
│ o │
│ f │
│ c │
│ o │
│ n │
│ t │
│ e │
│ x │
│ t │
│ w │
│ i │
│ n │
│ d │
│ o │
│ w │
│ u │
│ s │
│ e │
│ d │
│ [ │
│ m │
│ e │
│ m │
│ o │
│ r │
│ y │
│ - │
│ u │
│ s │
│ a │
│ g │
│ e │
│ │
│ M │
│ e │
│ m │
│ o │
│ r │
│ y │
│ u │
│ s │
│ e │
│ d │
│ b │
│ y │
│ t │
│ h │
│ e │
│ a │
│ p │
│ p │
│ l │
│ i │
│ c │
│ a │
│ t │
│ i │
│ o │
│ n │
│ [ │
│ s │
│ e │
│ s │
│ s │
│ i │
│ o │
│ n │
│ - │
│ i │
│ d │
│ │
│ U │
│ n │
│ i │
│ q │
│ u │
│ e │
│ i │
│ d │
│ e │
│ n │
│ t │
│ i │
│ f │
│ i │
│ e │
│ r │
│ f │
│ o │
│ r │
│ t │
│ h │
│ e │
│ c │
│ u │
│ r │
│ r │
│ e │
│ n │
│ t │
│ s │
│ e │
│ s │
│ s │
│ i │
│ o │
│ n │
│ [ │
│ a │
│ u │
│ t │
│ h │
│ │
│ C │
│ u │
│ r │
│ r │
│ e │
│ n │
│ t │
│ a │
│ u │
│ t │
│ h │
│ e │
│ n │
│ t │
│ i │
│ c │
│ a │
│ t │
│ i │
│ o │
│ n │
│ i │
│ n │
│ f │
│ o │
│ [ │
│ c │
│ o │
│ d │
│ e │
│ - │
│ c │
│ h │
│ a │
│ n │
│ g │
│ e │
│ s │
│ │
│ L │
│ i │
│ n │
│ e │
│ s │
│ a │
│ d │
│ d │
│ e │
│ d │
│ / │
│ r │
│ e │
│ m │
│ o │
│ v │
│ e │
│ d │
│ i │
│ n │
│ t │
│ h │
│ e │
│ s │
│ e │
│ s │
│ s │
│ i │
│ o │
│ n │
│ ( │
│ n │
│ o │
│ t │
│ s │
│ h │
│ o │
│ w │
│ n │
│ w │
│ h │
│ e │
│ n │
│ z │
│ e │
│ r │
│ o │
│ ) │
│ [ │
│ t │
│ o │
│ k │
│ e │
│ n │
│ - │
│ c │
│ o │
│ u │
│ n │
│ t │
│ │
│ T │
│ o │
│ t │
│ a │
│ l │
│ t │
│ o │
│ k │
│ e │
│ n │
│ s │
│ u │
│ s │
│ e │
│ d │
│ i │
│ n │
│ t │
│ h │
│ e │
│ s │
│ e │
│ s │
│ s │
│ i │
│ o │
│ n │
│ ( │
│ n │
│ o │
│ t │
│ s │
│ h │
│ o │
│ w │
│ n │
│ w │
│ h │
│ e │
│ n │
│ z │
│ e │
│ r │
│ o │
│ ) │
│ [ │
│ S │
│ h │
│ o │
│ w │
│ f │
│ o │
│ o │
│ t │
│ e │
│ r │
│ l │
│ a │
│ b │
│ e │
│ l │
│ s │
│ R │
│ e │
│ s │
│ e │
│ t │
│ t │
│ o │
│ d │
│ e │
│ f │
│ a │
│ u │
│ l │
│ t │
│ f │
│ o │
│ o │
│ t │
│ e │
│ r │
│ │
│ Enter to select · ↑/↓ to navigate · ←/→ to reorder · Esc to close │
│ │
│ ┌────────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ Preview: │ │
│ │ workspace (/directory) branch sandbox /model /stats │ │
│ │ ~/project/path main docker gemini-2.5-pro 97% │ │
│ └────────────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
"
❯ src/ui/components/FooterConfigDialog.test.tsx:127:27
125| await waitFor(() => {
126| // The selected indicator should be next to 'code-changes'
127| expect(lastFrame()).toMatch(/> \[ \] code-changes/);
| ^
128| });
129|
❯ waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/FooterConfigDialog.test.tsx:125:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[82/292]⎯
FAIL src/ui/components/FooterConfigDialog.test.tsx > > shows an empty preview when all items are deselected
AssertionError: expected '╭────────────────────────────────────…' not to contain 'docker'
[32m- Expected[39m
[31m+ Received[39m
[32m- docker[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ Configure Footer │[39m
[31m+ │ │[39m
[31m+ │ Select which items to display in the footer. │[39m
[31m+ │ │[39m
[31m+ │ [ │[39m
[31m+ │ w │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ k │[39m
[31m+ │ s │[39m
[31m+ │ p │[39m
[31m+ │ a │[39m
[31m+ │ c │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ C │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ w │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ k │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ d │[39m
[31m+ │ i │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ [ │[39m
[31m+ │ g │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ - │[39m
[31m+ │ b │[39m
[31m+ │ r │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ │[39m
[31m+ │ C │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ g │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ b │[39m
[31m+ │ r │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ n │[39m
[31m+ │ a │[39m
[31m+ │ m │[39m
[31m+ │ e │[39m
[31m+ │ ( │[39m
[31m+ │ n │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ o │[39m
[31m+ │ w │[39m
[31m+ │ n │[39m
[31m+ │ w │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ a │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ i │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ >[ │[39m
[31m+ │ s │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ b │[39m
[31m+ │ o │[39m
[31m+ │ x │[39m
[31m+ │ │[39m
[31m+ │ S │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ b │[39m
[31m+ │ o │[39m
[31m+ │ x │[39m
[31m+ │ t │[39m
[31m+ │ y │[39m
[31m+ │ p │[39m
[31m+ │ e │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ [ │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ - │[39m
[31m+ │ n │[39m
[31m+ │ a │[39m
[31m+ │ m │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ C │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ i │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ [ │[39m
[31m+ │ q │[39m
[31m+ │ u │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ │[39m
[31m+ │ R │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ a │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ a │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ i │[39m
[31m+ │ l │[39m
[31m+ │ y │[39m
[31m+ │ l │[39m
[31m+ │ i │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ ( │[39m
[31m+ │ n │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ o │[39m
[31m+ │ w │[39m
[31m+ │ n │[39m
[31m+ │ w │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ a │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ i │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ [ │[39m
[31m+ │ c │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ x │[39m
[31m+ │ t │[39m
[31m+ │ - │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ │[39m
[31m+ │ P │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ c │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ o │[39m
[31m+ │ f │[39m
[31m+ │ c │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ x │[39m
[31m+ │ t │[39m
[31m+ │ w │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ o │[39m
[31m+ │ w │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ [ │[39m
[31m+ │ m │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ - │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ a │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ M │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ b │[39m
[31m+ │ y │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ a │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ l │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ [ │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ s │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ - │[39m
[31m+ │ i │[39m
[31m+ │ d │[39m
[31m+ │ │[39m
[31m+ │ U │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ q │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ i │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ s │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ [ │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ │[39m
[31m+ │ C │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ [ │[39m
[31m+ │ c │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ - │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ L │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ a │[39m
[31m+ │ d │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ / │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ s │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ ( │[39m
[31m+ │ n │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ o │[39m
[31m+ │ w │[39m
[31m+ │ n │[39m
[31m+ │ w │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ z │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ ) │[39m
[31m+ │ [ │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ k │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ - │[39m
[31m+ │ c │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ │[39m
[31m+ │ T │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ k │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ s │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ ( │[39m
[31m+ │ n │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ o │[39m
[31m+ │ w │[39m
[31m+ │ n │[39m
[31m+ │ w │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ z │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ ) │[39m
[31m+ │ [ │[39m
[31m+ │ S │[39m
[31m+ │ h │[39m
[31m+ │ o │[39m
[31m+ │ w │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ R │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ │[39m
[31m+ │ Enter to select · ↑/↓ to navigate · ←/→ to reorder · Esc to close │[39m
[31m+ │ │[39m
[31m+ │ ┌────────────────────────────────────────────────────────────────────────────────────────────┐ │[39m
[31m+ │ │ Preview: │ │[39m
[31m+ │ │ sandbox/model /stats │ │[39m
[31m+ │ │ docker gemini-2.5-pro97% │ │[39m
[31m+ │ └────────────────────────────────────────────────────────────────────────────────────────────┘ │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ timeout src/ui/components/FooterConfigDialog.test.tsx:166:28
164| expect(output).toContain('Preview:');
165| expect(output).not.toContain('~/project/path');
166| expect(output).not.toContain('docker');
| ^
167| },
168| { timeout: 2000 },
❯ waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/FooterConfigDialog.test.tsx:161:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[83/292]⎯
FAIL src/ui/components/FooterConfigDialog.test.tsx > > moves item correctly after trying to move up at the top
AssertionError: expected '╭────────────────────────────────────…' to contain '] git-branch'
[32m- Expected[39m
[31m+ Received[39m
[32m- ] git-branch[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ Configure Footer │[39m
[31m+ │ │[39m
[31m+ │ Select which items to display in the footer. │[39m
[31m+ │ │[39m
[31m+ │ >[ │[39m
[31m+ │ w │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ k │[39m
[31m+ │ s │[39m
[31m+ │ p │[39m
[31m+ │ a │[39m
[31m+ │ c │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ C │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ w │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ k │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ d │[39m
[31m+ │ i │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ [ │[39m
[31m+ │ g │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ - │[39m
[31m+ │ b │[39m
[31m+ │ r │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ │[39m
[31m+ │ C │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ g │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ b │[39m
[31m+ │ r │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ n │[39m
[31m+ │ a │[39m
[31m+ │ m │[39m
[31m+ │ e │[39m
[31m+ │ ( │[39m
[31m+ │ n │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ o │[39m
[31m+ │ w │[39m
[31m+ │ n │[39m
[31m+ │ w │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ a │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ i │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ [ │[39m
[31m+ │ s │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ b │[39m
[31m+ │ o │[39m
[31m+ │ x │[39m
[31m+ │ │[39m
[31m+ │ S │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ b │[39m
[31m+ │ o │[39m
[31m+ │ x │[39m
[31m+ │ t │[39m
[31m+ │ y │[39m
[31m+ │ p │[39m
[31m+ │ e │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ [ │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ - │[39m
[31m+ │ n │[39m
[31m+ │ a │[39m
[31m+ │ m │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ C │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ i │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ [ │[39m
[31m+ │ q │[39m
[31m+ │ u │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ │[39m
[31m+ │ R │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ a │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ a │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ i │[39m
[31m+ │ l │[39m
[31m+ │ y │[39m
[31m+ │ l │[39m
[31m+ │ i │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ ( │[39m
[31m+ │ n │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ o │[39m
[31m+ │ w │[39m
[31m+ │ n │[39m
[31m+ │ w │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ a │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ i │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ [ │[39m
[31m+ │ c │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ x │[39m
[31m+ │ t │[39m
[31m+ │ - │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ │[39m
[31m+ │ P │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ c │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ o │[39m
[31m+ │ f │[39m
[31m+ │ c │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ x │[39m
[31m+ │ t │[39m
[31m+ │ w │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ o │[39m
[31m+ │ w │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ [ │[39m
[31m+ │ m │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ - │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ a │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ M │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ b │[39m
[31m+ │ y │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ a │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ l │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ [ │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ s │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ - │[39m
[31m+ │ i │[39m
[31m+ │ d │[39m
[31m+ │ │[39m
[31m+ │ U │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ q │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ i │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ s │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ [ │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ │[39m
[31m+ │ C │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ [ │[39m
[31m+ │ c │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ - │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ L │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ a │[39m
[31m+ │ d │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ / │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ s │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ ( │[39m
[31m+ │ n │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ o │[39m
[31m+ │ w │[39m
[31m+ │ n │[39m
[31m+ │ w │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ z │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ ) │[39m
[31m+ │ [ │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ k │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ - │[39m
[31m+ │ c │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ │[39m
[31m+ │ T │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ k │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ s │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ ( │[39m
[31m+ │ n │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ o │[39m
[31m+ │ w │[39m
[31m+ │ n │[39m
[31m+ │ w │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ z │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ ) │[39m
[31m+ │ [ │[39m
[31m+ │ S │[39m
[31m+ │ h │[39m
[31m+ │ o │[39m
[31m+ │ w │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ R │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ │[39m
[31m+ │ Enter to select · ↑/↓ to navigate · ←/→ to reorder · Esc to close │[39m
[31m+ │ │[39m
[31m+ │ ┌────────────────────────────────────────────────────────────────────────────────────────────┐ │[39m
[31m+ │ │ Preview: │ │[39m
[31m+ │ │ workspace (/directory)branchsandbox/model /stats │ │[39m
[31m+ │ │ ~/project/path main docker gemini-2.5-pro97% │ │[39m
[31m+ │ └────────────────────────────────────────────────────────────────────────────────────────────┘ │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/FooterConfigDialog.test.tsx:182:22
180| await waitFor(() => {
181| const output = lastFrame();
182| expect(output).toContain('] git-branch');
| ^
183| expect(output).toContain('] workspace');
184| });
❯ waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/FooterConfigDialog.test.tsx:180:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[84/292]⎯
FAIL src/ui/components/FooterConfigDialog.test.tsx > > updates the preview when Show footer labels is toggled off
AssertionError: expected '╭────────────────────────────────────…' to match /> \[✓\] Show footer labels/
[32m- Expected:[39m
/> \[✓\] Show footer labels/
[31m+ Received:[39m
"╭──────────────────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ Configure Footer │
│ │
│ Select which items to display in the footer. │
│ │
│ [ │
│ w │
│ o │
│ r │
│ k │
│ s │
│ p │
│ a │
│ c │
│ e │
│ │
│ C │
│ u │
│ r │
│ r │
│ e │
│ n │
│ t │
│ w │
│ o │
│ r │
│ k │
│ i │
│ n │
│ g │
│ d │
│ i │
│ r │
│ e │
│ c │
│ t │
│ o │
│ r │
│ y │
│ [ │
│ g │
│ i │
│ t │
│ - │
│ b │
│ r │
│ a │
│ n │
│ c │
│ h │
│ │
│ C │
│ u │
│ r │
│ r │
│ e │
│ n │
│ t │
│ g │
│ i │
│ t │
│ b │
│ r │
│ a │
│ n │
│ c │
│ h │
│ n │
│ a │
│ m │
│ e │
│ ( │
│ n │
│ o │
│ t │
│ s │
│ h │
│ o │
│ w │
│ n │
│ w │
│ h │
│ e │
│ n │
│ u │
│ n │
│ a │
│ v │
│ a │
│ i │
│ l │
│ a │
│ b │
│ l │
│ e │
│ ) │
│ [ │
│ s │
│ a │
│ n │
│ d │
│ b │
│ o │
│ x │
│ │
│ S │
│ a │
│ n │
│ d │
│ b │
│ o │
│ x │
│ t │
│ y │
│ p │
│ e │
│ a │
│ n │
│ d │
│ t │
│ r │
│ u │
│ s │
│ t │
│ i │
│ n │
│ d │
│ i │
│ c │
│ a │
│ t │
│ o │
│ r │
│ [ │
│ m │
│ o │
│ d │
│ e │
│ l │
│ - │
│ n │
│ a │
│ m │
│ e │
│ │
│ C │
│ u │
│ r │
│ r │
│ e │
│ n │
│ t │
│ m │
│ o │
│ d │
│ e │
│ l │
│ i │
│ d │
│ e │
│ n │
│ t │
│ i │
│ f │
│ i │
│ e │
│ r │
│ [ │
│ q │
│ u │
│ o │
│ t │
│ a │
│ │
│ R │
│ e │
│ m │
│ a │
│ i │
│ n │
│ i │
│ n │
│ g │
│ u │
│ s │
│ a │
│ g │
│ e │
│ o │
│ n │
│ d │
│ a │
│ i │
│ l │
│ y │
│ l │
│ i │
│ m │
│ i │
│ t │
│ ( │
│ n │
│ o │
│ t │
│ s │
│ h │
│ o │
│ w │
│ n │
│ w │
│ h │
│ e │
│ n │
│ u │
│ n │
│ a │
│ v │
│ a │
│ i │
│ l │
│ a │
│ b │
│ l │
│ e │
│ ) │
│ >[ │
│ c │
│ o │
│ n │
│ t │
│ e │
│ x │
│ t │
│ - │
│ u │
│ s │
│ e │
│ d │
│ │
│ P │
│ e │
│ r │
│ c │
│ e │
│ n │
│ t │
│ a │
│ g │
│ e │
│ o │
│ f │
│ c │
│ o │
│ n │
│ t │
│ e │
│ x │
│ t │
│ w │
│ i │
│ n │
│ d │
│ o │
│ w │
│ u │
│ s │
│ e │
│ d │
│ [ │
│ m │
│ e │
│ m │
│ o │
│ r │
│ y │
│ - │
│ u │
│ s │
│ a │
│ g │
│ e │
│ │
│ M │
│ e │
│ m │
│ o │
│ r │
│ y │
│ u │
│ s │
│ e │
│ d │
│ b │
│ y │
│ t │
│ h │
│ e │
│ a │
│ p │
│ p │
│ l │
│ i │
│ c │
│ a │
│ t │
│ i │
│ o │
│ n │
│ [ │
│ s │
│ e │
│ s │
│ s │
│ i │
│ o │
│ n │
│ - │
│ i │
│ d │
│ │
│ U │
│ n │
│ i │
│ q │
│ u │
│ e │
│ i │
│ d │
│ e │
│ n │
│ t │
│ i │
│ f │
│ i │
│ e │
│ r │
│ f │
│ o │
│ r │
│ t │
│ h │
│ e │
│ c │
│ u │
│ r │
│ r │
│ e │
│ n │
│ t │
│ s │
│ e │
│ s │
│ s │
│ i │
│ o │
│ n │
│ [ │
│ a │
│ u │
│ t │
│ h │
│ │
│ C │
│ u │
│ r │
│ r │
│ e │
│ n │
│ t │
│ a │
│ u │
│ t │
│ h │
│ e │
│ n │
│ t │
│ i │
│ c │
│ a │
│ t │
│ i │
│ o │
│ n │
│ i │
│ n │
│ f │
│ o │
│ [ │
│ c │
│ o │
│ d │
│ e │
│ - │
│ c │
│ h │
│ a │
│ n │
│ g │
│ e │
│ s │
│ │
│ L │
│ i │
│ n │
│ e │
│ s │
│ a │
│ d │
│ d │
│ e │
│ d │
│ / │
│ r │
│ e │
│ m │
│ o │
│ v │
│ e │
│ d │
│ i │
│ n │
│ t │
│ h │
│ e │
│ s │
│ e │
│ s │
│ s │
│ i │
│ o │
│ n │
│ ( │
│ n │
│ o │
│ t │
│ s │
│ h │
│ o │
│ w │
│ n │
│ w │
│ h │
│ e │
│ n │
│ z │
│ e │
│ r │
│ o │
│ ) │
│ [ │
│ t │
│ o │
│ k │
│ e │
│ n │
│ - │
│ c │
│ o │
│ u │
│ n │
│ t │
│ │
│ T │
│ o │
│ t │
│ a │
│ l │
│ t │
│ o │
│ k │
│ e │
│ n │
│ s │
│ u │
│ s │
│ e │
│ d │
│ i │
│ n │
│ t │
│ h │
│ e │
│ s │
│ e │
│ s │
│ s │
│ i │
│ o │
│ n │
│ ( │
│ n │
│ o │
│ t │
│ s │
│ h │
│ o │
│ w │
│ n │
│ w │
│ h │
│ e │
│ n │
│ z │
│ e │
│ r │
│ o │
│ ) │
│ [ │
│ S │
│ h │
│ o │
│ w │
│ f │
│ o │
│ o │
│ t │
│ e │
│ r │
│ l │
│ a │
│ b │
│ e │
│ l │
│ s │
│ R │
│ e │
│ s │
│ e │
│ t │
│ t │
│ o │
│ d │
│ e │
│ f │
│ a │
│ u │
│ l │
│ t │
│ f │
│ o │
│ o │
│ t │
│ e │
│ r │
│ │
│ Enter to select · ↑/↓ to navigate · ←/→ to reorder · Esc to close │
│ │
│ ┌────────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ Preview: │ │
│ │ workspace (/directory)branchsandbox/model /stats │ │
│ │ ~/project/path main docker gemini-2.5-pro97% │ │
│ └────────────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
"
❯ src/ui/components/FooterConfigDialog.test.tsx:232:27
230|
231| await waitFor(() => {
232| expect(lastFrame()).toMatch(/> \[✓\] Show footer labels/);
| ^
233| });
234|
❯ waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/FooterConfigDialog.test.tsx:231:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[85/292]⎯
FAIL src/ui/components/HistoryItemDisplay.test.tsx > > should escape ANSI codes in text content
AssertionError: expected '▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀…' to contain 'Hello, \u001b[31mred\u001b[0m world!'
[32m- Expected[39m
[31m+ Received[39m
[32m- Hello, \u001b[31mred\u001b[0m world![39m
[31m+ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀[39m
[31m+ > H [39m
[31m+ e [39m
[31m+ l [39m
[31m+ l [39m
[31m+ o [39m
[31m+ , [39m
[31m+ \ [39m
[31m+ u [39m
[31m+ 0 [39m
[31m+ 0 [39m
[31m+ 1 [39m
[31m+ b [39m
[31m+ [ [39m
[31m+ 3 [39m
[31m+ 1 [39m
[31m+ m [39m
[31m+ r [39m
[31m+ e [39m
[31m+ d [39m
[31m+ \ [39m
[31m+ u [39m
[31m+ 0 [39m
[31m+ 0 [39m
[31m+ 1 [39m
[31m+ b [39m
[31m+ [ [39m
[31m+ 0 [39m
[31m+ m [39m
[31m+ w [39m
[31m+ o [39m
[31m+ r [39m
[31m+ l [39m
[31m+ d [39m
[31m+ ! [39m
[31m+ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[39m
[31m+[39m
❯ src/ui/components/HistoryItemDisplay.test.tsx:217:25
215|
216| // The ANSI codes should be escaped for display.
217| expect(lastFrame()).toContain('Hello, \\u001b[31mred\\u001b[0m wor…
| ^
218| // The raw ANSI codes should not be present.
219| expect(lastFrame()).not.toContain('Hello, \u001b[31mred\u001b[0m w…
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[86/292]⎯
FAIL src/ui/components/HistoryItemDisplay.test.tsx > > gemini items (alternateBuffer=false) > should render a full gemini item when using availableTerminalHeightGemini
Error: Snapshot ` > gemini items (alternateBuffer=false) > should render a full gemini item when using availableTerminalHeightGemini 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -1,15 +1,15 @@[39m
[2m "✦ Example code block:[22m
[32m- 1[7m [27mLine 1[39m
[31m+ 1Line 1[39m
[32m- 2[7m [27mLine 2[39m
[31m+ 2Line 2[39m
[32m- 3[7m [27mLine 3[39m
[31m+ 3Line 3[39m
[32m- 4[7m [27mLine 4[39m
[31m+ 4Line 4[39m
[32m- 5[7m [27mLine 5[39m
[31m+ 5Line 5[39m
[32m- 6[7m [27mLine 6[39m
[31m+ 6Line 6[39m
[32m- 7[7m [27mLine 7[39m
[31m+ 7Line 7[39m
[32m- 8[7m [27mLine 8[39m
[31m+ 8Line 8[39m
[32m- 9[7m [27mLine 9[39m
[31m+ 9Line 9[39m
[2m 10 Line 10[22m
[2m 11 Line 11[22m
[2m 12 Line 12[22m
[2m 13 Line 13[22m
[2m 14 Line 14[22m
❯ src/ui/components/HistoryItemDisplay.test.tsx:366:29
364| },
365| );
366| expect(lastFrame()).toMatchSnapshot();
| ^
367| unmount();
368| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[87/292]⎯
FAIL src/ui/components/HistoryItemDisplay.test.tsx > > gemini items (alternateBuffer=false) > should render a full gemini_content item when using availableTerminalHeightGemini
Error: Snapshot ` > gemini items (alternateBuffer=false) > should render a full gemini_content item when using availableTerminalHeightGemini 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -1,15 +1,15 @@[39m
[2m " Example code block:[22m
[32m- 1[7m [27mLine 1[39m
[31m+ 1Line 1[39m
[32m- 2[7m [27mLine 2[39m
[31m+ 2Line 2[39m
[32m- 3[7m [27mLine 3[39m
[31m+ 3Line 3[39m
[32m- 4[7m [27mLine 4[39m
[31m+ 4Line 4[39m
[32m- 5[7m [27mLine 5[39m
[31m+ 5Line 5[39m
[32m- 6[7m [27mLine 6[39m
[31m+ 6Line 6[39m
[32m- 7[7m [27mLine 7[39m
[31m+ 7Line 7[39m
[32m- 8[7m [27mLine 8[39m
[31m+ 8Line 8[39m
[32m- 9[7m [27mLine 9[39m
[31m+ 9Line 9[39m
[2m 10 Line 10[22m
[2m 11 Line 11[22m
[2m 12 Line 12[22m
[2m 13 Line 13[22m
[2m 14 Line 14[22m
❯ src/ui/components/HistoryItemDisplay.test.tsx:411:29
409| },
410| );
411| expect(lastFrame()).toMatchSnapshot();
| ^
412| unmount();
413| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[88/292]⎯
FAIL src/ui/components/HookStatusDisplay.test.tsx > > matches SVG snapshot for single hook
Error: Snapshot ` > matches SVG snapshot for single hook 2` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,8 +2,8 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- Executing Hook: test-hook[39m
[31m+ Executing Hook: test-hook[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[89/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -6,10 +6,10 @@[39m
[2m [22m
[2m ────────────────────────────────────────────────────────────────────────────────────────────────────[22m
[2m │[22m
[2m > [22m
[2m [22m
[32m- Type your message or @path/to/file[39m
[31m+ Type your message or @path/to/file[39m
[2m │[22m
[2m ────────────────────────────────────────────────────────────────────────────────────────────────────[22m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[90/292]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > scrolling large inputs > should correctly render scrolling down and up for large inputs
AssertionError: expected '▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀…' to contain 'testline 49'
[32m- Expected[39m
[31m+ Received[39m
[32m- testline 49[39m
[31m+ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀[39m
[31m+ > testline 29 [39m
[31m+ testline 30 [39m
[31m+ testline 31 [39m
[31m+ testline 32 [39m
[31m+ testline 33 [39m
[31m+ testline 34 [39m
[31m+ testline 35 [39m
[31m+ testline 36 [39m
[31m+ testline 37 [39m
[31m+ testline 38 [39m
[31m+ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[39m
[31m+[39m
❯ src/ui/components/InputPrompt.test.tsx:2502:36
2500|
2501| await waitFor(() => {
2502| expect(stdout.lastFrame()).toContain('testline 49');
| ^
2503| expect(stdout.lastFrame()).not.toContain('testline 0');
2504| });
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/InputPrompt.test.tsx:2501:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[91/292]⎯
FAIL src/ui/components/InputPrompt.test.tsx > InputPrompt > mouse interaction > should collapse expanded paste on double-click after the end of the line
AssertionError: expected '▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀…' to contain 'line1'
[32m- Expected[39m
[31m+ Received[39m
[32m- line1[39m
[31m+ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀[39m
[31m+ > [39m
[31m+ [39m
[31m+ [39m
[31m+ [39m
[31m+ [39m
[31m+ [39m
[31m+ [39m
[31m+ [39m
[31m+ [39m
[31m+ [39m
[31m+ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[39m
[31m+[39m
❯ src/ui/components/InputPrompt.test.tsx:3973:36
3971| // Verify initially expanded
3972| await waitFor(() => {
3973| expect(stdout.lastFrame()).toContain('line1');
| ^
3974| });
3975|
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/InputPrompt.test.tsx:3972:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[92/292]⎯
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 2` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,17 +2,17 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- [39m
[31m+ [39m
[2m ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀[22m
[32m- [39m
[31m+ [39m
[32m- [39m
[31m+ [39m
[2m > [22m
[32m- [39m
[31m+ [39m
[32m- Type your message or @path/to/file[39m
[31m+ Type your message or @path/to/file[39m
[32m- [39m
[31m+ [39m
[32m- [39m
[31m+ [39m
[2m ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[22m
[2m [22m
[2m [22m
❯ 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:4214:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[93/292]⎯
FAIL src/ui/components/LoopDetectionConfirmation.test.tsx > LoopDetectionConfirmation > contains the expected options
AssertionError: expected ' ╭╮\n ││?\n ││\n ││T\n ││h\n ││i\n ││…' to contain 'A potential loop was detected'
[32m- Expected[39m
[31m+ Received[39m
[32m- A potential loop was detected[39m
[31m+ ╭╮[39m
[31m+ ││?[39m
[31m+ ││[39m
[31m+ ││T[39m
[31m+ ││h[39m
[31m+ ││i[39m
[31m+ ││s[39m
[31m+ ││c[39m
[31m+ ││a[39m
[31m+ ││n[39m
[31m+ ││h[39m
[31m+ ││a[39m
[31m+ ││p[39m
[31m+ ││p[39m
[31m+ ││e[39m
[31m+ ││n[39m
[31m+ ││d[39m
[31m+ ││u[39m
[31m+ ││e[39m
[31m+ ││t[39m
[31m+ ││o[39m
[31m+ ││r[39m
[31m+ ││e[39m
[31m+ ││p[39m
[31m+ ││e[39m
[31m+ ││t[39m
[31m+ ││i[39m
[31m+ ││t[39m
[31m+ ││i[39m
[31m+ ││v[39m
[31m+ ││e[39m
[31m+ ││t[39m
[31m+ ││o[39m
[31m+ ││o[39m
[31m+ ││l[39m
[31m+ ││c[39m
[31m+ ││a[39m
[31m+ ││l[39m
[31m+ ││l[39m
[31m+ ││s[39m
[31m+ ││o[39m
[31m+ ││r[39m
[31m+ ││o[39m
[31m+ ││t[39m
[31m+ ││h[39m
[31m+ ││e[39m
[31m+ ││r[39m
[31m+ ││m[39m
[31m+ ││o[39m
[31m+ ││d[39m
[31m+ ││e[39m
[31m+ ││l[39m
[31m+ ││b[39m
[31m+ ││e[39m
[31m+ ││h[39m
[31m+ ││a[39m
[31m+ ││v[39m
[31m+ ││i[39m
[31m+ ││o[39m
[31m+ ││r[39m
[31m+ ││.[39m
[31m+ ││D[39m
[31m+ ││o[39m
[31m+ ││y[39m
[31m+ ││o[39m
[31m+ ││u[39m
[31m+ ││w[39m
[31m+ ││a[39m
[31m+ ││n[39m
[31m+ ││t[39m
[31m+ ││t[39m
[31m+ ││o[39m
[31m+ ││k[39m
[31m+ ││e[39m
[31m+ ││e[39m
[31m+ ││p[39m
[31m+ ││l[39m
[31m+ ││o[39m
[31m+ ││o[39m
[31m+ ││p[39m
[31m+ ││d[39m
[31m+ ││e[39m
[31m+ ││t[39m
[31m+ ││e[39m
[31m+ ││c[39m
[31m+ ││t[39m
[31m+ ││i[39m
[31m+ ││o[39m
[31m+ ││n[39m
[31m+ ││e[39m
[31m+ ││n[39m
[31m+ ││a[39m
[31m+ ││b[39m
[31m+ ││l[39m
[31m+ ││e[39m
[31m+ ││d[39m
[31m+ ││o[39m
[31m+ ││r[39m
[31m+ ││d[39m
[31m+ ││i[39m
[31m+ ││s[39m
[31m+ ││a[39m
[31m+ ││b[39m
[31m+ ││l[39m
[31m+ ││e[39m
[31m+ ││i[39m
[31m+ ││t[39m
[31m+ ││f[39m
[31m+ ││o[39m
[31m+ ││r[39m
[31m+ ││t[39m
[31m+ ││h[39m
[31m+ ││i[39m
[31m+ ││s[39m
[31m+ ││s[39m
[31m+ ││e[39m
[31m+ ││s[39m
[31m+ ││s[39m
[31m+ ││i[39m
[31m+ ││o[39m
[31m+ ││n[39m
[31m+ ││?[39m
[31m+ ││[39m
[31m+ ││● 1.[39m
[31m+ ││ 2.[39m
[31m+ ╰╯[39m
[31m+[39m
❯ src/ui/components/LoopDetectionConfirmation.test.tsx:30:20
28| const output = lastFrame();
29|
30| expect(output).toContain('A potential loop was detected');
| ^
31| expect(output).toContain('Keep loop detection enabled (esc)');
32| expect(output).toContain('Disable loop detection for this session'…
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[94/292]⎯
FAIL src/ui/components/MainContent.test.tsx > MainContent > renders minimal header in minimal mode (alternate buffer)
AssertionError: expected 'ScrollableList\nAppHeader(minimal)\n▀…' to contain 'Hello'
[32m- Expected[39m
[31m+ Received[39m
[32m- Hello[39m
[31m+ ScrollableList[39m
[31m+ AppHeader(minimal)[39m
[31m+ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀[39m
[31m+ > H [39m
[31m+ e [39m
[31m+ l [39m
[31m+ l [39m
[31m+ o [39m
[31m+ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[39m
[31m+ ✦ Hi there[39m
[31m+[39m
❯ src/ui/components/MainContent.test.tsx:398:45
396| } as Partial,
397| });
398| await waitFor(() => expect(lastFrame()).toContain('Hello'));
| ^
399| const output = lastFrame();
400|
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/MainContent.test.tsx:398:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[95/292]⎯
FAIL src/ui/components/MainContent.test.tsx > MainContent > does not constrain height in alternate buffer mode
AssertionError: expected 'ScrollableList\nAppHeader(full)\n▀▀▀▀…' to contain 'Hello'
[32m- Expected[39m
[31m+ Received[39m
[32m- Hello[39m
[31m+ ScrollableList[39m
[31m+ AppHeader(full)[39m
[31m+ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀[39m
[31m+ > H [39m
[31m+ e [39m
[31m+ l [39m
[31m+ l [39m
[31m+ o [39m
[31m+ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[39m
[31m+ ✦ Hi there[39m
[31m+[39m
❯ src/ui/components/MainContent.test.tsx:467:20
465| const output = lastFrame();
466| expect(output).toContain('AppHeader(full)');
467| expect(output).toContain('Hello');
| ^
468| expect(output).toContain('Hi there');
469| unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[96/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -1,9 +1,19 @@[39m
[2m "ScrollableList[22m
[2m AppHeader(full)[22m
[2m ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀[22m
[32m- > U[7mser message[27m [39m
[31m+ > U[7m [27m[39m
[31m+ s [39m
[31m+ e [39m
[31m+ r [39m
[31m+ m [39m
[31m+ e [39m
[31m+ s [39m
[31m+ s [39m
[31m+ a [39m
[31m+ g [39m
[31m+ [7m e [27m [39m
[2m ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[22m
[2m ✦ Gemini response[22m
[2m Gemini response[22m
[2m Gemini response[22m
[2m Gemini response[22m
❯ src/ui/components/MainContent.test.tsx:514:20
512|
513| const output = lastFrame();
514| expect(output).toMatchSnapshot();
| ^
515| unmount();
516| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[97/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -1,8 +1,18 @@[39m
[2m "AppHeader(full)[22m
[2m ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀[22m
[32m- > I[7mnvestigate[27m [39m
[31m+ > I[7m [27m[39m
[31m+ n [39m
[31m+ v [39m
[31m+ e [39m
[31m+ s [39m
[31m+ t [39m
[31m+ i [39m
[31m+ g [39m
[31m+ a [39m
[31m+ t [39m
[31m+ [7m e [27m [39m
[2m ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[22m
[2m ╭──────────────────────────────────────────────────────────────────────────╮[22m
[2m │ ≡ Running Agent... (ctrl+o to collapse) │[22m
[2m │ │[22m
❯ src/ui/components/MainContent.test.tsx:562:25
560| });
561|
562| expect(lastFrame()).toMatchSnapshot();
| ^
563| unmount();
564| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[98/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -1,8 +1,16 @@[39m
[2m "AppHeader(full)[22m
[2m ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀[22m
[32m- > A[7mpply plan[27m [39m
[31m+ > A[7m [27m[39m
[31m+ p [39m
[31m+ p [39m
[31m+ l [39m
[31m+ y [39m
[31m+ p [39m
[31m+ l [39m
[31m+ a [39m
[31m+ [7m n [27m [39m
[2m ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[22m
[2m ╭──────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ Ready to start implementation? │[22m
[2m │ │[22m
❯ 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| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[99/292]⎯
FAIL src/ui/components/MainContent.test.tsx > MainContent > renders a spurious line when a tool group has only hidden tools and borderBottom true
AssertionError: expected 'AppHeader(full)\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀…' to contain 'Apply plan'
[32m- Expected[39m
[31m+ Received[39m
[32m- App[7mly plan[27m[39m
[31m+ App[7mHeader(full)[27m[39m
[31m+ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀[39m
[31m+ > A [39m
[31m+ p [39m
[31m+ p [39m
[31m+ l [39m
[31m+ y [39m
[31m+ p [39m
[31m+ l [39m
[31m+ a [39m
[31m+ n [39m
[31m+ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[39m
[31m+[39m
❯ src/ui/components/MainContent.test.tsx:723:27
721|
722| await waitFor(() => {
723| expect(lastFrame()).toContain('Apply plan');
| ^
724| });
725|
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/MainContent.test.tsx:722:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[100/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -1,9 +1,21 @@[39m
[2m "ScrollableList[22m
[2m AppHeader(full)[22m
[2m ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀[22m
[32m- > P[7mlan a solution[27m [39m
[31m+ > P[7m [27m[39m
[31m+ l [39m
[31m+ a [39m
[31m+ n [39m
[31m+ a [39m
[31m+ s [39m
[31m+ o [39m
[31m+ l [39m
[31m+ u [39m
[31m+ t [39m
[31m+ i [39m
[31m+ o [39m
[31m+ [7m n [27m [39m
[2m ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[22m
[2m Thinking... [22m
[2m │[22m
[2m │ Initial analysis[22m
[2m │ This is a multiple line paragraph for the first thinking message of how the[22m
❯ 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();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[101/292]⎯
FAIL src/ui/components/ModelDialog.test.tsx > > renders the "manual" view initially for users with no pro access and filters Pro models with correct order
AssertionError: expected -1 to be less than -1
❯ src/ui/components/ModelDialog.test.tsx:161:29
159| const flashLiteIdx = output.indexOf(DEFAULT_GEMINI_FLASH_LITE_MODE…
160|
161| expect(flashPreviewIdx).toBeLessThan(flashLitePreviewIdx);
| ^
162| expect(flashLitePreviewIdx).toBeLessThan(flashIdx);
163| expect(flashIdx).toBeLessThan(flashLiteIdx);
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[102/292]⎯
FAIL src/ui/components/ModelDialog.test.tsx > > switches to "manual" view when "Manual" is selected and uses getDisplayString for models
AssertionError: expected '╭────────────────────────────────────…' to contain 'Formatted Pro Model'
[32m- Expected[39m
[31m+ Received[39m
[32m- Formatted Pro Model[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ Select Model │[39m
[31m+ │ │[39m
[31m+ │ ● 1. F │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ m │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ P │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ 2. F │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ m │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ F │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ 3. F │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ m │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ L │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ │[39m
[31m+ │ Remember model for future sessions: false (Press Tab to toggle) │[39m
[31m+ │ > To use a specific Gemini model on startup, use the --model flag. │[39m
[31m+ │ │[39m
[31m+ │ (Press Esc to close) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/ModelDialog.test.tsx:216:22
214| await waitFor(() => {
215| const output = lastFrame();
216| expect(output).toContain('Formatted Pro Model');
| ^
217| expect(output).toContain('Formatted Flash Model');
218| expect(output).toContain('Formatted Lite Model');
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/ModelDialog.test.tsx:214:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[103/292]⎯
FAIL src/ui/components/ModelDialog.test.tsx > > goes back to "main" view on escape in "manual" view
AssertionError: expected '╭────────────────────────────────────…' to contain 'gemini-2.5-pro'
[32m- Expected[39m
[31m+ Received[39m
[32m- gemini-2.5-pro[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ Select Model │[39m
[31m+ │ │[39m
[31m+ │ ● 1. g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ - │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ 2. g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ - │[39m
[31m+ │ f │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ 3. g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ - │[39m
[31m+ │ f │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ - │[39m
[31m+ │ l │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ Remember model for future sessions: false (Press Tab to toggle) │[39m
[31m+ │ > To use a specific Gemini model on startup, use the --model flag. │[39m
[31m+ │ │[39m
[31m+ │ (Press Esc to close) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/ModelDialog.test.tsx:332:27
330|
331| await waitFor(() => {
332| expect(lastFrame()).toContain(DEFAULT_GEMINI_MODEL);
| ^
333| });
334|
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/ModelDialog.test.tsx:331:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[104/292]⎯
FAIL src/ui/components/ModelDialog.test.tsx > > shows the preferred manual model in the main view option using getDisplayString
AssertionError: expected '╭────────────────────────────────────…' to contain 'Manual (My Custom Model Display)'
[32m- Expected[39m
[31m+ Received[39m
[32m- Manual (My Custom Model Display)[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ Select Model │[39m
[31m+ │ │[39m
[31m+ │ 1. A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ ( │[39m
[31m+ │ G │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ ) │[39m
[31m+ │ L │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ G │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ C │[39m
[31m+ │ L │[39m
[31m+ │ I │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ i │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ s │[39m
[31m+ │ k │[39m
[31m+ │ : │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ - │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ , │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ - │[39m
[31m+ │ f │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ ●2. M │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ u │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ ( │[39m
[31m+ │ M │[39m
[31m+ │ y │[39m
[31m+ │ C │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ m │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ D │[39m
[31m+ │ i │[39m
[31m+ │ s │[39m
[31m+ │ p │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ y │[39m
[31m+ │ ) │[39m
[31m+ │ M │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ u │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ l │[39m
[31m+ │ y │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ │[39m
[31m+ │ Remember model for future sessions: false (Press Tab to toggle) │[39m
[31m+ │ > To use a specific Gemini model on startup, use the --model flag. │[39m
[31m+ │ │[39m
[31m+ │ (Press Esc to close) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/ModelDialog.test.tsx:360:25
358| const { lastFrame, unmount } = await renderComponent();
359|
360| expect(lastFrame()).toContain('Manual (My Custom Model Display)');
| ^
361| unmount();
362| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[105/292]⎯
FAIL src/ui/components/ModelDialog.test.tsx > > Preview Models > shows Auto (Preview) in main view when access is granted
AssertionError: expected '╭────────────────────────────────────…' to contain 'Auto (Preview)'
[32m- Expected[39m
[31m+ Received[39m
[32m- Auto (Preview)[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ Select Model │[39m
[31m+ │ │[39m
[31m+ │ 1. A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ ( │[39m
[31m+ │ P │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ v │[39m
[31m+ │ i │[39m
[31m+ │ e │[39m
[31m+ │ w │[39m
[31m+ │ ) │[39m
[31m+ │ L │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ G │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ C │[39m
[31m+ │ L │[39m
[31m+ │ I │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ i │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ s │[39m
[31m+ │ k │[39m
[31m+ │ : │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 3 │[39m
[31m+ │ - │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ , │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 3 │[39m
[31m+ │ - │[39m
[31m+ │ f │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ ●2. A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ ( │[39m
[31m+ │ G │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ ) │[39m
[31m+ │ L │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ G │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ C │[39m
[31m+ │ L │[39m
[31m+ │ I │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ i │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ s │[39m
[31m+ │ k │[39m
[31m+ │ : │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ - │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ , │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ - │[39m
[31m+ │ f │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ 3. M │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ u │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ u │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ l │[39m
[31m+ │ y │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ │[39m
[31m+ │ Remember model for future sessions: false (Press Tab to toggle) │[39m
[31m+ │ > To use a specific Gemini model on startup, use the --model flag. │[39m
[31m+ │ │[39m
[31m+ │ (Press Esc to close) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/ModelDialog.test.tsx:371:27
369| it('shows Auto (Preview) in main view when access is granted', asy…
370| const { lastFrame, unmount } = await renderComponent();
371| expect(lastFrame()).toContain('Auto (Preview)');
| ^
372| unmount();
373| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[106/292]⎯
FAIL src/ui/components/ModelDialog.test.tsx > > Preview Models > shows Gemini 3 models in manual view when Gemini 3.1 is NOT launched
AssertionError: expected '╭────────────────────────────────────…' to contain 'gemini-3-pro-preview'
[32m- Expected[39m
[31m+ Received[39m
[32m- gemini-3-pro-preview[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ Select Model │[39m
[31m+ │ │[39m
[31m+ │ ●1. g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 3 │[39m
[31m+ │ - │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ - │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ v │[39m
[31m+ │ i │[39m
[31m+ │ e │[39m
[31m+ │ w │[39m
[31m+ │ 2. g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 3 │[39m
[31m+ │ - │[39m
[31m+ │ f │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ - │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ v │[39m
[31m+ │ i │[39m
[31m+ │ e │[39m
[31m+ │ w │[39m
[31m+ │ 3. g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ - │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ 4. g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ - │[39m
[31m+ │ f │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ 5. g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ - │[39m
[31m+ │ f │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ - │[39m
[31m+ │ l │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ Remember model for future sessions: false (Press Tab to toggle) │[39m
[31m+ │ > To use a specific Gemini model on startup, use the --model flag. │[39m
[31m+ │ │[39m
[31m+ │ (Press Esc to close) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/ModelDialog.test.tsx:391:22
389|
390| const output = lastFrame();
391| expect(output).toContain(PREVIEW_GEMINI_MODEL);
| ^
392| expect(output).toContain(PREVIEW_GEMINI_FLASH_MODEL);
393| unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[107/292]⎯
FAIL src/ui/components/ModelDialog.test.tsx > > Preview Models > shows Gemini 3.1 models in manual view when Gemini 3.1 IS launched
AssertionError: expected '╭────────────────────────────────────…' to contain 'gemini-3.1-pro-preview'
[32m- Expected[39m
[31m+ Received[39m
[32m- gemini-3.1-pro-preview[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ Select Model │[39m
[31m+ │ │[39m
[31m+ │ ●1. g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 3 │[39m
[31m+ │ . │[39m
[31m+ │ 1 │[39m
[31m+ │ - │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ - │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ v │[39m
[31m+ │ i │[39m
[31m+ │ e │[39m
[31m+ │ w │[39m
[31m+ │ 2. g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 3 │[39m
[31m+ │ - │[39m
[31m+ │ f │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ - │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ v │[39m
[31m+ │ i │[39m
[31m+ │ e │[39m
[31m+ │ w │[39m
[31m+ │ 3. g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ - │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ 4. g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ - │[39m
[31m+ │ f │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ 5. g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ - │[39m
[31m+ │ f │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ - │[39m
[31m+ │ l │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ Remember model for future sessions: false (Press Tab to toggle) │[39m
[31m+ │ > To use a specific Gemini model on startup, use the --model flag. │[39m
[31m+ │ │[39m
[31m+ │ (Press Esc to close) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/ModelDialog.test.tsx:412:22
410|
411| const output = lastFrame();
412| expect(output).toContain(PREVIEW_GEMINI_3_1_MODEL);
| ^
413| expect(output).toContain(PREVIEW_GEMINI_FLASH_MODEL);
414| unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[108/292]⎯
FAIL src/ui/components/ModelDialog.test.tsx > > Preview Models > shows Flash Lite Preview model regardless of tier when flag is enabled
AssertionError: expected '╭────────────────────────────────────…' to contain 'gemini-3.1-flash-lite-preview'
[32m- Expected[39m
[31m+ Received[39m
[32m- gemini-3.1-flash-lite-preview[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ Select Model │[39m
[31m+ │ │[39m
[31m+ │ ●1. g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 3 │[39m
[31m+ │ - │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ - │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ v │[39m
[31m+ │ i │[39m
[31m+ │ e │[39m
[31m+ │ w │[39m
[31m+ │ 2. g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 3 │[39m
[31m+ │ - │[39m
[31m+ │ f │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ - │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ v │[39m
[31m+ │ i │[39m
[31m+ │ e │[39m
[31m+ │ w │[39m
[31m+ │ 3. g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 3 │[39m
[31m+ │ . │[39m
[31m+ │ 1 │[39m
[31m+ │ - │[39m
[31m+ │ f │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ - │[39m
[31m+ │ l │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ - │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ v │[39m
[31m+ │ i │[39m
[31m+ │ e │[39m
[31m+ │ w │[39m
[31m+ │ 4. g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ - │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ 5. g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ - │[39m
[31m+ │ f │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ 6. g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ - │[39m
[31m+ │ f │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ - │[39m
[31m+ │ l │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ Remember model for future sessions: false (Press Tab to toggle) │[39m
[31m+ │ > To use a specific Gemini model on startup, use the --model flag. │[39m
[31m+ │ │[39m
[31m+ │ (Press Esc to close) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/ModelDialog.test.tsx:468:22
466|
467| const output = lastFrame();
468| expect(output).toContain(PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL);
| ^
469| unmount();
470| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[109/292]⎯
FAIL src/ui/components/ModelStatsDisplay.test.tsx > > should display conditional rows if at least one model has data
Error: Snapshot ` > should display conditional rows if at least one model has data 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[2m │ Model Stats For Nerds │[22m
[2m │ │[22m
[2m │ │[22m
[32m- │ Metric g[7memini-2.5-pro gemini-2.5-flash[27m │[39m
[31m+ │ Metric g[7mg │[27m[39m
[31m+ │ ee │[39m
[31m+ │ mm │[39m
[31m+ │ ii │[39m
[31m+ │ nn │[39m
[31m+ │ ii │[39m
[31m+ │ -- │[39m
[31m+ │ 22 │[39m
[31m+ │ .. │[39m
[31m+ │ 55 │[39m
[31m+ │ -- │[39m
[31m+ │ pf │[39m
[31m+ │ rl │[39m
[31m+ │ oa │[39m
[31m+ │ s │[39m
[31m+ [7m│ h [27m [7m [27m│[39m
[2m │ ────────────────────────────────────────────────────────────────────────────────────────────── │[22m
[2m │ API │[22m
[32m- │ Requests 1 [7m1[27m │[39m
[31m+ │ Requests 1[7m1[27m │[39m
[32m- │ Errors 0[7m (0.0%) 0 (0.0%)[27m │[39m
[31m+ │ Errors 0[7m0 │[27m[39m
[31m+ │ (( │[39m
[31m+ │ 00 │[39m
[31m+ │ .. │[39m
[31m+ │ 00 │[39m
[31m+ │ %% │[39m
[31m+ [7m│ )) [27m [7m [27m│[39m
[32m- │ Avg Latency 1[7m00ms 50ms[27m │[39m
[31m+ │ Avg Latency 1[7m5 │[27m[39m
[31m+ │ 00 │[39m
[31m+ │ 0m │[39m
[31m+ │ ms │[39m
[31m+ [7m│ s [27m [7m [27m│[39m
[2m │ Tokens │[22m
[32m- │ Total 3[7m0[27m [7m15[27m │[39m
[31m+ │ Total 3[7m1 [27m [7m │[27m[39m
[31m+ [7m│ 05 [27m [7m [27m│[39m
[32m- │ ↳ Input 5 [7m5[27m │[39m
[31m+ │ ↳ Input 5[7m5[27m │[39m
[32m- │ ↳ Cache Reads 5[7m (50.0%) 0 (0.0%)[27m │[39m
[31m+ │ ↳ Cache Reads 5[7m0 │[27m[39m
[31m+ │ (( │[39m
[31m+ │ 50 │[39m
[31m+ │ 0. │[39m
[31m+ │ .0 │[39m
[31m+ │ 0% │[39m
[31m+ │ %) │[39m
[31m+ [7m│ ) [27m │[39m
[32m- │ ↳ Thoughts 2 [7m0[27m │[39m
[31m+ │ ↳ Thoughts 2[7m0[27m │[39m
[32m- │ ↳ Tool 0 [7m3[27m │[39m
[31m+ │ ↳ Tool 0[7m3[27m │[39m
[32m- │ ↳ Output 2[7m0[27m [7m10[27m │[39m
[31m+ │ ↳ Output 2[7m1 [27m [7m │[27m[39m
[31m+ [7m│ 00 [27m │[39m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
[2m "[22m
❯ src/ui/components/ModelStatsDisplay.test.tsx:209:20
207| expect(output).toContain('Thoughts');
208| expect(output).toContain('Tool');
209| expect(output).toMatchSnapshot();
| ^
210| unmount();
211| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[110/292]⎯
FAIL src/ui/components/ModelStatsDisplay.test.tsx > > should display stats for multiple models correctly
AssertionError: expected '╭────────────────────────────────────…' to contain 'gemini-2.5-pro'
[32m- Expected[39m
[31m+ Received[39m
[32m- gemini-2.5-pro[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ Model Stats For Nerds │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ Metric gg │[39m
[31m+ │ ee │[39m
[31m+ │ mm │[39m
[31m+ │ ii │[39m
[31m+ │ nn │[39m
[31m+ │ ii │[39m
[31m+ │ -- │[39m
[31m+ │ 22 │[39m
[31m+ │ .. │[39m
[31m+ │ 55 │[39m
[31m+ │ -- │[39m
[31m+ │ pf │[39m
[31m+ │ rl │[39m
[31m+ │ oa │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ ────────────────────────────────────────────────────────────────────────────────────────────── │[39m
[31m+ │ API │[39m
[31m+ │ Requests 12 │[39m
[31m+ │ 00 │[39m
[31m+ │ Errors 12 │[39m
[31m+ │ (( │[39m
[31m+ │ 11 │[39m
[31m+ │ 00 │[39m
[31m+ │ .. │[39m
[31m+ │ 00 │[39m
[31m+ │ %% │[39m
[31m+ │ )) │[39m
[31m+ │ Avg Latency 12 │[39m
[31m+ │ 05 │[39m
[31m+ │ 0m │[39m
[31m+ │ ms │[39m
[31m+ │ s │[39m
[31m+ │ Tokens │[39m
[31m+ │ Total 36 │[39m
[31m+ │ 00 │[39m
[31m+ │ 00 │[39m
[31m+ │ ↳ Input 51 │[39m
[31m+ │ 00 │[39m
[31m+ │ 0 │[39m
[31m+ │ ↳ Cache Reads 51 │[39m
[31m+ │ 00 │[39m
[31m+ │ (0 │[39m
[31m+ │ 5( │[39m
[31m+ │ 05 │[39m
[31m+ │ .0 │[39m
[31m+ │ 0. │[39m
[31m+ │ %0 │[39m
[31m+ │ )% │[39m
[31m+ │ ) │[39m
[31m+ │ ↳ Thoughts 12 │[39m
[31m+ │ 00 │[39m
[31m+ │ ↳ Tool 51 │[39m
[31m+ │ 0 │[39m
[31m+ │ ↳ Output 24 │[39m
[31m+ │ 00 │[39m
[31m+ │ 00 │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/ModelStatsDisplay.test.tsx:263:20
261|
262| const output = lastFrame();
263| expect(output).toContain('gemini-2.5-pro');
| ^
264| expect(output).toContain('gemini-2.5-flash');
265| expect(output).toMatchSnapshot();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[111/292]⎯
FAIL src/ui/components/ModelStatsDisplay.test.tsx > > should handle large values without wrapping or overlapping
Error: Snapshot ` > should handle large values without wrapping or overlapping 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[2m │ Model Stats For Nerds │[22m
[2m │ │[22m
[2m │ │[22m
[32m- │ Metric g[7memini-2.5-pro │[27m[39m
[32m- │ ────────────────────────────────────────────────────────────────────────────────────────────── │[39m
[32m- │ API │[39m
[32m- [7m│ Requests 999,999,999[27m │[39m
[31m+ │ Metric g[7m │[27m[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ - │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ ────────────────────────────────────────────────────────────────────────────────────────────── │[39m
[31m+ │ API │[39m
[31m+ │ Requests 9 │[39m
[31m+ │ 9 │[39m
[31m+ │ 9 │[39m
[31m+ │ , │[39m
[31m+ │ 9 │[39m
[31m+ │ 9 │[39m
[31m+ │ 9 │[39m
[31m+ │ , │[39m
[31m+ │ 9 │[39m
[31m+ │ 9 │[39m
[31m+ [7m│ 9 [27m [7m [27m│[39m
[32m- │ Errors 1[7m23,456,789 (12.3%[27m) │[39m
[31m+ │ Errors 1[7m │[27m[39m
[31m+ │ 2 │[39m
[31m+ │ 3 │[39m
[31m+ │ , │[39m
[31m+ │ 4 │[39m
[31m+ │ 5 │[39m
[31m+ │ 6 │[39m
[31m+ │ , │[39m
[31m+ │ 7 │[39m
[31m+ │ 8 │[39m
[31m+ │ 9 │[39m
[31m+ │ ( │[39m
[31m+ │ 1 │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 3 │[39m
[31m+ │ % │[39m
[31m+ [7m│ [27m) [7m [27m│[39m
[32m- │ Avg Latency 0[7mms │[27m[39m
[32m- │ Tokens │[39m
[32m- [7m│ Total 999,999,999[27m │[39m
[31m+ │ Avg Latency 0[7m │[27m[39m
[31m+ │ m │[39m
[31m+ │ s │[39m
[31m+ │ Tokens │[39m
[31m+ │ Total 9 │[39m
[31m+ │ 9 │[39m
[31m+ │ 9 │[39m
[31m+ │ , │[39m
[31m+ │ 9 │[39m
[31m+ │ 9 │[39m
[31m+ │ 9 │[39m
[31m+ │ , │[39m
[31m+ │ 9 │[39m
[31m+ │ 9 │[39m
[31m+ [7m│ 9 [27m [7m [27m│[39m
[32m- │ ↳ Input 8[7m64,197,532[27m │[39m
[31m+ │ ↳ Input 8[7m │[27m[39m
[31m+ │ 6 │[39m
[31m+ │ 4 │[39m
[31m+ │ , │[39m
[31m+ │ 1 │[39m
[31m+ │ 9 │[39m
[31m+ │ 7 │[39m
[31m+ │ , │[39m
[31m+ │ 5 │[39m
[31m+ │ 3 │[39m
[31m+ [7m│ 2 [27m [7m [27m│[39m
[32m- │ ↳ Cache Reads 1[7m23,456,789 (12.5%) │[27m[39m
[32m- [7m│ ↳ Thoughts 111,111,111[27m │[39m
[31m+ │ ↳ Cache Reads 1[7m │[27m[39m
[31m+ │ 2 │[39m
[31m+ │ 3 │[39m
[31m+ │ , │[39m
[31m+ │ 4 │[39m
[31m+ │ 5 │[39m
[31m+ │ 6 │[39m
[31m+ │ , │[39m
[31m+ │ 7 │[39m
[31m+ │ 8 │[39m
[31m+ │ 9 │[39m
[31m+ │ ( │[39m
[31m+ │ 1 │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ % │[39m
[31m+ │ ) │[39m
[31m+ │ ↳ Thoughts 1 │[39m
[31m+ │ 1 │[39m
[31m+ │ 1 │[39m
[31m+ │ , │[39m
[31m+ │ 1 │[39m
[31m+ │ 1 │[39m
[31m+ │ 1 │[39m
[31m+ │ , │[39m
[31m+ │ 1 │[39m
[31m+ │ 1 │[39m
[31m+ [7m│ 1 [27m [7m [27m│[39m
[32m- │ ↳ Tool 2[7m22,222,222 │[27m[39m
[32m- [7m│ ↳ Output 123,456,789[27m │[39m
[31m+ │ ↳ Tool 2[7m │[27m[39m
[31m+ │ 2 │[39m
[31m+ │ 2 │[39m
[31m+ │ , │[39m
[31m+ │ 2 │[39m
[31m+ │ 2 │[39m
[31m+ │ 2 │[39m
[31m+ │ , │[39m
[31m+ │ 2 │[39m
[31m+ │ 2 │[39m
[31m+ │ 2 │[39m
[31m+ │ ↳ Output 1 │[39m
[31m+ │ 2 │[39m
[31m+ │ 3 │[39m
[31m+ │ , │[39m
[31m+ │ 4 │[39m
[31m+ │ 5 │[39m
[31m+ │ 6 │[39m
[31m+ │ , │[39m
[31m+ │ 7 │[39m
[31m+ │ 8 │[39m
[31m+ [7m│ 9 [27m │[39m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
[2m "[22m
❯ src/ui/components/ModelStatsDisplay.test.tsx:309:25
307| });
308|
309| expect(lastFrame()).toMatchSnapshot();
| ^
310| unmount();
311| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[112/292]⎯
FAIL src/ui/components/ModelStatsDisplay.test.tsx > > should display a single model correctly
AssertionError: expected '╭────────────────────────────────────…' to contain 'gemini-2.5-pro'
[32m- Expected[39m
[31m+ Received[39m
[32m- gemini-2.5-pro[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ Model Stats For Nerds │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ Metric g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ - │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ ────────────────────────────────────────────────────────────────────────────────────────────── │[39m
[31m+ │ API │[39m
[31m+ │ Requests 1 │[39m
[31m+ │ Errors 0 │[39m
[31m+ │ ( │[39m
[31m+ │ 0 │[39m
[31m+ │ . │[39m
[31m+ │ 0 │[39m
[31m+ │ % │[39m
[31m+ │ ) │[39m
[31m+ │ Avg Latency 1 │[39m
[31m+ │ 0 │[39m
[31m+ │ 0 │[39m
[31m+ │ m │[39m
[31m+ │ s │[39m
[31m+ │ Tokens │[39m
[31m+ │ Total 3 │[39m
[31m+ │ 0 │[39m
[31m+ │ ↳ Input 5 │[39m
[31m+ │ ↳ Cache Reads 5 │[39m
[31m+ │ ( │[39m
[31m+ │ 5 │[39m
[31m+ │ 0 │[39m
[31m+ │ . │[39m
[31m+ │ 0 │[39m
[31m+ │ % │[39m
[31m+ │ ) │[39m
[31m+ │ ↳ Thoughts 2 │[39m
[31m+ │ ↳ Tool 1 │[39m
[31m+ │ ↳ Output 2 │[39m
[31m+ │ 0 │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/ModelStatsDisplay.test.tsx:350:20
348|
349| const output = lastFrame();
350| expect(output).toContain('gemini-2.5-pro');
| ^
351| expect(output).not.toContain('gemini-2.5-flash');
352| expect(output).toMatchSnapshot();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[113/292]⎯
FAIL src/ui/components/ModelStatsDisplay.test.tsx > > should handle models with long names (gemini-3-*-preview) without layout breaking
AssertionError: expected '╭────────────────────────────────────…' to contain 'gemini-3-pro-'
[32m- Expected[39m
[31m+ Received[39m
[32m- gemini-3-pro-[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ Auto (Gemini 3) Stats For Nerds │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ Metric gg │[39m
[31m+ │ ee │[39m
[31m+ │ mm │[39m
[31m+ │ ii │[39m
[31m+ │ nn │[39m
[31m+ │ ii │[39m
[31m+ │ -- │[39m
[31m+ │ 33 │[39m
[31m+ │ -- │[39m
[31m+ │ pf │[39m
[31m+ │ rl │[39m
[31m+ │ oa │[39m
[31m+ │ -s │[39m
[31m+ │ ph │[39m
[31m+ │ r- │[39m
[31m+ │ ep │[39m
[31m+ │ vr │[39m
[31m+ │ ie │[39m
[31m+ │ ev │[39m
[31m+ │ wi │[39m
[31m+ │ e │[39m
[31m+ │ w │[39m
[31m+ │ ────────────────────────────────────────────────────────────────────────── │[39m
[31m+ │ API │[39m
[31m+ │ Requests 12 │[39m
[31m+ │ 00 │[39m
[31m+ │ Errors 00 │[39m
[31m+ │ (( │[39m
[31m+ │ 00 │[39m
[31m+ │ .. │[39m
[31m+ │ 00 │[39m
[31m+ │ %% │[39m
[31m+ │ )) │[39m
[31m+ │ Avg Latency 25 │[39m
[31m+ │ 00 │[39m
[31m+ │ 0m │[39m
[31m+ │ ms │[39m
[31m+ │ s │[39m
[31m+ │ Tokens │[39m
[31m+ │ Total 61 │[39m
[31m+ │ ,2 │[39m
[31m+ │ 0, │[39m
[31m+ │ 00 │[39m
[31m+ │ 00 │[39m
[31m+ │ 0 │[39m
[31m+ │ ↳ Input 12 │[39m
[31m+ │ ,, │[39m
[31m+ │ 00 │[39m
[31m+ │ 00 │[39m
[31m+ │ 00 │[39m
[31m+ │ ↳ Cache Reads 51 │[39m
[31m+ │ 0, │[39m
[31m+ │ 00 │[39m
[31m+ │ (0 │[39m
[31m+ │ 20 │[39m
[31m+ │ 5( │[39m
[31m+ │ .2 │[39m
[31m+ │ 05 │[39m
[31m+ │ %. │[39m
[31m+ │ )0 │[39m
[31m+ │ % │[39m
[31m+ │ ) │[39m
[31m+ │ ↳ Thoughts 12 │[39m
[31m+ │ 00 │[39m
[31m+ │ 00 │[39m
[31m+ │ ↳ Tool 51 │[39m
[31m+ │ 00 │[39m
[31m+ │ 0 │[39m
[31m+ │ ↳ Output 48 │[39m
[31m+ │ ,, │[39m
[31m+ │ 00 │[39m
[31m+ │ 00 │[39m
[31m+ │ 00 │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/ModelStatsDisplay.test.tsx:410:20
408|
409| const output = lastFrame();
410| expect(output).toContain('gemini-3-pro-');
| ^
411| expect(output).toContain('gemini-3-flash-');
412| expect(output).toMatchSnapshot();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[114/292]⎯
FAIL src/ui/components/ModelStatsDisplay.test.tsx > > should display role breakdown correctly
Error: Snapshot ` > should display role breakdown correctly 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[2m │ Model Stats For Nerds │[22m
[2m │ │[22m
[2m │ │[22m
[32m- │ Metric g[7memini-2.5-pro[27m │[39m
[31m+ │ Metric g[7m │[27m[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ - │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ [7m│ o [27m [7m [27m│[39m
[2m │ ────────────────────────────────────────────────────────────────────────────────────────────── │[22m
[2m │ API │[22m
[2m │ Requests 2 │[22m
[32m- │ Errors 0 [7m(0.0%)[27m │[39m
[31m+ │ Errors 0 [7m │[27m[39m
[31m+ │ ( │[39m
[31m+ │ 0 │[39m
[31m+ │ . │[39m
[31m+ │ 0 │[39m
[31m+ │ % │[39m
[31m+ [7m│ ) [27m [7m [27m│[39m
[32m- │ Avg Latency 1[7m00ms[27m │[39m
[31m+ │ Avg Latency 1[7m │[27m[39m
[31m+ │ 0 │[39m
[31m+ │ 0 │[39m
[31m+ │ m │[39m
[31m+ [7m│ s [27m │[39m
[2m │ Tokens │[22m
[32m- │ Total 70 │[39m
[31m+ │ Total 7[7m │[27m[39m
[31m+ [7m│ [27m0 [7m [27m│[39m
[32m- │ ↳ Input 20 │[39m
[31m+ │ ↳ Input 2[7m │[27m[39m
[31m+ [7m│ [27m0 [7m [27m│[39m
[32m- │ ↳ Cache Reads 1[7m0 (33.3%)[27m │[39m
[31m+ │ ↳ Cache Reads 1[7m │[27m[39m
[31m+ │ 0 │[39m
[31m+ │ ( │[39m
[31m+ │ 3 │[39m
[31m+ │ 3 │[39m
[31m+ │ . │[39m
[31m+ │ 3 │[39m
[31m+ │ % │[39m
[31m+ [7m│ ) [27m [7m [27m│[39m
[32m- │ ↳ Output 40 │[39m
[31m+ │ ↳ Output 4[7m │[27m[39m
[31m+ [7m│ [27m0 [7m [27m│[39m
[2m │ Roles │[22m
[2m │ main │[22m
[2m │ ↳ Requests 1 │[22m
[32m- │ ↳ Input 1[7m0 │[27m[39m
[32m- [7m│ ↳ Output 20[27m │[39m
[31m+ │ ↳ Input 1[7m │[27m[39m
[31m+ │ 0 │[39m
[31m+ │ ↳ Output 2 │[39m
[31m+ [7m│ 0 [27m │[39m
[2m │ ↳ Cache Reads 5 │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
[2m "[22m
❯ src/ui/components/ModelStatsDisplay.test.tsx:472:20
470| expect(output).toContain('Output');
471| expect(output).toContain('Cache Reads');
472| expect(output).toMatchSnapshot();
| ^
473| unmount();
474| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[115/292]⎯
FAIL src/ui/components/ModelStatsDisplay.test.tsx > > should handle long role name layout
Error: Snapshot ` > should handle long role name layout 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[2m │ Model Stats For Nerds │[22m
[2m │ │[22m
[2m │ │[22m
[32m- │ Metric g[7memini-2.5-pro[27m │[39m
[31m+ │ Metric g[7m │[27m[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ - │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ [7m│ o [27m [7m [27m│[39m
[2m │ ────────────────────────────────────────────────────────────────────────────────────────────── │[22m
[2m │ API │[22m
[2m │ Requests 1 │[22m
[32m- │ Errors 0 [7m(0.0%[27m) │[39m
[31m+ │ Errors 0 [7m │[27m[39m
[31m+ │ ( │[39m
[31m+ │ 0 │[39m
[31m+ │ . │[39m
[31m+ │ 0 │[39m
[31m+ │ % │[39m
[31m+ [7m│ [27m) [7m [27m│[39m
[32m- │ Avg Latency 1[7m00ms[27m │[39m
[31m+ │ Avg Latency 1[7m │[27m[39m
[31m+ │ 0 │[39m
[31m+ │ 0 │[39m
[31m+ │ m │[39m
[31m+ [7m│ s [27m [7m [27m│[39m
[2m │ Tokens │[22m
[32m- │ Total 30 │[39m
[31m+ │ Total 3[7m │[27m[39m
[31m+ [7m│ [27m0 [7m [27m│[39m
[32m- │ ↳ Input 10 │[39m
[31m+ │ ↳ Input 1[7m │[27m[39m
[31m+ [7m│ [27m0 [7m [27m│[39m
[32m- │ ↳ Output 2[7m0[27m │[39m
[31m+ │ ↳ Output 2[7m │[27m[39m
[31m+ [7m│ 0 [27m │[39m
[2m │ Roles │[22m
[2m │ utility_loop_detector │[22m
[2m │ ↳ Requests 1 │[22m
[32m- │ ↳ Input 1[7m0 │[27m[39m
[32m- [7m│ ↳ Output 20[27m │[39m
[31m+ │ ↳ Input 1[7m │[27m[39m
[31m+ │ 0 │[39m
[31m+ │ ↳ Output 2 │[39m
[31m+ [7m│ 0 [27m │[39m
[2m │ ↳ Cache Reads 0 │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
[2m "[22m
❯ src/ui/components/ModelStatsDisplay.test.tsx:604:20
602| const output = lastFrame();
603| expect(output).toContain(longRoleName);
604| expect(output).toMatchSnapshot();
| ^
605| unmount();
606| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[116/292]⎯
FAIL src/ui/components/ModelStatsDisplay.test.tsx > > should filter out invalid role names
Error: Snapshot ` > should filter out invalid role names 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[2m │ Model Stats For Nerds │[22m
[2m │ │[22m
[2m │ │[22m
[32m- │ Metric g[7memini-2.5-pro │[27m[39m
[32m- │ ────────────────────────────────────────────────────────────────────────────────────────────── │[39m
[32m- │ API │[39m
[32m- │ Requests 1 │[39m
[32m- │ Errors 0 (0.0%) │[39m
[32m- [7m│ Avg Latency 100ms[27m │[39m
[31m+ │ Metric g[7m │[27m[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ i │[39m
[31m+ │ - │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ 5 │[39m
[31m+ │ - │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ ────────────────────────────────────────────────────────────────────────────────────────────── │[39m
[31m+ │ API │[39m
[31m+ │ Requests 1 │[39m
[31m+ │ Errors 0 │[39m
[31m+ │ ( │[39m
[31m+ │ 0 │[39m
[31m+ │ . │[39m
[31m+ │ 0 │[39m
[31m+ │ % │[39m
[31m+ │ ) │[39m
[31m+ │ Avg Latency 1 │[39m
[31m+ │ 0 │[39m
[31m+ │ 0 │[39m
[31m+ │ m │[39m
[31m+ [7m│ s [27m [7m [27m│[39m
[2m │ Tokens │[22m
[32m- │ Total 3[7m0 │[27m[39m
[32m- │ ↳ Input 10 │[39m
[32m- [7m│ ↳ Output 20[27m │[39m
[31m+ │ Total 3[7m │[27m[39m
[31m+ │ 0 │[39m
[31m+ │ ↳ Input 1 │[39m
[31m+ │ 0 │[39m
[31m+ │ ↳ Output 2 │[39m
[31m+ [7m│ 0 [27m │[39m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
[2m "[22m
❯ src/ui/components/ModelStatsDisplay.test.tsx:663:20
661| const output = lastFrame();
662| expect(output).not.toContain(invalidRoleName);
663| expect(output).toMatchSnapshot();
| ^
664| unmount();
665| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[117/292]⎯
FAIL src/ui/components/NewAgentsNotification.test.tsx > NewAgentsNotification > truncates list if more than 5 agents
Error: Snapshot `NewAgentsNotification > truncates list if more than 5 agents 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -12,10 +12,10 @@[39m
[2m │ │ - Agent 4: Description 4 │ │[22m
[2m │ │ ... and 2 more. │ │[22m
[2m │ │ │ │[22m
[2m │ └────────────────────────────────────────────────────────────────────────────────────────────┘ │[22m
[2m │ │[22m
[32m- │ ● 1. [7mAcknowledge and Enable[27m [7m│[27m[39m
[32m- [7m │ 2. Do not enable (Ask again next time)[27m │[39m
[31m+ │ ● 1. [7m [27m [7m │[27m[39m
[31m+ [7m │ 2. [27m │[39m
[2m │ │[22m
[2m ╰────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
[2m "[22m
❯ src/ui/components/NewAgentsNotification.test.tsx:75:19
73|
74| const frame = lastFrame();
75| expect(frame).toMatchSnapshot();
| ^
76| unmount();
77| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[118/292]⎯
FAIL src/ui/components/OverageMenuDialog.test.tsx > OverageMenuDialog > rendering > should match snapshot without fallback
Error: Snapshot `OverageMenuDialog > rendering > should match snapshot without fallback 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -8,12 +8,12 @@[39m
[2m │ You have 500 AI Credits available. │[22m
[2m │ │[22m
[2m │ How would you like to proceed? │[22m
[2m │ │[22m
[2m │ │[22m
[32m- │ ● 1. [7mUse AI Credits - Continue this request (Overage)[27m │[39m
[31m+ │ ● 1. [7m [27m │[39m
[32m- │ 2. [7mManage - View balance and purchase more credits[27m │[39m
[31m+ │ 2. [7m [27m │[39m
[32m- │ 3. [7mStop - Abort request[27m │[39m
[31m+ │ 3. [7m [27m │[39m
[2m │ │[22m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
[2m "[22m
❯ src/ui/components/OverageMenuDialog.test.tsx:53:27
51| />,
52| );
53| expect(lastFrame()).toMatchSnapshot();
| ^
54| unmount();
55| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[119/292]⎯
FAIL src/ui/components/PermissionsModifyTrustDialog.test.tsx > PermissionsModifyTrustDialog > should render the labels with folder names
AssertionError: expected '╭────────────────────────────────────…' to contain 'Trust this folder (dir)'
[32m- Expected[39m
[31m+ Received[39m
[32m- Trust this folder (dir)[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ > Modify Trust Level │[39m
[31m+ │ │[39m
[31m+ │ Folder: /test/dir │[39m
[31m+ │ Current Level: DO_NOT_TRUST │[39m
[31m+ │ │[39m
[31m+ │ 1. │[39m
[31m+ │ 2. │[39m
[31m+ │ ● 3. │[39m
[31m+ │ │[39m
[31m+ │ (Use Enter to select, Esc to close) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/PermissionsModifyTrustDialog.test.tsx:139:27
137|
138| await waitFor(() => {
139| expect(lastFrame()).toContain('Trust this folder (dir)');
| ^
140| expect(lastFrame()).toContain('Trust parent folder (test)');
141| });
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/PermissionsModifyTrustDialog.test.tsx:138:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[120/292]⎯
FAIL src/ui/components/RewindConfirmation.test.tsx > RewindConfirmation > renders correctly without stats
Error: Snapshot `RewindConfirmation > renders correctly without stats 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -4,10 +4,10 @@[39m
[2m │ │[22m
[2m │ No code changes to revert. │[22m
[2m │ │[22m
[2m │ Select an action: │[22m
[2m │ │[22m
[32m- │ ● 1. [7mRewind conversation[27m │[39m
[31m+ │ ● 1. [7m [27m [7m [27m│[39m
[32m- │ 2. [7mDo nothing (esc)[27m │[39m
[31m+ │ 2. [7m [27m │[39m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────╯[22m
[2m "[22m
❯ src/ui/components/RewindConfirmation.test.tsx:51:25
49| );
50|
51| expect(lastFrame()).toMatchSnapshot();
| ^
52| expect(lastFrame()).not.toContain('Revert code changes');
53| expect(lastFrame()).toContain('Rewind conversation');
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[121/292]⎯
FAIL src/ui/components/RewindConfirmation.test.tsx > RewindConfirmation > renders timestamp when provided
Error: Snapshot `RewindConfirmation > renders timestamp when provided 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -4,10 +4,10 @@[39m
[2m │ │[22m
[2m │ No code changes to revert. (just now) │[22m
[2m │ │[22m
[2m │ Select an action: │[22m
[2m │ │[22m
[32m- │ ● 1. [7mRewind conversation[27m │[39m
[31m+ │ ● 1. [7m [27m [7m [27m│[39m
[32m- │ 2. [7mDo nothing (esc)[27m │[39m
[31m+ │ 2. [7m [27m │[39m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────╯[22m
[2m "[22m
❯ src/ui/components/RewindConfirmation.test.tsx:91:25
89| );
90|
91| expect(lastFrame()).toMatchSnapshot();
| ^
92| expect(lastFrame()).not.toContain('Revert code changes');
93| unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[122/292]⎯
FAIL src/ui/components/RewindViewer.test.tsx > RewindViewer > Rendering > renders 'a single interaction'
Error: Snapshot `RewindViewer > Rendering > renders 'a single interaction' 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -1,14 +1,81 @@[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[2m │ > Rewind │[22m
[2m │ │[22m
[32m- │ H[7mello │[27m[39m
[32m- [7m│ No files have been changed[27m │[39m
[31m+ │ H[7m │[27m[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ v │[39m
[31m+ │ e │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ [7m│ d [27m [7m [27m│[39m
[2m │ │[22m
[32m- │ ● S[7mtay at current position │[27m[39m
[32m- [7m│ Cancel rewind and stay here[27m │[39m
[31m+ │ ● S[7m │[27m[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ y │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ p │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ C │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ c │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ w │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ y │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ [7m│ e [27m │[39m
[2m │ │[22m
[2m │ │[22m
[2m │ (Use Enter to select a message, Esc to close, Right/Left to expand/collapse) │[22m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
❯ src/ui/components/RewindViewer.test.tsx:139:27
137| />,
138| );
139| expect(lastFrame()).toMatchSnapshot();
| ^
140| unmount();
141| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[123/292]⎯
FAIL src/ui/components/RewindViewer.test.tsx > RewindViewer > Rendering > renders 'full text for selected item'
Error: Snapshot `RewindViewer > Rendering > renders 'full text for selected item' 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -1,15 +1,81 @@[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[2m │ > Rewind │[22m
[2m │ │[22m
[2m │ 1 │[22m
[32m- │ 2[7m..[27m. │[39m
[31m+ │ 2[7m │[27m[39m
[31m+ │ . │[39m
[31m+ │ . │[39m
[31m+ [7m│ [27m. [7m [27m│[39m
[32m- │ N[7mo files have been changed[27m │[39m
[31m+ │ N[7m │[27m[39m
[31m+ │ o │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ v │[39m
[31m+ │ e │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ [7m│ d [27m [7m [27m│[39m
[2m │ │[22m
[32m- │ ● S[7mtay at current position │[27m[39m
[32m- [7m│ Cancel rewind and stay here[27m │[39m
[31m+ │ ● S[7m │[27m[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ y │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ p │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ C │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ c │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ w │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ y │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ [7m│ e [27m │[39m
[2m │ │[22m
[2m │ │[22m
[2m │ (Use Enter to select a message, Esc to close, Right/Left to expand/collapse) │[22m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
❯ src/ui/components/RewindViewer.test.tsx:139:27
137| />,
138| );
139| expect(lastFrame()).toMatchSnapshot();
| ^
140| unmount();
141| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[124/292]⎯
FAIL src/ui/components/RewindViewer.test.tsx > RewindViewer > updates selection and expansion on navigation
Error: Snapshot `RewindViewer > updates selection and expansion on navigation > initial-state 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -1,19 +1,125 @@[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[2m │ > Rewind │[22m
[2m │ │[22m
[32m- │ L[7mine A │[27m[39m
[32m- [7m│ Line B...[27m │[39m
[31m+ │ L[7m │[27m[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ L │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ B │[39m
[31m+ │ . │[39m
[31m+ │ . │[39m
[31m+ [7m│ . [27m [7m [27m│[39m
[32m- │ N[7mo files have been changed[27m │[39m
[31m+ │ N[7m │[27m[39m
[31m+ │ o │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ v │[39m
[31m+ │ e │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ [7m│ d [27m [7m [27m│[39m
[2m │ │[22m
[32m- │ L[7mine[27m 1 │[39m
[31m+ │ L[7m │[27m[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ [7m│ [27m 1 [7m [27m│[39m
[32m- │ L[7mine 2...[27m │[39m
[31m+ │ L[7m │[27m[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ 2 │[39m
[31m+ │ . │[39m
[31m+ │ . │[39m
[31m+ [7m│ . [27m [7m [27m│[39m
[32m- │ N[7mo files have been changed[27m │[39m
[31m+ │ N[7m │[27m[39m
[31m+ │ o │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ v │[39m
[31m+ │ e │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ [7m│ d [27m [7m [27m│[39m
[2m │ │[22m
[32m- │ ● S[7mtay at current position │[27m[39m
[32m- [7m│ Cancel rewind and stay here[27m │[39m
[31m+ │ ● S[7m │[27m[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ y │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ p │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ C │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ c │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ w │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ y │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ [7m│ e [27m │[39m
[2m │ │[22m
[2m │ │[22m
[2m │ (Use Enter to select a message, Esc to close, Right/Left to expand/collapse) │[22m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
❯ src/ui/components/RewindViewer.test.tsx:165:25
163|
164| // Initial state
165| expect(lastFrame()).toMatchSnapshot('initial-state');
| ^
166|
167| // Move down to select Item 1 (older message)
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[125/292]⎯
FAIL src/ui/components/RewindViewer.test.tsx > RewindViewer > Interaction Selection > 'confirms on Enter'
Error: Snapshot `RewindViewer > Interaction Selection > 'confirms on Enter' > confirmation-dialog 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -4,10 +4,10 @@[39m
[2m │ │[22m
[2m │ No code changes to revert. (some time ago) │[22m
[2m │ │[22m
[2m │ Select an action: │[22m
[2m │ │[22m
[32m- │ ● 1. [7mRewind conversation[27m │[39m
[31m+ │ ● 1. [7m [27m [7m [27m│[39m
[32m- │ 2. [7mDo nothing (esc)[27m │[39m
[31m+ │ 2. [7m [27m │[39m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
[2m "[22m
❯ src/ui/components/RewindViewer.test.tsx:313:27
311| });
312| await waitUntilReady();
313| expect(lastFrame()).toMatchSnapshot('confirmation-dialog');
| ^
314|
315| // Act
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[126/292]⎯
FAIL src/ui/components/RewindViewer.test.tsx > RewindViewer > Interaction Selection > 'cancels on Escape'
Error: Snapshot `RewindViewer > Interaction Selection > 'cancels on Escape' > confirmation-dialog 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -4,10 +4,10 @@[39m
[2m │ │[22m
[2m │ No code changes to revert. (some time ago) │[22m
[2m │ │[22m
[2m │ Select an action: │[22m
[2m │ │[22m
[32m- │ ● 1. [7mRewind conversation[27m │[39m
[31m+ │ ● 1. [7m [27m [7m [27m│[39m
[32m- │ 2. [7mDo nothing (esc)[27m │[39m
[31m+ │ 2. [7m [27m │[39m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
[2m "[22m
❯ src/ui/components/RewindViewer.test.tsx:313:27
311| });
312| await waitUntilReady();
313| expect(lastFrame()).toMatchSnapshot('confirmation-dialog');
| ^
314|
315| // Act
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[127/292]⎯
FAIL src/ui/components/RewindViewer.test.tsx > RewindViewer > Content Filtering > 'removes reference markers'
Error: Snapshot `RewindViewer > Content Filtering > 'removes reference markers' 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -1,14 +1,92 @@[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[2m │ > Rewind │[22m
[2m │ │[22m
[32m- │ s[7mome command @file │[27m[39m
[32m- [7m│ No files have been changed[27m │[39m
[31m+ │ s[7m │[27m[39m
[31m+ │ o │[39m
[31m+ │ m │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ o │[39m
[31m+ │ m │[39m
[31m+ │ m │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ @ │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ v │[39m
[31m+ │ e │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ [7m│ d [27m [7m [27m│[39m
[2m │ │[22m
[32m- │ ● S[7mtay at current position │[27m[39m
[32m- [7m│ Cancel rewind and stay here[27m │[39m
[31m+ │ ● S[7m │[27m[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ y │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ p │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ C │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ c │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ w │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ y │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ [7m│ e [27m │[39m
[2m │ │[22m
[2m │ │[22m
[2m │ (Use Enter to select a message, Esc to close, Right/Left to expand/collapse) │[22m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
❯ src/ui/components/RewindViewer.test.tsx:364:27
362| );
363|
364| expect(lastFrame()).toMatchSnapshot();
| ^
365|
366| // Select
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[128/292]⎯
FAIL src/ui/components/RewindViewer.test.tsx > RewindViewer > Content Filtering > 'strips expanded MCP resource content'
Error: Snapshot `RewindViewer > Content Filtering > 'strips expanded MCP resource content' 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -1,14 +1,113 @@[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[2m │ > Rewind │[22m
[2m │ │[22m
[32m- │ r[7mead @server3:mcp://demo-resource hello[27m │[39m
[31m+ │ r[7m │[27m[39m
[31m+ │ e │[39m
[31m+ │ a │[39m
[31m+ │ d │[39m
[31m+ │ @ │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ v │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ 3 │[39m
[31m+ │ : │[39m
[31m+ │ m │[39m
[31m+ │ c │[39m
[31m+ │ p │[39m
[31m+ │ : │[39m
[31m+ │ / │[39m
[31m+ │ / │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ - │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ c │[39m
[31m+ │ e │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ l │[39m
[31m+ [7m│ o [27m [7m [27m│[39m
[32m- │ N[7mo files have been changed[27m │[39m
[31m+ │ N[7m │[27m[39m
[31m+ │ o │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ v │[39m
[31m+ │ e │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ [7m│ d [27m [7m [27m│[39m
[2m │ │[22m
[32m- │ ● S[7mtay at current position[27m │[39m
[31m+ │ ● S[7m │[27m[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ y │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ p │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ [7m│ n [27m [7m [27m│[39m
[32m- │ C[7mancel rewind and stay here[27m │[39m
[31m+ │ C[7m │[27m[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ c │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ w │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ y │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ [7m│ e [27m │[39m
[2m │ │[22m
[2m │ │[22m
[2m │ (Use Enter to select a message, Esc to close, Right/Left to expand/collapse) │[22m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
❯ src/ui/components/RewindViewer.test.tsx:364:27
362| );
363|
364| expect(lastFrame()).toMatchSnapshot();
| ^
365|
366| // Select
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[129/292]⎯
FAIL src/ui/components/RewindViewer.test.tsx > RewindViewer > Content Filtering > 'uses displayContent if present and do…'
Error: Snapshot `RewindViewer > Content Filtering > 'uses displayContent if present and do…' 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -1,14 +1,95 @@[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[2m │ > Rewind │[22m
[2m │ │[22m
[32m- │ c[7mlean display content │[27m[39m
[32m- [7m│ No files have been changed[27m │[39m
[31m+ │ c[7m │[27m[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ i │[39m
[31m+ │ s │[39m
[31m+ │ p │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ y │[39m
[31m+ │ c │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ v │[39m
[31m+ │ e │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ [7m│ d [27m [7m [27m│[39m
[2m │ │[22m
[32m- │ ● S[7mtay at current position │[27m[39m
[32m- [7m│ Cancel rewind and stay here[27m │[39m
[31m+ │ ● S[7m │[27m[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ y │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ p │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ C │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ c │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ w │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ y │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ [7m│ e [27m │[39m
[2m │ │[22m
[2m │ │[22m
[2m │ (Use Enter to select a message, Esc to close, Right/Left to expand/collapse) │[22m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
❯ src/ui/components/RewindViewer.test.tsx:364:27
362| );
363|
364| expect(lastFrame()).toMatchSnapshot();
| ^
365|
366| // Select
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[130/292]⎯
FAIL src/ui/components/RewindViewer.test.tsx > RewindViewer > updates content when conversation changes (background update)
Error: Snapshot `RewindViewer > updates content when conversation changes (background update) > initial 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -1,14 +1,84 @@[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[2m │ > Rewind │[22m
[2m │ │[22m
[32m- │ M[7message 1[27m │[39m
[31m+ │ M[7m │[27m[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ s │[39m
[31m+ │ a │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ [7m│ 1 [27m [7m [27m│[39m
[32m- │ N[7mo files have been changed[27m │[39m
[31m+ │ N[7m │[27m[39m
[31m+ │ o │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ v │[39m
[31m+ │ e │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ [7m│ d [27m [7m [27m│[39m
[2m │ │[22m
[32m- │ ● S[7mtay at current position │[27m[39m
[32m- [7m│ Cancel rewind and stay here[27m │[39m
[31m+ │ ● S[7m │[27m[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ y │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ p │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ C │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ c │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ w │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ a │[39m
[31m+ │ y │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ [7m│ e [27m │[39m
[2m │ │[22m
[2m │ │[22m
[2m │ (Use Enter to select a message, Esc to close, Right/Left to expand/collapse) │[22m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
❯ src/ui/components/RewindViewer.test.tsx:407:25
405| );
406|
407| expect(lastFrame()).toMatchSnapshot('initial');
| ^
408|
409| unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[131/292]⎯
FAIL src/ui/components/RewindViewer.test.tsx > renders accessible screen reader view when screen reader is enabled
AssertionError: expected 'Rewind - Select a conversation point:…' to contain 'Stay at current position'
[32m- Expected[39m
[31m+ Received[39m
[32m- Stay at current position[39m
[31m+ Rewind - Select a conversation point:[39m
[31m+ 1. H[39m
[31m+ e[39m
[31m+ l[39m
[31m+ l[39m
[31m+ o[39m
[31m+ w[39m
[31m+ o[39m
[31m+ r[39m
[31m+ l[39m
[31m+ d[39m
[31m+ 2. S[39m
[31m+ e[39m
[31m+ c[39m
[31m+ o[39m
[31m+ n[39m
[31m+ d[39m
[31m+ m[39m
[31m+ e[39m
[31m+ s[39m
[31m+ s[39m
[31m+ a[39m
[31m+ g[39m
[31m+ e[39m
[31m+ ● 3. S [39m
[31m+ t [39m
[31m+ a [39m
[31m+ y [39m
[31m+ a [39m
[31m+ t [39m
[31m+ c [39m
[31m+ u [39m
[31m+ r [39m
[31m+ r [39m
[31m+ e [39m
[31m+ n [39m
[31m+ t [39m
[31m+ p [39m
[31m+ o [39m
[31m+ s [39m
[31m+ i [39m
[31m+ t [39m
[31m+ i [39m
[31m+ o [39m
[31m+ n [39m
[31m+ Press Esc to exit, Enter to select, arrow keys to navigate.[39m
[31m+[39m
❯ src/ui/components/RewindViewer.test.tsx:451:17
449| const frame = lastFrame();
450| expect(frame).toContain('Rewind - Select a conversation point:');
451| expect(frame).toContain('Stay at current position');
| ^
452|
453| vi.mocked(useIsScreenReaderEnabled).mockReturnValue(false);
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[132/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Initial Rendering > should accept availableTerminalHeight prop without errors
AssertionError: expected '╭────────────────────────────────────…' to contain 'Settings'
[32m- Expected[39m
[31m+ Received[39m
[32m- Settings[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ ●cV f │[39m
[31m+ │ hi a │[39m
[31m+ │ tm l │[39m
[31m+ │ oM s │[39m
[31m+ │ fo e │[39m
[31m+ │ id │[39m
[31m+ │ le │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ ▼r │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:293:22
291| const output = lastFrame();
292| // Should still render properly with the height prop
293| expect(output).toContain('Settings');
| ^
294| // Use regex for more flexible help text matching
295| expect(output).toMatch(/Enter.*select.*Esc.*close/);
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[133/292]⎯
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 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[32m- │ > Settings │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ ●cV f │[39m
[31m+ │ hi a │[39m
[31m+ │ tm l │[39m
[31m+ │ oM s │[39m
[31m+ │ fo e │[39m
[31m+ │ id │[39m
[31m+ │ le │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ rD D │[39m
[31m+ │ e e │[39m
[31m+ │ f f │[39m
[31m+ │ a a │[39m
[31m+ │ u u │[39m
[31m+ │ l l │[39m
[31m+ │ t t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ E t │[39m
[31m+ │ n r │[39m
[31m+ │ a u │[39m
[31m+ │ b e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │[39m
[32m- │ │ Search to filter │ │[39m
[32m- │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │[39m
[31m+ │ E f │[39m
[31m+ │ n a │[39m
[31m+ │ a l │[39m
[31m+ │ b s │[39m
[31m+ │ l e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[2m │ │[22m
[32m- │ ▲ │[39m
[32m- │ ● Vim Mode false │[39m
[32m- │ Enable Vim keybindings │[39m
[2m │ │[22m
[32m- │ Default Approval Mode Default │[39m
[32m- │ The default approval mode for tool execution. 'default' prompts for approval, 'au… │[39m
[31m+ │ E t │[39m
[31m+ │ n r │[39m
[31m+ │ a u │[39m
[31m+ │ b e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[2m │ │[22m
[32m- │ Enable Auto Update true │[39m
[32m- │ Enable automatic updates. │[39m
[2m │ │[22m
[32m- │ Enable Notifications false │[39m
[32m- │ Enable run-event notifications for action-required prompts and session completion. │[39m
[31m+ │ P u │[39m
[31m+ │ l n │[39m
[31m+ │ a d │[39m
[31m+ │ n e │[39m
[31m+ │ D f │[39m
[31m+ │ i i │[39m
[31m+ │ r n │[39m
[31m+ │ e e │[39m
[31m+ │ c d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ Enable Plan Mode true │[39m
[32m- │ Enable Plan Mode for read-only safety during planning. │[39m
[31m+ │ P t │[39m
[31m+ │ l r │[39m
[31m+ │ a u │[39m
[31m+ │ n e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[2m │ │[22m
[32m- │ Plan Directory undefined │[39m
[32m- │ The directory where planning artifacts are stored. If not specified, defaults t… │[39m
[2m │ │[22m
[32m- │ Plan Model Routing true │[39m
[32m- │ Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr… │[39m
[31m+ │ R t │[39m
[31m+ │ e r │[39m
[31m+ │ t u │[39m
[31m+ │ r e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[2m │ │[22m
[32m- │ Retry Fetch Errors true │[39m
[32m- │ Retry on "exception TypeError: fetch failed sending request" errors. │[39m
[2m │ │[22m
[2m │ ▼ │[22m
[2m │ │[22m
[32m- │ Apply To │[39m
[32m- │ ● User Settings │[39m
[32m- │ Workspace Settings │[39m
[32m- │ System Settings │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ (Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close) │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯"[22m
❯ 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/SettingsDialog.test.tsx:305:34
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[134/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Initial Rendering > should use almost full height of the window but no more when the window height is 25 rows
AssertionError: expected 108 to be less than or equal to 25
❯ src/ui/components/SettingsDialog.test.tsx:325:30
323|
324| expect(lines.length).toBeGreaterThanOrEqual(24);
325| expect(lines.length).toBeLessThanOrEqual(25);
| ^
326| });
327| unmount();
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/SettingsDialog.test.tsx:319:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[135/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Setting Descriptions > should render descriptions for settings that have them
AssertionError: expected '╭────────────────────────────────────…' to contain 'Vim Mode'
[32m- Expected[39m
[31m+ Received[39m
[32m- Vim Mode[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ ●cV f │[39m
[31m+ │ hi a │[39m
[31m+ │ tm l │[39m
[31m+ │ oM s │[39m
[31m+ │ fo e │[39m
[31m+ │ id │[39m
[31m+ │ le │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ rD D │[39m
[31m+ │ e e │[39m
[31m+ │ f f │[39m
[31m+ │ a a │[39m
[31m+ │ u u │[39m
[31m+ │ l l │[39m
[31m+ │ t t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ E t │[39m
[31m+ │ n r │[39m
[31m+ │ a u │[39m
[31m+ │ b e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ E f │[39m
[31m+ │ n a │[39m
[31m+ │ a l │[39m
[31m+ │ b s │[39m
[31m+ │ l e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ E t │[39m
[31m+ │ n r │[39m
[31m+ │ a u │[39m
[31m+ │ b e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ P u │[39m
[31m+ │ l n │[39m
[31m+ │ a d │[39m
[31m+ │ n e │[39m
[31m+ │ D f │[39m
[31m+ │ i i │[39m
[31m+ │ r n │[39m
[31m+ │ e e │[39m
[31m+ │ c d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ P t │[39m
[31m+ │ l r │[39m
[31m+ │ a u │[39m
[31m+ │ n e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ R t │[39m
[31m+ │ e r │[39m
[31m+ │ t u │[39m
[31m+ │ r e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ▼ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:340:22
338| const output = lastFrame();
339| // 'general.vimMode' has description 'Enable Vim keybindings' in…
340| expect(output).toContain('Vim Mode');
| ^
341| expect(output).toContain('Enable Vim keybindings');
342| // 'general.enableAutoUpdate' has description 'Enable automatic …
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[136/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Settings Navigation > should navigate with 'arrow keys'
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Settings Navigation > should navigate with 'emacs keys (Ctrl+P/N)'
AssertionError: expected '╭────────────────────────────────────…' to contain 'Vim Mode'
[32m- Expected[39m
[31m+ Received[39m
[32m- Vim Mode[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ ●cV f │[39m
[31m+ │ hi a │[39m
[31m+ │ tm l │[39m
[31m+ │ oM s │[39m
[31m+ │ fo e │[39m
[31m+ │ id │[39m
[31m+ │ le │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ rD D │[39m
[31m+ │ e e │[39m
[31m+ │ f f │[39m
[31m+ │ a a │[39m
[31m+ │ u u │[39m
[31m+ │ l l │[39m
[31m+ │ t t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ E t │[39m
[31m+ │ n r │[39m
[31m+ │ a u │[39m
[31m+ │ b e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ E f │[39m
[31m+ │ n a │[39m
[31m+ │ a l │[39m
[31m+ │ b s │[39m
[31m+ │ l e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ E t │[39m
[31m+ │ n r │[39m
[31m+ │ a u │[39m
[31m+ │ b e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ P u │[39m
[31m+ │ l n │[39m
[31m+ │ a d │[39m
[31m+ │ n e │[39m
[31m+ │ D f │[39m
[31m+ │ i i │[39m
[31m+ │ r n │[39m
[31m+ │ e e │[39m
[31m+ │ c d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ P t │[39m
[31m+ │ l r │[39m
[31m+ │ a u │[39m
[31m+ │ n e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ R t │[39m
[31m+ │ e r │[39m
[31m+ │ t u │[39m
[31m+ │ r e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ▼ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:371:28
369|
370| const initialFrame = lastFrame();
371| expect(initialFrame).toContain('Vim Mode');
| ^
372|
373| // Navigate down
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[137/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Settings Navigation > should allow j and k characters to be typed in search without triggering navigation
AssertionError: expected '╭────────────────────────────────────…' to contain 'jk'
[32m- Expected[39m
[31m+ Received[39m
[32m- jk[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ j│ │[39m
[31m+ │ ╰─k │[39m
[31m+ │ │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ m │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ h │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:413:23
411| const frame = lastFrame();
412| // The search box should contain 'jk'
413| expect(frame).toContain('jk');
| ^
414| // Since 'jk' doesn't match any setting labels, it should say …
415| expect(frame).toContain('No matches found.');
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/SettingsDialog.test.tsx:410:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[138/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Settings Navigation > wraps around when at the top of the list
AssertionError: expected '╭────────────────────────────────────…' to contain 'Hook Notifications'
[32m- Expected[39m
[31m+ Received[39m
[32m- Hook Notifications[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ cD f │[39m
[31m+ │ hi a │[39m
[31m+ │ tr l │[39m
[31m+ │ oe s │[39m
[31m+ │ fc e │[39m
[31m+ │ it │[39m
[31m+ │ lW │[39m
[31m+ │ te │[39m
[31m+ │ eb │[39m
[31m+ │ rF │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ M f │[39m
[31m+ │ e a │[39m
[31m+ │ m l │[39m
[31m+ │ o s │[39m
[31m+ │ r e │[39m
[31m+ │ y │[39m
[31m+ │ M │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ a │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ A │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ U f │[39m
[31m+ │ s a │[39m
[31m+ │ e l │[39m
[31m+ │ t s │[39m
[31m+ │ h e │[39m
[31m+ │ e │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ i │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ m │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ a │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ a │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ x │[39m
[31m+ │ t │[39m
[31m+ │ s │[39m
[31m+ │ . │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ E f │[39m
[31m+ │ n a │[39m
[31m+ │ a l │[39m
[31m+ │ b s │[39m
[31m+ │ l e │[39m
[31m+ │ e │[39m
[31m+ │ C │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ x │[39m
[31m+ │ t │[39m
[31m+ │ M │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ a │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ T f │[39m
[31m+ │ o a │[39m
[31m+ │ p l │[39m
[31m+ │ i s │[39m
[31m+ │ c e │[39m
[31m+ │ & │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ a │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ E t │[39m
[31m+ │ n r │[39m
[31m+ │ a u │[39m
[31m+ │ b e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ S │[39m
[31m+ │ k │[39m
[31m+ │ i │[39m
[31m+ │ l │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ E t │[39m
[31m+ │ n r │[39m
[31m+ │ a u │[39m
[31m+ │ b e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ H │[39m
[31m+ │ o │[39m
[31m+ │ o │[39m
[31m+ │ k │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● H t │[39m
[31m+ │ o r │[39m
[31m+ │ o u │[39m
[31m+ │ k e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ▼ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:437:29
435| await waitFor(() => {
436| // Should wrap to last setting (without relying on exact bulle…
437| expect(lastFrame()).toContain('Hook Notifications');
| ^
438| });
439|
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/SettingsDialog.test.tsx:435:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[139/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Settings Toggling > should toggle setting with Enter key
AssertionError: expected '╭────────────────────────────────────…' to contain 'Vim Mode'
[32m- Expected[39m
[31m+ Received[39m
[32m- Vim Mode[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ ●cV f │[39m
[31m+ │ hi a │[39m
[31m+ │ tm l │[39m
[31m+ │ oM s │[39m
[31m+ │ fo e │[39m
[31m+ │ id │[39m
[31m+ │ le │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ rD D │[39m
[31m+ │ e e │[39m
[31m+ │ f f │[39m
[31m+ │ a a │[39m
[31m+ │ u u │[39m
[31m+ │ l l │[39m
[31m+ │ t t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ E t │[39m
[31m+ │ n r │[39m
[31m+ │ a u │[39m
[31m+ │ b e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ E f │[39m
[31m+ │ n a │[39m
[31m+ │ a l │[39m
[31m+ │ b s │[39m
[31m+ │ l e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ E t │[39m
[31m+ │ n r │[39m
[31m+ │ a u │[39m
[31m+ │ b e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ P u │[39m
[31m+ │ l n │[39m
[31m+ │ a d │[39m
[31m+ │ n e │[39m
[31m+ │ D f │[39m
[31m+ │ i i │[39m
[31m+ │ r n │[39m
[31m+ │ e e │[39m
[31m+ │ c d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ P t │[39m
[31m+ │ l r │[39m
[31m+ │ a u │[39m
[31m+ │ n e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ R t │[39m
[31m+ │ e r │[39m
[31m+ │ t u │[39m
[31m+ │ r e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ▼ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:457:29
455| // Wait for initial render and verify we're on Vim Mode (first s…
456| await waitFor(() => {
457| expect(lastFrame()).toContain('Vim Mode');
| ^
458| });
459|
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/SettingsDialog.test.tsx:456:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[140/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Scope Selection > should reset to settings focus when scope is selected
AssertionError: expected '╭────────────────────────────────────…' to contain 'Vim Mode'
[32m- Expected[39m
[31m+ Received[39m
[32m- Vim Mode[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ fc │[39m
[31m+ │ ah │[39m
[31m+ │ lt │[39m
[31m+ │ so │[39m
[31m+ │ ef │[39m
[31m+ │ di │[39m
[31m+ │ el │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ Dr │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ▼ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:579:29
577| // Wait for initial render
578| await waitFor(() => {
579| expect(lastFrame()).toContain('Vim Mode');
| ^
580| });
581|
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/SettingsDialog.test.tsx:578:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[141/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Escape Key Behavior > should call onSelect with undefined when Escape is pressed
AssertionError: expected '╭────────────────────────────────────…' to contain 'Vim Mode'
[32m- Expected[39m
[31m+ Received[39m
[32m- Vim Mode[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ fc │[39m
[31m+ │ ah │[39m
[31m+ │ lt │[39m
[31m+ │ so │[39m
[31m+ │ ef │[39m
[31m+ │ di │[39m
[31m+ │ el │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ Dr │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ▼ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:640:29
638| // Wait for initial render
639| await waitFor(() => {
640| expect(lastFrame()).toContain('Vim Mode');
| ^
641| });
642|
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/SettingsDialog.test.tsx:639:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[142/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Settings Persistence > should show different values for different scopes
AssertionError: expected '╭────────────────────────────────────…' to contain 'Settings'
[32m- Expected[39m
[31m+ Received[39m
[32m- Settings[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ fc │[39m
[31m+ │ ah │[39m
[31m+ │ lt │[39m
[31m+ │ so │[39m
[31m+ │ ef │[39m
[31m+ │ di │[39m
[31m+ │ el │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ Dr │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ▼ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:699:22
697| // Should show user scope values initially
698| const output = lastFrame();
699| expect(output).toContain('Settings');
| ^
700| unmount();
701| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[143/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Specific Settings Behavior > should show correct display values for settings with different states
AssertionError: expected '╭────────────────────────────────────…' to contain 'Settings'
[32m- Expected[39m
[31m+ Received[39m
[32m- Settings[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ fc │[39m
[31m+ │ ah │[39m
[31m+ │ lt │[39m
[31m+ │ so │[39m
[31m+ │ ef │[39m
[31m+ │ di │[39m
[31m+ │ el │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ Dr │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ▼ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:778:22
776| const output = lastFrame();
777| // Should contain settings labels
778| expect(output).toContain('Settings');
| ^
779| unmount();
780| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[144/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Settings Display Values > should show correct values for inherited settings
AssertionError: expected '╭────────────────────────────────────…' to contain 'Settings'
[32m- Expected[39m
[31m+ Received[39m
[32m- Settings[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ fc │[39m
[31m+ │ ah │[39m
[31m+ │ lt │[39m
[31m+ │ so │[39m
[31m+ │ ef │[39m
[31m+ │ di │[39m
[31m+ │ el │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ Dr │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ▼ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:846:22
844| const output = lastFrame();
845| // Settings should show inherited values
846| expect(output).toContain('Settings');
| ^
847| unmount();
848| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[145/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Settings Display Values > should show override indicator for overridden settings
AssertionError: expected '╭────────────────────────────────────…' to contain 'Settings'
[32m- Expected[39m
[31m+ Received[39m
[32m- Settings[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ fc │[39m
[31m+ │ ah │[39m
[31m+ │ lt │[39m
[31m+ │ so │[39m
[31m+ │ ef │[39m
[31m+ │ di │[39m
[31m+ │ el │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ Dr │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ▼ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:869:22
867| const output = lastFrame();
868| // Should show settings with override indicators
869| expect(output).toContain('Settings');
| ^
870| unmount();
871| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[146/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Keyboard Shortcuts Edge Cases > should properly handle Tab navigation between sections
AssertionError: expected '╭────────────────────────────────────…' to contain 'Vim Mode'
[32m- Expected[39m
[31m+ Received[39m
[32m- Vim Mode[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ fc │[39m
[31m+ │ ah │[39m
[31m+ │ lt │[39m
[31m+ │ so │[39m
[31m+ │ ef │[39m
[31m+ │ di │[39m
[31m+ │ el │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ Dr │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ▼ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:1014:29
1012| // Wait for initial render
1013| await waitFor(() => {
1014| expect(lastFrame()).toContain('Vim Mode');
| ^
1015| });
1016|
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/SettingsDialog.test.tsx:1013:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[147/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Error Recovery > should handle malformed settings gracefully
AssertionError: expected '╭────────────────────────────────────…' to contain 'Settings'
[32m- Expected[39m
[31m+ Received[39m
[32m- Settings[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ fc │[39m
[31m+ │ ah │[39m
[31m+ │ lt │[39m
[31m+ │ so │[39m
[31m+ │ ef │[39m
[31m+ │ di │[39m
[31m+ │ el │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ Dr │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ▼ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:1043:27
1041|
1042| // Should still render without crashing
1043| expect(lastFrame()).toContain('Settings');
| ^
1044| unmount();
1045| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[148/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Error Recovery > should handle missing setting definitions gracefully
AssertionError: expected '╭────────────────────────────────────…' to contain 'Settings'
[32m- Expected[39m
[31m+ Received[39m
[32m- Settings[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ fc │[39m
[31m+ │ ah │[39m
[31m+ │ lt │[39m
[31m+ │ so │[39m
[31m+ │ ef │[39m
[31m+ │ di │[39m
[31m+ │ el │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ Dr │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ▼ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:1054:27
1052| const { lastFrame, unmount } = await renderDialog(settings, onSe…
1053|
1054| expect(lastFrame()).toContain('Settings');
| ^
1055| unmount();
1056| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[149/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Complex User Interactions > should handle complete user workflow: navigate, toggle, change scope, exit
AssertionError: expected '╭────────────────────────────────────…' to contain 'Vim Mode'
[32m- Expected[39m
[31m+ Received[39m
[32m- Vim Mode[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ fc │[39m
[31m+ │ ah │[39m
[31m+ │ lt │[39m
[31m+ │ so │[39m
[31m+ │ ef │[39m
[31m+ │ di │[39m
[31m+ │ el │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ Dr │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ▼ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:1068:29
1066| // Wait for initial render
1067| await waitFor(() => {
1068| expect(lastFrame()).toContain('Vim Mode');
| ^
1069| });
1070|
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/SettingsDialog.test.tsx:1067:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[150/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Restart and Search Conflict Regression > should prioritize restart request over search text box when showRestartPrompt is true
AssertionError: expected '╭────────────────────────────────────…' to contain 'Show Color'
[32m- Expected[39m
[31m+ Received[39m
[32m- Show Color[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ fr │[39m
[31m+ │ ac │[39m
[31m+ │ lh │[39m
[31m+ │ st │[39m
[31m+ │ eo │[39m
[31m+ │ of │[39m
[31m+ │ li │[39m
[31m+ │ ol │[39m
[31m+ │ rt │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ I │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ a │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ v │[39m
[31m+ │ e │[39m
[31m+ │ S │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ l │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:1196:47
1194|
1195| // Wait for initial render
1196| await waitFor(() => expect(lastFrame()).toContain('Show Color'));
| ^
1197|
1198| // Navigate to "Enable Interactive Shell" (second item in TOOLS_…
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/SettingsDialog.test.tsx:1196:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[151/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Restart and Search Conflict Regression > should hide search box when showRestartPrompt is true
AssertionError: expected '╭────────────────────────────────────…' to contain 'Search to filter'
[32m- Expected[39m
[31m+ Received[39m
[32m- Search to filter[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ fr │[39m
[31m+ │ ac │[39m
[31m+ │ lh │[39m
[31m+ │ st │[39m
[31m+ │ eo │[39m
[31m+ │ of │[39m
[31m+ │ li │[39m
[31m+ │ ol │[39m
[31m+ │ rt │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ I │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ a │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ v │[39m
[31m+ │ e │[39m
[31m+ │ S │[39m
[31m+ │ h │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ l │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:1244:27
1242|
1243| // Search box should be visible initially (searchPlaceholder)
1244| expect(lastFrame()).toContain('Search to filter');
| ^
1245|
1246| // Navigate to "Enable Interactive Shell" and toggle it
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[152/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Search Functionality > should display text entered in search
AssertionError: expected '╭────────────────────────────────────…' to contain 'Search to filter'
[32m- Expected[39m
[31m+ Received[39m
[32m- Search to filter[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ fc │[39m
[31m+ │ ah │[39m
[31m+ │ lt │[39m
[31m+ │ so │[39m
[31m+ │ ef │[39m
[31m+ │ di │[39m
[31m+ │ el │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ Dr │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ▼ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:1418:27
1416| expect(lastFrame()).not.toContain('> Search:');
1417| });
1418| expect(lastFrame()).toContain('Search to filter');
| ^
1419|
1420| // Press '/' to enter search mode
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[153/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Search Functionality > should show search query and filter settings as user types
AssertionError: expected '╭────────────────────────────────────…' to contain 'yolo'
[32m- Expected[39m
[31m+ Received[39m
[32m- yolo[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ y│ │[39m
[31m+ │ ╰─o╯ │[39m
[31m+ │ l │[39m
[31m+ │ fo │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ Y │[39m
[31m+ │ O │[39m
[31m+ │ L │[39m
[31m+ │ O │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ K │[39m
[31m+ │ e │[39m
[31m+ │ y │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ k │[39m
[31m+ │ e │[39m
[31m+ │ L │[39m
[31m+ │ o │[39m
[31m+ │ g │[39m
[31m+ │ g │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ m │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ m │[39m
[31m+ │ I │[39m
[31m+ │ n │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ u │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ D │[39m
[31m+ │ i │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ i │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:1449:29
1447|
1448| await waitFor(() => {
1449| expect(lastFrame()).toContain('yolo');
| ^
1450| expect(lastFrame()).toContain('Disable YOLO Mode');
1451| });
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/SettingsDialog.test.tsx:1448:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[154/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Search Functionality > should exit search settings when Escape is pressed
AssertionError: expected '╭────────────────────────────────────…' to contain 'vim'
[32m- Expected[39m
[31m+ Received[39m
[32m- vim[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ v│ │[39m
[31m+ │ ╰─i╯ │[39m
[31m+ │ m │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ v │[39m
[31m+ │ i │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ m │[39m
[31m+ │ e │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ V │[39m
[31m+ │ a │[39m
[31m+ │ r │[39m
[31m+ │ i │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ R │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:1470:29
1468| await waitUntilReady();
1469| await waitFor(() => {
1470| expect(lastFrame()).toContain('vim');
| ^
1471| });
1472|
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/SettingsDialog.test.tsx:1469:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[155/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Search Functionality > should handle backspace to modify search query
AssertionError: expected '╭────────────────────────────────────…' to contain 'vimm'
[32m- Expected[39m
[31m+ Received[39m
[32m- vimm[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ v│ │[39m
[31m+ │ ╰─i╯ │[39m
[31m+ │ m │[39m
[31m+ │ fm │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:1502:29
1500| await waitUntilReady();
1501| await waitFor(() => {
1502| expect(lastFrame()).toContain('vimm');
| ^
1503| });
1504|
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/SettingsDialog.test.tsx:1501:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[156/292]⎯
FAIL src/ui/components/SettingsDialog.test.tsx > SettingsDialog > Search Functionality > should display nothing when search yields no results
AssertionError: expected '╭────────────────────────────────────…' to contain 'nonexistentsetting'
[32m- Expected[39m
[31m+ Received[39m
[32m- nonexistentsetting[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ n│ │[39m
[31m+ │ ╰─o╯ │[39m
[31m+ │ n │[39m
[31m+ │ Ne │[39m
[31m+ │ ox │[39m
[31m+ │ mi │[39m
[31m+ │ ●s │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ hn │[39m
[31m+ │ (t │[39m
[31m+ │ Us │[39m
[31m+ │ se │[39m
[31m+ │ et │[39m
[31m+ │ Et │[39m
[31m+ │ ni │[39m
[31m+ │ tn │[39m
[31m+ │ eg │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/SettingsDialog.test.tsx:1536:29
1534|
1535| await waitFor(() => {
1536| expect(lastFrame()).toContain('nonexistentsetting');
| ^
1537| expect(lastFrame()).not.toContain('Vim Mode'); // Should not c…
1538| expect(lastFrame()).not.toContain('Enable Auto Update'); // Sh…
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/SettingsDialog.test.tsx:1535:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[157/292]⎯
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 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[32m- │ > Settings │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ fc │[39m
[31m+ │ ah │[39m
[31m+ │ lt │[39m
[31m+ │ so │[39m
[31m+ │ ef │[39m
[31m+ │ di │[39m
[31m+ │ el │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ Dr │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │[39m
[32m- │ │ Search to filter │ │[39m
[32m- │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[2m │ │[22m
[32m- │ ▲ │[39m
[32m- │ ● Vim Mode false │[39m
[32m- │ Enable Vim keybindings │[39m
[2m │ │[22m
[32m- │ Default Approval Mode Default │[39m
[32m- │ The default approval mode for tool execution. 'default' prompts for approval, 'au… │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[2m │ │[22m
[32m- │ Enable Auto Update true │[39m
[32m- │ Enable automatic updates. │[39m
[2m │ │[22m
[32m- │ Enable Notifications false │[39m
[32m- │ Enable run-event notifications for action-required prompts and session completion. │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ Enable Plan Mode true │[39m
[32m- │ Enable Plan Mode for read-only safety during planning. │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[2m │ │[22m
[32m- │ Plan Directory undefined │[39m
[32m- │ The directory where planning artifacts are stored. If not specified, defaults t… │[39m
[2m │ │[22m
[32m- │ Plan Model Routing true │[39m
[32m- │ Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr… │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[2m │ │[22m
[32m- │ Retry Fetch Errors true │[39m
[32m- │ Retry on "exception TypeError: fetch failed sending request" errors. │[39m
[2m │ │[22m
[2m │ ▼ │[22m
[2m │ │[22m
[32m- │ Apply To │[39m
[32m- │ ● User Settings │[39m
[32m- │ Workspace Settings │[39m
[32m- │ System Settings │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ (Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close) │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯"[22m
❯ 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/SettingsDialog.test.tsx:1784:36
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[158/292]⎯
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 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[32m- │ > Settings │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ tc │[39m
[31m+ │ rh │[39m
[31m+ │ ut │[39m
[31m+ │ eo │[39m
[31m+ │ *f │[39m
[31m+ │ di │[39m
[31m+ │ el │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ Dr │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ * │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │[39m
[32m- │ │ Search to filter │ │[39m
[32m- │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[2m │ │[22m
[32m- │ ▲ │[39m
[32m- │ ● Vim Mode true* │[39m
[32m- │ Enable Vim keybindings │[39m
[2m │ │[22m
[32m- │ Default Approval Mode Default │[39m
[32m- │ The default approval mode for tool execution. 'default' prompts for approval, 'au… │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[2m │ │[22m
[32m- │ Enable Auto Update false* │[39m
[32m- │ Enable automatic updates. │[39m
[2m │ │[22m
[32m- │ Enable Notifications false │[39m
[32m- │ Enable run-event notifications for action-required prompts and session completion. │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ Enable Plan Mode true │[39m
[32m- │ Enable Plan Mode for read-only safety during planning. │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[2m │ │[22m
[32m- │ Plan Directory undefined │[39m
[32m- │ The directory where planning artifacts are stored. If not specified, defaults t… │[39m
[2m │ │[22m
[32m- │ Plan Model Routing true │[39m
[32m- │ Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr… │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[2m │ │[22m
[32m- │ Retry Fetch Errors true │[39m
[32m- │ Retry on "exception TypeError: fetch failed sending request" errors. │[39m
[2m │ │[22m
[2m │ ▼ │[22m
[2m │ │[22m
[32m- │ Apply To │[39m
[32m- │ ● User Settings │[39m
[32m- │ Workspace Settings │[39m
[32m- │ System Settings │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ (Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close) │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯"[22m
❯ 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/SettingsDialog.test.tsx:1784:36
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[159/292]⎯
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 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[32m- │ > Settings │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ fc │[39m
[31m+ │ ah │[39m
[31m+ │ lt │[39m
[31m+ │ so │[39m
[31m+ │ ef │[39m
[31m+ │ *i │[39m
[31m+ │ el │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ Dr │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ * │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │[39m
[32m- │ │ Search to filter │ │[39m
[32m- │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[2m │ │[22m
[32m- │ ▲ │[39m
[32m- │ ● Vim Mode false* │[39m
[32m- │ Enable Vim keybindings │[39m
[2m │ │[22m
[32m- │ Default Approval Mode Default │[39m
[32m- │ The default approval mode for tool execution. 'default' prompts for approval, 'au… │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[2m │ │[22m
[32m- │ Enable Auto Update false* │[39m
[32m- │ Enable automatic updates. │[39m
[2m │ │[22m
[32m- │ Enable Notifications false │[39m
[32m- │ Enable run-event notifications for action-required prompts and session completion. │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ Enable Plan Mode true │[39m
[32m- │ Enable Plan Mode for read-only safety during planning. │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[2m │ │[22m
[32m- │ Plan Directory undefined │[39m
[32m- │ The directory where planning artifacts are stored. If not specified, defaults t… │[39m
[2m │ │[22m
[32m- │ Plan Model Routing true │[39m
[32m- │ Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr… │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[2m │ │[22m
[32m- │ Retry Fetch Errors true │[39m
[32m- │ Retry on "exception TypeError: fetch failed sending request" errors. │[39m
[2m │ │[22m
[2m │ ▼ │[22m
[2m │ │[22m
[32m- │ Apply To │[39m
[32m- │ ● User Settings │[39m
[32m- │ Workspace Settings │[39m
[32m- │ System Settings │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ (Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close) │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯"[22m
❯ 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/SettingsDialog.test.tsx:1784:36
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[160/292]⎯
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 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[32m- │ Settings │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ fc │[39m
[31m+ │ ah │[39m
[31m+ │ lt │[39m
[31m+ │ so │[39m
[31m+ │ ef │[39m
[31m+ │ di │[39m
[31m+ │ el │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ Dr │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │[39m
[32m- │ │ Search to filter │ │[39m
[32m- │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[2m │ │[22m
[32m- │ ▲ │[39m
[32m- │ Vim Mode false │[39m
[32m- │ Enable Vim keybindings │[39m
[2m │ │[22m
[32m- │ Default Approval Mode Default │[39m
[32m- │ The default approval mode for tool execution. 'default' prompts for approval, 'au… │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[2m │ │[22m
[32m- │ Enable Auto Update true │[39m
[32m- │ Enable automatic updates. │[39m
[2m │ │[22m
[32m- │ Enable Notifications false │[39m
[32m- │ Enable run-event notifications for action-required prompts and session completion. │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ Enable Plan Mode true │[39m
[32m- │ Enable Plan Mode for read-only safety during planning. │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[2m │ │[22m
[32m- │ Plan Directory undefined │[39m
[32m- │ The directory where planning artifacts are stored. If not specified, defaults t… │[39m
[2m │ │[22m
[32m- │ Plan Model Routing true │[39m
[32m- │ Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr… │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[2m │ │[22m
[32m- │ Retry Fetch Errors true │[39m
[32m- │ Retry on "exception TypeError: fetch failed sending request" errors. │[39m
[2m │ │[22m
[2m │ ▼ │[22m
[2m │ │[22m
[32m- │ > Apply To │[39m
[32m- │ ● 1. User Settings │[39m
[32m- │ 2. Workspace Settings │[39m
[32m- │ 3. System Settings │[39m
[31m+ │ │[39m
[31m+ │ 1. │[39m
[31m+ │ 2. │[39m
[31m+ │ 3. │[39m
[2m │ │[22m
[32m- │ (Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close) │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯"[22m
❯ 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/SettingsDialog.test.tsx:1784:36
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[161/292]⎯
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 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[32m- │ > Settings │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ tc │[39m
[31m+ │ rh │[39m
[31m+ │ ut │[39m
[31m+ │ eo │[39m
[31m+ │ *f │[39m
[31m+ │ di │[39m
[31m+ │ el │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ Dr │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │[39m
[32m- │ │ Search to filter │ │[39m
[32m- │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[2m │ │[22m
[32m- │ ▲ │[39m
[32m- │ ● Vim Mode true* │[39m
[32m- │ Enable Vim keybindings │[39m
[2m │ │[22m
[32m- │ Default Approval Mode Default │[39m
[32m- │ The default approval mode for tool execution. 'default' prompts for approval, 'au… │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[2m │ │[22m
[32m- │ Enable Auto Update true │[39m
[32m- │ Enable automatic updates. │[39m
[2m │ │[22m
[32m- │ Enable Notifications false │[39m
[32m- │ Enable run-event notifications for action-required prompts and session completion. │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ Enable Plan Mode true │[39m
[32m- │ Enable Plan Mode for read-only safety during planning. │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[2m │ │[22m
[32m- │ Plan Directory undefined │[39m
[32m- │ The directory where planning artifacts are stored. If not specified, defaults t… │[39m
[2m │ │[22m
[32m- │ Plan Model Routing true │[39m
[32m- │ Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr… │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[2m │ │[22m
[32m- │ Retry Fetch Errors true │[39m
[32m- │ Retry on "exception TypeError: fetch failed sending request" errors. │[39m
[2m │ │[22m
[2m │ ▼ │[22m
[2m │ │[22m
[32m- │ Apply To │[39m
[32m- │ ● User Settings │[39m
[32m- │ Workspace Settings │[39m
[32m- │ System Settings │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ (Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close) │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯"[22m
❯ 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/SettingsDialog.test.tsx:1784:36
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[162/292]⎯
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 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[32m- │ > Settings │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ fc │[39m
[31m+ │ ah │[39m
[31m+ │ lt │[39m
[31m+ │ so │[39m
[31m+ │ ef │[39m
[31m+ │ di │[39m
[31m+ │ el │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ Dr │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │[39m
[32m- │ │ Search to filter │ │[39m
[32m- │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[2m │ │[22m
[32m- │ ▲ │[39m
[32m- │ ● Vim Mode false │[39m
[32m- │ Enable Vim keybindings │[39m
[2m │ │[22m
[32m- │ Default Approval Mode Default │[39m
[32m- │ The default approval mode for tool execution. 'default' prompts for approval, 'au… │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[2m │ │[22m
[32m- │ Enable Auto Update true │[39m
[32m- │ Enable automatic updates. │[39m
[2m │ │[22m
[32m- │ Enable Notifications false │[39m
[32m- │ Enable run-event notifications for action-required prompts and session completion. │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ Enable Plan Mode true │[39m
[32m- │ Enable Plan Mode for read-only safety during planning. │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[2m │ │[22m
[32m- │ Plan Directory undefined │[39m
[32m- │ The directory where planning artifacts are stored. If not specified, defaults t… │[39m
[2m │ │[22m
[32m- │ Plan Model Routing true │[39m
[32m- │ Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr… │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[2m │ │[22m
[32m- │ Retry Fetch Errors true │[39m
[32m- │ Retry on "exception TypeError: fetch failed sending request" errors. │[39m
[2m │ │[22m
[2m │ ▼ │[22m
[2m │ │[22m
[32m- │ Apply To │[39m
[32m- │ ● User Settings │[39m
[32m- │ Workspace Settings │[39m
[32m- │ System Settings │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ (Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close) │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯"[22m
❯ 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/SettingsDialog.test.tsx:1784:36
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[163/292]⎯
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 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[32m- │ > Settings │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ fc │[39m
[31m+ │ ah │[39m
[31m+ │ lt │[39m
[31m+ │ so │[39m
[31m+ │ ef │[39m
[31m+ │ di │[39m
[31m+ │ el │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ Dr │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │[39m
[32m- │ │ Search to filter │ │[39m
[32m- │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[2m │ │[22m
[32m- │ ▲ │[39m
[32m- │ ● Vim Mode false │[39m
[32m- │ Enable Vim keybindings │[39m
[2m │ │[22m
[32m- │ Default Approval Mode Default │[39m
[32m- │ The default approval mode for tool execution. 'default' prompts for approval, 'au… │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[2m │ │[22m
[32m- │ Enable Auto Update true │[39m
[32m- │ Enable automatic updates. │[39m
[2m │ │[22m
[32m- │ Enable Notifications false │[39m
[32m- │ Enable run-event notifications for action-required prompts and session completion. │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ Enable Plan Mode true │[39m
[32m- │ Enable Plan Mode for read-only safety during planning. │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[2m │ │[22m
[32m- │ Plan Directory undefined │[39m
[32m- │ The directory where planning artifacts are stored. If not specified, defaults t… │[39m
[2m │ │[22m
[32m- │ Plan Model Routing true │[39m
[32m- │ Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr… │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[2m │ │[22m
[32m- │ Retry Fetch Errors true │[39m
[32m- │ Retry on "exception TypeError: fetch failed sending request" errors. │[39m
[2m │ │[22m
[2m │ ▼ │[22m
[2m │ │[22m
[32m- │ Apply To │[39m
[32m- │ ● User Settings │[39m
[32m- │ Workspace Settings │[39m
[32m- │ System Settings │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ (Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close) │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯"[22m
❯ 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/SettingsDialog.test.tsx:1784:36
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[164/292]⎯
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 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[32m- │ > Settings │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ╭──╮ │[39m
[31m+ │ │ S│ │[39m
[31m+ │ ╰─e╯ │[39m
[31m+ │ a │[39m
[31m+ │ ▲r │[39m
[31m+ │ fc │[39m
[31m+ │ ah │[39m
[31m+ │ lt │[39m
[31m+ │ so │[39m
[31m+ │ ef │[39m
[31m+ │ *i │[39m
[31m+ │ el │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ Dr │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ l │[39m
[31m+ │ t │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ * │[39m
[31m+ │ e │[39m
[31m+ │ A │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ U │[39m
[31m+ │ p │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │[39m
[32m- │ │ Search to filter │ │[39m
[32m- │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │[39m
[31m+ │ f │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ N │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ s │[39m
[2m │ │[22m
[32m- │ ▲ │[39m
[32m- │ ● Vim Mode false* │[39m
[32m- │ Enable Vim keybindings │[39m
[2m │ │[22m
[32m- │ Default Approval Mode Default │[39m
[32m- │ The default approval mode for tool execution. 'default' prompts for approval, 'au… │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ P │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[2m │ │[22m
[32m- │ Enable Auto Update true* │[39m
[32m- │ Enable automatic updates. │[39m
[2m │ │[22m
[32m- │ Enable Notifications false │[39m
[32m- │ Enable run-event notifications for action-required prompts and session completion. │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ y │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ Enable Plan Mode true │[39m
[32m- │ Enable Plan Mode for read-only safety during planning. │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ M │[39m
[31m+ │ o │[39m
[31m+ │ d │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ R │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[2m │ │[22m
[32m- │ Plan Directory undefined │[39m
[32m- │ The directory where planning artifacts are stored. If not specified, defaults t… │[39m
[2m │ │[22m
[32m- │ Plan Model Routing true │[39m
[32m- │ Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pr… │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ y │[39m
[31m+ │ F │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ E │[39m
[31m+ │ r │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ s │[39m
[2m │ │[22m
[32m- │ Retry Fetch Errors true │[39m
[32m- │ Retry on "exception TypeError: fetch failed sending request" errors. │[39m
[2m │ │[22m
[2m │ ▼ │[22m
[2m │ │[22m
[32m- │ Apply To │[39m
[32m- │ ● User Settings │[39m
[32m- │ Workspace Settings │[39m
[32m- │ System Settings │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[2m │ │[22m
[32m- │ (Use Enter to select, Ctrl+L to reset, Tab to change focus, Esc to close) │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯"[22m
❯ 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/SettingsDialog.test.tsx:1784:36
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[165/292]⎯
FAIL src/ui/components/ShortcutsHelp.test.tsx > ShortcutsHelp > renders correctly in 'narrow' mode on 'mac'
FAIL src/ui/components/ShortcutsHelp.test.tsx > ShortcutsHelp > renders correctly in 'wide' mode on 'linux'
FAIL src/ui/components/ShortcutsHelp.test.tsx > ShortcutsHelp > renders correctly in 'narrow' mode on 'linux'
AssertionError: expected '─────────────────────────────────────…' to contain 'shell mode'
[32m- Expected[39m
[31m+ Received[39m
[32m- shell mode[39m
[31m+ ────────────────────────────────────────[39m
[31m+ Shortcuts See /help for more[39m
[31m+ ! s[39m
[31m+ h[39m
[31m+ e[39m
[31m+ l[39m
[31m+ l[39m
[31m+ m[39m
[31m+ o[39m
[31m+ d[39m
[31m+ e[39m
[31m+ @ s[39m
[31m+ e[39m
[31m+ l[39m
[31m+ e[39m
[31m+ c[39m
[31m+ t[39m
[31m+ f[39m
[31m+ i[39m
[31m+ l[39m
[31m+ e[39m
[31m+ o[39m
[31m+ r[39m
[31m+ f[39m
[31m+ o[39m
[31m+ l[39m
[31m+ d[39m
[31m+ e[39m
[31m+ r[39m
[31m+ Double Esc c[39m
[31m+ l[39m
[31m+ e[39m
[31m+ a[39m
[31m+ r[39m
[31m+ &[39m
[31m+ r[39m
[31m+ e[39m
[31m+ w[39m
[31m+ i[39m
[31m+ n[39m
[31m+ d[39m
[31m+ Tab f[39m
[31m+ o[39m
[31m+ c[39m
[31m+ u[39m
[31m+ s[39m
[31m+ U[39m
[31m+ I[39m
[31m+ Ctrl+Y Y[39m
[31m+ O[39m
[31m+ L[39m
[31m+ O[39m
[31m+ m[39m
[31m+ o[39m
[31m+ d[39m
[31m+ e[39m
[31m+ Shift+Tab c[39m
[31m+ y[39m
[31m+ c[39m
[31m+ l[39m
[31m+ e[39m
[31m+ m[39m
[31m+ o[39m
[31m+ d[39m
[31m+ e[39m
[31m+ Ctrl+V p[39m
[31m+ a[39m
[31m+ s[39m
[31m+ t[39m
[31m+ e[39m
[31m+ i[39m
[31m+ m[39m
[31m+ a[39m
[31m+ g[39m
[31m+ e[39m
[31m+ s[39m
[31m+ Option+M r[39m
[31m+ a[39m
[31m+ w[39m
[31m+ m[39m
[31m+ a[39m
[31m+ r[39m
[31m+ k[39m
[31m+ d[39m
[31m+ o[39m
[31m+ w[39m
[31m+ n[39m
[31m+ m[39m
[31m+ o[39m
[31m+ d[39m
[31m+ e[39m
[31m+ Ctrl+R r[39m
[31m+ e[39m
[31m+ v[39m
[31m+ e[39m
[31m+ r[39m
[31m+ s[39m
[31m+ e[39m
[31m+ -[39m
[31m+ s[39m
[31m+ e[39m
[31m+ a[39m
[31m+ r[39m
[31m+ c[39m
[31m+ h[39m
[31m+ h[39m
[31m+ i[39m
[31m+ s[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+ y[39m
[31m+ Ctrl+G o[39m
[31m+ p[39m
[31m+ e[39m
[31m+ n[39m
[31m+ e[39m
[31m+ x[39m
[31m+ t[39m
[31m+ e[39m
[31m+ r[39m
[31m+ n[39m
[31m+ a[39m
[31m+ l[39m
[31m+ e[39m
[31m+ d[39m
[31m+ i[39m
[31m+ t[39m
[31m+ o[39m
[31m+ r[39m
[31m+[39m
❯ src/ui/components/ShortcutsHelp.test.tsx:51:27
49| },
50| );
51| expect(lastFrame()).toContain('shell mode');
| ^
52| expect(lastFrame()).toMatchSnapshot();
53| unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[166/292]⎯
FAIL src/ui/components/ShortcutsHelp.test.tsx > ShortcutsHelp > always shows Tab focus UI shortcut
AssertionError: expected '─────────────────────────────────────…' to contain 'Tab focus UI'
[32m- Expected[39m
[31m+ Received[39m
[32m- Tab focus UI[39m
[31m+ ────────────────────────────────────────────────────────────────────────────────────────────────────[39m
[31m+ Shortcuts See /help for more[39m
[31m+ ! s Shift+Tab c Ctrl+V p[39m
[31m+ h y a[39m
[31m+ e c s[39m
[31m+ l l t[39m
[31m+ l e e[39m
[31m+ m m i[39m
[31m+ o o m[39m
[31m+ d d a[39m
[31m+ e e g[39m
[31m+ e[39m
[31m+ s[39m
[31m+ @ s Ctrl+Y Y Alt+M r[39m
[31m+ e O a[39m
[31m+ l L w[39m
[31m+ e O m[39m
[31m+ c m a[39m
[31m+ t o r[39m
[31m+ f d k[39m
[31m+ i e d[39m
[31m+ l o[39m
[31m+ e w[39m
[31m+ o n[39m
[31m+ r m[39m
[31m+ f o[39m
[31m+ o d[39m
[31m+ l e[39m
[31m+ d[39m
[31m+ e[39m
[31m+ r[39m
[31m+ Double Esc c Ctrl+R r Ctrl+G o[39m
[31m+ l e p[39m
[31m+ e v e[39m
[31m+ a e n[39m
[31m+ r r e[39m
[31m+ & s x[39m
[31m+ r e t[39m
[31m+ e - e[39m
[31m+ w s r[39m
[31m+ i e n[39m
[31m+ n a a[39m
[31m+ d r l[39m
[31m+ c e[39m
[31m+ h d[39m
[31m+ h i[39m
[31m+ i t[39m
[31m+ s o[39m
[31m+ t r[39m
[31m+ o[39m
[31m+ r[39m
[31m+ y[39m
[31m+ Tab f[39m
[31m+ o[39m
[31m+ c[39m
[31m+ u[39m
[31m+ s[39m
[31m+ U[39m
[31m+ I[39m
[31m+[39m
❯ src/ui/components/ShortcutsHelp.test.tsx:60:34
58| const rendered = await renderWithProviders();
59|
60| expect(rendered.lastFrame()).toContain('Tab focus UI');
| ^
61| rendered.unmount();
62| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[167/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -4,11 +4,11 @@[39m
[2m [22m
[2m [22m
[2m [22m
[2m ID[22m
[2m Name[22m
[32m- ────────────────────────────────────────────────────────────────────────────────────────────────────[39m
[31m+ ────────────────────────────────────────────────────────────────────────────────────────────────────[39m
[2m 1[22m
[2m Alice[22m
[2m 2[22m
[2m Bob[22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[168/292]⎯
FAIL src/ui/components/Table.test.tsx > Table > should support custom cell rendering
Error: Snapshot `Table > should support custom cell rendering 2` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -3,9 +3,9 @@[39m
[2m text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }[22m
[2m [22m
[2m [22m
[2m [22m
[2m Value[22m
[32m- ────────────────────────────────────────────────────────────────────────────────────────────────────[39m
[31m+ ────────────────────────────────────────────────────────────────────────────────────────────────────[39m
[2m 20[22m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[169/292]⎯
FAIL src/ui/components/Table.test.tsx > Table > should support inverse text rendering
Error: Snapshot `Table > should support inverse text rendering 2` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -3,10 +3,10 @@[39m
[2m text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }[22m
[2m [22m
[2m [22m
[2m [22m
[2m Status[22m
[32m- ────────────────────────────────────────────────────────────────────────────────────────────────────[39m
[31m+ ────────────────────────────────────────────────────────────────────────────────────────────────────[39m
[2m [22m
[2m Active[22m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[170/292]⎯
FAIL src/ui/components/ThemeDialog.test.tsx > ThemeDialog Snapshots > should render correctly in theme selection mode (isDevelopment: true)
Error: Snapshot `ThemeDialog Snapshots > should render correctly in theme selection mode (isDevelopment: true) 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -1,21 +1,21 @@[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[2m │ > Select Theme Preview │[22m
[2m │ ▲ ┌─────────────────────────────────────────────────┐ │[22m
[32m- │ ● 1. [7mANSI Dark (Matches terminal)[27m │ │ │[39m
[31m+ │ ● 1. [7m [27m │ │ │[39m
[32m- │ 2. [7mAtom One Dark[27m │ 1 # function │ │[39m
[31m+ │ 2. [7m [27m [7m [27m│ 1 # function │ │[39m
[32m- │ 3. [7mAyu Dark[27m │ 2 def fibonacci(n): │ │[39m
[31m+ │ 3. [7m [27m [7m [27m│ 2 def fibonacci(n): │ │[39m
[32m- │ 4. [7mDefault Dark[27m │ 3 a, b = 0, 1 │ │[39m
[31m+ │ 4. [7m [27m [7m [27m│ 3 a, b = 0, 1 │ │[39m
[32m- │ 5. [7mDracula Dark[27m │ 4 for _ in range(n): │ │[39m
[31m+ │ 5. [7m [27m │ 4 for _ in range(n): │ │[39m
[32m- │ 6. [7mGitHub Dark[27m │ 5 a, b = b, a + b │ │[39m
[31m+ │ 6. [7m [27m [7m [27m│ 5 a, b = b, a + b │ │[39m
[32m- │ 7. [7mHoliday Dark[27m │ 6 return a │ │[39m
[31m+ │ 7. [7m [27m [7m [27m│ 6 return a │ │[39m
[32m- │ 8. [7mShades Of Purple Dark[27m │ │ │[39m
[31m+ │ 8. [7m [27m [7m [27m│ │ │[39m
[32m- │ 9. [7mSolarized Dark[27m │ 1 - print("Hello, " + name) │ │[39m
[31m+ │ 9. [7m [27m [7m [27m│ 1 - print("Hello, " + name) │ │[39m
[32m- │ 10. [7mTokyo Night Dark[27m │ 1 + print(f"Hello, {name}!") │ │[39m
[31m+ │ 10. [7m [27m │ 1 + print(f"Hello, {name}!") │ │[39m
[32m- │ 11. [7mANSI Light[27m │ │ │[39m
[31m+ │ 11. [7m [27m │ │ │[39m
[32m- │ 12. [7mAyu Light[27m └─────────────────────────────────────────────────┘ │[39m
[31m+ │ 12. [7m [27m [7m [27m└─────────────────────────────────────────────────┘ │[39m
[2m │ ▼ │[22m
[2m │ ╭─────────────────────────────────────────────────╮ │[22m
[2m │ │ DEVELOPER TOOLS (Not visible to users) │ │[22m
[2m │ │ │ │[22m
[2m │ │ How do colors get applied? │ │[22m
[33m@@ -71,13 +71,13 @@[39m
[2m │ │ or and critical status │ │[22m
[2m │ │ #D7FFD7status.suc Color for success messages │ │[22m
[2m │ │ cess and positive status │ │[22m
[2m │ │ #FFFFA status.wa Color for warnings and │ │[22m
[2m │ │ F rning cautionary status │ │[22m
[32m- │ │ #4796E4 ui.g[7mradien[27m │ │[39m
[31m+ │ │ #4796E4 ui.g [7m [27m│ │[39m
[32m- │ │ #847ACE [7mt[27m [7m [27m│ │[39m
[31m+ │ │ #847ACE [7mradi[27m │ │[39m
[32m- │ │ #C3677F [7m [27m[7m [27m │ │[39m
[31m+ │ │ #C3677F [7ment[27m │ │[39m
[2m │ ╰─────────────────────────────────────────────────╯ │[22m
[2m │ │[22m
[2m │ (Use Enter to select, Tab to configure scope, Esc to close) │[22m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
❯ src/ui/components/ThemeDialog.test.tsx:59:27
57| );
58|
59| expect(lastFrame()).toMatchSnapshot();
| ^
60| unmount();
61| },
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[171/292]⎯
FAIL src/ui/components/ThemeDialog.test.tsx > ThemeDialog Snapshots > should render correctly in theme selection mode (isDevelopment: false)
Error: Snapshot `ThemeDialog Snapshots > should render correctly in theme selection mode (isDevelopment: false) 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -1,21 +1,21 @@[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[2m │ > Select Theme Preview │[22m
[2m │ ▲ ┌─────────────────────────────────────────────────┐ │[22m
[32m- │ ●[7m [27m 1. [7mANSI Dark (Matches terminal)[27m │ │ │[39m
[31m+ │ ● 1. [7m [27m │ │ │[39m
[32m- │[7m [27m 2. [7mAtom One Dark[27m │ 1 # function │ │[39m
[31m+ │ 2. [7m [27m [7m [27m│ 1 # function │ │[39m
[32m- │ [7m [27m3. [7mAyu Dark[27m │ 2 def fibonacci(n): │ │[39m
[31m+ │ 3. [7m [27m [7m [27m│ 2 def fibonacci(n): │ │[39m
[32m- │[7m [27m 4. [7mDefault Dark[27m │ 3 a, b = 0, 1 │ │[39m
[31m+ │ 4. [7m [27m [7m [27m│ 3 a, b = 0, 1 │ │[39m
[32m- │ [7m [27m5. [7mDracula Dark[27m │ 4 for _ in range(n): │ │[39m
[31m+ │ 5. [7m [27m │ 4 for _ in range(n): │ │[39m
[32m- │ [7m [27m6. [7mGitHub Dark[27m │ 5 a, b = b, a + b │ │[39m
[31m+ │ 6. [7m [27m [7m [27m│ 5 a, b = b, a + b │ │[39m
[32m- │[7m [27m 7. [7mHoliday Dark[27m │ 6 return a │ │[39m
[31m+ │ 7. [7m [27m │ 6 return a │ │[39m
[32m- │ [7m [27m8. [7mShades Of Purple Dark[27m │ │ │[39m
[31m+ │ 8. [7m [27m [7m [27m│ │ │[39m
[32m- │[7m [27m 9. [7mSolarized Dark[27m │ 1 - print("Hello, " + name) │ │[39m
[31m+ │ 9. [7m [27m │ 1 - print("Hello, " + name) │ │[39m
[32m- │[7m [27m 10. [7mTokyo Night Dark[27m │ 1 + print(f"Hello, {name}!") │ │[39m
[31m+ │ 10. [7m [27m [7m [27m│ 1 + print(f"Hello, {name}!") │ │[39m
[32m- │[7m [27m 11. [7mANSI Light[27m │ │ │[39m
[31m+ │ 11. [7m [27m │ │ │[39m
[32m- │[7m [27m 12. [7mAyu Light[27m └─────────────────────────────────────────────────┘ │[39m
[31m+ │ 12. [7m [27m └─────────────────────────────────────────────────┘ │[39m
[2m │ ▼ │[22m
[2m │ │[22m
[2m │ (Use Enter to select, Tab to configure scope, Esc to close) │[22m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
❯ src/ui/components/ThemeDialog.test.tsx:59:27
57| );
58|
59| expect(lastFrame()).toMatchSnapshot();
| ^
60| unmount();
61| },
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[172/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[2m │ > Apply To │[22m
[32m- │ ●[7m [27m1. [7mUser Settings[27m │[39m
[31m+ │ ●1. [7m [27m │[39m
[32m- │ [7m [27m2. [7mWorkspace Settings[27m │[39m
[31m+ │ 2. [7m [27m [7m [27m│[39m
[32m- │ [7m [27m3. [7mSystem Settings[27m │[39m
[31m+ │ 3. [7m [27m │[39m
[2m │ │[22m
[2m │ (Use Enter to apply scope, Tab to select theme, Esc to close) │[22m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
[2m "[22m
❯ src/ui/components/ThemeDialog.test.tsx:80:25
78| await waitUntilReady();
79|
80| expect(lastFrame()).toMatchSnapshot();
| ^
81| unmount();
82| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[173/292]⎯
FAIL src/ui/components/ThemeDialog.test.tsx > Initial Theme Selection > should default to a light theme when terminal background is light and no theme is set
Error: Snapshot `Initial Theme Selection > should default to a light theme when terminal background is light and no theme is set 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -1,21 +1,21 @@[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[2m │ > Select Theme Preview │[22m
[2m │ ▲ ┌─────────────────────────────────────────────────┐ │[22m
[32m- │ [7m [27m1. [7mANSI Light[27m │ │ │[39m
[31m+ │ 1. [7m [27m │ │ │[39m
[32m- │[7m [27m 2. [7mAyu Light[27m │ 1 # function │ │[39m
[31m+ │ 2. [7m [27m [7m [27m│ 1 # function │ │[39m
[32m- │ ●[7m [27m 3. [7mDefault Light[27m │ 2 def fibonacci(n): │ │[39m
[31m+ │ ● 3. [7m [27m │ 2 def fibonacci(n): │ │[39m
[32m- │[7m [27m 4. [7mGitHub Light[27m │ 3 a, b = 0, 1 │ │[39m
[31m+ │ 4. [7m [27m [7m [27m│ 3 a, b = 0, 1 │ │[39m
[32m- │ [7m [27m5. [7mGoogle Code Light[27m │ 4 for _ in range(n): │ │[39m
[31m+ │ 5. [7m [27m [7m [27m│ 4 for _ in range(n): │ │[39m
[32m- │ [7m [27m6. [7mSolarized Light[27m │ 5 a, b = b, a + b │ │[39m
[31m+ │ 6. [7m [27m │ 5 a, b = b, a + b │ │[39m
[32m- │[7m [27m 7. [7mXcode Light[27m │ 6 return a │ │[39m
[31m+ │ 7. [7m [27m [7m [27m│ 6 return a │ │[39m
[32m- │ [7m [27m8. [7mANSI Dark (Incompatible)[27m │ │ │[39m
[31m+ │ 8. [7m [27m [7m [27m│ │ │[39m
[32m- │ [7m [27m9. [7mAtom One Dark (Incompatible)[27m │ 1 - print("Hello, " + name) │ │[39m
[31m+ │ 9. [7m [27m [7m [27m│ 1 - print("Hello, " + name) │ │[39m
[32m- │ [7m [27m10. [7mAyu Dark (Incompatible)[27m │ 1 + print(f"Hello, {name}!") │ │[39m
[31m+ │ 10. [7m [27m │ 1 + print(f"Hello, {name}!") │ │[39m
[32m- │[7m [27m 11. [7mDefault Dark (Incompatible)[27m │ │ │[39m
[31m+ │ 11. [7m [27m │ │ │[39m
[32m- │ [7m [27m12. [7mDracula Dark (Incompatible)[27m └─────────────────────────────────────────────────┘ │[39m
[31m+ │ 12. [7m [27m └─────────────────────────────────────────────────┘ │[39m
[2m │ ▼ │[22m
[2m │ │[22m
[2m │ (Use Enter to select, Tab to configure scope, Esc to close) │[22m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
❯ src/ui/components/ThemeDialog.test.tsx:158:25
156| // The snapshot will show which theme is highlighted.
157| // We expect 'DefaultLight' to be the one with the '>' indicator.
158| expect(lastFrame()).toMatchSnapshot();
| ^
159| unmount();
160| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[174/292]⎯
FAIL src/ui/components/ThemeDialog.test.tsx > Initial Theme Selection > should default to a dark theme when terminal background is dark and no theme is set
Error: Snapshot `Initial Theme Selection > should default to a dark theme when terminal background is dark and no theme is set 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -1,21 +1,21 @@[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[2m │ > Select Theme Preview │[22m
[2m │ ▲ ┌─────────────────────────────────────────────────┐ │[22m
[32m- │ [7m [27m1. [7mANSI Dark[27m │ │ │[39m
[31m+ │ 1. [7m [27m │ │ │[39m
[32m- │[7m [27m 2. [7mAtom One Dark[27m │ 1 # function │ │[39m
[31m+ │ 2. [7m [27m [7m [27m│ 1 # function │ │[39m
[32m- │[7m [27m 3. [7mAyu Dark[27m │ 2 def fibonacci(n): │ │[39m
[31m+ │ 3. [7m [27m │ 2 def fibonacci(n): │ │[39m
[32m- │ ●[7m [27m 4. [7mDefault Dark (Matches terminal)[27m │ 3 a, b = 0, 1 │ │[39m
[31m+ │ ● 4. [7m [27m [7m [27m│ 3 a, b = 0, 1 │ │[39m
[32m- │ [7m [27m5. [7mDracula Dark[27m │ 4 for _ in range(n): │ │[39m
[31m+ │ 5. [7m [27m │ 4 for _ in range(n): │ │[39m
[32m- │ [7m [27m6. [7mGitHub Dark[27m │ 5 a, b = b, a + b │ │[39m
[31m+ │ 6. [7m [27m [7m [27m│ 5 a, b = b, a + b │ │[39m
[32m- │[7m [27m 7. [7mHoliday Dark[27m │ 6 return a │ │[39m
[31m+ │ 7. [7m [27m │ 6 return a │ │[39m
[32m- │ [7m [27m8. [7mShades Of Purple Dark[27m │ │ │[39m
[31m+ │ 8. [7m [27m [7m [27m│ │ │[39m
[32m- │[7m [27m 9. [7mSolarized Dark[27m │ 1 - print("Hello, " + name) │ │[39m
[31m+ │ 9. [7m [27m │ 1 - print("Hello, " + name) │ │[39m
[32m- │[7m [27m 10. [7mTokyo Night Dark[27m │ 1 + print(f"Hello, {name}!") │ │[39m
[31m+ │ 10. [7m [27m [7m [27m│ 1 + print(f"Hello, {name}!") │ │[39m
[32m- │[7m [27m 11. [7mANSI Light[27m │ │ │[39m
[31m+ │ 11. [7m [27m │ │ │[39m
[32m- │[7m [27m 12. [7mAyu Light[27m └─────────────────────────────────────────────────┘ │[39m
[31m+ │ 12. [7m [27m └─────────────────────────────────────────────────┘ │[39m
[2m │ ▼ │[22m
[2m │ │[22m
[2m │ (Use Enter to select, Tab to configure scope, Esc to close) │[22m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
❯ src/ui/components/ThemeDialog.test.tsx:173:25
171|
172| // We expect 'DefaultDark' to be highlighted.
173| expect(lastFrame()).toMatchSnapshot();
| ^
174| unmount();
175| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[175/292]⎯
FAIL src/ui/components/ThemeDialog.test.tsx > Initial Theme Selection > should use the theme from settings even if terminal background suggests a different theme type
Error: Snapshot `Initial Theme Selection > should use the theme from settings even if terminal background suggests a different theme type 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -1,21 +1,21 @@[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ │[22m
[2m │ > Select Theme Preview │[22m
[2m │ ▲ ┌─────────────────────────────────────────────────┐ │[22m
[32m- │ ●[7m [27m 1. [7mANSI Dark[27m │ │ │[39m
[31m+ │ ● 1. [7m [27m │ │ │[39m
[32m- │[7m [27m 2. [7mAtom One Dark[27m │ 1 # function │ │[39m
[31m+ │ 2. [7m [27m [7m [27m│ 1 # function │ │[39m
[32m- │[7m [27m 3. [7mAyu Dark[27m │ 2 def fibonacci(n): │ │[39m
[31m+ │ 3. [7m [27m │ 2 def fibonacci(n): │ │[39m
[32m- │[7m [27m 4. [7mDefault Dark (Matches terminal)[27m │ 3 a, b = 0, 1 │ │[39m
[31m+ │ 4. [7m [27m [7m [27m│ 3 a, b = 0, 1 │ │[39m
[32m- │ [7m [27m5. [7mDracula Dark[27m │ 4 for _ in range(n): │ │[39m
[31m+ │ 5. [7m [27m │ 4 for _ in range(n): │ │[39m
[32m- │ [7m [27m6. [7mGitHub Dark[27m │ 5 a, b = b, a + b │ │[39m
[31m+ │ 6. [7m [27m [7m [27m│ 5 a, b = b, a + b │ │[39m
[32m- │[7m [27m 7. [7mHoliday Dark[27m │ 6 return a │ │[39m
[31m+ │ 7. [7m [27m │ 6 return a │ │[39m
[32m- │ [7m [27m8. [7mShades Of Purple Dark[27m │ │ │[39m
[31m+ │ 8. [7m [27m [7m [27m│ │ │[39m
[32m- │[7m [27m 9. [7mSolarized Dark[27m │ 1 - print("Hello, " + name) │ │[39m
[31m+ │ 9. [7m [27m │ 1 - print("Hello, " + name) │ │[39m
[32m- │[7m [27m 10. [7mTokyo Night Dark[27m │ 1 + print(f"Hello, {name}!") │ │[39m
[31m+ │ 10. [7m [27m [7m [27m│ 1 + print(f"Hello, {name}!") │ │[39m
[32m- │[7m [27m 11. [7mANSI Light[27m │ │ │[39m
[31m+ │ 11. [7m [27m │ │ │[39m
[32m- │[7m [27m 12. [7mAyu Light[27m └─────────────────────────────────────────────────┘ │[39m
[31m+ │ 12. [7m [27m └─────────────────────────────────────────────────┘ │[39m
[2m │ ▼ │[22m
[2m │ │[22m
[2m │ (Use Enter to select, Tab to configure scope, Esc to close) │[22m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
❯ src/ui/components/ThemeDialog.test.tsx:188:25
186|
187| // We expect 'DefaultLight' to be highlighted, respecting the sett…
188| expect(lastFrame()).toMatchSnapshot();
| ^
189| unmount();
190| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[176/292]⎯
FAIL src/ui/components/ThemeDialog.test.tsx > Hint Visibility > should show hint when theme background matches terminal background
AssertionError: expected '╭────────────────────────────────────…' to contain '(Matches terminal)'
[32m- Expected[39m
[31m+ Received[39m
[32m- (Matches terminal)[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ > Select Theme Preview │[39m
[31m+ │ ▲ ┌─────────────────────────────────────────────────┐ │[39m
[31m+ │ 1. │ │ │[39m
[31m+ │ 2. │ 1 # function │ │[39m
[31m+ │ 3. │ 2 def fibonacci(n): │ │[39m
[31m+ │ ● 4. │ 3 a, b = 0, 1 │ │[39m
[31m+ │ 5. │ 4 for _ in range(n): │ │[39m
[31m+ │ 6. │ 5 a, b = b, a + b │ │[39m
[31m+ │ 7. │ 6 return a │ │[39m
[31m+ │ 8. │ │ │[39m
[31m+ │ 9. │ 1 - print("Hello, " + name) │ │[39m
[31m+ │ 10. │ 1 + print(f"Hello, {name}!") │ │[39m
[31m+ │ 11. │ │ │[39m
[31m+ │ 12. └─────────────────────────────────────────────────┘ │[39m
[31m+ │ ▼ │[39m
[31m+ │ │[39m
[31m+ │ (Use Enter to select, Tab to configure scope, Esc to close) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/ThemeDialog.test.tsx:212:25
210| );
211|
212| expect(lastFrame()).toContain('(Matches terminal)');
| ^
213| unmount();
214| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[177/292]⎯
FAIL src/ui/components/ToolConfirmationQueue.test.tsx > ToolConfirmationQueue > renders the confirming tool with progress indicator
Error: Snapshot `ToolConfirmationQueue > renders the confirming tool with progress indicator 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -3,10 +3,10 @@[39m
[2m │ ╭──────────────────────────────────────────────────────────────────────────╮ │[22m
[2m │ │ ls │ │[22m
[2m │ ╰──────────────────────────────────────────────────────────────────────────╯ │[22m
[2m │ Allow execution of [ls]? │[22m
[2m │ │[22m
[32m- │ ● 1. [7mAllow once[27m │[39m
[31m+ │ ● 1. [7m [27m │[39m
[32m- │ 2. [7mAllow for this session[27m │[39m
[31m+ │ 2. [7m [27m [7m [27m│[39m
[32m- │ 3. [7mNo, suggest changes (esc)[27m │[39m
[31m+ │ 3. [7m [27m │[39m
[2m ╰──────────────────────────────────────────────────────────────────────────────╯[22m
[2m "[22m
❯ src/ui/components/ToolConfirmationQueue.test.tsx:143:20
141| expect(output).toContain('list files'); // Tool description
142| expect(output).toContain('Allow execution of [ls]?');
143| expect(output).toMatchSnapshot();
| ^
144|
145| unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[178/292]⎯
FAIL src/ui/components/ToolConfirmationQueue.test.tsx > ToolConfirmationQueue > calculates availableContentHeight based on availableTerminalHeight from UI state
Error: Snapshot `ToolConfirmationQueue > calculates availableContentHeight based on availableTerminalHeight from UI state 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,11 +2,11 @@[39m
[2m │ ? replace edit file │[22m
[2m │ ╭──────────────────────────────────────────────────────────────────────────╮ │[22m
[2m │ ╰─... 48 hidden (Ctrl+O) ...───────────────────────────────────────────────╯ │[22m
[2m │ Apply this change? │[22m
[2m │ │[22m
[32m- │ ● 1. [7mAllow once[27m │[39m
[31m+ │ ● 1. [7m [27m │[39m
[32m- │ 2. [7mAllow for this session[27m │[39m
[31m+ │ 2. [7m [27m │[39m
[32m- │ 3. [7mModify with external editor[27m [7m│[27m[39m
[32m- [7m│ 4. No, suggest changes (esc)[27m │[39m
[31m+ │ 3. [7m [27m [7m │[27m[39m
[31m+ [7m│ 4. [27m │[39m
[2m ╰──────────────────────────────────────────────────────────────────────────────╯[22m
[2m "[22m
❯ src/ui/components/ToolConfirmationQueue.test.tsx:222:25
220| // It should show truncation message
221| await waitFor(() => expect(lastFrame()).toContain('48 hidden (Ctrl…
222| expect(lastFrame()).toMatchSnapshot();
| ^
223| unmount();
224| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[179/292]⎯
FAIL src/ui/components/ToolConfirmationQueue.test.tsx > ToolConfirmationQueue > provides more height for ask_user by subtracting less overhead
Error: Snapshot `ToolConfirmationQueue > provides more height for ask_user by subtracting less overhead 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -6,12 +6,39 @@[39m
[2m │ Line 3 │[22m
[2m │ Line 4 │[22m
[2m │ Line 5 │[22m
[2m │ Line 6 │[22m
[2m │ │[22m
[32m- │ ● 1. [7mOption 1[27m │[39m
[31m+ │ ● 1. [7m │[27m[39m
[31m+ │ O │[39m
[31m+ │ p │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ [7m│ 1 [27m [7m [27m│[39m
[32m- │ [7mDesc │[27m[39m
[32m- [7m│ 2. Enter a custom value[27m │[39m
[31m+ │ [7m │[27m[39m
[31m+ │ D │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ 2. E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ a │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ m │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ u │[39m
[31m+ [7m│ e [27m │[39m
[2m │ │[22m
[2m │ Enter to select · ↑/↓ to navigate · Esc to cancel │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────╯[22m
[2m "[22m
❯ src/ui/components/ToolConfirmationQueue.test.tsx:278:25
276| expect(lastFrame()).not.toContain('lines hidden');
277| });
278| expect(lastFrame()).toMatchSnapshot();
| ^
279| unmount();
280| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[180/292]⎯
FAIL src/ui/components/ToolConfirmationQueue.test.tsx > ToolConfirmationQueue > does not render expansion hint when constrainHeight is false
Error: Snapshot `ToolConfirmationQueue > does not render expansion hint when constrainHeight is false 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -5,11 +5,11 @@[39m
[2m │ │ No changes detected. │ │[22m
[2m │ │ │ │[22m
[2m │ ╰──────────────────────────────────────────────────────────────────────────╯ │[22m
[2m │ Apply this change? │[22m
[2m │ │[22m
[32m- │ ● 1. [7mAllow once[27m │[39m
[31m+ │ ● 1. [7m [27m │[39m
[32m- │ 2. [7mAllow for this session[27m │[39m
[31m+ │ 2. [7m [27m │[39m
[32m- │ 3. [7mModify with external editor[27m [7m│[27m[39m
[32m- [7m│ 4. No, suggest changes (esc)[27m │[39m
[31m+ │ 3. [7m [27m [7m │[27m[39m
[31m+ [7m│ 4. [27m │[39m
[2m ╰──────────────────────────────────────────────────────────────────────────────╯[22m
[2m "[22m
❯ src/ui/components/ToolConfirmationQueue.test.tsx:321:20
319| const output = lastFrame();
320| expect(output).not.toContain('Press CTRL-O to show more lines');
321| expect(output).toMatchSnapshot();
| ^
322| unmount();
323| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[181/292]⎯
FAIL src/ui/components/ToolConfirmationQueue.test.tsx > ToolConfirmationQueue > renders ExitPlanMode tool confirmation with Success color
Error: Snapshot `ToolConfirmationQueue > renders ExitPlanMode tool confirmation with Success color 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ Ready to start implementation? │[22m
[2m │ │[22m
[2m │ Plan content goes here │[22m
[2m │ │[22m
[32m- │ ● 1. [7mYes, automatically accept edits[27m │[39m
[31m+ │ ● 1. [7m │[27m[39m
[31m+ │ Y │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ m │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ l │[39m
[31m+ │ y │[39m
[31m+ │ a │[39m
[31m+ │ c │[39m
[31m+ │ c │[39m
[31m+ │ e │[39m
[31m+ │ p │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ [7m│ s [27m [7m [27m│[39m
[32m- │ [7mApproves plan and allows tools to run automatically │[27m[39m
[32m- │ 2. Yes, manually accept edits │[39m
[32m- │ Approves plan but requires confirmation for each tool │[39m
[32m- [7m│ 3. Type your feedback...[27m │[39m
[31m+ │ [7m │[27m[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ p │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ d │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ w │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ o │[39m
[31m+ │ l │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ n │[39m
[31m+ │ a │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ m │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ c │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ l │[39m
[31m+ │ y │[39m
[31m+ │ 2. │[39m
[31m+ │ Y │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ m │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ u │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ l │[39m
[31m+ │ y │[39m
[31m+ │ a │[39m
[31m+ │ c │[39m
[31m+ │ c │[39m
[31m+ │ e │[39m
[31m+ │ p │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ i │[39m
[31m+ │ t │[39m
[31m+ │ s │[39m
[31m+ │ │[39m
[31m+ │ A │[39m
[31m+ │ p │[39m
[31m+ │ p │[39m
[31m+ │ r │[39m
[31m+ │ o │[39m
[31m+ │ v │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ p │[39m
[31m+ │ l │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ b │[39m
[31m+ │ u │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ q │[39m
[31m+ │ u │[39m
[31m+ │ i │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ f │[39m
[31m+ │ i │[39m
[31m+ │ r │[39m
[31m+ │ m │[39m
[31m+ │ a │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ a │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ o │[39m
[31m+ │ l │[39m
[31m+ │ 3. T │[39m
[31m+ │ y │[39m
[31m+ │ p │[39m
[31m+ │ e │[39m
[31m+ │ y │[39m
[31m+ │ o │[39m
[31m+ │ u │[39m
[31m+ │ r │[39m
[31m+ │ f │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ d │[39m
[31m+ │ b │[39m
[31m+ │ a │[39m
[31m+ │ c │[39m
[31m+ │ k │[39m
[31m+ │ . │[39m
[31m+ │ . │[39m
[31m+ [7m│ . [27m │[39m
[2m │ │[22m
[2m │ Enter to select · ↑/↓ to navigate · Ctrl+G to edit plan · Esc to cancel │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────╯[22m
[2m "[22m
❯ src/ui/components/ToolConfirmationQueue.test.tsx:398:20
396|
397| const output = lastFrame();
398| expect(output).toMatchSnapshot();
| ^
399|
400| const stickyHeaderProps = vi.mocked(StickyHeader).mock.calls[0][0];
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[182/292]⎯
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 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -30,11 +30,11 @@[39m
[2m │ │ 20 - const oldLine20 = true; │ │[22m
[2m │ │ 20 + const newLine20 = true; │ │[22m
[2m │ ╰──────────────────────────────────────────────────────────────────────────╯ │[22m
[2m │ Apply this change? │[22m
[2m │ │[22m
[32m- │ ● 1. [7mAllow once[27m │[39m
[31m+ │ ● 1. [7m [27m │[39m
[32m- │ 2. [7mAllow for this session[27m │[39m
[31m+ │ 2. [7m [27m │[39m
[32m- │ 3. [7mModify with external editor[27m [7m│[27m[39m
[32m- [7m│ 4. No, suggest changes (esc)[27m │[39m
[31m+ │ 3. [7m [27m [7m │[27m[39m
[31m+ [7m│ 4. [27m │[39m
[2m ╰──────────────────────────────────────────────────────────────────────────────╯[22m
[2m "[22m
❯ 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/ToolConfirmationQueue.test.tsx:454:48
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[183/292]⎯
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 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -31,10 +31,10 @@[39m
[2m │ │ echo "Line 49" │ │[22m
[2m │ │ echo "Line 50" │ │[22m
[2m │ ╰──────────────────────────────────────────────────────────────────────────╯ │[22m
[2m │ Allow execution of [echo]? │[22m
[2m │ │[22m
[32m- │ ● 1. [7mAllow once[27m │[39m
[31m+ │ ● 1. [7m [27m │[39m
[32m- │ 2. [7mAllow for this session[27m │[39m
[31m+ │ 2. [7m [27m [7m [27m│[39m
[32m- │ 3. [7mNo, suggest changes (esc)[27m │[39m
[31m+ │ 3. [7m [27m │[39m
[2m ╰──────────────────────────────────────────────────────────────────────────────╯[22m
[2m "[22m
❯ 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/ToolConfirmationQueue.test.tsx:502:48
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[184/292]⎯
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 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -16,10 +16,10 @@[39m
[2m │ Original: https://täst.com/ │[22m
[2m │ Actual Host (Punycode): https://xn--tst-qla.com/ │[22m
[2m │ │[22m
[2m │ Allow execution of [echo]? │[22m
[2m │ │[22m
[32m- │ ● 1. [7mAllow once[27m │[39m
[31m+ │ ● 1. [7m [27m │[39m
[32m- │ 2. [7mAllow for this session[27m │[39m
[31m+ │ 2. [7m [27m [7m [27m│[39m
[32m- │ 3. [7mNo, suggest changes (esc)[27m │[39m
[31m+ │ 3. [7m [27m │[39m
[2m ╰──────────────────────────────────────────────────────────────────────────────╯[22m
[2m "[22m
❯ 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/ToolConfirmationQueue.test.tsx:551:48
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[185/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -6,11 +6,11 @@[39m
[2m [22m
[2m line [22m
[2m 1[22m
[2m line [22m
[2m 2[22m
[32m- with[39m
[31m+ with[39m
[2m red background[22m
[2m line [22m
[2m 3[22m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[186/292]⎯
FAIL src/ui/utils/MarkdownDisplay.test.tsx > > with 'Windows' line endings > renders unordered lists with different markers
Error: Snapshot ` > with 'Windows' line endings > renders unordered lists with different markers 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[32m- " - i[7mtem A[27m[39m
[32m- * item B[39m
[32m- [7m + item[27m C[39m
[31m+ " - i[39m
[31m+ t[39m
[31m+ e[39m
[31m+ m[39m
[31m+ A[39m
[31m+ * i[39m
[31m+ t[39m
[31m+ e[39m
[31m+ m[39m
[31m+ B[39m
[31m+ + i[39m
[31m+ t[39m
[31m+ e[39m
[31m+ m[39m
[31m+ [7m [27m C[39m
[2m "[22m
❯ src/ui/utils/MarkdownDisplay.test.tsx:99:27
97| ,
98| );
99| expect(lastFrame()).toMatchSnapshot();
| ^
100| unmount();
101| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[187/292]⎯
FAIL src/ui/utils/MarkdownDisplay.test.tsx > > with 'Windows' line endings > renders nested unordered lists
Error: Snapshot ` > with 'Windows' line endings > renders nested unordered lists 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[32m- " * L[7mevel 1[27m[39m
[32m- * Level 2[39m
[32m- [7m * Level[27m 3[39m
[31m+ " * L[39m
[31m+ e[39m
[31m+ v[39m
[31m+ e[39m
[31m+ l[39m
[31m+ 1[39m
[31m+ * L[39m
[31m+ e[39m
[31m+ v[39m
[31m+ e[39m
[31m+ l[39m
[31m+ 2[39m
[31m+ * L[39m
[31m+ e[39m
[31m+ v[39m
[31m+ e[39m
[31m+ l[39m
[31m+ [7m [27m 3[39m
[2m "[22m
❯ src/ui/utils/MarkdownDisplay.test.tsx:112:27
110| ,
111| );
112| expect(lastFrame()).toMatchSnapshot();
| ^
113| unmount();
114| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[188/292]⎯
FAIL src/ui/utils/MarkdownDisplay.test.tsx > > with 'Windows' line endings > renders ordered lists
Error: Snapshot ` > with 'Windows' line endings > renders ordered lists 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[32m- " 1. F[7mirst item[27m[39m
[32m- [7m 2. Second ite[27mm[39m
[31m+ " 1. F[39m
[31m+ i[39m
[31m+ r[39m
[31m+ s[39m
[31m+ t[39m
[31m+ i[39m
[31m+ t[39m
[31m+ e[39m
[31m+ m[39m
[31m+ 2. S[39m
[31m+ e[39m
[31m+ c[39m
[31m+ o[39m
[31m+ n[39m
[31m+ d[39m
[31m+ i[39m
[31m+ t[39m
[31m+ e[39m
[31m+ [7m [27mm[39m
[2m "[22m
❯ src/ui/utils/MarkdownDisplay.test.tsx:124:27
122| ,
123| );
124| expect(lastFrame()).toMatchSnapshot();
| ^
125| unmount();
126| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[189/292]⎯
FAIL src/ui/utils/MarkdownDisplay.test.tsx > > with 'Windows' line endings > correctly parses a mix of markdown elements
Error: Snapshot ` > with 'Windows' line endings > correctly parses a mix of markdown elements 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "Main Title[22m
[2m Here is a paragraph.[22m
[32m- - L[7mist item 1[27m[39m
[32m- [7m - List item[27m 2[39m
[31m+ - L[39m
[31m+ i[39m
[31m+ s[39m
[31m+ t[39m
[31m+ i[39m
[31m+ t[39m
[31m+ e[39m
[31m+ m[39m
[31m+ 1[39m
[31m+ - L[39m
[31m+ i[39m
[31m+ s[39m
[31m+ t[39m
[31m+ i[39m
[31m+ t[39m
[31m+ e[39m
[31m+ m[39m
[31m+ [7m [27m 2[39m
[2m 1 some code[22m
[2m Another paragraph.[22m
[2m "[22m
❯ src/ui/utils/MarkdownDisplay.test.tsx:199:27
197| ,
198| );
199| expect(lastFrame()).toMatchSnapshot();
| ^
200| unmount();
201| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[190/292]⎯
FAIL src/ui/utils/MarkdownDisplay.test.tsx > > with 'Unix' line endings > renders unordered lists with different markers
Error: Snapshot ` > with 'Unix' line endings > renders unordered lists with different markers 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[32m- " - i[7mtem A[27m[39m
[32m- * item B[39m
[32m- [7m + item[27m C[39m
[31m+ " - i[39m
[31m+ t[39m
[31m+ e[39m
[31m+ m[39m
[31m+ A[39m
[31m+ * i[39m
[31m+ t[39m
[31m+ e[39m
[31m+ m[39m
[31m+ B[39m
[31m+ + i[39m
[31m+ t[39m
[31m+ e[39m
[31m+ m[39m
[31m+ [7m [27m C[39m
[2m "[22m
❯ src/ui/utils/MarkdownDisplay.test.tsx:99:27
97| ,
98| );
99| expect(lastFrame()).toMatchSnapshot();
| ^
100| unmount();
101| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[191/292]⎯
FAIL src/ui/utils/MarkdownDisplay.test.tsx > > with 'Unix' line endings > renders nested unordered lists
Error: Snapshot ` > with 'Unix' line endings > renders nested unordered lists 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[32m- " * L[7mevel 1[27m[39m
[32m- * Level 2[39m
[32m- [7m * Level[27m 3[39m
[31m+ " * L[39m
[31m+ e[39m
[31m+ v[39m
[31m+ e[39m
[31m+ l[39m
[31m+ 1[39m
[31m+ * L[39m
[31m+ e[39m
[31m+ v[39m
[31m+ e[39m
[31m+ l[39m
[31m+ 2[39m
[31m+ * L[39m
[31m+ e[39m
[31m+ v[39m
[31m+ e[39m
[31m+ l[39m
[31m+ [7m [27m 3[39m
[2m "[22m
❯ src/ui/utils/MarkdownDisplay.test.tsx:112:27
110| ,
111| );
112| expect(lastFrame()).toMatchSnapshot();
| ^
113| unmount();
114| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[192/292]⎯
FAIL src/ui/utils/MarkdownDisplay.test.tsx > > with 'Unix' line endings > renders ordered lists
Error: Snapshot ` > with 'Unix' line endings > renders ordered lists 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[32m- " 1. F[7mirst item[27m[39m
[32m- [7m 2. Second ite[27mm[39m
[31m+ " 1. F[39m
[31m+ i[39m
[31m+ r[39m
[31m+ s[39m
[31m+ t[39m
[31m+ i[39m
[31m+ t[39m
[31m+ e[39m
[31m+ m[39m
[31m+ 2. S[39m
[31m+ e[39m
[31m+ c[39m
[31m+ o[39m
[31m+ n[39m
[31m+ d[39m
[31m+ i[39m
[31m+ t[39m
[31m+ e[39m
[31m+ [7m [27mm[39m
[2m "[22m
❯ src/ui/utils/MarkdownDisplay.test.tsx:124:27
122| ,
123| );
124| expect(lastFrame()).toMatchSnapshot();
| ^
125| unmount();
126| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[193/292]⎯
FAIL src/ui/utils/MarkdownDisplay.test.tsx > > with 'Unix' line endings > correctly parses a mix of markdown elements
Error: Snapshot ` > with 'Unix' line endings > correctly parses a mix of markdown elements 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "Main Title[22m
[2m Here is a paragraph.[22m
[32m- - L[7mist item 1[27m[39m
[32m- [7m - List item[27m 2[39m
[31m+ - L[39m
[31m+ i[39m
[31m+ s[39m
[31m+ t[39m
[31m+ i[39m
[31m+ t[39m
[31m+ e[39m
[31m+ m[39m
[31m+ 1[39m
[31m+ - L[39m
[31m+ i[39m
[31m+ s[39m
[31m+ t[39m
[31m+ i[39m
[31m+ t[39m
[31m+ e[39m
[31m+ m[39m
[31m+ [7m [27m 2[39m
[2m 1 some code[22m
[2m Another paragraph.[22m
[2m "[22m
❯ src/ui/utils/MarkdownDisplay.test.tsx:199:27
197| ,
198| );
199| expect(lastFrame()).toMatchSnapshot();
| ^
200| unmount();
201| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[194/292]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > renders a 3x3 table correctly
Error: Snapshot `TableRenderer > renders a 3x3 table correctly 2` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,38 +2,38 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ┌──────────────┬──────────────┬──────────────┐[39m
[31m+ ┌──────────────┬──────────────┬──────────────┐[39m
[32m- │[39m
[31m+ │[39m
[32m- Header 1[39m
[31m+ Header 1[39m
[32m- │[39m
[31m+ │[39m
[32m- Header 2[39m
[31m+ Header 2[39m
[32m- │[39m
[31m+ │[39m
[32m- Header 3[39m
[31m+ Header 3[39m
[32m- │[39m
[31m+ │[39m
[32m- ├──────────────┼──────────────┼──────────────┤[39m
[31m+ ├──────────────┼──────────────┼──────────────┤[39m
[32m- │[39m
[31m+ │[39m
[2m Row 1, Col 1[22m
[32m- │[39m
[31m+ │[39m
[2m Row 1, Col 2[22m
[32m- │[39m
[31m+ │[39m
[2m Row 1, Col 3[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Row 2, Col 1[22m
[32m- │[39m
[31m+ │[39m
[2m Row 2, Col 2[22m
[32m- │[39m
[31m+ │[39m
[2m Row 2, Col 3[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Row 3, Col 1[22m
[32m- │[39m
[31m+ │[39m
[2m Row 3, Col 2[22m
[32m- │[39m
[31m+ │[39m
[2m Row 3, Col 3[22m
[32m- │[39m
[31m+ │[39m
[32m- └──────────────┴──────────────┴──────────────┘[39m
[31m+ └──────────────┴──────────────┴──────────────┘[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[195/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,62 +2,62 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ┌───────────────┬───────────────┬──────────────────┬──────────────────┐[39m
[31m+ ┌───────────────┬───────────────┬──────────────────┬──────────────────┐[39m
[32m- │[39m
[31m+ │[39m
[32m- Very Long[39m
[31m+ Very Long[39m
[32m- │[39m
[31m+ │[39m
[32m- Very Long[39m
[31m+ Very Long[39m
[32m- │[39m
[31m+ │[39m
[32m- Very Long Column[39m
[31m+ Very Long Column[39m
[32m- │[39m
[31m+ │[39m
[32m- Very Long Column[39m
[31m+ Very Long Column[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- Column Header[39m
[31m+ Column Header[39m
[32m- │[39m
[31m+ │[39m
[32m- Column Header[39m
[31m+ Column Header[39m
[32m- │[39m
[31m+ │[39m
[32m- Header Three[39m
[31m+ Header Three[39m
[32m- │[39m
[31m+ │[39m
[32m- Header Four[39m
[31m+ Header Four[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- One[39m
[31m+ One[39m
[32m- │[39m
[31m+ │[39m
[32m- Two[39m
[31m+ Two[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- ├───────────────┼───────────────┼──────────────────┼──────────────────┤[39m
[31m+ ├───────────────┼───────────────┼──────────────────┼──────────────────┤[39m
[32m- │[39m
[31m+ │[39m
[2m Data 1.1[22m
[32m- │[39m
[31m+ │[39m
[2m Data 1.2[22m
[32m- │[39m
[31m+ │[39m
[2m Data 1.3[22m
[32m- │[39m
[31m+ │[39m
[2m Data 1.4[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Data 2.1[22m
[32m- │[39m
[31m+ │[39m
[2m Data 2.2[22m
[32m- │[39m
[31m+ │[39m
[2m Data 2.3[22m
[32m- │[39m
[31m+ │[39m
[2m Data 2.4[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Data 3.1[22m
[32m- │[39m
[31m+ │[39m
[2m Data 3.2[22m
[32m- │[39m
[31m+ │[39m
[2m Data 3.3[22m
[32m- │[39m
[31m+ │[39m
[2m Data 3.4[22m
[32m- │[39m
[31m+ │[39m
[32m- └───────────────┴───────────────┴──────────────────┴──────────────────┘[39m
[31m+ └───────────────┴───────────────┴──────────────────┴──────────────────┘[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[196/292]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > wraps long cell content correctly
Error: Snapshot `TableRenderer > wraps long cell content correctly 2` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,34 +2,34 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ┌───────┬─────────────────────────────┬───────┐[39m
[31m+ ┌───────┬─────────────────────────────┬───────┐[39m
[32m- │[39m
[31m+ │[39m
[32m- Col 1[39m
[31m+ Col 1[39m
[32m- │[39m
[31m+ │[39m
[32m- Col 2[39m
[31m+ Col 2[39m
[32m- │[39m
[31m+ │[39m
[32m- Col 3[39m
[31m+ Col 3[39m
[32m- │[39m
[31m+ │[39m
[32m- ├───────┼─────────────────────────────┼───────┤[39m
[31m+ ├───────┼─────────────────────────────┼───────┤[39m
[32m- │[39m
[31m+ │[39m
[2m Short[22m
[32m- │[39m
[31m+ │[39m
[2m This is a very long cell[22m
[32m- │[39m
[31m+ │[39m
[2m Short[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m content that should wrap to[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m multiple lines[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- └───────┴─────────────────────────────┴───────┘[39m
[31m+ └───────┴─────────────────────────────┴───────┘[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[197/292]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > wraps all long columns correctly
Error: Snapshot `TableRenderer > wraps all long columns correctly 2` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,51 +2,51 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ┌────────────────┬────────────────┬─────────────────┐[39m
[31m+ ┌────────────────┬────────────────┬─────────────────┐[39m
[32m- │[39m
[31m+ │[39m
[32m- Col 1[39m
[31m+ Col 1[39m
[32m- │[39m
[31m+ │[39m
[32m- Col 2[39m
[31m+ Col 2[39m
[32m- │[39m
[31m+ │[39m
[32m- Col 3[39m
[31m+ Col 3[39m
[32m- │[39m
[31m+ │[39m
[32m- ├────────────────┼────────────────┼─────────────────┤[39m
[31m+ ├────────────────┼────────────────┼─────────────────┤[39m
[32m- │[39m
[31m+ │[39m
[2m This is a very[22m
[32m- │[39m
[31m+ │[39m
[2m This is also a[22m
[32m- │[39m
[31m+ │[39m
[2m And this is the[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m long text that[22m
[32m- │[39m
[31m+ │[39m
[2m very long text[22m
[32m- │[39m
[31m+ │[39m
[2m third long text[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m needs wrapping[22m
[32m- │[39m
[31m+ │[39m
[2m that needs[22m
[32m- │[39m
[31m+ │[39m
[2m that needs[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m in column 1[22m
[32m- │[39m
[31m+ │[39m
[2m wrapping in[22m
[32m- │[39m
[31m+ │[39m
[2m wrapping in[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m column 2[22m
[32m- │[39m
[31m+ │[39m
[2m column 3[22m
[32m- │[39m
[31m+ │[39m
[32m- └────────────────┴────────────────┴─────────────────┘[39m
[31m+ └────────────────┴────────────────┴─────────────────┘[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[198/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,35 +2,35 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ┌───────┬──────────────────────────┬────────┐[39m
[31m+ ┌───────┬──────────────────────────┬────────┐[39m
[32m- │[39m
[31m+ │[39m
[32m- Short[39m
[31m+ Short[39m
[32m- │[39m
[31m+ │[39m
[32m- Long[39m
[31m+ Long[39m
[32m- │[39m
[31m+ │[39m
[32m- Medium[39m
[31m+ Medium[39m
[32m- │[39m
[31m+ │[39m
[32m- ├───────┼──────────────────────────┼────────┤[39m
[31m+ ├───────┼──────────────────────────┼────────┤[39m
[32m- │[39m
[31m+ │[39m
[2m Tiny[22m
[32m- │[39m
[31m+ │[39m
[2m This is a very long text[22m
[32m- │[39m
[31m+ │[39m
[2m Not so[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m that definitely needs to[22m
[32m- │[39m
[31m+ │[39m
[2m long[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m wrap to the next line[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- └───────┴──────────────────────────┴────────┘[39m
[31m+ └───────┴──────────────────────────┴────────┘[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[199/292]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > wraps columns with punctuation correctly
Error: Snapshot `TableRenderer > wraps columns with punctuation correctly 2` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,50 +2,50 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ┌───────────────────┬───────────────┬─────────────────┐[39m
[31m+ ┌───────────────────┬───────────────┬─────────────────┐[39m
[32m- │[39m
[31m+ │[39m
[32m- Punctuation 1[39m
[31m+ Punctuation 1[39m
[32m- │[39m
[31m+ │[39m
[32m- Punctuation 2[39m
[31m+ Punctuation 2[39m
[32m- │[39m
[31m+ │[39m
[32m- Punctuation 3[39m
[31m+ Punctuation 3[39m
[32m- │[39m
[31m+ │[39m
[32m- ├───────────────────┼───────────────┼─────────────────┤[39m
[31m+ ├───────────────────┼───────────────┼─────────────────┤[39m
[32m- │[39m
[31m+ │[39m
[2m Start. Stop.[22m
[32m- │[39m
[31m+ │[39m
[2m Semi; colon:[22m
[32m- │[39m
[31m+ │[39m
[2m At@ Hash#[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Comma, separated.[22m
[32m- │[39m
[31m+ │[39m
[2m Pipe| Slash/[22m
[32m- │[39m
[31m+ │[39m
[2m Dollar$[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Exclamation![22m
[32m- │[39m
[31m+ │[39m
[2m Backslash\[22m
[32m- │[39m
[31m+ │[39m
[2m Percent% Caret^[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Question?[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Ampersand&[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m hyphen-ated[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Asterisk*[22m
[32m- │[39m
[31m+ │[39m
[32m- └───────────────────┴───────────────┴─────────────────┘[39m
[31m+ └───────────────────┴───────────────┴─────────────────┘[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[200/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,24 +2,24 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ┌─────────────┬───────────────┬──────────────┐[39m
[31m+ ┌─────────────┬───────────────┬──────────────┐[39m
[32m- │[39m
[31m+ │[39m
[32m- Bold Header[39m
[31m+ Bold Header[39m
[32m- │[39m
[31m+ │[39m
[32m- Normal Header[39m
[31m+ Normal Header[39m
[32m- │[39m
[31m+ │[39m
[32m- Another Bold[39m
[31m+ Another Bold[39m
[32m- │[39m
[31m+ │[39m
[32m- ├─────────────┼───────────────┼──────────────┤[39m
[31m+ ├─────────────┼───────────────┼──────────────┤[39m
[32m- │[39m
[31m+ │[39m
[2m Data 1[22m
[32m- │[39m
[31m+ │[39m
[2m Data 2[22m
[32m- │[39m
[31m+ │[39m
[2m Data 3[22m
[32m- │[39m
[31m+ │[39m
[32m- └─────────────┴───────────────┴──────────────┘[39m
[31m+ └─────────────┴───────────────┴──────────────┘[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[201/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,46 +2,46 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ┌─────────────┬───────┬─────────┐[39m
[31m+ ┌─────────────┬───────┬─────────┐[39m
[32m- │[39m
[31m+ │[39m
[32m- Very Long[39m
[31m+ Very Long[39m
[32m- │[39m
[31m+ │[39m
[32m- Short[39m
[31m+ Short[39m
[32m- │[39m
[31m+ │[39m
[32m- Another[39m
[31m+ Another[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- Bold Header[39m
[31m+ Bold Header[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- Long[39m
[31m+ Long[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- That Will[39m
[31m+ That Will[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- Header[39m
[31m+ Header[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- Wrap[39m
[31m+ Wrap[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- ├─────────────┼───────┼─────────┤[39m
[31m+ ├─────────────┼───────┼─────────┤[39m
[32m- │[39m
[31m+ │[39m
[2m Data 1[22m
[32m- │[39m
[31m+ │[39m
[2m Data[22m
[32m- │[39m
[31m+ │[39m
[2m Data 3[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m 2[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- └─────────────┴───────┴─────────┘[39m
[31m+ └─────────────┴───────┴─────────┘[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[202/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,400 +2,400 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ┌─────────────────────────────┬──────────────────────────────┬─────────────────────────────┬──────────────────────────────┬─────┬────────┬─────────┬───────┐[39m
[32m- │[39m
[32m- Comprehensive Architectural[39m
[32m- │[39m
[32m- Implementation Details for[39m
[32m- │[39m
[32m- Longitudinal Performance[39m
[32m- │[39m
[32m- Strategic Security Framework[39m
[32m- │[39m
[32m- Key[39m
[32m- │[39m
[32m- Status[39m
[32m- │[39m
[32m- Version[39m
[32m- │[39m
[32m- Owner[39m
[32m- │[39m
[32m- │[39m
[32m- Specification for the[39m
[32m- │[39m
[32m- the High-Throughput[39m
[32m- │[39m
[32m- Analysis Across[39m
[32m- │[39m
[32m- for Mitigating Sophisticated[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- Distributed Infrastructure[39m
[32m- │[39m
[32m- Asynchronous Message[39m
[32m- │[39m
[32m- Multi-Regional Cloud[39m
[32m- │[39m
[32m- Cross-Site Scripting[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- Layer[39m
[32m- │[39m
[32m- Processing Pipeline with[39m
[32m- │[39m
[32m- Deployment Clusters[39m
[32m- │[39m
[32m- Vulnerabilities[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- Extended Scalability[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- Features and Redundancy[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- Protocols[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- ├─────────────────────────────┼──────────────────────────────┼─────────────────────────────┼──────────────────────────────┼─────┼────────┼─────────┼───────┤[39m
[32m- │[39m
[31m+ ┌─────────────────────────────┬──────────────────────────────┬─────────────────────────────┬──────────────────────────────┬─────┬────────┬─────────┬───────┐[39m
[31m+ │[39m
[31m+ Comprehensive Architectural[39m
[31m+ │[39m
[31m+ Implementation Details for[39m
[31m+ │[39m
[31m+ Longitudinal Performance[39m
[31m+ │[39m
[31m+ Strategic Security Framework[39m
[31m+ │[39m
[31m+ Key[39m
[31m+ │[39m
[31m+ Status[39m
[31m+ │[39m
[31m+ Version[39m
[31m+ │[39m
[31m+ Owner[39m
[31m+ │[39m
[31m+ │[39m
[31m+ Specification for the[39m
[31m+ │[39m
[31m+ the High-Throughput[39m
[31m+ │[39m
[31m+ Analysis Across[39m
[31m+ │[39m
[31m+ for Mitigating Sophisticated[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ Distributed Infrastructure[39m
[31m+ │[39m
[31m+ Asynchronous Message[39m
[31m+ │[39m
[31m+ Multi-Regional Cloud[39m
[31m+ │[39m
[31m+ Cross-Site Scripting[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ Layer[39m
[31m+ │[39m
[31m+ Processing Pipeline with[39m
[31m+ │[39m
[31m+ Deployment Clusters[39m
[31m+ │[39m
[31m+ Vulnerabilities[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ Extended Scalability[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ Features and Redundancy[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ Protocols[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ ├─────────────────────────────┼──────────────────────────────┼─────────────────────────────┼──────────────────────────────┼─────┼────────┼─────────┼───────┤[39m
[31m+ │[39m
[2m The primary architecture[22m
[32m- │[39m
[31m+ │[39m
[2m Each message is processed[22m
[32m- │[39m
[31m+ │[39m
[2m Historical data indicates a[22m
[32m- │[39m
[31m+ │[39m
[2m A multi-layered defense[22m
[32m- │[39m
[31m+ │[39m
[2m INF[22m
[32m- │[39m
[31m+ │[39m
[2m Active[22m
[32m- │[39m
[31m+ │[39m
[2m v2.4[22m
[32m- │[39m
[31m+ │[39m
[2m J.[22m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[2m utilizes a decoupled[22m
[32m- │[39m
[31m+ │[39m
[2m through a series of[22m
[32m- │[39m
[31m+ │[39m
[2m significant reduction in[22m
[32m- │[39m
[31m+ │[39m
[2m strategy incorporates[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[2m Doe[22m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[2m microservices approach,[22m
[32m- │[39m
[31m+ │[39m
[2m specialized workers that[22m
[32m- │[39m
[31m+ │[39m
[2m tail latency when utilizing[22m
[32m- │[39m
[31m+ │[39m
[2m content security policies,[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[2m leveraging container[22m
[32m- │[39m
[31m+ │[39m
[2m handle data transformation,[22m
[32m- │[39m
[31m+ │[39m
[2m edge computing nodes closer[22m
[32m- │[39m
[31m+ │[39m
[2m input sanitization[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[2m orchestration for[22m
[32m- │[39m
[31m+ │[39m
[2m validation, and persistent[22m
[32m- │[39m
[31m+ │[39m
[2m to the geographic location[22m
[32m- │[39m
[31m+ │[39m
[2m libraries, and regular[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[2m scalability and fault[22m
[32m- │[39m
[31m+ │[39m
[2m storage using a persistent[22m
[32m- │[39m
[31m+ │[39m
[2m of the end-user base.[22m
[32m- │[39m
[31m+ │[39m
[2m automated penetration[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[2m tolerance in high-load[22m
[32m- │[39m
[31m+ │[39m
[2m queue.[22m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[2m testing routines.[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[2m scenarios.[22m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[2m Monitoring tools have[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[2m The pipeline features[22m
[32m- │[39m
[31m+ │[39m
[2m captured a steady increase[22m
[32m- │[39m
[31m+ │[39m
[2m Developers are required to[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[2m This layer provides the[22m
[32m- │[39m
[31m+ │[39m
[2m built-in retry mechanisms[22m
[32m- │[39m
[31m+ │[39m
[2m in throughput efficiency[22m
[32m- │[39m
[31m+ │[39m
[2m undergo mandatory security[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[2m fundamental building blocks[22m
[32m- │[39m
[31m+ │[39m
[2m with exponential backoff to[22m
[32m- │[39m
[31m+ │[39m
[2m since the introduction of[22m
[32m- │[39m
[31m+ │[39m
[2m training focusing on the[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[2m for service discovery, load[22m
[32m- │[39m
[31m+ │[39m
[2m ensure message delivery[22m
[32m- │[39m
[31m+ │[39m
[2m the vectorized query engine[22m
[32m- │[39m
[31m+ │[39m
[2m OWASP Top Ten to ensure that[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[2m balancing, and[22m
[32m- │[39m
[31m+ │[39m
[2m integrity even during[22m
[32m- │[39m
[31m+ │[39m
[2m in the primary data[22m
[32m- │[39m
[31m+ │[39m
[2m security is integrated into[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[2m inter-service communication[22m
[32m- │[39m
[31m+ │[39m
[2m transient network or service[22m
[32m- │[39m
[31m+ │[39m
[2m warehouse.[22m
[32m- │[39m
[31m+ │[39m
[2m the initial design phase.[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[2m via highly efficient[22m
[32m- │[39m
[31m+ │[39m
[2m failures.[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[2m protocol buffers.[22m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[2m Resource utilization[22m
[32m- │[39m
[31m+ │[39m
[2m The implementation of a[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[2m Horizontal autoscaling is[22m
[32m- │[39m
[31m+ │[39m
[2m metrics demonstrate that[22m
[32m- │[39m
[31m+ │[39m
[2m robust Identity and Access[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[2m Advanced telemetry and[22m
[32m- │[39m
[31m+ │[39m
[2m triggered automatically[22m
[32m- │[39m
[31m+ │[39m
[2m the transition to[22m
[32m- │[39m
[31m+ │[39m
[2m Management system ensures[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[2m logging integrations allow[22m
[32m- │[39m
[31m+ │[39m
[2m based on the depth of the[22m
[32m- │[39m
[31m+ │[39m
[2m serverless compute for[22m
[32m- │[39m
[31m+ │[39m
[2m that the principle of least[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[2m for real-time monitoring of[22m
[32m- │[39m
[31m+ │[39m
[2m processing queue, ensuring[22m
[32m- │[39m
[31m+ │[39m
[2m intermittent tasks has[22m
[32m- │[39m
[31m+ │[39m
[2m privilege is strictly[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[2m system health and rapid[22m
[32m- │[39m
[31m+ │[39m
[2m consistent performance[22m
[32m- │[39m
[31m+ │[39m
[2m resulted in a thirty[22m
[32m- │[39m
[31m+ │[39m
[2m enforced across all[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[2m identification of[22m
[32m- │[39m
[31m+ │[39m
[2m during unexpected traffic[22m
[32m- │[39m
[31m+ │[39m
[2m percent cost optimization.[22m
[32m- │[39m
[31m+ │[39m
[2m environments.[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[2m bottlenecks within the[22m
[32m- │[39m
[31m+ │[39m
[2m spikes.[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[2m service mesh.[22m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- │[39m
[32m- └─────────────────────────────┴──────────────────────────────┴─────────────────────────────┴──────────────────────────────┴─────┴────────┴─────────┴───────┘[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+ └─────────────────────────────┴──────────────────────────────┴─────────────────────────────┴──────────────────────────────┴─────┴────────┴─────────┴───────┘[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[203/292]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > 'handles non-ASCII characters (emojis …'
Error: Snapshot `TableRenderer > 'handles non-ASCII characters (emojis …' 2` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,31 +2,31 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ┌──────────────┬────────────┬───────────────┐[39m
[31m+ ┌──────────────┬────────────┬───────────────┐[39m
[32m- │[39m
[31m+ │[39m
[32m- Emoji 😃[39m
[31m+ Emoji 😃[39m
[32m- │[39m
[31m+ │[39m
[32m- Asian 汉字[39m
[31m+ Asian 汉字[39m
[32m- │[39m
[31m+ │[39m
[32m- Mixed 🚀 Text[39m
[31m+ Mixed 🚀 Text[39m
[32m- │[39m
[31m+ │[39m
[32m- ├──────────────┼────────────┼───────────────┤[39m
[31m+ ├──────────────┼────────────┼───────────────┤[39m
[32m- │[39m
[31m+ │[39m
[2m Start 🌟 End[22m
[32m- │[39m
[31m+ │[39m
[2m 你好世界[22m
[32m- │[39m
[31m+ │[39m
[2m Rocket 🚀 Man[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Thumbs 👍 Up[22m
[32m- │[39m
[31m+ │[39m
[2m こんにちは[22m
[32m- │[39m
[31m+ │[39m
[2m Fire 🔥[22m
[32m- │[39m
[31m+ │[39m
[32m- └──────────────┴────────────┴───────────────┘[39m
[31m+ └──────────────┴────────────┴───────────────┘[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[204/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,31 +2,31 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ┌──────────┬───────────┬──────────┐[39m
[31m+ ┌──────────┬───────────┬──────────┐[39m
[32m- │[39m
[31m+ │[39m
[32m- Happy 😀[39m
[31m+ Happy 😀[39m
[32m- │[39m
[31m+ │[39m
[32m- Rocket 🚀[39m
[31m+ Rocket 🚀[39m
[32m- │[39m
[31m+ │[39m
[32m- Heart ❤️[39m
[31m+ Heart ❤️[39m
[32m- │[39m
[31m+ │[39m
[32m- ├──────────┼───────────┼──────────┤[39m
[31m+ ├──────────┼───────────┼──────────┤[39m
[32m- │[39m
[31m+ │[39m
[2m Smile 😃[22m
[32m- │[39m
[31m+ │[39m
[2m Fire 🔥[22m
[32m- │[39m
[31m+ │[39m
[2m Love 💖[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Cool 😎[22m
[32m- │[39m
[31m+ │[39m
[2m Star ⭐[22m
[32m- │[39m
[31m+ │[39m
[2m Blue 💙[22m
[32m- │[39m
[31m+ │[39m
[32m- └──────────┴───────────┴──────────┘[39m
[31m+ └──────────┴───────────┴──────────┘[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[205/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,31 +2,31 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ┌──────────────┬─────────────────┬───────────────┐[39m
[31m+ ┌──────────────┬─────────────────┬───────────────┐[39m
[32m- │[39m
[31m+ │[39m
[32m- Chinese 中文[39m
[31m+ Chinese 中文[39m
[32m- │[39m
[31m+ │[39m
[32m- Japanese 日本語[39m
[31m+ Japanese 日本語[39m
[32m- │[39m
[31m+ │[39m
[32m- Korean 한국어[39m
[31m+ Korean 한국어[39m
[32m- │[39m
[31m+ │[39m
[32m- ├──────────────┼─────────────────┼───────────────┤[39m
[31m+ ├──────────────┼─────────────────┼───────────────┤[39m
[32m- │[39m
[31m+ │[39m
[2m 你好[22m
[32m- │[39m
[31m+ │[39m
[2m こんにちは[22m
[32m- │[39m
[31m+ │[39m
[2m 안녕하세요[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m 世界[22m
[32m- │[39m
[31m+ │[39m
[2m 世界[22m
[32m- │[39m
[31m+ │[39m
[2m 세계[22m
[32m- │[39m
[31m+ │[39m
[32m- └──────────────┴─────────────────┴───────────────┘[39m
[31m+ └──────────────┴─────────────────┴───────────────┘[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[206/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,31 +2,31 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ┌───────────────┬───────────────────┬────────────────┐[39m
[31m+ ┌───────────────┬───────────────────┬────────────────┐[39m
[32m- │[39m
[31m+ │[39m
[32m- Mixed 😃 中文[39m
[31m+ Mixed 😃 中文[39m
[32m- │[39m
[31m+ │[39m
[32m- Complex 🚀 日本語[39m
[31m+ Complex 🚀 日本語[39m
[32m- │[39m
[31m+ │[39m
[32m- Text 📝 한국어[39m
[31m+ Text 📝 한국어[39m
[32m- │[39m
[31m+ │[39m
[32m- ├───────────────┼───────────────────┼────────────────┤[39m
[31m+ ├───────────────┼───────────────────┼────────────────┤[39m
[32m- │[39m
[31m+ │[39m
[2m 你好 😃[22m
[32m- │[39m
[31m+ │[39m
[2m こんにちは 🚀[22m
[32m- │[39m
[31m+ │[39m
[2m 안녕하세요 📝[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m World 🌍[22m
[32m- │[39m
[31m+ │[39m
[2m Code 💻[22m
[32m- │[39m
[31m+ │[39m
[2m Pizza 🍕[22m
[32m- │[39m
[31m+ │[39m
[32m- └───────────────┴───────────────────┴────────────────┘[39m
[31m+ └───────────────┴───────────────────┴────────────────┘[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[207/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,18 +2,18 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ┌────────┬────────┐[39m
[31m+ ┌────────┬────────┐[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- ├────────┼────────┤[39m
[31m+ ├────────┼────────┤[39m
[32m- │[39m
[31m+ │[39m
[2m Data 1[22m
[32m- │[39m
[31m+ │[39m
[2m Data 2[22m
[32m- │[39m
[31m+ │[39m
[32m- └────────┴────────┘[39m
[31m+ └────────┴────────┘[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[208/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,23 +2,23 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ┌──────────┬──────────┬──────────┐[39m
[31m+ ┌──────────┬──────────┬──────────┐[39m
[32m- │[39m
[31m+ │[39m
[32m- Header 1[39m
[31m+ Header 1[39m
[32m- │[39m
[31m+ │[39m
[32m- Header 2[39m
[31m+ Header 2[39m
[32m- │[39m
[31m+ │[39m
[32m- Header 3[39m
[31m+ Header 3[39m
[32m- │[39m
[31m+ │[39m
[32m- ├──────────┼──────────┼──────────┤[39m
[31m+ ├──────────┼──────────┼──────────┤[39m
[32m- │[39m
[31m+ │[39m
[2m Data 1[22m
[32m- │[39m
[31m+ │[39m
[2m Data 2[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[32m- └──────────┴──────────┴──────────┘[39m
[31m+ └──────────┴──────────┴──────────┘[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[209/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,52 +2,52 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ┌───────────────┬─────────────────────────────┐[39m
[31m+ ┌───────────────┬─────────────────────────────┐[39m
[32m- │[39m
[31m+ │[39m
[32m- Feature[39m
[31m+ Feature[39m
[32m- │[39m
[31m+ │[39m
[32m- Markdown[39m
[31m+ Markdown[39m
[32m- │[39m
[31m+ │[39m
[32m- ├───────────────┼─────────────────────────────┤[39m
[31m+ ├───────────────┼─────────────────────────────┤[39m
[32m- │[39m
[31m+ │[39m
[2m Bold[22m
[32m- │[39m
[31m+ │[39m
[2m Bold Text[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Italic[22m
[32m- │[39m
[31m+ │[39m
[2m Italic Text[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Combined[22m
[32m- │[39m
[31m+ │[39m
[2m Bold and Italic[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Link[22m
[32m- │[39m
[31m+ │[39m
[2m Google ([22m
[32m- https://google.com[39m
[31m+ https://google.com[39m
[2m )[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Code[22m
[32m- │[39m
[31m+ │[39m
[2m const x = 1[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Strikethrough[22m
[32m- │[39m
[31m+ │[39m
[2m Strike[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Underline[22m
[32m- │[39m
[31m+ │[39m
[2m Underline[22m
[32m- │[39m
[31m+ │[39m
[32m- └───────────────┴─────────────────────────────┘[39m
[31m+ └───────────────┴─────────────────────────────┘[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[210/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,38 +2,38 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ┌────────┬────────┬────────┐[39m
[31m+ ┌────────┬────────┬────────┐[39m
[32m- │[39m
[31m+ │[39m
[32m- Col 1[39m
[31m+ Col 1[39m
[32m- │[39m
[31m+ │[39m
[32m- Col 2[39m
[31m+ Col 2[39m
[32m- │[39m
[31m+ │[39m
[32m- Col 3[39m
[31m+ Col 3[39m
[32m- │[39m
[31m+ │[39m
[32m- ├────────┼────────┼────────┤[39m
[31m+ ├────────┼────────┼────────┤[39m
[32m- │[39m
[31m+ │[39m
[2m 123456[22m
[32m- │[39m
[31m+ │[39m
[2m Normal[22m
[32m- │[39m
[31m+ │[39m
[2m Short[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Short[22m
[32m- │[39m
[31m+ │[39m
[2m 123456[22m
[32m- │[39m
[31m+ │[39m
[2m Normal[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Normal[22m
[32m- │[39m
[31m+ │[39m
[2m Short[22m
[32m- │[39m
[31m+ │[39m
[2m 123456[22m
[32m- │[39m
[31m+ │[39m
[32m- └────────┴────────┴────────┘[39m
[31m+ └────────┴────────┴────────┘[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[211/292]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > 'handles nested markdown styles recurs…'
Error: Snapshot `TableRenderer > 'handles nested markdown styles recurs…' 2` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,44 +2,44 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ┌─────────────────────────────┬─────────────────────────────┬─────────────────────────────┐[39m
[31m+ ┌─────────────────────────────┬─────────────────────────────┬─────────────────────────────┐[39m
[32m- │[39m
[31m+ │[39m
[32m- Header 1[39m
[31m+ Header 1[39m
[32m- │[39m
[31m+ │[39m
[32m- Header 2[39m
[31m+ Header 2[39m
[32m- │[39m
[31m+ │[39m
[32m- Header 3[39m
[31m+ Header 3[39m
[32m- │[39m
[31m+ │[39m
[32m- ├─────────────────────────────┼─────────────────────────────┼─────────────────────────────┤[39m
[31m+ ├─────────────────────────────┼─────────────────────────────┼─────────────────────────────┤[39m
[32m- │[39m
[31m+ │[39m
[2m Bold with [22m
[2m Italic[22m
[2m and Strike[22m
[32m- │[39m
[31m+ │[39m
[2m Normal[22m
[32m- │[39m
[31m+ │[39m
[2m Short[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Short[22m
[32m- │[39m
[31m+ │[39m
[2m Bold with [22m
[2m Italic[22m
[2m and Strike[22m
[32m- │[39m
[31m+ │[39m
[2m Normal[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Normal[22m
[32m- │[39m
[31m+ │[39m
[2m Short[22m
[32m- │[39m
[31m+ │[39m
[2m Bold with [22m
[2m Italic[22m
[2m and Strike[22m
[32m- │[39m
[31m+ │[39m
[32m- └─────────────────────────────┴─────────────────────────────┴─────────────────────────────┘[39m
[31m+ └─────────────────────────────┴─────────────────────────────┴─────────────────────────────┘[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[212/292]⎯
FAIL src/ui/utils/TableRenderer.test.tsx > TableRenderer > 'calculates width correctly for conten…'
Error: Snapshot `TableRenderer > 'calculates width correctly for conten…' 2` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,44 +2,44 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ┌───────────────────────────────────┬───────────────────────────────┬─────────────────────────────────┐[39m
[31m+ ┌───────────────────────────────────┬───────────────────────────────┬─────────────────────────────────┐[39m
[32m- │[39m
[31m+ │[39m
[32m- Col 1[39m
[31m+ Col 1[39m
[32m- │[39m
[31m+ │[39m
[32m- Col 2[39m
[31m+ Col 2[39m
[32m- │[39m
[31m+ │[39m
[32m- Col 3[39m
[31m+ Col 3[39m
[32m- │[39m
[31m+ │[39m
[32m- ├───────────────────────────────────┼───────────────────────────────┼─────────────────────────────────┤[39m
[31m+ ├───────────────────────────────────┼───────────────────────────────┼─────────────────────────────────┤[39m
[32m- │[39m
[31m+ │[39m
[2m Visit Google ([22m
[32m- https://google.com[39m
[31m+ https://google.com[39m
[2m )[22m
[32m- │[39m
[31m+ │[39m
[2m Plain Text[22m
[32m- │[39m
[31m+ │[39m
[2m More Info[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Info Here[22m
[32m- │[39m
[31m+ │[39m
[2m Visit Bing ([22m
[32m- https://bing.com[39m
[31m+ https://bing.com[39m
[2m )[22m
[32m- │[39m
[31m+ │[39m
[2m Links[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Check This[22m
[32m- │[39m
[31m+ │[39m
[2m Search[22m
[32m- │[39m
[31m+ │[39m
[2m Visit Yahoo ([22m
[32m- https://yahoo.com[39m
[31m+ https://yahoo.com[39m
[2m )[22m
[32m- │[39m
[31m+ │[39m
[32m- └───────────────────────────────────┴───────────────────────────────┴─────────────────────────────────┘[39m
[31m+ └───────────────────────────────────┴───────────────────────────────┴─────────────────────────────────┘[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[213/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,39 +2,39 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ┌─────────────────┬──────────────────────┬──────────────────┐[39m
[31m+ ┌─────────────────┬──────────────────────┬──────────────────┐[39m
[32m- │[39m
[31m+ │[39m
[32m- Col 1[39m
[31m+ Col 1[39m
[32m- │[39m
[31m+ │[39m
[32m- Col 2[39m
[31m+ Col 2[39m
[32m- │[39m
[31m+ │[39m
[32m- Col 3[39m
[31m+ Col 3[39m
[32m- │[39m
[31m+ │[39m
[32m- ├─────────────────┼──────────────────────┼──────────────────┤[39m
[31m+ ├─────────────────┼──────────────────────┼──────────────────┤[39m
[32m- │[39m
[31m+ │[39m
[2m **not bold**[22m
[32m- │[39m
[31m+ │[39m
[2m _not italic_[22m
[32m- │[39m
[31m+ │[39m
[2m ~~not strike~~[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m [not link](url)[22m
[32m- │[39m
[31m+ │[39m
[2m <u>not underline</u>[22m
[32m- │[39m
[31m+ │[39m
[2m https://not.link[22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Normal Text[22m
[32m- │[39m
[31m+ │[39m
[2m More Code: [22m
[2m *test*[22m
[32m- │[39m
[31m+ │[39m
[2m ***nested***[22m
[32m- │[39m
[31m+ │[39m
[32m- └─────────────────┴──────────────────────┴──────────────────┘[39m
[31m+ └─────────────────┴──────────────────────┴──────────────────┘[39m
[2m [22m
[2m [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[214/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,33 +2,33 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ▝[39m
[31m+ ▝[39m
[32m- ▜[39m
[31m+ ▜[39m
[32m- ▄[39m
[31m+ ▄[39m
[2m ▗█▀▀▜▙▝█▛▀▀▌▜██▖▟██▘▜█▘▜██▖▝█▛▝█▛[22m
[32m- ▝[39m
[31m+ ▝[39m
[32m- ▜[39m
[31m+ ▜[39m
[32m- ▄[39m
[31m+ ▄[39m
[2m █▌ █▙▟ ▐█▝█▛▐█ ▐█ ▐█▝█▖█▌ █▌[22m
[32m- ▗[39m
[31m+ ▗[39m
[32m- ▟[39m
[31m+ ▟[39m
[32m- ▀[39m
[31m+ ▀[39m
[2m ▜▙ ▝█▛ █▌▝ ▖▐█ ▐█ ▐█ ▐█ ▝██▌ █▌[22m
[32m- ▝[39m
[31m+ ▝[39m
[32m- ▀[39m
[31m+ ▀[39m
[2m ▀▀▀▀▘▝▀▀▀▀▘▀▀▘ ▀▀▘▀▀▘▀▀▘ ▝▀▀▝▀▀[22m
[2m Gemini CLI[22m
[32m- v1.2.3[39m
[31m+ v1.2.3[39m
[2m Tips for getting started:[22m
[2m 1. Create [22m
[2m GEMINI.md[22m
[2m files to customize your interactions[22m
[2m 2. [22m
[32m- /help[39m
[31m+ /help[39m
[2m for more information[22m
[2m 3. Ask coding questions, edit code or run commands[22m
[2m 4. Be specific for the best results[22m
[2m ╭──────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │[22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[215/292]⎯
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 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "[22m
[32m- ▝▜▄ ▗█▀▀▜▙▝█▛▀▀▌▜██▖▟██▘▜█▘▜██▖▝█▛▝█▛[39m
[32m- ▝▜▄ █▌ █▙▟ ▐█▝█▛▐█ ▐█ ▐█▝█▖█▌ █▌[39m
[32m- ▗▟▀ ▜▙ ▝█▛ █▌▝ ▖▐█ ▐█ ▐█ ▐█ ▝██▌ █▌[39m
[32m- ▝▀ ▀▀▀▀▘▝▀▀▀▀▘▀▀▘ ▀▀▘▀▀▘▀▀▘ ▝▀▀▝▀▀[39m
[32m-[39m
[32m- Gemini CLI v1.2.3[39m
[32m-[39m
[32m-[39m
[32m- Tips for getting started:[39m
[32m- 1. Create GEMINI.md files to customize your interactions[39m
[32m- 2. /help for more information[39m
[32m- 3. Ask coding questions, edit code or run commands[39m
[32m- 4. Be specific for the best results[39m
[32m-[39m
[32m- ╭──────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[32m- │ ⊶ google_web_search │[39m
[32m- │ │[39m
[32m- │ Searching... │[39m
[32m- [7m╰──────────────────────────────────────────────────────────────────────────────────────────────╯[27m"[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+ "[39m
❯ 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/utils/borderStyles.test.tsx:163:32
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[216/292]⎯
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 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "[22m
[32m- ▝▜▄ ▗█▀▀▜▙▝█▛▀▀▌▜██▖▟██▘▜█▘▜██▖▝█▛▝█▛[39m
[32m- ▝▜▄ █▌ █▙▟ ▐█▝█▛▐█ ▐█ ▐█▝█▖█▌ █▌[39m
[32m- ▗▟▀ ▜▙ ▝█▛ █▌▝ ▖▐█ ▐█ ▐█ ▐█ ▝██▌ █▌[39m
[32m- ▝▀ ▀▀▀▀▘▝▀▀▀▀▘▀▀▘ ▀▀▘▀▀▘▀▀▘ ▝▀▀▝▀▀[39m
[32m-[39m
[32m- Gemini CLI v1.2.3[39m
[32m-[39m
[32m-[39m
[32m- Tips for getting started:[39m
[32m- 1. Create GEMINI.md files to customize your interactions[39m
[32m- 2. /help for more information[39m
[32m- 3. Ask coding questions, edit code or run commands[39m
[32m- 4. Be specific for the best results[39m
[32m-[39m
[32m- ╭──────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[32m- │ ⊶ run_shell_command │[39m
[32m- │ │[39m
[32m- │ Running command... │[39m
[32m- [7m╰──────────────────────────────────────────────────────────────────────────────────────────────╯[27m"[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+[39m
[31m+ "[39m
❯ 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/utils/borderStyles.test.tsx:188:32
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[217/292]⎯
FAIL src/ui/components/messages/DenseToolMessage.test.tsx > DenseToolMessage > Toggleable Diff View (Alternate Buffer) > shows diff content when expanded via ToolActionsContext
AssertionError: expected ' ✓ test-tool test.ts → Accepted\n\…' to contain 'new line'
[32m- Expected[39m
[31m+ Received[39m
[32m- new line[39m
[31m+ ✓ test-tool test.ts → Accepted[39m
[31m+[39m
[31m+ ╭────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ ╰────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/messages/DenseToolMessage.test.tsx:544:27
542|
543| // Verify it shows the diff when expanded
544| expect(lastFrame()).toContain('new line');
| ^
545| });
546| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[218/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -4,30 +4,30 @@[39m
[2m [22m
[2m [22m
[2m [22m
[2m ✓[22m
[2m edit [22m
[32m- test.ts[39m
[31m+ test.ts[39m
[2m → Accepted[22m
[32m- ([39m
[31m+ ([39m
[2m +1[22m
[32m- , [39m
[31m+ , [39m
[32m- -1[39m
[31m+ -1[39m
[32m- )[39m
[31m+ )[39m
[32m- [39m
[31m+ [39m
[32m- 1[39m
[31m+ 1[39m
[32m- [39m
[31m+ [39m
[32m- [39m
[31m+ [39m
[32m- -[39m
[31m+ -[39m
[32m- [39m
[31m+ [39m
[32m- [39m
[31m+ [39m
[2m old[22m
[32m- [39m
[31m+ [39m
[32m- 1[39m
[31m+ 1[39m
[32m- [39m
[31m+ [39m
[32m- [39m
[31m+ [39m
[2m +[22m
[32m- [39m
[31m+ [39m
[32m- [39m
[31m+ [39m
[2m new[22m
[2m [22m
[2m [22m
❯ 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:579:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[219/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -4,8 +4,8 @@[39m
[2m [22m
[2m [22m
[2m [22m
[2m -[22m
[2m read_file [22m
[32m- Reading important.txt[39m
[31m+ Reading important.txt[39m
[2m [22m
[2m [22m
❯ 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:594:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[220/292]⎯
FAIL src/ui/components/messages/ShellToolMessage.test.tsx > > Snapshots > renders in Alternate Buffer mode while focused
Error: Snapshot ` > Snapshots > renders in Alternate Buffer mode while focused 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────╮[22m
[32m- │ ⊶ Shell Command A shell command [7m [27m(Shift+Tab to unfocus) │[39m
[31m+ │ ⊶ Shell Command A shell command (Shift+Tab to unfocus)[7m [27m │[39m
[2m │ │[22m
[2m │ Test result │[22m
[2m "[22m
❯ src/ui/components/messages/ShellToolMessage.test.tsx:190:27
188| { uiActions, ...options },
189| );
190| expect(lastFrame()).toMatchSnapshot();
| ^
191| unmount();
192| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[221/292]⎯
FAIL src/ui/components/messages/ShellToolMessage.test.tsx > > Height Constraints > uses full availableTerminalHeight when focused in alternate buffer mode
Error: Snapshot ` > Height Constraints > uses full availableTerminalHeight when focused in alternate buffer mode 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -1,7 +1,7 @@[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────╮[22m
[32m- │ ⊶ Shell Command A shell command [7m [27m(Shift+Tab to unfocus) │[39m
[31m+ │ ⊶ Shell Command A shell command (Shift+Tab to unfocus)[7m [27m │[39m
[2m │ │[22m
[2m │ Line 5 │[22m
[2m │ Line 6 │[22m
[2m │ Line 7 │[22m
[2m │ Line 8 │[22m
❯ src/ui/components/messages/ShellToolMessage.test.tsx:268:23
266| const frame = lastFrame();
267| expect(frame.match(/Line \d+/g)?.length).toBe(expectedMaxLines…
268| expect(frame).toMatchSnapshot();
| ^
269| unmount();
270| },
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[222/292]⎯
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 3` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -3,12 +3,12 @@[39m
[2m text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }[22m
[2m [22m
[2m [22m
[2m [22m
[2m Thinking... [22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Planning[22m
[32m- │[39m
[31m+ │[39m
[32m- test[39m
[31m+ test[39m
[2m [22m
[2m [22m
❯ 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/ThinkingMessage.test.tsx:28:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[223/292]⎯
FAIL src/ui/components/messages/ThinkingMessage.test.tsx > ThinkingMessage > uses description when subject is empty
Error: Snapshot `ThinkingMessage > uses description when subject is empty 3` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -3,10 +3,10 @@[39m
[2m text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }[22m
[2m [22m
[2m [22m
[2m [22m
[2m Thinking... [22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Processing details[22m
[2m [22m
[2m [22m
❯ 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/ThinkingMessage.test.tsx:46:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[224/292]⎯
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 3` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -3,12 +3,12 @@[39m
[2m text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }[22m
[2m [22m
[2m [22m
[2m [22m
[2m Thinking... [22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Planning[22m
[32m- │[39m
[31m+ │[39m
[32m- I am planning the solution.[39m
[31m+ I am planning the solution.[39m
[2m [22m
[2m [22m
❯ 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/ThinkingMessage.test.tsx:68:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[225/292]⎯
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 3` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -3,12 +3,12 @@[39m
[2m text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }[22m
[2m [22m
[2m [22m
[2m [22m
[2m Thinking... [22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Summary line[22m
[32m- │[39m
[31m+ │[39m
[32m- First body line[39m
[31m+ First body line[39m
[2m [22m
[2m [22m
❯ 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/ThinkingMessage.test.tsx:90:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[226/292]⎯
FAIL src/ui/components/messages/ThinkingMessage.test.tsx > ThinkingMessage > normalizes escaped newline tokens
Error: Snapshot `ThinkingMessage > normalizes escaped newline tokens 3` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -3,12 +3,12 @@[39m
[2m text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }[22m
[2m [22m
[2m [22m
[2m [22m
[2m Thinking... [22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Matching the Blocks[22m
[32m- │[39m
[31m+ │[39m
[32m- Some more text[39m
[31m+ Some more text[39m
[2m [22m
[2m [22m
❯ 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/ThinkingMessage.test.tsx:108:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[227/292]⎯
FAIL src/ui/components/messages/ThinkingMessage.test.tsx > ThinkingMessage > renders multiple thinking messages sequentially correctly
Error: Snapshot `ThinkingMessage > renders multiple thinking messages sequentially correctly 3` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -3,28 +3,28 @@[39m
[2m text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }[22m
[2m [22m
[2m [22m
[2m [22m
[2m Thinking... [22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Initial analysis[22m
[32m- │[39m
[31m+ │[39m
[32m- This is a multiple line paragraph for the first thinking message of how the[39m
[31m+ This is a multiple line paragraph for the first thinking message of how the[39m
[32m- │[39m
[31m+ │[39m
[32m- model analyzes the problem.[39m
[31m+ model analyzes the problem.[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Planning execution[22m
[32m- │[39m
[31m+ │[39m
[32m- This a second multiple line paragraph for the second thinking message[39m
[31m+ This a second multiple line paragraph for the second thinking message[39m
[32m- │[39m
[31m+ │[39m
[32m- explaining the plan in detail so that it wraps around the terminal display.[39m
[31m+ explaining the plan in detail so that it wraps around the terminal display.[39m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Refining approach[22m
[32m- │[39m
[31m+ │[39m
[32m- And finally a third multiple line paragraph for the third thinking message to[39m
[31m+ And finally a third multiple line paragraph for the third thinking message to[39m
[32m- │[39m
[31m+ │[39m
[32m- refine the solution.[39m
[31m+ refine the solution.[39m
[2m [22m
[2m [22m
❯ 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/ThinkingMessage.test.tsx:159:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[228/292]⎯
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 3` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -3,12 +3,12 @@[39m
[2m text { font-family: Consolas, "Courier New", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }[22m
[2m [22m
[2m [22m
[2m [22m
[2m Thinking... [22m
[32m- │[39m
[31m+ │[39m
[32m- │[39m
[31m+ │[39m
[2m Thinking[22m
[32m- │[39m
[31m+ │[39m
[32m- Done[39m
[31m+ Done[39m
[2m [22m
[2m [22m
❯ 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/ThinkingMessage.test.tsx:177:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[229/292]⎯
FAIL src/ui/components/messages/Todo.test.tsx > (showFullTodos: false) > renders when todos exist and one is in progress
Error: Snapshot ` (showFullTodos: false) > renders when todos exist and one is in progress 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "────────────────────────────────────────────────────────────────────────────────────────────────────[22m
[32m- Todo 1/3 completed (Ctrl+T to toggle) »[7m Task 2[27m[39m
[31m+ Todo 1/3 completed (Ctrl+T to toggle) »[39m
[2m "[22m
❯ src/ui/components/messages/Todo.test.tsx:88:27
86| showFullTodos,
87| });
88| expect(lastFrame()).toMatchSnapshot();
| ^
89| unmount();
90| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[230/292]⎯
FAIL src/ui/components/messages/Todo.test.tsx > (showFullTodos: false) > renders a todo list with long descriptions that wrap when full view is on
Error: Snapshot ` (showFullTodos: false) > renders a todo list with long descriptions that wrap when full view is on 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "──────────────────────────────────────────────────[22m
[32m- Todo 1/2 completed (Ctrl+T to toggle) »[7m This i…[27m[39m
[31m+ Todo 1/2 completed (Ctrl+T to toggle) »[39m
[2m "[22m
❯ src/ui/components/messages/Todo.test.tsx:120:27
118| ,
119| );
120| expect(lastFrame()).toMatchSnapshot();
| ^
121| unmount();
122| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[231/292]⎯
FAIL src/ui/components/messages/Todo.test.tsx > (showFullTodos: false) > renders the most recent todo list when multiple write_todos calls are in history
Error: Snapshot ` (showFullTodos: false) > renders the most recent todo list when multiple write_todos calls are in history 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "────────────────────────────────────────────────────────────────────────────────────────────────────[22m
[32m- Todo 0/2 completed (Ctrl+T to toggle) »[7m Newer Task 2[27m[39m
[31m+ Todo 0/2 completed (Ctrl+T to toggle) »[39m
[2m "[22m
❯ src/ui/components/messages/Todo.test.tsx:138:27
136| showFullTodos,
137| });
138| expect(lastFrame()).toMatchSnapshot();
| ^
139| unmount();
140| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[232/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,9 +2,9 @@[39m
[2m URLs to fetch:[22m
[2m - https://raw.githubusercontent.com/google/gemini-react/main/README.md[22m
[2m Do you want to proceed?[22m
[32m- ● 1. [7mAllow once[27m [39m
[32m- [7m2. Allow for this session[27m[39m
[32m- 3. No, suggest changes (esc)[39m
[31m+ ● 1. [7m [27m [7m [27m[39m
[31m+ 2.[39m
[31m+ 3.[39m
[2m "[22m
❯ src/ui/components/messages/ToolConfirmationMessage.test.tsx:96:25
94| );
95|
96| expect(lastFrame()).toMatchSnapshot();
| ^
97| unmount();
98| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[233/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -5,9 +5,9 @@[39m
[2m │ │[22m
[2m │ whoami │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────╯[22m
[2m Allow execution of [echo, ls, whoami]?[22m
[32m- ● 1. [7mAllow once[27m [39m
[32m- [7m2. Allow for this session[27m[39m
[32m- 3. No, suggest changes (esc)[39m
[31m+ ● 1. [7m [27m [7m [27m[39m
[31m+ 2.[39m
[31m+ 3.[39m
[2m "[22m
❯ 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| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[234/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -4,8 +4,8 @@[39m
[2m │ echo $i │[22m
[2m │ done │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────╯[22m
[2m Allow execution of [echo]?[22m
[32m- ● 1. [7mAllow once[27m [39m
[32m- [7m2. Allow for this session[27m[39m
[32m- [7m 3. No, suggest changes (esc)[27m"[39m
[31m+ ● 1. [7m [27m [7m [27m[39m
[31m+ 2.[39m
[31m+ [7m 3.[27m"[39m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[235/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -3,10 +3,10 @@[39m
[2m │ No changes detected. │[22m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────╯[22m
[2m Apply this change?[22m
[32m- ● 1. [7mAllow once[27m [39m
[32m- [7m2. Allow for this session[27m[39m
[32m- 3. Modify with external editor[39m
[32m- 4. No, suggest changes (esc)[39m
[31m+ ● 1. [7m [27m [7m [27m[39m
[31m+ 2.[39m
[31m+ 3.[39m
[31m+ 4.[39m
[2m "[22m
❯ src/ui/components/messages/ToolConfirmationMessage.test.tsx:353:29
351| );
352|
353| expect(lastFrame()).toMatchSnapshot();
| ^
354| unmount();
355| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[236/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -3,9 +3,9 @@[39m
[2m │ No changes detected. │[22m
[2m │ │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────╯[22m
[2m Apply this change?[22m
[32m- ● 1. [7mAllow once[27m [39m
[32m- 2. Modify with external editor[39m
[32m- 3. No, suggest changes (esc)[39m
[31m+ ● 1. [7m [27m [7m [27m[39m
[31m+ 2.[39m
[31m+ 3.[39m
[2m "[22m
❯ src/ui/components/messages/ToolConfirmationMessage.test.tsx:377:29
375| );
376|
377| expect(lastFrame()).toMatchSnapshot();
| ^
378| unmount();
379| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[237/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ echo "hello" │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────╯[22m
[2m Allow execution of [echo]?[22m
[32m- ● 1. [7mAllow once[27m [39m
[32m- [7m2. Allow for this session[27m[39m
[32m- 3. No, suggest changes (esc)[39m
[31m+ ● 1. [7m [27m [7m [27m[39m
[31m+ 2.[39m
[31m+ 3.[39m
[2m "[22m
❯ src/ui/components/messages/ToolConfirmationMessage.test.tsx:353:29
351| );
352|
353| expect(lastFrame()).toMatchSnapshot();
| ^
354| unmount();
355| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[238/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ echo "hello" │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────╯[22m
[2m Allow execution of [echo]?[22m
[32m- ● 1. [7mAllow once[27m [39m
[32m- [7m2. No, suggest changes (esc)[27m[39m
[31m+ ● 1. [7m [27m [7m [27m[39m
[31m+ 2.[39m
[2m "[22m
❯ src/ui/components/messages/ToolConfirmationMessage.test.tsx:377:29
375| );
376|
377| expect(lastFrame()).toMatchSnapshot();
| ^
378| unmount();
379| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[239/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[2m "https://example.com[22m
[2m Do you want to proceed?[22m
[32m- ● 1. [7mAllow once[27m [39m
[32m- [7m2. Allow for this session[27m[39m
[32m- 3. No, suggest changes (esc)[39m
[31m+ ● 1. [7m [27m [7m [27m[39m
[31m+ 2.[39m
[31m+ 3.[39m
[2m "[22m
❯ src/ui/components/messages/ToolConfirmationMessage.test.tsx:353:29
351| );
352|
353| expect(lastFrame()).toMatchSnapshot();
| ^
354| unmount();
355| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[240/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[2m "https://example.com[22m
[2m Do you want to proceed?[22m
[32m- ● 1. [7mAllow once[27m [39m
[32m- [7m2. No, suggest changes (esc)[27m[39m
[31m+ ● 1. [7m [27m [7m [27m[39m
[31m+ 2.[39m
[2m "[22m
❯ src/ui/components/messages/ToolConfirmationMessage.test.tsx:377:29
375| );
376|
377| expect(lastFrame()).toMatchSnapshot();
| ^
378| unmount();
379| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[241/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[2m "MCP Server: test-server[22m
[2m Tool: test-tool[22m
[2m Allow execution of MCP tool "test-tool" from server "test-server"?[22m
[32m- ● 1. [7mAllow once[27m [39m
[32m- [7m2. Allow tool for this session[27m[39m
[32m- 3. Allow all server tools for this session[39m
[32m- 4. No, suggest changes (esc)[39m
[31m+ ● 1. [7m [27m [7m [27m[39m
[31m+ 2.[39m
[31m+ 3.[39m
[31m+ 4.[39m
[2m "[22m
❯ src/ui/components/messages/ToolConfirmationMessage.test.tsx:353:29
351| );
352|
353| expect(lastFrame()).toMatchSnapshot();
| ^
354| unmount();
355| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[242/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[2m "MCP Server: test-server[22m
[2m Tool: test-tool[22m
[2m Allow execution of MCP tool "test-tool" from server "test-server"?[22m
[32m- ●[7m [27m1. [7mAllow once[27m [39m
[32m- [7m2. No, suggest changes (esc)[27m[39m
[31m+ ●1. [7m [27m [7m [27m[39m
[31m+ 2.[39m
[2m "[22m
❯ src/ui/components/messages/ToolConfirmationMessage.test.tsx:377:29
375| );
376|
377| expect(lastFrame()).toMatchSnapshot();
| ^
378| unmount();
379| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[243/292]⎯
FAIL src/ui/components/messages/ToolConfirmationMessage.test.tsx > ToolConfirmationMessage > enablePermanentToolApproval setting > should show "Allow for all future sessions" when trusted
AssertionError: expected '╭────────────────────────────────────…' to contain 'future sessions'
[32m- Expected[39m
[31m+ Received[39m
[32m- future sessions[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ No changes detected. │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────╯[39m
[31m+ Apply this change?[39m
[31m+[39m
[31m+ ●1. [39m
[31m+ 2.[39m
[31m+ 3.[39m
[31m+ 4.[39m
[31m+ 5.[39m
[31m+[39m
❯ src/ui/components/messages/ToolConfirmationMessage.test.tsx:447:22
445|
446| const output = lastFrame();
447| expect(output).toContain('future sessions');
| ^
448| // Verify it is the default selection (matching the indicator in…
449| expect(output).toMatchSnapshot();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[244/292]⎯
FAIL src/ui/components/messages/ToolConfirmationMessage.test.tsx > ToolConfirmationMessage > Modify with external editor option > should show "Modify with external editor" when NOT in IDE mode
AssertionError: expected '╭────────────────────────────────────…' to contain 'Modify with external editor'
[32m- Expected[39m
[31m+ Received[39m
[32m- Modify with external editor[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ No changes detected. │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────╯[39m
[31m+ Apply this change?[39m
[31m+[39m
[31m+ ●1. [39m
[31m+ 2.[39m
[31m+ 3.[39m
[31m+ 4.[39m
[31m+[39m
❯ src/ui/components/messages/ToolConfirmationMessage.test.tsx:493:27
491| );
492|
493| expect(lastFrame()).toContain('Modify with external editor');
| ^
494| unmount();
495| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[245/292]⎯
FAIL src/ui/components/messages/ToolConfirmationMessage.test.tsx > ToolConfirmationMessage > Modify with external editor option > should show "Modify with external editor" when in IDE mode but diffing is NOT enabled
AssertionError: expected '╭────────────────────────────────────…' to contain 'Modify with external editor'
[32m- Expected[39m
[31m+ Received[39m
[32m- Modify with external editor[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ No changes detected. │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────╯[39m
[31m+ Apply this change?[39m
[31m+[39m
[31m+ ●1. [39m
[31m+ 2.[39m
[31m+ 3.[39m
[31m+ 4.[39m
[31m+[39m
❯ src/ui/components/messages/ToolConfirmationMessage.test.tsx:525:27
523| );
524|
525| expect(lastFrame()).toContain('Modify with external editor');
| ^
526| unmount();
527| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[246/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[2m "MCP Server: testserver[22m
[2m Tool: testtool[22m
[2m Allow execution of MCP tool "testtool" from server "testserver"?[22m
[32m- ●[7m [27m1. [7mAllow once[27m [39m
[32m- [7m2. Allow tool for this session[27m[39m
[32m- 3. Allow all server tools for this session[39m
[31m+ ●1. [7m [27m [7m [27m[39m
[31m+ 2.[39m
[31m+ 3.[39m
[32m- [7m [27m 4.[7m No, suggest changes (esc)[27m[39m
[31m+ 4.[39m
[2m "[22m
❯ 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| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[247/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -32,9 +32,9 @@[39m
[2m │ echo "Line 49" │[22m
[2m │ echo "Line 50" │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────╯[22m
[2m Allow execution of [echo]?[22m
[32m- ●[7m [27m1. [7mAllow once[27m [39m
[32m- [7m2. Allow for this session[27m[39m
[32m- 3. No, suggest changes (esc)[39m
[31m+ ●1. [7m [27m [7m [27m[39m
[31m+ 2.[39m
[31m+ 3.[39m
[2m "[22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[248/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -31,10 +31,10 @@[39m
[2m │ 20 - const oldLine20 = true; │[22m
[2m │ 20 + const newLine20 = true; │[22m
[2m ╰──────────────────────────────────────────────────────────────────────────────╯[22m
[2m Apply this change?[22m
[32m- ●[7m [27m1. [7mAllow once[27m [39m
[32m- [7m2. Allow for this session[27m[39m
[32m- 3. Modify with external editor[39m
[32m- 4. No, suggest changes (esc)[39m
[31m+ ●1. [7m [27m [7m [27m[39m
[31m+ 2.[39m
[31m+ 3.[39m
[31m+ 4.[39m
[2m "[22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[249/292]⎯
FAIL src/ui/components/messages/ToolMessage.test.tsx > > renders emphasis correctly
Error: Snapshot ` > renders emphasis correctly 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────╮[22m
[32m- │ ✓ test-tool A tool for testing [7m←[27m │[39m
[31m+ │ ✓ test-tool A tool for testing [7m←[27m │[39m
[2m │ │[22m
[2m │ Test result │[22m
[2m "[22m
❯ src/ui/components/messages/ToolMessage.test.tsx:324:33
322| await waitUntilReadyHigh();
323| // Check for trailing indicator or specific color if applicable (C…
324| expect(highEmphasisFrame()).toMatchSnapshot();
| ^
325| unmountHigh();
326|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[250/292]⎯
FAIL src/ui/components/messages/ToolMessageFocusHint.test.tsx > Focus Hint > 'ToolMessage' > shows focus hint after delay with output
Error: Snapshot `Focus Hint > 'ToolMessage' > shows focus hint after delay with output > after-delay-with-output 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────╮[22m
[32m- │ ⊶ Shell Command A tool for testing [7m [27m [7m(Tab to focus)[27m │[39m
[31m+ │ ⊶ Shell Command A tool for testing [7m(Tab to focus)[27m [7m [27m │[39m
[2m │ │[22m
[2m "[22m
❯ src/ui/components/messages/ToolMessageFocusHint.test.tsx:104:27
102| await waitUntilReady();
103|
104| expect(lastFrame()).toMatchSnapshot('after-delay-with-output');
| ^
105| expect(lastFrame()).toContain('(Tab to focus)');
106| unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[251/292]⎯
FAIL src/ui/components/messages/ToolMessageFocusHint.test.tsx > Focus Hint > 'ShellToolMessage' > shows focus hint after delay even with NO output
Error: Snapshot `Focus Hint > 'ShellToolMessage' > shows focus hint after delay even with NO output > after-delay-no-output 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────╮[22m
[32m- │ ⊶ Shell Command A tool for testing [7m [27m [7m(Tab to focus)[27m │[39m
[31m+ │ ⊶ Shell Command A tool for testing [7m(Tab to focus)[27m [7m [27m │[39m
[2m │ │[22m
[2m "[22m
❯ src/ui/components/messages/ToolMessageFocusHint.test.tsx:84:27
82|
83| // Now it SHOULD contain the focus hint
84| expect(lastFrame()).toMatchSnapshot('after-delay-no-output');
| ^
85| expect(lastFrame()).toContain('(Tab to focus)');
86| unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[252/292]⎯
FAIL src/ui/components/messages/ToolMessageFocusHint.test.tsx > Focus Hint > 'ShellToolMessage' > shows focus hint after delay with output
Error: Snapshot `Focus Hint > 'ShellToolMessage' > shows focus hint after delay with output > after-delay-with-output 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "╭──────────────────────────────────────────────────────────────────────────────╮[22m
[32m- │ ⊶ Shell Command A tool for testing [7m [27m [7m(Tab to focus)[27m │[39m
[31m+ │ ⊶ Shell Command A tool for testing [7m(Tab to focus)[27m [7m [27m │[39m
[2m │ │[22m
[2m "[22m
❯ src/ui/components/messages/ToolMessageFocusHint.test.tsx:104:27
102| await waitUntilReady();
103|
104| expect(lastFrame()).toMatchSnapshot('after-delay-with-output');
| ^
105| expect(lastFrame()).toContain('(Tab to focus)');
106| unmount();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[253/292]⎯
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
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,11 +2,11 @@[39m
[2m [22m
[2m [22m
[2m [22m
[32m- ... 26 hidden (Ctrl+O) ...[39m
[31m+ ... 26 hidden (Ctrl+O) ...[39m
[2m Line 27 [22m
[2m Line 28 [22m
[2m Line 29 [22m
[2m Line 30 [22m
[2m Line 31 [22m
❯ 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
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[254/292]⎯
FAIL src/ui/components/messages/ToolStickyHeaderRegression.test.tsx > ToolMessage Sticky Header Regression > verifies that ShellToolMessage in a ToolGroupMessage in a ScrollableList has sticky headers
AssertionError: expected '█\n█\n│\n│\n│\n' to contain 'Shell Command'
[32m- Expected[39m
[31m+ Received[39m
[32m- Shell Command[39m
[31m+ █[39m
[31m+ █[39m
[31m+ │[39m
[31m+ │[39m
[31m+ │[39m
[31m+[39m
❯ src/ui/components/messages/ToolStickyHeaderRegression.test.tsx:196:27
194|
195| await waitFor(() => {
196| expect(lastFrame()).toContain(SHELL_COMMAND_NAME);
| ^
197| });
198| expect(lastFrame()).toMatchSnapshot();
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/messages/ToolStickyHeaderRegression.test.tsx:195:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[255/292]⎯
FAIL src/ui/components/shared/BaseSettingsDialog.test.tsx > BaseSettingsDialog > rendering > should render all items
AssertionError: expected '╭────────────────────────────────────…' to contain 'Boolean Setting'
[32m- Expected[39m
[31m+ Received[39m
[32m- Boolean Setting[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● B t │[39m
[31m+ │ o r │[39m
[31m+ │ o u │[39m
[31m+ │ l e │[39m
[31m+ │ e │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ S │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ S t │[39m
[31m+ │ t e │[39m
[31m+ │ r s │[39m
[31m+ │ i t │[39m
[31m+ │ n - │[39m
[31m+ │ g v │[39m
[31m+ │ S a │[39m
[31m+ │ e l │[39m
[31m+ │ t u │[39m
[31m+ │ t e │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ N 4 │[39m
[31m+ │ u 2 │[39m
[31m+ │ m │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ S │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ E o │[39m
[31m+ │ n p │[39m
[31m+ │ u t │[39m
[31m+ │ m i │[39m
[31m+ │ S o │[39m
[31m+ │ e n │[39m
[31m+ │ t - │[39m
[31m+ │ t a │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/shared/BaseSettingsDialog.test.tsx:129:21
127| const frame = lastFrame();
128|
129| expect(frame).toContain('Boolean Setting');
| ^
130| expect(frame).toContain('String Setting');
131| expect(frame).toContain('Number Setting');
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[256/292]⎯
FAIL src/ui/components/shared/BaseSettingsDialog.test.tsx > BaseSettingsDialog > rendering > should render help text with Ctrl+L for reset
AssertionError: expected '╭────────────────────────────────────…' to contain 'Use Enter to select'
[32m- Expected[39m
[31m+ Received[39m
[32m- Use Enter to select[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● B t │[39m
[31m+ │ o r │[39m
[31m+ │ o u │[39m
[31m+ │ l e │[39m
[31m+ │ e │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ S │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ S t │[39m
[31m+ │ t e │[39m
[31m+ │ r s │[39m
[31m+ │ i t │[39m
[31m+ │ n - │[39m
[31m+ │ g v │[39m
[31m+ │ S a │[39m
[31m+ │ e l │[39m
[31m+ │ t u │[39m
[31m+ │ t e │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ N 4 │[39m
[31m+ │ u 2 │[39m
[31m+ │ m │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ S │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ E o │[39m
[31m+ │ n p │[39m
[31m+ │ u t │[39m
[31m+ │ m i │[39m
[31m+ │ S o │[39m
[31m+ │ e n │[39m
[31m+ │ t - │[39m
[31m+ │ t a │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/shared/BaseSettingsDialog.test.tsx:140:21
138| const frame = lastFrame();
139|
140| expect(frame).toContain('Use Enter to select');
| ^
141| expect(frame).toContain('Ctrl+L to reset');
142| expect(frame).toContain('Tab to change focus');
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[257/292]⎯
FAIL src/ui/components/shared/BaseSettingsDialog.test.tsx > BaseSettingsDialog > rendering > should render scope selector when showScopeSelector is true
AssertionError: expected '╭────────────────────────────────────…' to contain 'Apply To'
[32m- Expected[39m
[31m+ Received[39m
[32m- Apply To[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● B t │[39m
[31m+ │ o r │[39m
[31m+ │ o u │[39m
[31m+ │ l e │[39m
[31m+ │ e │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ S │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ S t │[39m
[31m+ │ t e │[39m
[31m+ │ r s │[39m
[31m+ │ i t │[39m
[31m+ │ n - │[39m
[31m+ │ g v │[39m
[31m+ │ S a │[39m
[31m+ │ e l │[39m
[31m+ │ t u │[39m
[31m+ │ t e │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ N 4 │[39m
[31m+ │ u 2 │[39m
[31m+ │ m │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ S │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ E o │[39m
[31m+ │ n p │[39m
[31m+ │ u t │[39m
[31m+ │ m i │[39m
[31m+ │ S o │[39m
[31m+ │ e n │[39m
[31m+ │ t - │[39m
[31m+ │ t a │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/shared/BaseSettingsDialog.test.tsx:153:27
151| });
152|
153| expect(lastFrame()).toContain('Apply To');
| ^
154| unmount();
155| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[258/292]⎯
FAIL src/ui/components/shared/BaseSettingsDialog.test.tsx > BaseSettingsDialog > rendering > should render footer content when provided
AssertionError: expected '╭────────────────────────────────────…' to contain 'Custom Footer'
[32m- Expected[39m
[31m+ Received[39m
[32m- Custom Footer[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● B t │[39m
[31m+ │ o r │[39m
[31m+ │ o u │[39m
[31m+ │ l e │[39m
[31m+ │ e │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ S │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ S t │[39m
[31m+ │ t e │[39m
[31m+ │ r s │[39m
[31m+ │ i t │[39m
[31m+ │ n - │[39m
[31m+ │ g v │[39m
[31m+ │ S a │[39m
[31m+ │ e l │[39m
[31m+ │ t u │[39m
[31m+ │ t e │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ N 4 │[39m
[31m+ │ u 2 │[39m
[31m+ │ m │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ S │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ E o │[39m
[31m+ │ n p │[39m
[31m+ │ u t │[39m
[31m+ │ m i │[39m
[31m+ │ S o │[39m
[31m+ │ e n │[39m
[31m+ │ t - │[39m
[31m+ │ t a │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ C │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ m │[39m
[31m+ │ F │[39m
[31m+ │ o │[39m
[31m+ │ o │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/shared/BaseSettingsDialog.test.tsx:174:27
172| });
173|
174| expect(lastFrame()).toContain('Custom Footer');
| ^
175| unmount();
176| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[259/292]⎯
FAIL src/ui/components/shared/BaseSettingsDialog.test.tsx > BaseSettingsDialog > keyboard navigation > should navigate down with arrow key
AssertionError: expected '╭────────────────────────────────────…' to contain 'Boolean Setting'
[32m- Expected[39m
[31m+ Received[39m
[32m- Boolean Setting[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● B t │[39m
[31m+ │ o r │[39m
[31m+ │ o u │[39m
[31m+ │ l e │[39m
[31m+ │ e │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ S │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ S t │[39m
[31m+ │ t e │[39m
[31m+ │ r s │[39m
[31m+ │ i t │[39m
[31m+ │ n - │[39m
[31m+ │ g v │[39m
[31m+ │ S a │[39m
[31m+ │ e l │[39m
[31m+ │ t u │[39m
[31m+ │ t e │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ N 4 │[39m
[31m+ │ u 2 │[39m
[31m+ │ m │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ S │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ E o │[39m
[31m+ │ n p │[39m
[31m+ │ u t │[39m
[31m+ │ m i │[39m
[31m+ │ S o │[39m
[31m+ │ e n │[39m
[31m+ │ t - │[39m
[31m+ │ t a │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/shared/BaseSettingsDialog.test.tsx:203:28
201| // Initially first item is active (indicated by bullet point)
202| const initialFrame = lastFrame();
203| expect(initialFrame).toContain('Boolean Setting');
| ^
204|
205| // Press down arrow
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[260/292]⎯
FAIL src/ui/components/shared/BaseSettingsDialog.test.tsx > BaseSettingsDialog > keyboard navigation > should switch focus with Tab when scope selector is shown
AssertionError: expected '╭────────────────────────────────────…' to contain '> Test Settings'
[32m- Expected[39m
[31m+ Received[39m
[32m- > Test Settings[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● B t │[39m
[31m+ │ o r │[39m
[31m+ │ o u │[39m
[31m+ │ l e │[39m
[31m+ │ e │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ S │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ S t │[39m
[31m+ │ t e │[39m
[31m+ │ r s │[39m
[31m+ │ i t │[39m
[31m+ │ n - │[39m
[31m+ │ g v │[39m
[31m+ │ S a │[39m
[31m+ │ e l │[39m
[31m+ │ t u │[39m
[31m+ │ t e │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ N 4 │[39m
[31m+ │ u 2 │[39m
[31m+ │ m │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ S │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ E o │[39m
[31m+ │ n p │[39m
[31m+ │ u t │[39m
[31m+ │ m i │[39m
[31m+ │ S o │[39m
[31m+ │ e n │[39m
[31m+ │ t - │[39m
[31m+ │ t a │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/shared/BaseSettingsDialog.test.tsx:286:27
284|
285| // Initially settings section is focused (indicated by >)
286| expect(lastFrame()).toContain('> Test Settings');
| ^
287|
288| // Press Tab to switch to scope selector
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[261/292]⎯
FAIL src/ui/components/shared/BaseSettingsDialog.test.tsx > BaseSettingsDialog > scrolling and resizing list (search filtering) > should preserve focus on the active item if it remains in the filtered list
AssertionError: expected '╭────────────────────────────────────…' to contain 'Boolean Setting'
[32m- Expected[39m
[31m+ Received[39m
[32m- Boolean Setting[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ B t │[39m
[31m+ │ o r │[39m
[31m+ │ o u │[39m
[31m+ │ l e │[39m
[31m+ │ e │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ S │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● N 4 │[39m
[31m+ │ u 2 │[39m
[31m+ │ m │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ S │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ E v │[39m
[31m+ │ x a │[39m
[31m+ │ t l │[39m
[31m+ │ r u │[39m
[31m+ │ a e │[39m
[31m+ │ S - │[39m
[31m+ │ e 4 │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ 4 │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/shared/BaseSettingsDialog.test.tsx:340:23
338| await waitFor(() => {
339| const frame = lastFrame();
340| expect(frame).toContain('Boolean Setting');
| ^
341| expect(frame).toContain('Number Setting');
342| expect(frame).toContain('Extra Setting 4');
❯ waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/shared/BaseSettingsDialog.test.tsx:338:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[262/292]⎯
FAIL src/ui/components/shared/BaseSettingsDialog.test.tsx > BaseSettingsDialog > scrolling and resizing list (search filtering) > should reset focus to the top if the active item is filtered out
AssertionError: expected '╭────────────────────────────────────…' to contain 'Boolean Setting'
[32m- Expected[39m
[31m+ Received[39m
[32m- Boolean Setting[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ S │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ - │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/shared/BaseSettingsDialog.test.tsx:395:23
393| await waitFor(() => {
394| const frame = lastFrame();
395| expect(frame).toContain('Boolean Setting');
| ^
396| expect(frame).toContain('String Setting');
397| });
❯ waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/shared/BaseSettingsDialog.test.tsx:393:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[263/292]⎯
FAIL src/ui/components/shared/BaseSettingsDialog.test.tsx > BaseSettingsDialog > item interactions > should enter edit mode for string items on Enter
AssertionError: expected '╭────────────────────────────────────…' to contain 'test-value'
[32m- Expected[39m
[31m+ Received[39m
[32m- test-value[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ - │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/shared/BaseSettingsDialog.test.tsx:474:23
472| const frame = lastFrame();
473| // In edit mode, the value should be displayed (possibly with …
474| expect(frame).toContain('test-value');
| ^
475| });
476| unmount();
❯ waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/shared/BaseSettingsDialog.test.tsx:471:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[264/292]⎯
FAIL src/ui/components/shared/BaseSettingsDialog.test.tsx > BaseSettingsDialog > item interactions > should enter edit mode for number items on Enter
AssertionError: expected '╭────────────────────────────────────…' to contain '42'
[32m- Expected[39m
[31m+ Received[39m
[32m- 42[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ 4 │[39m
[31m+ │ 2 │[39m
[31m+ │ m │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ S │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/shared/BaseSettingsDialog.test.tsx:495:23
493| await waitFor(() => {
494| const frame = lastFrame();
495| expect(frame).toContain('42');
| ^
496| });
497| unmount();
❯ waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/shared/BaseSettingsDialog.test.tsx:493:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[265/292]⎯
FAIL src/ui/components/shared/BaseSettingsDialog.test.tsx > BaseSettingsDialog > edit mode > should prioritize editValue over rawValue stringification
Error: Test timed out in 60000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
❯ src/ui/components/shared/BaseSettingsDialog.test.tsx:520:5
518|
519| describe('edit mode', () => {
520| it('should prioritize editValue over rawValue stringification', as…
| ^
521| const objectItem: SettingsDialogItem = {
522| key: 'object-setting',
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[266/292]⎯
FAIL src/ui/components/shared/BaseSettingsDialog.test.tsx > BaseSettingsDialog > edit mode > should commit edit on Enter
Error: Test timed out in 60000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
❯ src/ui/components/shared/BaseSettingsDialog.test.tsx:551:5
549| });
550|
551| it('should commit edit on Enter', async () => {
| ^
552| const items = createMockItems(4);
553| const stringItem = items.find((i) => i.type === 'string')!;
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[267/292]⎯
FAIL src/ui/components/shared/BaseSettingsDialog.test.tsx > BaseSettingsDialog > edit mode > should allow number input for number fields
Error: Test timed out in 60000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
❯ src/ui/components/shared/BaseSettingsDialog.test.tsx:672:5
670| });
671|
672| it('should allow number input for number fields', async () => {
| ^
673| const items = createMockItems(4);
674| const numberItem = items.find((i) => i.type === 'number')!;
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[268/292]⎯
FAIL src/ui/components/shared/BaseSettingsDialog.test.tsx > BaseSettingsDialog > focus management > should keep focus on settings when scope selector is hidden
AssertionError: expected '╭────────────────────────────────────…' to contain '> Test Settings'
[32m- Expected[39m
[31m+ Received[39m
[32m- > Test Settings[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ S │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ - │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ 4 │[39m
[31m+ │ 2 │[39m
[31m+ │ m │[39m
[31m+ │ b │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ S │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ o │[39m
[31m+ │ p │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ o │[39m
[31m+ │ n │[39m
[31m+ │ - │[39m
[31m+ │ a │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/shared/BaseSettingsDialog.test.tsx:827:29
825| await waitFor(() => {
826| // Should still show settings as focused
827| expect(lastFrame()).toContain('> Test Settings');
| ^
828| });
829| unmount();
❯ waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/shared/BaseSettingsDialog.test.tsx:825:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[269/292]⎯
FAIL src/ui/components/shared/BaseSettingsDialog.test.tsx > BaseSettingsDialog > responsiveness > should show the scope selector when availableHeight is sufficient (25)
AssertionError: expected '╭────────────────────────────────────…' to contain 'Apply To'
[32m- Expected[39m
[31m+ Received[39m
[32m- Apply To[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ▲ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ S │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ - │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ▼ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/shared/BaseSettingsDialog.test.tsx:841:21
839|
840| const frame = lastFrame();
841| expect(frame).toContain('Apply To');
| ^
842| unmount();
843| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[270/292]⎯
FAIL src/ui/components/shared/BaseSettingsDialog.test.tsx > BaseSettingsDialog > responsiveness > should reduce the number of visible items based on height
AssertionError: expected '╭────────────────────────────────────…' to contain 'Boolean Setting'
[32m- Expected[39m
[31m+ Received[39m
[32m- Boolean Setting[39m
[31m+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ▲ │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ e │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ S │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ t │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ t │[39m
[31m+ │ - │[39m
[31m+ │ v │[39m
[31m+ │ a │[39m
[31m+ │ l │[39m
[31m+ │ u │[39m
[31m+ │ e │[39m
[31m+ │ i │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ▼ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ● │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ │[39m
[31m+ │ ( │[39m
[31m+ │ U │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ E │[39m
[31m+ │ n │[39m
[31m+ │ t │[39m
[31m+ │ e │[39m
[31m+ │ r │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ l │[39m
[31m+ │ e │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ C │[39m
[31m+ │ t │[39m
[31m+ │ r │[39m
[31m+ │ l │[39m
[31m+ │ + │[39m
[31m+ │ L │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ r │[39m
[31m+ │ e │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ t │[39m
[31m+ │ , │[39m
[31m+ │ T │[39m
[31m+ │ a │[39m
[31m+ │ b │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ h │[39m
[31m+ │ a │[39m
[31m+ │ n │[39m
[31m+ │ g │[39m
[31m+ │ e │[39m
[31m+ │ f │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ u │[39m
[31m+ │ s │[39m
[31m+ │ , │[39m
[31m+ │ E │[39m
[31m+ │ s │[39m
[31m+ │ c │[39m
[31m+ │ t │[39m
[31m+ │ o │[39m
[31m+ │ c │[39m
[31m+ │ l │[39m
[31m+ │ o │[39m
[31m+ │ s │[39m
[31m+ │ e │[39m
[31m+ │ ) │[39m
[31m+ │ │[39m
[31m+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
❯ src/ui/components/shared/BaseSettingsDialog.test.tsx:865:21
863| const frame = lastFrame();
864| // Items 0 and 1 should be there
865| expect(frame).toContain('Boolean Setting');
| ^
866| expect(frame).toContain('String Setting');
867| // Item 2 should NOT be there
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[271/292]⎯
FAIL src/ui/components/shared/MaxSizedBox.test.tsx > > does not leak content after hidden indicator with bottom overflow
Error: Snapshot ` > does not leak content after hidden indicator with bottom overflow 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[2m "Plan[22m
[32m- - S[7mtep 1: Do something important[27m[39m
[32m- [7m - Step 2: Do something importan[27mt[39m
[31m+ - S[39m
[31m+ [7m [27mt[39m
[32m- ... last [7m18[27m lines hidden (Ctrl+O to show) ...[39m
[31m+ ... last [7m529[27m lines hidden (Ctrl+O to show) ...[39m
[2m "[22m
❯ src/ui/components/shared/MaxSizedBox.test.tsx:316:25
314| /^\.\.\. last \d+ lines? hidden \(Ctrl\+O to show\) \.\.\.$/,
315| );
316| expect(lastFrame()).toMatchSnapshot();
| ^
317| unmount();
318| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[272/292]⎯
FAIL src/ui/components/shared/ScrollableList.test.tsx > ScrollableList Demo Behavior > should scroll to bottom when new items are added and stop when scrolled up
AssertionError: expected '\n ╭─────────────────────────────────…' to contain 'Item 1001'
[32m- Expected[39m
[31m+ Received[39m
[32m- [7mItem[27m 1001[39m
[31m+[39m
[31m+ ╭────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │I │[39m
[31m+ │─ │[39m
[31m+ │i │[39m
[31m+ │p │[39m
[31m+ │s │[39m
[31m+ │u │[39m
[31m+ │m │[39m
[31m+ │l │[39m
[31m+ │o │[39m
[31m+ │r │[39m
[31m+ │e │[39m
[31m+ │m │[39m
[31m+ │i │[39m
[31m+ │p │[39m
[31m+ │s │[39m
[31m+ │u │[39m
[31m+ │m │[39m
[31m+ │ │[39m
[31m+ │█ │[39m
[31m+ ╰────────────────────────────────────────────────────────────────────────────╯[39m
[31m+ [7m Count:[27m 1001[39m
[31m+[39m
❯ src/ui/components/shared/ScrollableList.test.tsx:167:26
165| expect(lastFrame!()).toContain('Count: 1001');
166| });
167| expect(lastFrame!()).toContain('Item 1001');
| ^
168| expect(lastFrame!()).not.toContain('Item 990'); // Should have scr…
169|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[273/292]⎯
FAIL src/ui/components/shared/ScrollableList.test.tsx > ScrollableList Demo Behavior > should display sticky header when scrolled past the item
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/ScrollableList.test.tsx:259:14
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/shared/ScrollableList.test.tsx:258:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[274/292]⎯
FAIL src/ui/components/shared/ScrollableList.test.tsx > ScrollableList Demo Behavior > Keyboard Navigation > should handle scroll keys correctly
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/ScrollableList.test.tsx:340:14
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[275/292]⎯
FAIL src/ui/components/shared/ScrollableList.test.tsx > ScrollableList Demo Behavior > Width Prop > should apply the width prop to the container
AssertionError: expected 'I\nt\ne\nm\n1\n' to contain 'Item 1'
[32m- Expected[39m
[31m+ Received[39m
[32m- I[7mtem 1[27m[39m
[31m+ I[39m
[31m+ t[39m
[31m+ e[39m
[31m+ m[39m
[31m+ 1[39m
[31m+[39m
❯ src/ui/components/shared/ScrollableList.test.tsx:441:29
439|
440| await waitFor(() => {
441| expect(lastFrame()).toContain('Item 1');
| ^
442| });
443|
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/shared/ScrollableList.test.tsx:440:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[276/292]⎯
FAIL src/ui/components/shared/ScrollableList.test.tsx > ScrollableList Demo Behavior > regression: remove last item and add 2 items when scrolled to bottom
AssertionError: expected 10 to be 5 // Object.is equality
[32m- Expected[39m
[31m+ Received[39m
[32m- 5[39m
[31m+ 10[39m
❯ src/ui/components/shared/ScrollableList.test.tsx:492:52
490| // Scrolled to bottom, max scroll = 10 - 5 = 5
491| await waitFor(() => {
492| expect(listRef?.getScrollState()?.scrollTop).toBe(5);
| ^
493| });
494|
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/shared/ScrollableList.test.tsx:491:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[277/292]⎯
FAIL src/ui/components/shared/ScrollableList.test.tsx > ScrollableList Demo Behavior > regression: bottom-most element changes size but list does not update
AssertionError: expected 5 to be 1 // Object.is equality
[32m- Expected[39m
[31m+ Received[39m
[32m- 1[39m
[31m+ 5[39m
❯ src/ui/components/shared/ScrollableList.test.tsx:613:52
611| // Initially, total height is 5. viewport is 4. scroll is 1.
612| await waitFor(() => {
613| expect(listRef?.getScrollState()?.scrollTop).toBe(1);
| ^
614| });
615|
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/shared/ScrollableList.test.tsx:612:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[278/292]⎯
FAIL src/ui/components/shared/ScrollableList.test.tsx > ScrollableList Demo Behavior > regression: prepending items does not corrupt heights (total height correct)
AssertionError: expected 10 to be 8 // Object.is equality
[32m- Expected[39m
[31m+ Received[39m
[32m- 8[39m
[31m+ 10[39m
❯ src/ui/components/shared/ScrollableList.test.tsx:685:52
683| // Total height = 18. Container = 10. Max scroll = 8.
684| await waitFor(() => {
685| expect(listRef?.getScrollState()?.scrollTop).toBe(8);
| ^
686| });
687|
❯ Module.waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/shared/ScrollableList.test.tsx:684:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[279/292]⎯
FAIL src/ui/components/shared/SearchableList.test.tsx > SearchableList > should reset selection to top when items change if resetSelectionOnItemsChange is true
AssertionError: expected ' Test List\n\n ╭─────────────────────…' to contain '● Item Two'
[32m- Expected[39m
[31m+ Received[39m
[32m- ● Item Two[39m
[31m+ Test List[39m
[31m+[39m
[31m+ ╭────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ Search... │[39m
[31m+ ╰────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
[31m+ I[39m
[31m+ t[39m
[31m+ e[39m
[31m+ m[39m
[31m+ O[39m
[31m+ n[39m
[31m+ e [39m
[31m+[39m
[31m+[39m
[31m+ ● I[39m
[31m+ t[39m
[31m+ e[39m
[31m+ m[39m
[31m+ T[39m
[31m+ w[39m
[31m+ o [39m
[31m+[39m
[31m+[39m
[31m+ I[39m
[31m+ t[39m
[31m+ e[39m
[31m+ m[39m
[31m+ T[39m
[31m+ h[39m
[31m+ r[39m
[31m+ e[39m
[31m+ e[39m
[31m+[39m
❯ src/ui/components/shared/SearchableList.test.tsx:121:21
119| await waitFor(() => {
120| const frame = lastFrame();
121| expect(frame).toContain('● Item Two');
| ^
122| });
123| expect(lastFrame()).toMatchSnapshot();
❯ waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/shared/SearchableList.test.tsx:119:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[280/292]⎯
FAIL src/ui/components/shared/SearchableList.test.tsx > SearchableList > should filter items based on search query
AssertionError: expected ' Test List\n\n ╭─────────────────────…' to contain 'Item Two'
[32m- Expected[39m
[31m+ Received[39m
[32m- Item Two[39m
[31m+ Test List[39m
[31m+[39m
[31m+ ╭────────────────────────────────────────────────────────────────────────────────────────────────╮[39m
[31m+ │ Two │[39m
[31m+ ╰────────────────────────────────────────────────────────────────────────────────────────────────╯[39m
[31m+[39m
[31m+ ● I[39m
[31m+ t[39m
[31m+ e[39m
[31m+ m[39m
[31m+ T[39m
[31m+ w[39m
[31m+ o [39m
[31m+[39m
❯ src/ui/components/shared/SearchableList.test.tsx:159:21
157| await waitFor(() => {
158| const frame = lastFrame();
159| expect(frame).toContain('Item Two');
| ^
160| expect(frame).not.toContain('Item One');
161| expect(frame).not.toContain('Item Three');
❯ waitFor src/test-utils/async.ts:23:13
❯ src/ui/components/shared/SearchableList.test.tsx:157:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[281/292]⎯
FAIL src/ui/components/shared/SearchableList.test.tsx > SearchableList > should match snapshot
Error: Snapshot `SearchableList > should match snapshot 1` mismatched
[32m- Expected[39m
[31m+ Received[39m
[33m@@ -2,14 +2,33 @@[39m
[2m ╭────────────────────────────────────────────────────────────────────────────────────────────────╮[22m
[2m │ Search... │[22m
[2m ╰────────────────────────────────────────────────────────────────────────────────────────────────╯[22m
[32m- ● I[7mtem One[27m [39m
[31m+ ● I[39m
[31m+ t[39m
[31m+ e[39m
[31m+ m[39m
[31m+ [7m [27m [7mO[27m[39m
[32m- [7mDescription for item one[27m[39m
[32m-[39m
[32m- [7m Item Two[27m [39m
[31m+ [7mn[27m[39m
[31m+ e [39m
[31m+[39m
[31m+[39m
[31m+ I[39m
[31m+ [7m [27m [7mt[27m[39m
[32m- [7mDescription for item two[27m[39m
[32m-[39m
[32m- Item Three[39m
[32m- [7m Description for item thre[27me[39m
[31m+ [7me[27m[39m
[31m+ m[39m
[31m+ T[39m
[31m+ w[39m
[31m+ o [39m
[31m+[39m
[31m+[39m
[31m+ I[39m
[31m+ t[39m
[31m+ e[39m
[31m+ m[39m
[31m+ T[39m
[31m+ h[39m
[31m+ r[39m
[31m+ e[39m
[31m+ [7m [27me[39m
[2m "[22m
❯ 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| });
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[282/292]⎯
FAIL src/ui/components/shared/performance.test.ts > text-buffer performance > should handle character-by-character insertion in a large buffer efficiently
AssertionError: expected 11425 to be less than 5000
❯ src/ui/components/shared/performance.test.ts:67:22
65|
66| const duration = end - start;
67| expect(duration).toBeLessThan(5000);
| ^
68| });
69|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[283/292]⎯
⎯⎯⎯⎯⎯⎯ Unhandled Errors ⎯⎯⎯⎯⎯⎯
Vitest caught 1 unhandled error during the test run.
This might cause false positive tests. Resolve unhandled errors to make sure your tests are not affected.
⎯⎯⎯⎯⎯⎯ Unhandled Error ⎯⎯⎯⎯⎯⎯⎯
Error: [vitest-worker]: Timeout calling "onTaskUpdate"
❯ Object.onTimeoutError ../../node_modules/vitest/dist/chunks/rpc.-pEldfrD.js:53:10
❯ Timeout._onTimeout ../../node_modules/vitest/dist/chunks/index.B521nVV-.js:59:62
❯ listOnTimeout node:internal/timers:605:17
❯ processTimers node:internal/timers:541:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Snapshots 15 written
165 failed
24 obsolete
↳ src/ui/components/messages/ToolMessage.test.tsx
· > renders emphasis correctly 2
↳ src/ui/components/messages/ToolConfirmationMessage.test.tsx
· ToolConfirmationMessage > enablePermanentToolApproval setting > should show "Allow for all future sessions" when trusted 1
↳ src/ui/components/ModelStatsDisplay.test.tsx
· > should display a single model correctly 1
· > should display stats for multiple models correctly 1
· > should handle models with long names (gemini-3-*-preview) without layout breaking 1
↳ src/ui/components/RewindViewer.test.tsx
· RewindViewer > updates content when conversation changes (background update) > after-update 1
· RewindViewer > updates selection and expansion on navigation > after-down 1
↳ src/ui/components/MainContent.test.tsx
· MainContent > renders a spurious line when a tool group has only hidden tools and borderBottom true 1
· MainContent > renders multiple thinking messages sequentially correctly 2
↳ src/ui/components/ExitPlanModeDialog.test.tsx
· ExitPlanModeDialog > useAlternateBuffer: false > bubbles up Ctrl+C when feedback is empty while editing 1
· ExitPlanModeDialog > useAlternateBuffer: true > bubbles up Ctrl+C when feedback is empty while editing 1
↳ src/ui/App.test.tsx
· App > should render ToolConfirmationQueue along with Composer when tool is confirming and experiment is on 1
↳ src/ui/components/messages/ToolStickyHeaderRegression.test.tsx
· ToolMessage Sticky Header Regression > verifies that ShellToolMessage in a ToolGroupMessage in a ScrollableList has sticky headers 1
· ToolMessage Sticky Header Regression > verifies that ShellToolMessage in a ToolGroupMessage in a ScrollableList has sticky headers 2
↳ src/ui/components/shared/SearchableList.test.tsx
· SearchableList > should reset selection to top when items change if resetSelectionOnItemsChange is true 1
· 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/FooterConfigDialog.test.tsx
· > highlights the active item in the preview 1
· > updates the preview when Show footer labels is toggled off 1
↳ src/ui/ToolConfirmationFullFrame.test.tsx
· Full Terminal Tool Confirmation Snapshot > renders tool confirmation box in the frame of the entire terminal 1
↳ src/ui/components/ShortcutsHelp.test.tsx
· ShortcutsHelp > renders correctly in 'narrow' mode on 'linux' 1
· ShortcutsHelp > renders correctly in 'narrow' mode on 'mac' 1
· ShortcutsHelp > renders correctly in 'wide' mode on 'linux' 1
↳ src/ui/components/AskUserDialog.test.tsx
· AskUserDialog > allows navigating to Review tab and back 1
Test Files 56 failed | 379 passed (435)
Tests 286 failed | 6012 passed | 3 skipped (6301)
Errors 1 error
Start at 14:46:35
Duration 1358.60s (transform 3740.57s, setup 99034.09s, collect 22287.95s, tests 6780.47s, environment 2.97s, prepare 1650.44s)
JUNIT report written to /build/gemini-cli/src/gemini-cli/packages/cli/junit.xml
npm error Lifecycle script `test` failed with error:
npm error code 1
npm error path /build/gemini-cli/src/gemini-cli/packages/cli
npm error workspace @google/gemini-cli@0.38.2
npm error location /build/gemini-cli/src/gemini-cli/packages/cli
npm error command failed
npm error command sh -c vitest run '--exclude=**/BuiltinCommandLoader.test.ts' '--exclude=**/config.integration.test.ts' '--exclude=**/mcp-client.test.ts' '--exclude=**/sandboxManager.integration.test.ts'
> @google/gemini-cli-core@0.38.2 test
> vitest run --exclude=**/BuiltinCommandLoader.test.ts --exclude=**/config.integration.test.ts --exclude=**/mcp-client.test.ts --exclude=**/sandboxManager.integration.test.ts
RUN v3.2.4 /build/gemini-cli/src/gemini-cli/packages/core
Coverage enabled with v8
✓ src/utils/editor.test.ts (160 tests) 1299ms
✓ src/utils/events.test.ts (24 tests) 4134ms
✓ CoreEventEmitter > ConsentRequest Event > should respect the backlog size limit for consent requests 3382ms
✓ src/utils/googleErrors.test.ts (15 tests) 236ms
✓ src/services/modelConfigService.test.ts (36 tests) 495ms
✓ src/services/environmentSanitization.test.ts (30 tests) 285ms
✓ src/utils/paths.test.ts (130 tests | 36 skipped) 392ms
✓ src/utils/memoryImportProcessor.test.ts (25 tests) 712ms
✓ src/utils/workspaceContext.test.ts (38 tests) 716ms
✓ src/utils/oauth-flow.test.ts (42 tests) 1160ms
✓ oauth-flow > startCallbackServer > should start a server and resolve port 589ms
✓ src/hooks/types.test.ts (35 tests) 336ms
✓ src/utils/compatibility.test.ts (36 tests) 251ms
✓ src/agents/a2aUtils.test.ts (27 tests) 375ms
✓ src/code_assist/converter.test.ts (25 tests) 179ms
✓ src/utils/generateContentResponseUtilities.test.ts (48 tests) 429ms
✓ src/mcp/oauth-utils.test.ts (35 tests) 568ms
✓ src/mcp/oauth-provider.test.ts (41 tests) 2705ms
✓ MCPOAuthProvider > authenticate > should handle invalid callback request 1025ms
✓ src/agent/agent-session.test.ts (18 tests) 608ms
✓ src/utils/googleQuotaErrors.test.ts (33 tests) 438ms
✓ src/hooks/hookAggregator.test.ts (10 tests) 196ms
✓ src/hooks/hookPlanner.test.ts (10 tests) 226ms
✓ src/utils/systemEncoding.test.ts (38 tests) 451ms
✓ src/hooks/hookRegistry.test.ts (24 tests) 678ms
✓ src/config/models.test.ts (69 tests) 574ms
✓ src/ide/ide-connection-utils.test.ts (40 tests | 1 skipped) 1017ms
✓ src/ide/ide-installer.test.ts (20 tests) 448ms
✓ src/services/executionLifecycleService.test.ts (26 tests) 462ms
✓ src/telemetry/gcp-exporters.test.ts (18 tests) 572ms
✓ src/tools/modifiable-tool.test.ts (12 tests) 475ms
✓ src/context/agentHistoryProvider.test.ts (14 tests) 650ms
✓ src/ide/ideContext.test.ts (23 tests) 235ms
✓ src/agents/auth-provider/oauth2-provider.test.ts (24 tests) 417ms
✓ src/utils/userAccountManager.test.ts (23 tests) 666ms
✓ src/config/storage.test.ts (32 tests) 719ms
✓ src/services/gitService.test.ts (19 tests) 1740ms
✓ src/scheduler/confirmation.test.ts (7 tests) 406ms
✓ src/telemetry/memory-monitor.test.ts (31 tests) 1086ms
✓ src/utils/errors.test.ts (29 tests) 531ms
✓ src/output/stream-json-formatter.test.ts (20 tests) 331ms
✓ src/utils/partUtils.test.ts (38 tests) 321ms
✓ src/utils/ignorePatterns.test.ts (28 tests) 330ms
✓ src/agents/a2a-client-manager.test.ts (29 tests) 1159ms
✓ src/agents/remote-invocation.test.ts (19 tests) 526ms
✓ src/agents/a2a-errors.test.ts (22 tests) 155ms
✓ src/config/projectRegistry.test.ts (14 tests) 848ms
✓ src/tools/mcp-tool.test.ts (61 tests) 2772ms
✓ DiscoveredMCPTool > constructor > should set properties correctly 634ms
✓ src/voice/responseFormatter.test.ts (37 tests) 322ms
✓ src/output/json-formatter.test.ts (17 tests) 299ms
✓ src/utils/checkpointUtils.test.ts (15 tests) 481ms
✓ src/ide/ide-client.test.ts (26 tests) 1188ms
✓ src/ide/detect-ide.test.ts (33 tests) 300ms
✓ src/telemetry/activity-monitor.test.ts (22 tests) 312ms
✓ src/code_assist/oauth-credential-storage.test.ts (16 tests) 471ms
✓ src/telemetry/semantic.test.ts (21 tests) 403ms
✓ src/services/modelConfig.integration.test.ts (10 tests) 206ms
✓ src/services/worktreeService.test.ts (19 tests) 722ms
✓ src/utils/tokenCalculation.test.ts (15 tests) 416ms
✓ src/routing/strategies/gemmaClassifierStrategy.test.ts (10 tests) 362ms
✓ src/prompts/utils.test.ts (30 tests) 561ms
✓ src/telemetry/rate-limiter.test.ts (24 tests) 536ms
✓ src/tools/ask-user.test.ts (28 tests) 1309ms
✓ AskUserTool > validateToolParams > should return error if questions is missing 829ms
✓ src/skills/skillLoader.test.ts (14 tests) 2478ms
✓ skillLoader > should load skills from a directory with valid SKILL.md 996ms
✓ skillLoader > should parse skill with colon in description (issue #16323) 355ms
✓ src/tools/memoryTool.test.ts (19 tests) 1293ms
✓ MemoryTool > setGeminiMdFilename > should update currentGeminiMdFilename when a valid new name is provided 845ms
✓ src/safety/built-in.test.ts (14 tests) 685ms
✓ src/utils/pathReader.test.ts (18 tests) 1407ms
✓ readPathFromWorkspace > should read a text file from the CWD 483ms
✓ src/services/chatRecordingService.test.ts (35 tests) 2224ms
✓ src/utils/fileUtils.test.ts (86 tests) 2393ms
✓ src/utils/getFolderStructure.test.ts (15 tests) 988ms
✓ src/billing/billing.test.ts (36 tests) 264ms
✓ src/services/fileDiscoveryService.test.ts (39 tests) 2477ms
✓ src/agents/browser/analyzeScreenshot.test.ts (8 tests) 601ms
✓ src/utils/bfsFileSearch.test.ts (16 tests) 1289ms
✓ bfsFileSearch > should find all files in a complex directory structure 343ms
✓ src/hooks/hookTranslator.test.ts (12 tests) 208ms
✓ src/agent/mock.test.ts (10 tests) 334ms
✓ src/services/sandboxManager.test.ts (34 tests) 351ms
✓ src/hooks/hookRunner.test.ts (24 tests) 1688ms
✓ src/core/coreToolHookTriggers.test.ts (7 tests) 367ms
✓ src/tools/ls.test.ts (23 tests) 2266ms
✓ LSTool > parameter validation > should accept valid absolute paths within workspace 968ms
✓ src/tools/grep.test.ts (32 tests) 3828ms
✓ GrepTool > validateToolParams > should return null for valid params (pattern only) 701ms
✓ GrepTool > execute > should find matches for a simple pattern in all files 411ms
✓ src/core/prompts.test.ts (69 tests) 2903ms
✓ src/context/memoryContextManager.test.ts (8 tests) 332ms
✓ src/utils/environmentContext.test.ts (9 tests) 544ms
✓ src/policy/shell-safety.test.ts (23 tests) 615ms
✓ src/sandbox/windows/WindowsSandboxManager.test.ts (19 tests | 2 skipped) 7232ms
✓ WindowsSandboxManager > should prepare a GeminiSandbox.exe command 3636ms
✓ WindowsSandboxManager > should ensure governance files exist 339ms
✓ WindowsSandboxManager > should grant Low Integrity access to the workspace and allowed paths 323ms
✓ WindowsSandboxManager > should grant Low Integrity access to additional write paths 363ms
✓ WindowsSandboxManager > skips denying access to non-existent forbidden paths to prevent icacls failure 502ms
✓ WindowsSandboxManager > should deny Low Integrity access to forbidden paths 385ms
✓ WindowsSandboxManager > should override allowed paths if a path is also in forbidden paths 335ms
✓ src/utils/fetch.test.ts (16 tests) 538ms
✓ src/policy/policy-engine.test.ts (138 tests) 2720ms
✓ src/safety/conseca/conseca.test.ts (10 tests) 473ms
✓ src/agent/content-utils.test.ts (28 tests) 367ms
✓ src/prompts/promptProvider.test.ts (14 tests) 578ms
✓ src/ide/process-utils.test.ts (10 tests) 248ms
✓ src/agents/auth-provider/factory.test.ts (29 tests) 3382ms
✓ A2AAuthProviderFactory > create > should create an OAuth2AuthProvider for oauth2 config 3047ms
✓ src/scheduler/tool-modifier.test.ts (6 tests) 431ms
✓ src/tools/web-fetch.test.ts (62 tests) 3043ms
✓ WebFetchTool > validateToolParamValues > standard mode > should throw if 'empty prompt' 791ms
✓ WebFetchTool > execute (experimental) > should truncate if isContextManagementEnabled is false 495ms
✓ src/confirmation-bus/message-bus.test.ts (13 tests) 347ms
✓ src/utils/secure-browser-launcher.test.ts (14 tests) 772ms
✓ src/utils/shell-utils.test.ts (63 tests | 1 skipped) 15128ms
✓ getCommandRoots > should return a single command 430ms
✓ getCommandRoots > should handle parser initialization failures gracefully 10456ms
✓ src/tools/ripGrep.test.ts (64 tests | 1 skipped) 8151ms
✓ RipGrepTool > validateToolParams > should return null for valid params ('pattern only') 741ms
✓ RipGrepTool > execute > should handle massive output by terminating early without crashing (Regression) 479ms
✓ src/utils/terminalSerializer.test.ts (17 tests) 1580ms
✓ terminalSerializer > serializeTerminalToObject > should handle italic text 342ms
✓ src/sandbox/macos/MacOsSandboxManager.test.ts (12 tests) 3451ms
✓ MacOsSandboxManager > prepareCommand > should correctly format the base command and args 3021ms
✓ src/utils/textUtils.test.ts (28 tests) 174ms
✓ src/sandbox/linux/bwrapArgsBuilder.test.ts (12 tests) 289ms
✓ src/telemetry/trace.test.ts (14 tests) 523ms
✓ src/utils/errorReporting.test.ts (6 tests) 741ms
✓ reportError > should generate a report and log the path 414ms
✓ src/telemetry/high-water-mark-tracker.test.ts (18 tests) 244ms
✓ src/mcp/google-auth-provider.test.ts (15 tests) 742ms
✓ src/utils/channel.test.ts (22 tests) 444ms
✓ src/tools/shellBackgroundTools.test.ts (10 tests) 1403ms
✓ Background Tools > list_background_processes should return empty message when no processes 749ms
✓ src/routing/strategies/compositeStrategy.test.ts (6 tests) 253ms
✓ src/utils/cache.test.ts (16 tests) 837ms
✓ src/agents/auth-provider/google-credentials-provider.test.ts (11 tests) 984ms
✓ GoogleCredentialsAuthProvider > Token Fetching > fetches an access token for googleapis.com endpoint 373ms
✓ src/agents/agent-scheduler.test.ts (5 tests) 234ms
✓ src/commands/memory.test.ts (12 tests) 797ms
✓ src/agents/browser/inputBlocker.test.ts (11 tests) 701ms
✓ inputBlocker > injectInputBlocker > should call evaluate_script with correct function parameter 309ms
✓ src/utils/fsErrorMessages.test.ts (25 tests) 550ms
✓ src/services/FolderTrustDiscoveryService.test.ts (8 tests) 1356ms
✓ FolderTrustDiscoveryService > should discover commands, skills, mcps, and hooks 351ms
✓ src/utils/schemaValidator.test.ts (12 tests) 2239ms
✓ SchemaValidator > allows schema with extra properties 1133ms
✓ SchemaValidator > JSON Schema draft-2020-12 support > validates params against draft-2020-12 schema 736ms
✓ src/sandbox/utils/sandboxDenialUtils.test.ts (19 tests) 320ms
✓ src/commands/restore.test.ts (6 tests) 397ms
✓ src/policy/utils.test.ts (19 tests) 607ms
✓ src/tools/diffOptions.test.ts (10 tests) 391ms
✓ src/agents/browser/snapshotSuperseder.test.ts (6 tests) 287ms
✓ src/telemetry/file-exporters.test.ts (7 tests) 309ms
✓ src/utils/apiConversionUtils.test.ts (7 tests) 418ms
✓ src/tools/message-bus-integration.test.ts (6 tests) 1539ms
✓ Message Bus Integration > BaseToolInvocation with MessageBus > should use message bus for confirmation when available 1110ms
✓ src/utils/security.test.ts (9 tests) 571ms
✓ src/services/sessionSummaryUtils.test.ts (10 tests) 770ms
✓ src/hooks/trustedHooks.test.ts (7 tests) 245ms
✓ src/tools/enter-plan-mode.test.ts (9 tests) 1547ms
✓ EnterPlanModeTool > shouldConfirmExecute > should return info confirmation details when policy says ASK_USER 1065ms
✓ src/mcp/sa-impersonation-provider.test.ts (8 tests) 516ms
✓ src/agents/auth-provider/base-provider.test.ts (10 tests) 301ms
✓ src/sandbox/utils/proactivePermissions.test.ts (11 tests) 268ms
✓ src/sandbox/macos/seatbeltArgsBuilder.test.ts (10 tests) 183ms
✓ src/services/sandboxedFileSystemService.test.ts (5 tests) 360ms
✓ src/utils/headless.test.ts (14 tests) 233ms
✓ src/routing/strategies/fallbackStrategy.test.ts (5 tests) 166ms
✓ src/safety/context-builder.test.ts (7 tests) 289ms
✓ src/tools/jit-context.test.ts (9 tests) 216ms
✓ src/tools/activate-skill.test.ts (7 tests) 1086ms
✓ ActivateSkillTool > should return enhanced description 768ms
✓ src/skills/skillManagerAlias.test.ts (2 tests) 546ms
✓ src/core/prompts-substitution.test.ts (6 tests) 496ms
✓ src/agents/memory-manager-agent.test.ts (13 tests) 752ms
✓ src/tools/complete-task.test.ts (12 tests) 1226ms
✓ CompleteTaskTool > Default Configuration (no outputConfig) > should validate successfully with result 601ms
✓ src/config/injectionService.test.ts (10 tests) 326ms
✓ src/utils/authConsent.test.ts (7 tests) 283ms
✓ src/services/shellExecutionService.test.ts (65 tests) 54359ms
✓ ShellExecutionService > Successful Execution > should execute a command and capture output 343ms
✓ ShellExecutionService > Successful Execution > should capture large output (10000 lines) 1705ms
✓ ShellExecutionService child_process fallback > Successful Execution > should truncate stdout using a sliding window and show a warning 405ms
✓ ShellExecutionService environment variables > should use a sanitized environment when in a GitHub run 11680ms
✓ ShellExecutionService environment variables > should use a sanitized environment when in a GitHub run (SURFACE=Github) 9827ms
✓ ShellExecutionService environment variables > should include the full process.env when not in a GitHub run 9336ms
✓ ShellExecutionService environment variables > should include headless git and gh environment variables in non-interactive mode and append git config safely 9440ms
✓ ShellExecutionService environment variables > should NOT include headless git and gh environment variables in interactive fallback mode 8559ms
✓ src/agents/auth-provider/api-key-provider.test.ts (12 tests) 578ms
✓ src/mcp/token-storage/base-token-storage.test.ts (12 tests) 125ms
✓ src/code_assist/experiments/experiments_local.test.ts (5 tests) 6849ms
✓ experiments with GEMINI_EXP > should read experiments from local file if GEMINI_EXP is set 3399ms
✓ experiments with GEMINI_EXP > should fall back to server if reading file fails 1253ms
✓ experiments with GEMINI_EXP > should work without server if file read succeeds 625ms
✓ experiments with GEMINI_EXP > should return empty if no server and no GEMINI_EXP 610ms
✓ experiments with GEMINI_EXP > should fallback to server if file has invalid structure 931ms
✓ src/telemetry/activity-detector.test.ts (13 tests) 526ms
✓ src/agents/auth-provider/value-resolver.test.ts (22 tests) 584ms
✓ src/core/apiKeyCredentialStorage.test.ts (8 tests) 405ms
✓ src/availability/modelAvailabilityService.test.ts (9 tests) 223ms
✓ src/utils/gitIgnoreParser.test.ts (11 tests) 1136ms
✓ src/utils/fastAckHelper.test.ts (9 tests) 914ms
✓ truncateFastAckInput > returns input as-is when below limit 452ms
✓ src/utils/sessionOperations.test.ts (7 tests) 693ms
✓ src/agents/utils.test.ts (12 tests) 181ms
✓ src/utils/markdownUtils.test.ts (13 tests) 249ms
✓ src/availability/policyCatalog.test.ts (12 tests) 209ms
✓ src/code_assist/experiments/client_metadata.test.ts (12 tests) 9012ms
✓ client_metadata > getPlatform > should return DARWIN_AMD64 for platform darwin and arch x64 999ms
✓ client_metadata > getPlatform > should return DARWIN_ARM64 for platform darwin and arch arm64 707ms
✓ client_metadata > getPlatform > should return LINUX_AMD64 for platform linux and arch x64 664ms
✓ client_metadata > getPlatform > should return LINUX_ARM64 for platform linux and arch arm64 732ms
✓ client_metadata > getPlatform > should return WINDOWS_AMD64 for platform win32 and arch x64 1049ms
✓ client_metadata > getPlatform > should return PLATFORM_UNSPECIFIED for platform sunos and arch x64 815ms
✓ client_metadata > getPlatform > should return PLATFORM_UNSPECIFIED for platform win32 and arch arm 777ms
✓ client_metadata > getClientMetadata > should use version from getCliVersion for ideVersion 697ms
✓ client_metadata > getClientMetadata > should call getReleaseChannel to get the update channel 665ms
✓ client_metadata > getClientMetadata > should cache the client metadata promise 623ms
✓ client_metadata > getClientMetadata > should always return the IDE name as IDE_UNSPECIFIED 611ms
✓ client_metadata > getClientMetadata > should always return the pluginType as GEMINI 592ms
✓ src/tools/topicTool.test.ts (9 tests) 970ms
✓ UpdateTopicTool > should update TopicState and include strategic intent on execute 760ms
✓ src/tools/tool-names.test.ts (9 tests) 458ms
✓ src/utils/process-utils.test.ts (8 tests) 814ms
✓ process-utils > killProcessGroup > should use escalation on Unix if requested 371ms
✓ src/utils/browserConsent.test.ts (5 tests) 442ms
✓ src/routing/strategies/defaultStrategy.test.ts (4 tests) 119ms
✓ src/utils/filesearch/crawlCache.test.ts (9 tests) 193ms
✓ src/services/trackerService.test.ts (5 tests) 468ms
❯ src/sandbox/linux/LinuxSandboxManager.test.ts (4 tests | 3 failed) 431ms
× LinuxSandboxManager > prepareCommand > wraps the command and arguments correctly using a temporary file 285ms
→ Unsupported architecture for seccomp filter: riscv64
× LinuxSandboxManager > prepareCommand > cleans up the temporary arguments file 23ms
→ Unsupported architecture for seccomp filter: riscv64
× LinuxSandboxManager > prepareCommand > translates virtual commands 21ms
→ Unsupported architecture for seccomp filter: riscv64
✓ LinuxSandboxManager > prepareCommand > rejects overrides in plan mode 71ms
✓ src/code_assist/experiments/experiments.test.ts (4 tests) 5955ms
✓ experiments > should fetch and parse experiments from the server 1978ms
✓ experiments > should handle an empty or partial response from the server 1316ms
✓ experiments > should ignore flags that are missing a name 1377ms
✓ experiments > should cache the experiments promise to avoid multiple fetches 1242ms
✓ src/utils/sessionUtils.test.ts (5 tests) 92ms
✓ src/tools/xcode-mcp-fix-transport.test.ts (2 tests) 117ms
✓ src/utils/agent-sanitization-utils.test.ts (8 tests) 156ms
✓ src/tools/base-tool-invocation.test.ts (2 tests) 301ms
✓ src/telemetry/semantic.truncation.test.ts (4 tests) 2530ms
✓ Semantic Telemetry Truncation > should truncate a single part if it exceeds global limit 924ms
✓ Semantic Telemetry Truncation > should fairly distribute budget among multiple large parts 381ms
✓ Semantic Telemetry Truncation > should not truncate small parts while truncating large ones 1119ms
✓ src/tools/write-todos.test.ts (9 tests) 2007ms
✓ WriteTodosTool > validation > should not throw for valid parameters 1797ms
✓ src/services/modelConfig.golden.test.ts (2 tests) 400ms
✓ ModelConfigService Golden Test > should match the golden file for resolved default aliases 324ms
✓ src/prompts/prompt-registry.test.ts (7 tests) 258ms
✓ src/utils/ignorePathUtils.test.ts (11 tests) 321ms
✓ src/utils/installationManager.test.ts (4 tests) 149ms
✓ src/utils/delay.test.ts (7 tests) 440ms
✓ src/config/storageMigration.test.ts (5 tests) 323ms
✓ src/core/localLiteRtLmClient.test.ts (5 tests) 337ms
✓ src/agents/auth-provider/http-provider.test.ts (7 tests) 161ms
✓ src/utils/debugLogger.test.ts (6 tests) 358ms
✓ src/tools/definitions/coreToolsModelSnapshots.test.ts (40 tests) 715ms
✓ src/agents/acknowledgedAgents.test.ts (4 tests) 360ms
✓ src/utils/ignoreFileParser.test.ts (6 tests) 442ms
✓ src/utils/envExpansion.test.ts (15 tests) 275ms
✓ src/utils/fileDiffUtils.test.ts (7 tests) 115ms
✓ src/config/memory.test.ts (10 tests) 265ms
✓ src/utils/customHeaderUtils.test.ts (11 tests) 130ms
✓ src/availability/fallbackIntegration.test.ts (2 tests) 230ms
✓ src/tools/shellBackgroundTools.integration.test.ts (1 test) 9992ms
✓ Background Tools Integration > should support interaction cycle: start background -> list -> read logs 9962ms
✓ src/utils/pathCorrector.test.ts (4 tests) 266ms
✓ src/routing/strategies/overrideStrategy.test.ts (4 tests) 85ms
✓ src/mcp/mcp-oauth-provider.test.ts (1 test) 101ms
✓ src/utils/thoughtUtils.test.ts (11 tests) 85ms
✓ src/utils/safeJsonStringify.test.ts (8 tests) 105ms
✓ src/utils/planUtils.test.ts (6 tests) 278ms
✓ src/resources/resource-registry.test.ts (4 tests) 146ms
✓ src/tools/diff-utils.test.ts (7 tests) 258ms
✓ src/utils/deadlineTimer.test.ts (5 tests) 276ms
✓ src/sandbox/windows/windowsSandboxDenialUtils.test.ts (8 tests) 194ms
✓ src/tools/definitions/resolver.test.ts (4 tests) 121ms
✓ src/utils/toolCallContext.test.ts (4 tests) 225ms
✓ src/utils/version.test.ts (4 tests) 136ms
✓ src/tools/get-internal-docs.test.ts (4 tests) 3336ms
✓ GetInternalDocsTool (Integration) > should find the documentation root and list files 3018ms
✓ src/utils/approvalModeUtils.test.ts (7 tests) 218ms
✓ src/utils/language-detection.test.ts (5 tests) 264ms
✓ src/agents/cli-help-agent.test.ts (5 tests) 150ms
✓ src/utils/package.test.ts (4 tests) 465ms
✓ getPackageJson > should handle 'readPackageUp throws' 330ms
✓ src/tools/omissionPlaceholderDetector.test.ts (6 tests) 141ms
✓ src/utils/stdio.test.ts (2 tests) 215ms
working stdoutworking stderr ✓ src/utils/errors_timeout.test.ts (3 tests) 82ms
✓ src/utils/filesearch/result-cache.test.ts (3 tests) 149ms
✓ src/policy/sandboxPolicyManager.test.ts (4 tests) 324ms
❯ src/policy/workspace-policy.test.ts (3 tests | 3 failed) 183784ms
× Workspace-Level Policies > should load workspace policies with correct priority (Tier 3) 63562ms
→ Test timed out in 60000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
× Workspace-Level Policies > should ignore workspace policies if workspacePoliciesDir is undefined 60073ms
→ Test timed out in 60000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
× Workspace-Level Policies > should load workspace policies and correctly transform to Tier 3 60087ms
→ Test timed out in 60000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
✓ src/services/fileSystemService.test.ts (3 tests) 216ms
✓ src/skills/skillManager.test.ts (9 tests) 1292ms
✓ SkillManager > should discover skills from extensions, user, and workspace with precedence 762ms
✓ src/utils/retry.test.ts (38 tests) 1372ms
✓ src/core/contentGenerator.test.ts (26 tests) 1526ms
✓ src/sandbox/utils/fsUtils.test.ts (4 tests) 176ms
✓ src/fallback/handler.test.ts (13 tests) 745ms
✓ src/telemetry/sanitize.test.ts (18 tests) 601ms
✓ src/availability/policyHelpers.test.ts (31 tests) 352ms
✓ src/routing/strategies/classifierStrategy.test.ts (13 tests) 782ms
✓ src/mcp/oauth-token-storage.test.ts (28 tests) 498ms
✓ src/routing/strategies/numericalClassifierStrategy.test.ts (20 tests) 1002ms
✓ src/agents/browser/browserAgentFactory.test.ts (27 tests) 1320ms
✓ browserAgentFactory > createBrowserAgentDefinition > should ensure browser connection 361ms
✓ src/services/sessionSummaryService.test.ts (33 tests) 1304ms
✓ src/agents/agentLoader.test.ts (57 tests) 2608ms
✓ src/tools/mcp-client-manager.test.ts (34 tests) 2415ms
✓ src/core/logger.test.ts (39 tests) 3022ms
✓ Logger > initialize > should create .gemini directory and an empty log file if none exist 367ms
❯ src/services/memoryService.test.ts (31 tests | 3 failed) 181416ms
× memoryService > tryAcquireLock > successfully acquires lock when none exists 60259ms
→ Test timed out in 60000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
× memoryService > tryAcquireLock > returns false when lock is held by a live process 60058ms
→ Test timed out in 60000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
× memoryService > tryAcquireLock > cleans up and re-acquires stale lock (dead PID) 59538ms
→ expected false to be true // Object.is equality
✓ memoryService > tryAcquireLock > cleans up and re-acquires stale lock (too old) 58ms
✓ memoryService > isLockStale > returns true when PID is dead 38ms
✓ memoryService > isLockStale > returns true when lock is too old (>35 min) 34ms
✓ memoryService > isLockStale > returns false when PID is alive and lock is fresh 24ms
✓ memoryService > isLockStale > returns true when file cannot be read 106ms
✓ memoryService > releaseLock > deletes the lock file 141ms
✓ memoryService > releaseLock > does not throw when file is already gone 28ms
✓ memoryService > readExtractionState / writeExtractionState > returns default state when file does not exist 42ms
✓ memoryService > readExtractionState / writeExtractionState > reads existing state file 50ms
✓ memoryService > readExtractionState / writeExtractionState > writes state atomically via temp file + rename 89ms
✓ memoryService > startMemoryService > skips when lock is held by another instance 108ms
✓ memoryService > startMemoryService > skips when no unprocessed sessions exist 71ms
✓ memoryService > startMemoryService > releases lock on error 190ms
✓ memoryService > getProcessedSessionIds > returns empty set for empty state 27ms
✓ memoryService > getProcessedSessionIds > collects session IDs across multiple runs 19ms
✓ memoryService > getProcessedSessionIds > deduplicates IDs that appear in multiple runs 19ms
✓ memoryService > buildSessionIndex > returns empty index and no new IDs when chats dir is empty 28ms
✓ memoryService > buildSessionIndex > returns empty index when chats dir does not exist 29ms
✓ memoryService > buildSessionIndex > marks sessions as [NEW] when not in any previous run 35ms
✓ memoryService > buildSessionIndex > marks sessions as [old] when already in a previous run 32ms
✓ memoryService > buildSessionIndex > includes file path and summary in each line 30ms
✓ memoryService > buildSessionIndex > filters out subagent sessions 28ms
✓ memoryService > buildSessionIndex > filters out sessions with fewer than 10 user messages 29ms
✓ memoryService > buildSessionIndex > caps at MAX_SESSION_INDEX_SIZE (50) 76ms
✓ memoryService > buildSessionIndex > returns newSessionIds only for unprocessed sessions 68ms
✓ memoryService > ExtractionState runs tracking > readExtractionState parses runs array with skillsCreated 43ms
✓ memoryService > ExtractionState runs tracking > writeExtractionState + readExtractionState roundtrips runs correctly 29ms
✓ memoryService > ExtractionState runs tracking > readExtractionState handles old format without runs 32ms
✓ src/code_assist/setup.test.ts (17 tests) 1053ms
✓ setupUser > new user > should onboard a new paid user with GOOGLE_CLOUD_PROJECT 303ms
✓ src/services/keychainService.test.ts (12 tests) 4279ms
✓ KeychainService > isAvailable > should return true and emit telemetry on successful functional test with native keychain 453ms
✓ KeychainService > macOS Keychain Probing > should skip functional test and fallback if security default-keychain fails 372ms
✓ KeychainService > macOS Keychain Probing > should skip functional test and fallback if security default-keychain returns non-existent path 372ms
✓ KeychainService > macOS Keychain Probing > should proceed with functional test if valid default keychain is found 442ms
✓ KeychainService > macOS Keychain Probing > should handle unquoted paths from security output 469ms
✓ KeychainService > Password Operations > should store, retrieve, and delete passwords correctly 595ms
✓ KeychainService > Password Operations > getPassword should return null if key is missing 551ms
✓ src/telemetry/uiTelemetry.test.ts (23 tests) 494ms
✓ src/utils/extensionLoader.test.ts (11 tests | 1 skipped) 681ms
✓ src/tools/tools.test.ts (15 tests) 867ms
✓ Tools Read-Only property > should have isReadOnly true for ReadFileTool 440ms
✓ src/code_assist/admin/admin_controls.test.ts (44 tests) 1444ms
✓ src/tools/tool-registry.test.ts (32 tests) 2902ms
✓ ToolRegistry > discoverTools > should return a DISCOVERED_TOOL_EXECUTION_ERROR on tool failure 1097ms
✓ src/core/tokenLimits.test.ts (5 tests) 111ms
✓ src/prompts/mcp-prompts.test.ts (2 tests) 174ms
✓ src/tools/read-many-files.test.ts (34 tests) 5914ms
✓ ReadManyFilesTool > build > should return an invocation for valid relative paths within root 1454ms
✓ ReadManyFilesTool > execute > should read a single specified file 909ms
✓ src/tools/glob.test.ts (37 tests) 7645ms
✓ GlobTool > execute > should find files matching a simple pattern in the root 1519ms
✓ GlobTool > execute > should find files with special characters like [] and () in the path 701ms
✓ GlobTool > execute > should return a GLOB_EXECUTION_ERROR on glob failure 347ms
✓ src/utils/memoryDiscovery.test.ts (42 tests) 5997ms
✓ memoryDiscovery > should handle multiple directories and files in parallel correctly 364ms
✓ src/context/contextCompressionService.test.ts (5 tests) 278ms
✓ src/tools/edit.test.ts (60 tests) 4674ms
✓ EditTool > validateToolParams > should return null for valid params 786ms
✓ EditTool > multiple file edits > should perform multiple removals and report correct diff stats 325ms
✓ src/code_assist/telemetry.test.ts (18 tests) 237ms
✓ src/code_assist/oauth2.test.ts (34 tests) 2439ms
✓ oauth2 > with encrypted flag false > should perform a web login 568ms
✓ src/telemetry/telemetry-utils.test.ts (6 tests) 162ms
✓ src/code_assist/admin/mcpUtils.test.ts (13 tests) 245ms
✓ src/telemetry/clearcut-logger/clearcut-logger.test.ts (79 tests) 7829ms
✓ ClearcutLogger > getInstance > returns an instance if usage statistics are enabled 616ms
✓ ClearcutLogger > createLogEvent > logs the GPU information (single GPU) 894ms
✓ ClearcutLogger > createLogEvent > logs multiple GPUs 307ms
✓ ClearcutLogger > enqueueLogEvent > should evict the oldest event when the queue is full 1011ms
✓ ClearcutLogger > requeueFailedEvents logic > should not requeue more events than available space in the queue 723ms
✓ src/sandbox/windows/commandSafety.test.ts (6 tests) 75ms
✓ src/agents/registry.test.ts (62 tests) 1985ms
✓ src/safety/checker-runner.test.ts (9 tests) 456ms
(node:18600) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 101 model-changed listeners added to [CoreEventEmitter]. MaxListeners is 100. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
✓ src/utils/checks.test.ts (3 tests) 72ms
✓ src/utils/formatters.test.ts (4 tests) 69ms
✓ src/code_assist/server.test.ts (36 tests) 2637ms
✓ CodeAssistServer > should detect error in generateContent response 348ms
✓ CodeAssistServer > should record conversation offered on generateContentStream 307ms
✓ CodeAssistServer > robustness testing > should log InvalidChunkEvent when SSE chunk is not valid JSON 419ms
✓ src/scheduler/state-manager.test.ts (33 tests) 1121ms
✓ src/hooks/hookEventHandler.test.ts (14 tests) 779ms
✓ src/scheduler/policy.test.ts (30 tests) 939ms
✓ src/scheduler/scheduler_hooks.test.ts (3 tests) 726ms
✓ Scheduler Hooks > should stop execution if BeforeTool hook requests stop 453ms
✓ src/policy/config.test.ts (29 tests) 1986ms
✓ createPolicyEngineConfig > should allow all tools in YOLO mode 498ms
✓ src/hooks/hookSystem.test.ts (8 tests) 1076ms
✓ HookSystem Integration > initialize > should initialize successfully 400ms
✓ src/telemetry/sdk.test.ts (16 tests) 1300ms
✓ src/policy/persistence.test.ts (10 tests) 899ms
(node:19524) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 SIGTERM listeners added to [process]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:19524) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 SIGINT listeners added to [process]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
✓ src/agent/legacy-agent-session.test.ts (34 tests) 1588ms
✓ src/policy/policy-updater.test.ts (10 tests) 865ms
✓ src/tools/exit-plan-mode.test.ts (23 tests) 2246ms
✓ ExitPlanModeTool > shouldConfirmExecute > should return plan approval confirmation details when plan has content 698ms
✓ ExitPlanModeTool > shouldConfirmExecute > should auto-approve when policy decision is ALLOW 320ms
✓ src/scheduler/scheduler_parallel.test.ts (7 tests) 1105ms
✓ Scheduler Parallel Execution > should execute contiguous read-only tools in parallel 448ms
✓ src/telemetry/startupProfiler.test.ts (25 tests) 795ms
✓ src/policy/toml-loader.test.ts (58 tests) 3342ms
✓ src/commands/init.test.ts (2 tests) 79ms
✓ src/agents/browser/browserAgentInvocation.test.ts (23 tests) 1203ms
✓ src/commands/extensions.test.ts (1 test) 62ms
✓ src/index.test.ts (1 test) 94ms
✓ src/routing/modelRouterService.test.ts (6 tests) 1250ms
✓ src/scheduler/tool-executor.test.ts (14 tests) 1998ms
✓ ToolExecutor > should execute a tool successfully 516ms
✓ ToolExecutor > should truncate large MCP tool output with single text Part 713ms
✓ src/utils/shell-utils.integration.test.ts (3 tests) 1238ms
✓ execStreaming (Integration) > should yield lines from stdout 795ms
✓ src/utils/llm-edit-fixer.test.ts (8 tests) 533ms
✓ src/core/turn.test.ts (22 tests) 664ms
✓ src/context/chatCompressionService.test.ts (28 tests) 1622ms
✓ src/utils/nextSpeakerChecker.test.ts (10 tests) 793ms
✓ checkNextSpeaker > should return null if history is empty 316ms
✓ src/core/loggingContentGenerator.test.ts (29 tests) 1725ms
✓ LoggingContentGenerator > generateContent > should log request and response on success 665ms
✓ src/agent/event-translator.test.ts (59 tests) 683ms
✓ src/context/toolOutputMaskingService.test.ts (11 tests) 1157ms
✓ ToolOutputMaskingService > should respect remote configuration overrides 400ms
✓ src/agents/browser/mcpToolWrapper.test.ts (15 tests) 799ms
✓ src/scheduler/scheduler.test.ts (41 tests) 3290ms
✓ Scheduler (Orchestrator) > Phase 2: Queue Management > cancelAll() should clear the requestQueue and reject pending promises 505ms
✓ src/agents/subagent-tool.test.ts (15 tests) 1496ms
✓ SubAgentInvocation > should have Kind.Agent 887ms
✓ src/telemetry/loggers.test.ts (46 tests) 2711ms
✓ loggers > logChatCompression > logs the chat compression event to Clearcut 325ms
✓ loggers > logCliConfiguration > should log the cli configuration 517ms
✓ src/utils/editCorrector.test.ts (19 tests) 203ms
✓ src/agents/local-invocation.test.ts (17 tests) 1116ms
✓ src/tools/read-file.test.ts (37 tests) 3306ms
✓ ReadFileTool > build > should return an invocation for valid params (absolute path within root) 1051ms
✓ ReadFileTool > execute > should return error for a file that is too large 316ms
✓ src/utils/summarizer.test.ts (8 tests) 1287ms
✓ src/tools/line-endings.test.ts (5 tests) 1614ms
✓ Line Ending Preservation > WriteFileTool > should preserve CRLF when overwriting an existing file 1122ms
✓ src/services/loopDetectionService.test.ts (53 tests) 5247ms
✓ LoopDetectionService > Content Loop Detection > should not detect a loop for random content 1939ms
✓ LoopDetectionService > Content Loop Detection with Code Blocks > should reset tracking for various list item formats 435ms
✓ LoopDetectionService > Content Loop Detection with Code Blocks > should reset tracking for various table formats 377ms
✓ src/core/baseLlmClient.test.ts (29 tests) 1437ms
✓ BaseLlmClient > generateJson - Success Scenarios > should call generateContent with correct parameters, defaults, and utilize retry mechanism 315ms
✓ src/tools/shell.test.ts (54 tests | 1 skipped) 7934ms
✓ ShellTool > build > should return an invocation for a valid command 924ms
✓ ShellTool > shouldConfirmExecute > should request confirmation for a new command and allowlist it on "Always" 441ms
✓ src/agents/local-executor.test.ts (63 tests) 4868ms
✓ LocalAgentExecutor > create (Initialization and Validation) > should explicitly map execution context properties to prevent unintended propagation 582ms
✓ LocalAgentExecutor > Edge Cases and Error Handling > should throw and log if GeminiChat creation fails 348ms
✓ src/tools/web-search.test.ts (9 tests) 1501ms
✓ WebSearchTool > build > should return an invocation for a valid query 821ms
✓ src/tools/confirmation-policy.test.ts (12 tests) 2282ms
✓ Tool Confirmation Policy Updates > 'EditTool' policy updates > should handle 'proceed_always' correctly 1892ms
✓ src/routing/strategies/approvalModeStrategy.test.ts (10 tests) 233ms
✓ src/tools/trackerTools.test.ts (7 tests) 1554ms
✓ Tracker Tools Integration > creates and lists tasks 1034ms
✓ src/tools/write-file.test.ts (43 tests) 3420ms
✓ WriteFileTool > build > should return an invocation for a valid absolute path within root 820ms
✓ src/agents/browser/browserManager.test.ts (64 tests) 15748ms
✓ BrowserManager > MCP bundled path resolution > should use bundled path if it exists (handles bundled CLI) 435ms
✓ BrowserManager > MCP connection > should throw error when invalid domain is configured in allowedDomains 1585ms
✓ BrowserManager > MCP connection > should throw actionable error when existing mode connection fails 3157ms
✓ BrowserManager > MCP connection > should throw profile-lock remediation when persistent mode hits "already running" 3163ms
✓ BrowserManager > MCP connection > should throw timeout-specific remediation for persistent mode 1586ms
✓ BrowserManager > MCP connection > should include sessionMode in generic fallback error 1610ms
✓ BrowserManager > MCP connection > should classify non-connection-refused errors in existing mode as unknown 1612ms
✓ src/core/geminiChat_network_retry.test.ts (7 tests) 16453ms
✓ GeminiChat Network Retries > should retry when a 503 ApiError occurs during stream iteration 1491ms
✓ GeminiChat Network Retries > should retry on generic network error if retryFetchErrors is true 1149ms
✓ GeminiChat Network Retries > should retry on SSL error during connection phase (ERR_SSL_SSLV3_ALERT_BAD_RECORD_MAC) 5813ms
✓ GeminiChat Network Retries > should retry on ECONNRESET error during connection phase 6733ms
✓ GeminiChat Network Retries > should retry on SSL error during stream iteration (mid-stream failure) 1094ms
✓ src/prompts/snippets-memory-manager.test.ts (2 tests) 161ms
✓ src/core/client.test.ts (83 tests | 1 skipped) 14129ms
✓ Gemini Client (client.ts) > addHistory > should call chat.addHistory with the provided content 323ms
✓ Gemini Client (client.ts) > sendMessageStream > should stop infinite loop after MAX_TURNS when nextSpeaker always returns model 1023ms
✓ Gemini Client (client.ts) > sendMessageStream > should respect MAX_TURNS limit even when turns parameter is set to a large value 634ms
✓ Gemini Client (client.ts) > generateContent > Hook System > should yield AgentExecutionBlocked and recurse in AfterAgent when hook returns decision: block 309ms
✓ Gemini Client (client.ts) > generateContent > Hook System > should call resetChat when AfterAgent hook returns shouldClearContext: true 479ms
✓ src/telemetry/billingEvents.test.ts (18 tests) 406ms
✓ src/utils/tool-utils.test.ts (21 tests) 200ms
✓ src/config/extensions/integrity.test.ts (11 tests) 578ms
✓ src/mcp/token-storage/hybrid-token-storage.test.ts (8 tests) 546ms
✓ HybridTokenStorage > storage selection > should use keychain normally 310ms
✓ src/mcp/token-storage/keychain-token-storage.test.ts (14 tests) 539ms
✓ src/policy/integrity.test.ts (9 tests) 1230ms
✓ PolicyIntegrityManager > checkIntegrity > should return NEW if no stored hash 335ms
✓ src/config/scoped-config.test.ts (13 tests) 558ms
✓ src/core/fakeContentGenerator.test.ts (7 tests) 140ms
✓ src/utils/flashFallback.test.ts (5 tests) 452ms
✓ src/telemetry/config.test.ts (14 tests) 152ms
✓ src/agents/subagent-tool-wrapper.test.ts (6 tests) 1251ms
✓ SubagentToolWrapper > createInvocation > should create a LocalSubagentInvocation with the correct parameters 772ms
✓ src/code_assist/codeAssist.test.ts (7 tests) 320ms
✓ src/agents/registry_acknowledgement.test.ts (4 tests) 422ms
✓ src/core/recordingContentGenerator.test.ts (4 tests) 139ms
✓ src/safety/conseca/policy-enforcer.test.ts (5 tests) 286ms
✓ src/tools/shell_proactive.test.ts (4 tests) 2446ms
✓ ShellTool Proactive Expansion > should NOT call getProactiveToolSuggestions when sandboxing is disabled 845ms
✓ ShellTool Proactive Expansion > should call getProactiveToolSuggestions when sandboxing is enabled 593ms
✓ src/utils/errorParsing.test.ts (10 tests) 112ms
✓ src/context/toolDistillationService.test.ts (4 tests) 265ms
✓ src/policy/memory-manager-policy.test.ts (6 tests) 1473ms
✓ Memory Manager Policy > should allow save_memory to read ~/.gemini/GEMINI.md 488ms
✓ src/telemetry/conseca-logger.test.ts (4 tests) 518ms
✓ src/safety/conseca/policy-generator.test.ts (3 tests) 566ms
✓ policy_generator > should return a policy object when content generator is available 438ms
✓ src/hooks/runtimeHooks.test.ts (4 tests) 819ms
✓ Runtime Hooks > should register a runtime hook 365ms
✓ src/agents/codebase-investigator.test.ts (4 tests) 122ms
✓ src/agents/browser/mcpToolWrapperConfirmation.test.ts (2 tests) 314ms
✓ src/scheduler/scheduler_waiting_callback.test.ts (1 test) 634ms
✓ Scheduler waiting callback > should trigger onWaitingForConfirmation callback 607ms
✓ src/config/flashFallback.test.ts (3 tests) 347ms
✓ src/policy/topic-policy.test.ts (3 tests) 916ms
✓ Topic Tool Policy > should allow update_topic in DEFAULT mode 406ms
✓ Topic Tool Policy > should allow update_topic in PLAN mode 302ms
✓ src/config/sandbox-integration.test.ts (1 test) 246ms
✓ src/telemetry/telemetry.test.ts (2 tests) 841ms
✓ telemetry > should initialize the telemetry service 550ms
✓ src/config/path-validation.test.ts (2 tests) 262ms
✓ src/agents/generalist-agent.test.ts (1 test) 231ms
✓ src/config/trackerFeatureFlag.test.ts (3 tests) 2687ms
✓ Config Tracker Feature Flag > should not register tracker tools by default 2192ms
✓ src/safety/registry.test.ts (4 tests) 126ms
✓ src/safety/conseca/integration.test.ts (1 test) 78ms
✓ src/core/geminiChat.test.ts (50 tests) 53442ms
✓ GeminiChat > constructor > should initialize lastPromptTokenCount based on history size 367ms
✓ GeminiChat > sendMessageStream > should succeed if a tool call is followed by an empty part 429ms
✓ GeminiChat > sendMessageStream > should fail if the stream ends with an empty part and has no finishReason 7161ms
✓ GeminiChat > sendMessageStream > should throw an error when a tool call is followed by an empty stream response 7080ms
✓ GeminiChat > sendMessageStream > should throw InvalidStreamError when no tool call and no finish reason 7118ms
✓ GeminiChat > sendMessageStream > should throw InvalidStreamError when no tool call and empty response text 7101ms
✓ GeminiChat > sendMessageStream > should throw InvalidStreamError when finishReason is MALFORMED_FUNCTION_CALL 7068ms
✓ GeminiChat > sendMessageStream > should retry when finishReason is MALFORMED_FUNCTION_CALL 1048ms
✓ GeminiChat > sendMessageStream with retries > should yield a RETRY event when an invalid stream is encountered 1049ms
✓ GeminiChat > sendMessageStream with retries > should retry on invalid content, succeed, and report metrics 1057ms
✓ GeminiChat > sendMessageStream with retries > should set temperature to 1 on retry 1077ms
✓ GeminiChat > sendMessageStream with retries > should fail after all retries on persistent invalid content and report metrics 7086ms
✓ GeminiChat > should correctly retry and append to an existing history mid-conversation 1093ms
✓ GeminiChat > should retry if the model returns a completely empty stream (no chunks) 1085ms
✓ GeminiChat > should discard valid partial content from a failed attempt upon retry 1073ms
❯ src/telemetry/metrics.test.ts (93 tests | 1 failed) 527108ms
× Telemetry Metrics > recordFlickerFrame > does not record metrics if not initialized 60168ms
→ Hook timed out in 60000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
✓ Telemetry Metrics > recordFlickerFrame > records a flicker frame event when initialized 10945ms
✓ Telemetry Metrics > recordExitFail > does not record metrics if not initialized 11954ms
✓ Telemetry Metrics > recordExitFail > records a exit fail event when initialized 11903ms
✓ Telemetry Metrics > recordSlowRender > does not record metrics if not initialized 8637ms
✓ Telemetry Metrics > recordSlowRender > records a slow render event when initialized 8234ms
✓ Telemetry Metrics > recordPlanExecution > does not record metrics if not initialized 4233ms
✓ Telemetry Metrics > recordPlanExecution > records a plan execution event when initialized 4299ms
✓ Telemetry Metrics > initializeMetrics > should apply common attributes including email 5662ms
✓ Telemetry Metrics > recordChatCompressionMetrics > does not record metrics if not initialized 4164ms
✓ Telemetry Metrics > recordChatCompressionMetrics > records token compression with the correct attributes 4057ms
✓ Telemetry Metrics > recordTokenUsageMetrics > should not record metrics if not initialized 4074ms
✓ Telemetry Metrics > recordTokenUsageMetrics > should record token usage for 'input' type with 100 tokens for model 'gemini-pro' 4189ms
✓ Telemetry Metrics > recordTokenUsageMetrics > should record token usage for 'output' type with 50 tokens for model 'gemini-pro' 4233ms
✓ Telemetry Metrics > recordTokenUsageMetrics > should record token usage for 'thought' type with 25 tokens for model 'gemini-pro' 4150ms
✓ Telemetry Metrics > recordTokenUsageMetrics > should record token usage for 'cache' type with 75 tokens for model 'gemini-pro' 4006ms
✓ Telemetry Metrics > recordTokenUsageMetrics > should record token usage for 'tool' type with 125 tokens for model 'gemini-pro' 4033ms
✓ Telemetry Metrics > recordTokenUsageMetrics > should record token usage for 'input' type with 200 tokens for model 'gemini-different-model' 4035ms
✓ Telemetry Metrics > recordLinesChanged metric > should not record lines added/removed if not initialized 4664ms
✓ Telemetry Metrics > recordLinesChanged metric > should record lines added with function_name after initialization 5726ms
✓ Telemetry Metrics > recordLinesChanged metric > should record lines removed with function_name after initialization 4800ms
✓ Telemetry Metrics > recordFileOperationMetric > 'should not record metrics if not init…' 4866ms
✓ Telemetry Metrics > recordFileOperationMetric > 'should record file creation with all …' 5005ms
✓ Telemetry Metrics > recordFileOperationMetric > 'should record file read with minimal …' 6941ms
✓ Telemetry Metrics > recordFileOperationMetric > 'should record file update with some a…' 4997ms
✓ Telemetry Metrics > recordFileOperationMetric > 'should record file update with no opt…' 5024ms
✓ Telemetry Metrics > recordModelRoutingMetrics > should not record metrics if not initialized 4897ms
✓ Telemetry Metrics > recordModelRoutingMetrics > should record latency for a successful routing decision 5507ms
✓ Telemetry Metrics > recordModelRoutingMetrics > should record latency and failure for a failed routing decision 4861ms
✓ Telemetry Metrics > recordAgentRunMetrics > should not record metrics if not initialized 5744ms
✓ Telemetry Metrics > recordAgentRunMetrics > should record agent run metrics 4465ms
✓ Telemetry Metrics > recordOnboardingSuccess > should not record metrics if not initialized 4676ms
✓ Telemetry Metrics > recordOnboardingSuccess > should record onboarding success metrics without duration 7440ms
✓ Telemetry Metrics > recordOnboardingSuccess > should record onboarding success metrics with duration 4469ms
✓ Telemetry Metrics > OpenTelemetry GenAI Semantic Convention Metrics > recordGenAiClientTokenUsage > should not record metrics when not initialized 4114ms
✓ Telemetry Metrics > OpenTelemetry GenAI Semantic Convention Metrics > recordGenAiClientTokenUsage > should record input token usage with correct attributes 4386ms
✓ Telemetry Metrics > OpenTelemetry GenAI Semantic Convention Metrics > recordGenAiClientTokenUsage > should record output token usage with correct attributes 4072ms
✓ Telemetry Metrics > OpenTelemetry GenAI Semantic Convention Metrics > recordGenAiClientTokenUsage > should record token usage with optional attributes 4127ms
✓ Telemetry Metrics > OpenTelemetry GenAI Semantic Convention Metrics > recordGenAiClientOperationDuration > should not record metrics when not initialized 4094ms
✓ Telemetry Metrics > OpenTelemetry GenAI Semantic Convention Metrics > recordGenAiClientOperationDuration > should record successful operation duration with correct attributes 4134ms
✓ Telemetry Metrics > OpenTelemetry GenAI Semantic Convention Metrics > recordGenAiClientOperationDuration > should record failed operation duration with error type 4579ms
✓ Telemetry Metrics > OpenTelemetry GenAI Semantic Convention Metrics > recordGenAiClientOperationDuration > should record operation duration with server details 4165ms
✓ Telemetry Metrics > OpenTelemetry GenAI Semantic Convention Metrics > recordGenAiClientOperationDuration > should handle minimal required attributes 4167ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordStartupPerformance > should not record metrics when performance monitoring is disabled 3999ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordStartupPerformance > should record startup performance with phase and details 4018ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordStartupPerformance > should record startup performance without details 8092ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordStartupPerformance > should handle floating-point duration values from performance.now() 5935ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordMemoryUsage > should record memory usage for 'heap_used' 5092ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordMemoryUsage > should record memory usage for 'heap_total' 4627ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordMemoryUsage > should record memory usage for 'external' 5366ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordMemoryUsage > should record memory usage for 'rss' 5233ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordMemoryUsage > should record memory usage for 'heap_used' 5124ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordCpuUsage > should record CPU usage percentage 5066ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordCpuUsage > should record CPU usage without component 6300ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordToolQueueDepth > should record tool queue depth 6005ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordToolQueueDepth > should record zero queue depth 4861ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordToolExecutionBreakdown > should record tool execution breakdown for all phases 4511ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordToolExecutionBreakdown > should record execution breakdown for different phases 5781ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordTokenEfficiency > should record token efficiency metrics 4452ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordTokenEfficiency > should record token efficiency without context 4483ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordApiRequestBreakdown > should record API request breakdown for all phases 4378ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordApiRequestBreakdown > should record API request breakdown for different phases 4375ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordPerformanceScore > should record performance score with category and baseline 4435ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordPerformanceScore > should record performance score without baseline 4284ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordPerformanceRegression > should record performance regression with baseline comparison 4306ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordPerformanceRegression > should handle zero baseline value gracefully 5561ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordPerformanceRegression > should record different severity levels 5362ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordBaselineComparison > should record baseline comparison with percentage change 4903ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordBaselineComparison > should handle negative percentage change (improvement) 4322ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordBaselineComparison > should skip recording when baseline is zero 4298ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordHookCallMetrics > should record hook call metrics with counter and histogram 4280ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordHookCallMetrics > should always sanitize hook names regardless of content 4276ms
✓ Telemetry Metrics > Performance Monitoring Metrics > recordHookCallMetrics > should track both success and failure 4241ms
✓ Telemetry Metrics > Keychain and Token Storage Metrics > recordKeychainAvailability > should not record metrics if not initialized 4485ms
✓ Telemetry Metrics > Keychain and Token Storage Metrics > recordKeychainAvailability > should record keychain availability when initialized 6615ms
✓ Telemetry Metrics > Keychain and Token Storage Metrics > recordTokenStorageInitialization > should not record metrics if not initialized 5247ms
✓ Telemetry Metrics > Keychain and Token Storage Metrics > recordTokenStorageInitialization > should record token storage initialization when initialized 5350ms
✓ Telemetry Metrics > Keychain and Token Storage Metrics > recordInvalidChunk > should not record metrics if not initialized 4757ms
✓ Telemetry Metrics > Keychain and Token Storage Metrics > recordInvalidChunk > should record invalid chunk when initialized 4267ms
✓ Telemetry Metrics > Browser Agent Metrics > recordBrowserAgentConnection > does not record metrics if not initialized 4766ms
✓ Telemetry Metrics > Browser Agent Metrics > recordBrowserAgentConnection > records connection duration on success 4892ms
✓ Telemetry Metrics > Browser Agent Metrics > recordBrowserAgentConnection > records tool_count on success when provided 3980ms
✓ Telemetry Metrics > Browser Agent Metrics > recordBrowserAgentConnection > records connection duration and failure counter on error 3914ms
✓ Telemetry Metrics > Browser Agent Metrics > recordBrowserAgentToolDiscovery > does not record metrics if not initialized 3950ms
✓ Telemetry Metrics > Browser Agent Metrics > recordBrowserAgentToolDiscovery > records tool count and missing tools 5400ms
✓ Telemetry Metrics > Browser Agent Metrics > recordBrowserAgentVisionStatus > does not record metrics if not initialized 4264ms
✓ Telemetry Metrics > Browser Agent Metrics > recordBrowserAgentVisionStatus > records vision enabled status 4996ms
✓ Telemetry Metrics > Browser Agent Metrics > recordBrowserAgentVisionStatus > records vision disabled status with reason 5246ms
✓ Telemetry Metrics > Browser Agent Metrics > recordBrowserAgentTaskOutcome > does not record metrics if not initialized 4820ms
✓ Telemetry Metrics > Browser Agent Metrics > recordBrowserAgentTaskOutcome > records task outcome and duration 4137ms
✓ Telemetry Metrics > Browser Agent Metrics > recordBrowserAgentCleanup > does not record metrics if not initialized 4557ms
✓ Telemetry Metrics > Browser Agent Metrics > recordBrowserAgentCleanup > records cleanup duration on success 4056ms
✓ Telemetry Metrics > Browser Agent Metrics > recordBrowserAgentCleanup > records cleanup duration and failure counter on error 4448ms
⎯⎯⎯⎯⎯⎯ Failed Suites 5 ⎯⎯⎯⎯⎯⎯⎯
FAIL src/config/config-agents-reload.test.ts [ src/config/config-agents-reload.test.ts ]
FAIL src/config/config.test.ts [ src/config/config.test.ts ]
FAIL src/utils/filesearch/crawler.test.ts [ src/utils/filesearch/crawler.test.ts ]
FAIL src/utils/filesearch/fileSearch.test.ts [ src/utils/filesearch/fileSearch.test.ts ]
FAIL src/utils/filesearch/ignore.test.ts [ src/utils/filesearch/ignore.test.ts ]
Error: The @lydell/node-pty package currently does not support your platform: linux-riscv64
❯ Object.requireBinary ../../node_modules/@lydell/node-pty/requireBinary.js:12:19
❯ Object. ../../node_modules/@lydell/node-pty/unixTerminal.js:20:27
❯ Object. ../../node_modules/@lydell/node-pty/index.js:13:20
Caused by: Error: Cannot find module '@lydell/node-pty-linux-riscv64/pty.node'
Require stack:
- /build/gemini-cli/src/gemini-cli/node_modules/@lydell/node-pty/requireBinary.js
- /build/gemini-cli/src/gemini-cli/node_modules/@lydell/node-pty/unixTerminal.js
- /build/gemini-cli/src/gemini-cli/node_modules/@lydell/node-pty/index.js
❯ Object.requireBinary ../../node_modules/@lydell/node-pty/requireBinary.js:7:16
❯ Object. ../../node_modules/@lydell/node-pty/unixTerminal.js:20:27
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { code: 'MODULE_NOT_FOUND', requireStack: [ '/build/gemini-cli/src/gemini-cli/node_modules/@lydell/node-pty/requireBinary.js', '/build/gemini-cli/src/gemini-cli/node_modules/@lydell/node-pty/unixTerminal.js', '/build/gemini-cli/src/gemini-cli/node_modules/@lydell/node-pty/index.js' ] }
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/15]⎯
⎯⎯⎯⎯⎯⎯ Failed Tests 10 ⎯⎯⎯⎯⎯⎯⎯
FAIL src/policy/workspace-policy.test.ts > Workspace-Level Policies > should load workspace policies with correct priority (Tier 3)
Error: Test timed out in 60000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
❯ src/policy/workspace-policy.test.ts:37:3
35| });
36|
37| it('should load workspace policies with correct priority (Tier 3)', …
| ^
38| const workspacePoliciesDir = nodePath.resolve('/mock/workspace/pol…
39| const defaultPoliciesDir = nodePath.resolve('/mock/default/policie…
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/15]⎯
FAIL src/policy/workspace-policy.test.ts > Workspace-Level Policies > should ignore workspace policies if workspacePoliciesDir is undefined
Error: Test timed out in 60000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
❯ src/policy/workspace-policy.test.ts:163:3
161| });
162|
163| it('should ignore workspace policies if workspacePoliciesDir is unde…
| ^
164| const defaultPoliciesDir = nodePath.resolve('/mock/default/policie…
165|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/15]⎯
FAIL src/policy/workspace-policy.test.ts > Workspace-Level Policies > should load workspace policies and correctly transform to Tier 3
Error: Test timed out in 60000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
❯ src/policy/workspace-policy.test.ts:229:3
227| });
228|
229| it('should load workspace policies and correctly transform to Tier 3…
| ^
230| const workspacePoliciesDir = nodePath.resolve('/mock/workspace/pol…
231|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/15]⎯
FAIL src/services/memoryService.test.ts > memoryService > tryAcquireLock > successfully acquires lock when none exists
Error: Test timed out in 60000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
❯ src/services/memoryService.test.ts:97:5
95|
96| describe('tryAcquireLock', () => {
97| it('successfully acquires lock when none exists', async () => {
| ^
98| const { tryAcquireLock } = await import('./memoryService.js');
99|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/15]⎯
FAIL src/services/memoryService.test.ts > memoryService > tryAcquireLock > returns false when lock is held by a live process
Error: Test timed out in 60000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
❯ src/services/memoryService.test.ts:110:5
108| });
109|
110| it('returns false when lock is held by a live process', async () =…
| ^
111| const { tryAcquireLock } = await import('./memoryService.js');
112|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/15]⎯
FAIL src/services/memoryService.test.ts > memoryService > tryAcquireLock > cleans up and re-acquires stale lock (dead PID)
AssertionError: expected false to be true // Object.is equality
[32m- Expected[39m
[31m+ Received[39m
[32m- true[39m
[31m+ false[39m
❯ src/services/memoryService.test.ts:139:22
137| const result = await tryAcquireLock(lockPath);
138|
139| expect(result).toBe(true);
| ^
140| const content = JSON.parse(await fs.readFile(lockPath, 'utf-8'));
141| expect(content.pid).toBe(process.pid);
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[7/15]⎯
FAIL src/telemetry/metrics.test.ts > Telemetry Metrics > recordFlickerFrame > does not record metrics if not initialized
Error: Hook timed out in 60000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
❯ src/telemetry/metrics.test.ts:116:3
114| let recordBrowserAgentCleanupModule: typeof import('./metrics.js').r…
115|
116| beforeEach(async () => {
| ^
117| vi.resetModules();
118| vi.doMock('@opentelemetry/api', () => {
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[8/15]⎯
FAIL src/sandbox/linux/LinuxSandboxManager.test.ts > LinuxSandboxManager > prepareCommand > wraps the command and arguments correctly using a temporary file
Error: Unsupported architecture for seccomp filter: riscv64
❯ getSeccompBpfPath src/sandbox/linux/LinuxSandboxManager.ts:65:11
63| SYS_ptrace = 26;
64| } else {
65| throw new Error(`Unsupported architecture for seccomp filter: ${ar…
| ^
66| }
67|
❯ LinuxSandboxManager.prepareCommand src/sandbox/linux/LinuxSandboxManager.ts:272:21
❯ src/sandbox/linux/LinuxSandboxManager.test.ts:77:22
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[9/15]⎯
FAIL src/sandbox/linux/LinuxSandboxManager.test.ts > LinuxSandboxManager > prepareCommand > cleans up the temporary arguments file
Error: Unsupported architecture for seccomp filter: riscv64
❯ getSeccompBpfPath src/sandbox/linux/LinuxSandboxManager.ts:65:11
63| SYS_ptrace = 26;
64| } else {
65| throw new Error(`Unsupported architecture for seccomp filter: ${ar…
| ^
66| }
67|
❯ LinuxSandboxManager.prepareCommand src/sandbox/linux/LinuxSandboxManager.ts:272:21
❯ src/sandbox/linux/LinuxSandboxManager.test.ts:96:22
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[10/15]⎯
FAIL src/sandbox/linux/LinuxSandboxManager.test.ts > LinuxSandboxManager > prepareCommand > translates virtual commands
Error: Unsupported architecture for seccomp filter: riscv64
❯ getSeccompBpfPath src/sandbox/linux/LinuxSandboxManager.ts:65:11
63| SYS_ptrace = 26;
64| } else {
65| throw new Error(`Unsupported architecture for seccomp filter: ${ar…
| ^
66| }
67|
❯ LinuxSandboxManager.prepareCommand src/sandbox/linux/LinuxSandboxManager.ts:272:21
❯ src/sandbox/linux/LinuxSandboxManager.test.ts:112:26
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[11/15]⎯
Test Files 9 failed | 339 passed (348)
Tests 10 failed | 6430 passed | 44 skipped (6484)
Start at 15:09:45
Duration 907.38s (transform 2770.73s, setup 1677.84s, collect 29613.86s, tests 1420.90s, environment 2.14s, prepare 1542.00s)
JUNIT report written to /build/gemini-cli/src/gemini-cli/packages/core/junit.xml
npm error Lifecycle script `test` failed with error:
npm error code 1
npm error path /build/gemini-cli/src/gemini-cli/packages/core
npm error workspace @google/gemini-cli-core@0.38.2
npm error location /build/gemini-cli/src/gemini-cli/packages/core
npm error command failed
npm error command sh -c vitest run '--exclude=**/BuiltinCommandLoader.test.ts' '--exclude=**/config.integration.test.ts' '--exclude=**/mcp-client.test.ts' '--exclude=**/sandboxManager.integration.test.ts'
> @google/gemini-cli-sdk@0.38.2 test
> vitest run --exclude=**/BuiltinCommandLoader.test.ts --exclude=**/config.integration.test.ts --exclude=**/mcp-client.test.ts --exclude=**/sandboxManager.integration.test.ts
RUN v3.2.4 /build/gemini-cli/src/gemini-cli/packages/sdk
✓ src/tool.test.ts (6 tests) 153ms
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > handles static instructions
Experiments loaded {
experimentIds: [],
flags: []
}
stdout | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles tool execution success
Keychain initialization encountered an error: Cannot autolaunch D-Bus without X11 $DISPLAY
stdout | src/skills.integration.test.ts > GeminiCliAgent Skills Integration > loads and activates a skill from a directory
Keychain initialization encountered an error: Cannot autolaunch D-Bus without X11 $DISPLAY
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > handles static instructions
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > handles static instructions
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/skills.integration.test.ts > GeminiCliAgent Skills Integration > loads and activates a skill from a directory
Using FileKeychain fallback for secure storage.
stdout | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles tool execution success
Using FileKeychain fallback for secure storage.
stdout | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles tool execution success
Experiments loaded {
experimentIds: [],
flags: []
}
stdout | src/skills.integration.test.ts > GeminiCliAgent Skills Integration > loads and activates a skill from a directory
Experiments loaded {
experimentIds: [],
flags: []
}
stdout | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles tool execution success
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles tool execution success
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/skills.integration.test.ts > GeminiCliAgent Skills Integration > loads and activates a skill from a directory
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > handles static instructions
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/skills.integration.test.ts > GeminiCliAgent Skills Integration > loads and activates a skill from a directory
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles tool execution success
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > handles static instructions
[Routing] Selected model: gemini-2.0-flash (Source: agent-router/override, Latency: 3ms)
[Routing] Reasoning: Routing bypassed by forced model directive. Using: gemini-2.0-flash
stdout | src/skills.integration.test.ts > GeminiCliAgent Skills Integration > loads and activates a skill from a directory
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > handles dynamic instructions
Experiments loaded {
experimentIds: [],
flags: []
}
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > handles dynamic instructions
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > handles dynamic instructions
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > handles dynamic instructions
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > handles dynamic instructions
[Routing] Selected model: gemini-2.0-flash (Source: agent-router/override, Latency: 0ms)
[Routing] Reasoning: Routing bypassed by forced model directive. Using: gemini-2.0-flash
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > resumes a session
Experiments loaded {
experimentIds: [],
flags: []
}
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > resumes a session
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > resumes a session
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > resumes a session
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > resumes a session
[Routing] Selected model: gemini-2.0-flash (Source: agent-router/override, Latency: 0ms)
[Routing] Reasoning: Routing bypassed by forced model directive. Using: gemini-2.0-flash
stderr | src/skills.integration.test.ts > GeminiCliAgent Skills Integration > loads and activates a skill from a directory
Could not find promptId in context for classifier-router. This is unexpected. Using a fallback ID: classifier-router-fallback-1776612431862-22a61dc32f9d18
stderr | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles tool execution success
Could not find promptId in context for classifier-router. This is unexpected. Using a fallback ID: classifier-router-fallback-1776612431887-11de3b6a864d2
stderr | src/skills.integration.test.ts > GeminiCliAgent Skills Integration > loads and activates a skill from a directory
Error generating content via API. Full report available at: /tmp/gemini-client-error-generateJson-api-2026-04-19T15-27-11-990Z.json Error: Unexpected response type, next response was for generateContentStream but expected generateContent
at FakeContentGenerator.getNextResponse (/build/gemini-cli/src/gemini-cli/packages/core/src/core/fakeContentGenerator.ts:73:13)
at FakeContentGenerator.generateContent (/build/gemini-cli/src/gemini-cli/packages/core/src/core/fakeContentGenerator.ts:89:12)
at /build/gemini-cli/src/gemini-cli/packages/core/src/core/loggingContentGenerator.ts:378:47
at /build/gemini-cli/src/gemini-cli/packages/core/src/telemetry/trace.ts:162:28
at NoopContextManager.with (/build/gemini-cli/src/gemini-cli/node_modules/[4m@opentelemetry/api[24m/src/context/NoopContextManager.ts:31:15)
at ContextAPI.with (/build/gemini-cli/src/gemini-cli/node_modules/[4m@opentelemetry/api[24m/src/api/context.ts:77:42)
at NoopTracer.startActiveSpan (/build/gemini-cli/src/gemini-cli/node_modules/[4m@opentelemetry/api[24m/src/trace/NoopTracer.ts:98:27)
at ProxyTracer.startActiveSpan (/build/gemini-cli/src/gemini-cli/node_modules/[4m@opentelemetry/api[24m/src/trace/ProxyTracer.ts:51:20)
at runInDevTraceSpan (/build/gemini-cli/src/gemini-cli/packages/core/src/telemetry/trace.ts:105:17)
at LoggingContentGenerator.generateContent (/build/gemini-cli/src/gemini-cli/packages/core/src/core/loggingContentGenerator.ts:349:29)
stderr | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles tool execution success
Error generating content via API. Full report available at: /tmp/gemini-client-error-generateJson-api-2026-04-19T15-27-12-022Z.json Error: Unexpected response type, next response was for generateContentStream but expected generateContent
at FakeContentGenerator.getNextResponse (/build/gemini-cli/src/gemini-cli/packages/core/src/core/fakeContentGenerator.ts:73:13)
at FakeContentGenerator.generateContent (/build/gemini-cli/src/gemini-cli/packages/core/src/core/fakeContentGenerator.ts:89:12)
at /build/gemini-cli/src/gemini-cli/packages/core/src/core/loggingContentGenerator.ts:378:47
at /build/gemini-cli/src/gemini-cli/packages/core/src/telemetry/trace.ts:162:28
at NoopContextManager.with (/build/gemini-cli/src/gemini-cli/node_modules/[4m@opentelemetry/api[24m/src/context/NoopContextManager.ts:31:15)
at ContextAPI.with (/build/gemini-cli/src/gemini-cli/node_modules/[4m@opentelemetry/api[24m/src/api/context.ts:77:42)
at NoopTracer.startActiveSpan (/build/gemini-cli/src/gemini-cli/node_modules/[4m@opentelemetry/api[24m/src/trace/NoopTracer.ts:98:27)
at ProxyTracer.startActiveSpan (/build/gemini-cli/src/gemini-cli/node_modules/[4m@opentelemetry/api[24m/src/trace/ProxyTracer.ts:51:20)
at runInDevTraceSpan (/build/gemini-cli/src/gemini-cli/packages/core/src/telemetry/trace.ts:105:17)
at LoggingContentGenerator.generateContent (/build/gemini-cli/src/gemini-cli/packages/core/src/core/loggingContentGenerator.ts:349:29)
stderr | src/skills.integration.test.ts > GeminiCliAgent Skills Integration > loads and activates a skill from a directory
[Routing] NumericalClassifierStrategy failed: Error: Failed to generate content: Unexpected response type, next response was for generateContentStream but expected generateContent
at BaseLlmClient._generateWithRetry (/build/gemini-cli/src/gemini-cli/packages/core/src/core/baseLlmClient.ts:391:13)
at BaseLlmClient.generateJson (/build/gemini-cli/src/gemini-cli/packages/core/src/core/baseLlmClient.ts:155:20)
at NumericalClassifierStrategy.route (/build/gemini-cli/src/gemini-cli/packages/core/src/routing/strategies/numericalClassifierStrategy.ts:135:28)
at CompositeStrategy.route (/build/gemini-cli/src/gemini-cli/packages/core/src/routing/strategies/compositeStrategy.ts:62:26)
at ModelRouterService.route (/build/gemini-cli/src/gemini-cli/packages/core/src/routing/modelRouterService.ts:89:18)
at GeminiClient.processTurn (/build/gemini-cli/src/gemini-cli/packages/core/src/core/client.ts:721:24)
at GeminiClient.sendMessageStream (/build/gemini-cli/src/gemini-cli/packages/core/src/core/client.ts:939:14)
at GeminiCliSession.sendStream [90m(/build/gemini-cli/src/gemini-cli/packages/sdk/[39msrc/session.ts:210:24[90m)[39m
at [90m/build/gemini-cli/src/gemini-cli/packages/sdk/[39msrc/skills.integration.test.ts:47:22
at file:///build/gemini-cli/src/gemini-cli/node_modules/[4m@vitest/runner[24m/dist/chunk-hooks.js:752:20
stdout | src/skills.integration.test.ts > GeminiCliAgent Skills Integration > loads and activates a skill from a directory
[Routing] Selected model: gemini-3-pro-preview (Source: agent-router/default, Latency: 309ms)
[Routing] Reasoning: Routing to default model: gemini-3-pro-preview
stderr | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles tool execution success
[Routing] NumericalClassifierStrategy failed: Error: Failed to generate content: Unexpected response type, next response was for generateContentStream but expected generateContent
at BaseLlmClient._generateWithRetry (/build/gemini-cli/src/gemini-cli/packages/core/src/core/baseLlmClient.ts:391:13)
at BaseLlmClient.generateJson (/build/gemini-cli/src/gemini-cli/packages/core/src/core/baseLlmClient.ts:155:20)
at NumericalClassifierStrategy.route (/build/gemini-cli/src/gemini-cli/packages/core/src/routing/strategies/numericalClassifierStrategy.ts:135:28)
at CompositeStrategy.route (/build/gemini-cli/src/gemini-cli/packages/core/src/routing/strategies/compositeStrategy.ts:62:26)
at ModelRouterService.route (/build/gemini-cli/src/gemini-cli/packages/core/src/routing/modelRouterService.ts:89:18)
at GeminiClient.processTurn (/build/gemini-cli/src/gemini-cli/packages/core/src/core/client.ts:721:24)
at GeminiClient.sendMessageStream (/build/gemini-cli/src/gemini-cli/packages/core/src/core/client.ts:939:14)
at GeminiCliSession.sendStream [90m(/build/gemini-cli/src/gemini-cli/packages/sdk/[39msrc/session.ts:210:24[90m)[39m
at [90m/build/gemini-cli/src/gemini-cli/packages/sdk/[39msrc/tool.integration.test.ts:50:22
at file:///build/gemini-cli/src/gemini-cli/node_modules/[4m@vitest/runner[24m/dist/chunk-hooks.js:752:20
stdout | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles tool execution success
[Routing] Selected model: gemini-3-pro-preview (Source: agent-router/default, Latency: 334ms)
[Routing] Reasoning: Routing to default model: gemini-3-pro-preview
stdout | src/skills.integration.test.ts > GeminiCliAgent Skills Integration > loads and activates a skill from a root
Experiments loaded {
experimentIds: [],
flags: []
}
stdout | src/skills.integration.test.ts > GeminiCliAgent Skills Integration > loads and activates a skill from a root
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/skills.integration.test.ts > GeminiCliAgent Skills Integration > loads and activates a skill from a root
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles ModelVisibleError correctly
Experiments loaded {
experimentIds: [],
flags: []
}
stdout | src/skills.integration.test.ts > GeminiCliAgent Skills Integration > loads and activates a skill from a root
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles ModelVisibleError correctly
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles ModelVisibleError correctly
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles ModelVisibleError correctly
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stderr | src/skills.integration.test.ts > GeminiCliAgent Skills Integration > loads and activates a skill from a root
Could not find promptId in context for classifier-router. This is unexpected. Using a fallback ID: classifier-router-fallback-1776612432563-2033e6c6eac57
stderr | src/skills.integration.test.ts > GeminiCliAgent Skills Integration > loads and activates a skill from a root
Error generating content via API. Full report available at: /tmp/gemini-client-error-generateJson-api-2026-04-19T15-27-12-583Z.json Error: Unexpected response type, next response was for generateContentStream but expected generateContent
at FakeContentGenerator.getNextResponse (/build/gemini-cli/src/gemini-cli/packages/core/src/core/fakeContentGenerator.ts:73:13)
at FakeContentGenerator.generateContent (/build/gemini-cli/src/gemini-cli/packages/core/src/core/fakeContentGenerator.ts:89:12)
at /build/gemini-cli/src/gemini-cli/packages/core/src/core/loggingContentGenerator.ts:378:47
at /build/gemini-cli/src/gemini-cli/packages/core/src/telemetry/trace.ts:162:28
at NoopContextManager.with (/build/gemini-cli/src/gemini-cli/node_modules/[4m@opentelemetry/api[24m/src/context/NoopContextManager.ts:31:15)
at ContextAPI.with (/build/gemini-cli/src/gemini-cli/node_modules/[4m@opentelemetry/api[24m/src/api/context.ts:77:42)
at NoopTracer.startActiveSpan (/build/gemini-cli/src/gemini-cli/node_modules/[4m@opentelemetry/api[24m/src/trace/NoopTracer.ts:98:27)
at ProxyTracer.startActiveSpan (/build/gemini-cli/src/gemini-cli/node_modules/[4m@opentelemetry/api[24m/src/trace/ProxyTracer.ts:51:20)
at runInDevTraceSpan (/build/gemini-cli/src/gemini-cli/packages/core/src/telemetry/trace.ts:105:17)
at LoggingContentGenerator.generateContent (/build/gemini-cli/src/gemini-cli/packages/core/src/core/loggingContentGenerator.ts:349:29)
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > resumes a session
Experiments loaded {
experimentIds: [],
flags: []
}
stderr | src/skills.integration.test.ts > GeminiCliAgent Skills Integration > loads and activates a skill from a root
[Routing] NumericalClassifierStrategy failed: Error: Failed to generate content: Unexpected response type, next response was for generateContentStream but expected generateContent
at BaseLlmClient._generateWithRetry (/build/gemini-cli/src/gemini-cli/packages/core/src/core/baseLlmClient.ts:391:13)
at BaseLlmClient.generateJson (/build/gemini-cli/src/gemini-cli/packages/core/src/core/baseLlmClient.ts:155:20)
at NumericalClassifierStrategy.route (/build/gemini-cli/src/gemini-cli/packages/core/src/routing/strategies/numericalClassifierStrategy.ts:135:28)
at CompositeStrategy.route (/build/gemini-cli/src/gemini-cli/packages/core/src/routing/strategies/compositeStrategy.ts:62:26)
at ModelRouterService.route (/build/gemini-cli/src/gemini-cli/packages/core/src/routing/modelRouterService.ts:89:18)
at GeminiClient.processTurn (/build/gemini-cli/src/gemini-cli/packages/core/src/core/client.ts:721:24)
at GeminiClient.sendMessageStream (/build/gemini-cli/src/gemini-cli/packages/core/src/core/client.ts:939:14)
at GeminiCliSession.sendStream [90m(/build/gemini-cli/src/gemini-cli/packages/sdk/[39msrc/session.ts:210:24[90m)[39m
at [90m/build/gemini-cli/src/gemini-cli/packages/sdk/[39msrc/skills.integration.test.ts:80:22
at file:///build/gemini-cli/src/gemini-cli/node_modules/[4m@vitest/runner[24m/dist/chunk-hooks.js:752:20
stdout | src/skills.integration.test.ts > GeminiCliAgent Skills Integration > loads and activates a skill from a root
[Routing] Selected model: gemini-3-pro-preview (Source: agent-router/default, Latency: 40ms)
[Routing] Reasoning: Routing to default model: gemini-3-pro-preview
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > resumes a session
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stderr | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles ModelVisibleError correctly
Could not find promptId in context for classifier-router. This is unexpected. Using a fallback ID: classifier-router-fallback-1776612432640-7dc54f18d73178
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > resumes a session
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > resumes a session
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
✓ src/skills.integration.test.ts (2 tests) 3324ms
✓ GeminiCliAgent Skills Integration > loads and activates a skill from a directory 2975ms
✓ GeminiCliAgent Skills Integration > loads and activates a skill from a root 321ms
stderr | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles ModelVisibleError correctly
Error generating content via API. Full report available at: /tmp/gemini-client-error-generateJson-api-2026-04-19T15-27-12-668Z.json Error: Unexpected response type, next response was for generateContentStream but expected generateContent
at FakeContentGenerator.getNextResponse (/build/gemini-cli/src/gemini-cli/packages/core/src/core/fakeContentGenerator.ts:73:13)
at FakeContentGenerator.generateContent (/build/gemini-cli/src/gemini-cli/packages/core/src/core/fakeContentGenerator.ts:89:12)
at /build/gemini-cli/src/gemini-cli/packages/core/src/core/loggingContentGenerator.ts:378:47
at /build/gemini-cli/src/gemini-cli/packages/core/src/telemetry/trace.ts:162:28
at NoopContextManager.with (/build/gemini-cli/src/gemini-cli/node_modules/[4m@opentelemetry/api[24m/src/context/NoopContextManager.ts:31:15)
at ContextAPI.with (/build/gemini-cli/src/gemini-cli/node_modules/[4m@opentelemetry/api[24m/src/api/context.ts:77:42)
at NoopTracer.startActiveSpan (/build/gemini-cli/src/gemini-cli/node_modules/[4m@opentelemetry/api[24m/src/trace/NoopTracer.ts:98:27)
at ProxyTracer.startActiveSpan (/build/gemini-cli/src/gemini-cli/node_modules/[4m@opentelemetry/api[24m/src/trace/ProxyTracer.ts:51:20)
at runInDevTraceSpan (/build/gemini-cli/src/gemini-cli/packages/core/src/telemetry/trace.ts:105:17)
at LoggingContentGenerator.generateContent (/build/gemini-cli/src/gemini-cli/packages/core/src/core/loggingContentGenerator.ts:349:29)
stderr | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles ModelVisibleError correctly
[Routing] NumericalClassifierStrategy failed: Error: Failed to generate content: Unexpected response type, next response was for generateContentStream but expected generateContent
at BaseLlmClient._generateWithRetry (/build/gemini-cli/src/gemini-cli/packages/core/src/core/baseLlmClient.ts:391:13)
at BaseLlmClient.generateJson (/build/gemini-cli/src/gemini-cli/packages/core/src/core/baseLlmClient.ts:155:20)
at NumericalClassifierStrategy.route (/build/gemini-cli/src/gemini-cli/packages/core/src/routing/strategies/numericalClassifierStrategy.ts:135:28)
at CompositeStrategy.route (/build/gemini-cli/src/gemini-cli/packages/core/src/routing/strategies/compositeStrategy.ts:62:26)
at ModelRouterService.route (/build/gemini-cli/src/gemini-cli/packages/core/src/routing/modelRouterService.ts:89:18)
at GeminiClient.processTurn (/build/gemini-cli/src/gemini-cli/packages/core/src/core/client.ts:721:24)
at GeminiClient.sendMessageStream (/build/gemini-cli/src/gemini-cli/packages/core/src/core/client.ts:939:14)
at GeminiCliSession.sendStream [90m(/build/gemini-cli/src/gemini-cli/packages/sdk/[39msrc/session.ts:210:24[90m)[39m
at [90m/build/gemini-cli/src/gemini-cli/packages/sdk/[39msrc/tool.integration.test.ts:95:22
at file:///build/gemini-cli/src/gemini-cli/node_modules/[4m@vitest/runner[24m/dist/chunk-hooks.js:752:20
stdout | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles ModelVisibleError correctly
[Routing] Selected model: gemini-3-pro-preview (Source: agent-router/default, Latency: 53ms)
[Routing] Reasoning: Routing to default model: gemini-3-pro-preview
stdout | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles sendErrorsToModel: true correctly
Experiments loaded {
experimentIds: [],
flags: []
}
stdout | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles sendErrorsToModel: true correctly
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles sendErrorsToModel: true correctly
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles sendErrorsToModel: true correctly
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > resumes a session
[Routing] Selected model: gemini-2.0-flash (Source: agent-router/override, Latency: 0ms)
[Routing] Reasoning: Routing bypassed by forced model directive. Using: gemini-2.0-flash
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > propagates errors from dynamic instructions
Experiments loaded {
experimentIds: [],
flags: []
}
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > propagates errors from dynamic instructions
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
(node:28438) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 model-changed listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > propagates errors from dynamic instructions
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stdout | src/agent.integration.test.ts > GeminiCliAgent Integration > propagates errors from dynamic instructions
Ignore file not found: /build/gemini-cli/src/gemini-cli/packages/sdk/.geminiignore, continue without it.
stderr | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles sendErrorsToModel: true correctly
Could not find promptId in context for classifier-router. This is unexpected. Using a fallback ID: classifier-router-fallback-1776612433013-194e7c869b4558
stderr | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles sendErrorsToModel: true correctly
Error generating content via API. Full report available at: /tmp/gemini-client-error-generateJson-api-2026-04-19T15-27-13-033Z.json Error: Unexpected response type, next response was for generateContentStream but expected generateContent
at FakeContentGenerator.getNextResponse (/build/gemini-cli/src/gemini-cli/packages/core/src/core/fakeContentGenerator.ts:73:13)
at FakeContentGenerator.generateContent (/build/gemini-cli/src/gemini-cli/packages/core/src/core/fakeContentGenerator.ts:89:12)
at /build/gemini-cli/src/gemini-cli/packages/core/src/core/loggingContentGenerator.ts:378:47
at /build/gemini-cli/src/gemini-cli/packages/core/src/telemetry/trace.ts:162:28
at NoopContextManager.with (/build/gemini-cli/src/gemini-cli/node_modules/[4m@opentelemetry/api[24m/src/context/NoopContextManager.ts:31:15)
at ContextAPI.with (/build/gemini-cli/src/gemini-cli/node_modules/[4m@opentelemetry/api[24m/src/api/context.ts:77:42)
at NoopTracer.startActiveSpan (/build/gemini-cli/src/gemini-cli/node_modules/[4m@opentelemetry/api[24m/src/trace/NoopTracer.ts:98:27)
at ProxyTracer.startActiveSpan (/build/gemini-cli/src/gemini-cli/node_modules/[4m@opentelemetry/api[24m/src/trace/ProxyTracer.ts:51:20)
at runInDevTraceSpan (/build/gemini-cli/src/gemini-cli/packages/core/src/telemetry/trace.ts:105:17)
at LoggingContentGenerator.generateContent (/build/gemini-cli/src/gemini-cli/packages/core/src/core/loggingContentGenerator.ts:349:29)
stderr | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles sendErrorsToModel: true correctly
[Routing] NumericalClassifierStrategy failed: Error: Failed to generate content: Unexpected response type, next response was for generateContentStream but expected generateContent
at BaseLlmClient._generateWithRetry (/build/gemini-cli/src/gemini-cli/packages/core/src/core/baseLlmClient.ts:391:13)
at BaseLlmClient.generateJson (/build/gemini-cli/src/gemini-cli/packages/core/src/core/baseLlmClient.ts:155:20)
at NumericalClassifierStrategy.route (/build/gemini-cli/src/gemini-cli/packages/core/src/routing/strategies/numericalClassifierStrategy.ts:135:28)
at CompositeStrategy.route (/build/gemini-cli/src/gemini-cli/packages/core/src/routing/strategies/compositeStrategy.ts:62:26)
at ModelRouterService.route (/build/gemini-cli/src/gemini-cli/packages/core/src/routing/modelRouterService.ts:89:18)
at GeminiClient.processTurn (/build/gemini-cli/src/gemini-cli/packages/core/src/core/client.ts:721:24)
at GeminiClient.sendMessageStream (/build/gemini-cli/src/gemini-cli/packages/core/src/core/client.ts:939:14)
at GeminiCliSession.sendStream [90m(/build/gemini-cli/src/gemini-cli/packages/sdk/[39msrc/session.ts:210:24[90m)[39m
at [90m/build/gemini-cli/src/gemini-cli/packages/sdk/[39msrc/tool.integration.test.ts:137:22
at file:///build/gemini-cli/src/gemini-cli/node_modules/[4m@vitest/runner[24m/dist/chunk-hooks.js:752:20
stdout | src/tool.integration.test.ts > GeminiCliAgent Tool Integration > handles sendErrorsToModel: true correctly
[Routing] Selected model: gemini-3-pro-preview (Source: agent-router/default, Latency: 41ms)
[Routing] Reasoning: Routing to default model: gemini-3-pro-preview
✓ src/agent.integration.test.ts (5 tests) 3856ms
✓ GeminiCliAgent Integration > handles static instructions 1773ms
✓ GeminiCliAgent Integration > handles dynamic instructions 553ms
✓ GeminiCliAgent Integration > resumes a session 1298ms
✓ src/tool.integration.test.ts (3 tests) 3852ms
✓ GeminiCliAgent Tool Integration > handles tool execution success 3097ms
✓ GeminiCliAgent Tool Integration > handles ModelVisibleError correctly 395ms
✓ GeminiCliAgent Tool Integration > handles sendErrorsToModel: true correctly 332ms
Test Files 4 passed (4)
Tests 16 passed (16)
Start at 15:25:22
Duration 110.55s (transform 38.67s, setup 0ms, collect 258.41s, tests 11.19s, environment 10ms, prepare 9.74s)
> gemini-cli-vscode-ide-companion@0.38.2 test
> vitest run --exclude=**/BuiltinCommandLoader.test.ts --exclude=**/config.integration.test.ts --exclude=**/mcp-client.test.ts --exclude=**/sandboxManager.integration.test.ts
RUN v3.2.4 /build/gemini-cli/src/gemini-cli/packages/vscode-ide-companion
✓ src/open-files-manager.test.ts (17 tests) 471ms
✓ src/extension.test.ts (11 tests) 907ms
✓ activate > should show the info message on first activation 442ms
✓ src/ide-server.test.ts (13 tests | 1 skipped) 2174ms
✓ IDEServer > auth token > should reject request without auth token 707ms
Test Files 3 passed (3)
Tests 40 passed | 1 skipped (41)
Start at 15:27:19
Duration 105.32s (transform 35.19s, setup 0ms, collect 143.42s, tests 3.55s, environment 9ms, prepare 6.48s)
[1m[31m==> ERROR:[m[1m A failure occurred in check().[m
[1m Aborting...[m
[23;2t[!p]104\[0m[?7h[1G[0J]3008;end=3e5928296f7449c8b655bbe2d90ad736\[1m[31m==> ERROR:[m[1m Build failed, check /var/lib/archbuild/extra-riscv64/felix-2/build[m
[34h[?25h[34h[?25h[34h[?25hreceiving incremental file list
gemini-cli-1:0.38.2-1-riscv64-build.log
gemini-cli-1:0.38.2-1-riscv64-check.log
gemini-cli-1:0.38.2-1-riscv64-prepare.log
sent 81 bytes received 216,406 bytes 61,853.43 bytes/sec
total size is 3,143,065 speedup is 14.52