gemini-cli
gemini-cli copied to clipboard
refactor(core/cli): change 'zed-integration' to be ACP focused
TLDR
Fix #11026 by renaming the Zed integraion to ACP integration now that there is wider support for ACP outside of Zed.
npm run preflight is passing locally:
owenchristie@Owens-iMac gem-cli % npm run preflight
> @google/[email protected] preflight
> npm run clean && npm ci && npm run format && npm run lint:ci && npm run build && npm run typecheck && npm run test:ci
> @google/[email protected] clean
> node scripts/clean.js
> @google/[email protected] prepare
> husky && npm run bundle
> @google/[email protected] bundle
> npm run generate && node esbuild.config.js && node scripts/copy_bundle_assets.js
> @google/[email protected] generate
> node scripts/generate-git-commit-info.js
Assets copied to bundle/
added 1314 packages, and audited 1320 packages in 6s
345 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
> @google/[email protected] format
> prettier --experimental-cli --write .
> @google/[email protected] lint:ci
> eslint . --ext .ts,.tsx --max-warnings 0 && eslint integration-tests --max-warnings 0
> @google/[email protected] build
> node scripts/build.js
> @google/[email protected] generate
> node scripts/generate-git-commit-info.js
> @google/[email protected] build
> node ../../scripts/build_package.js
Successfully copied files.
> @google/[email protected] build
> node ../../scripts/build_package.js
Successfully copied files.
> @google/[email protected] build
> node ../../scripts/build_package.js
Successfully copied files.
> @google/[email protected] build
> node ../../scripts/build_package.js
Successfully copied files.
> [email protected] build
> npm run build:dev
> [email protected] build:dev
> npm run check-types && npm run lint && node esbuild.js
> [email protected] check-types
> tsc --noEmit
> [email protected] lint
> eslint src
[watch] build started
[watch] build finished
> @google/[email protected] typecheck
> npm run typecheck --workspaces --if-present
> @google/[email protected] typecheck
> tsc --noEmit
> @google/[email protected] typecheck
> tsc --noEmit
> @google/[email protected] typecheck
> tsc --noEmit
> @google/[email protected] typecheck
> tsc --noEmit
> @google/[email protected] test:ci
> npm run test:ci --workspaces --if-present --parallel && npm run test:scripts
> @google/[email protected] test:ci
> vitest run --coverage
RUN v3.2.4 /Users/owenchristie/gem-cli/packages/a2a-server
Coverage enabled with v8
✓ src/persistence/gcs.test.ts (10 tests | 1 skipped) 8ms
✓ src/agent/task.test.ts (1 test) 5ms
✓ src/http/endpoints.test.ts (5 tests) 26ms
✓ src/http/app.test.ts (5 tests) 33ms
Test Files 4 passed (4)
Tests 20 passed | 1 skipped (21)
Start at 20:00:04
Duration 1.52s (transform 483ms, setup 0ms, collect 3.00s, tests 71ms, environment 810ms, prepare 166ms)
JUNIT report written to /Users/owenchristie/gem-cli/packages/a2a-server/junit.xml
% Coverage report from v8
> @google/[email protected] test:ci
> vitest run
RUN v3.2.4 /Users/owenchristie/gem-cli/packages/cli
Coverage enabled with v8
✓ src/utils/sessionCleanup.test.ts (70 tests) 24ms
✓ src/config/settings.test.ts (77 tests) 24ms
✓ src/ui/components/shared/text-buffer.test.ts (115 tests) 83ms
✓ src/ui/hooks/vim.test.ts (87 tests) 228ms
✓ src/ui/hooks/useGeminiStream.test.tsx (43 tests) 490ms
✓ src/config/config.test.ts (174 tests | 1 skipped) 331ms
✓ src/ui/components/shared/vim-buffer-actions.test.ts (74 tests) 16ms
✓ src/config/extension.test.ts (59 tests) 168ms
✓ src/services/FileCommandLoader.test.ts (38 tests) 134ms
✓ src/utils/settingsUtils.test.ts (73 tests) 13ms
✓ src/ui/hooks/useToolScheduler.test.ts (21 tests | 4 skipped) 31ms
✓ src/ui/hooks/atCommandProcessor.test.ts (39 tests) 263ms
✓ src/ui/hooks/useSelectionList.test.ts (45 tests) 49ms
✓ src/ui/AppContainer.test.tsx (35 tests) 139ms
(node:95693) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 error listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
✓ src/nonInteractiveCli.test.ts (18 tests) 19ms
✓ src/ui/contexts/KeypressContext.test.tsx (43 tests) 47ms
✓ src/services/prompt-processors/shellProcessor.test.ts (33 tests) 18ms
✓ src/ui/hooks/useSlashCompletion.test.ts (21 tests) 356ms
✓ src/ui/hooks/slashCommandProcessor.test.ts (35 tests) 1935ms
✓ src/ui/components/SettingsDialog.test.tsx (52 tests) 3290ms
✓ SettingsDialog > String Settings Editing > should allow editing and committing a string setting 540ms
✓ src/ui/hooks/shellCommandProcessor.test.ts (20 tests) 382ms
✓ src/ui/commands/chatCommand.test.ts (28 tests) 30ms
✓ src/ui/hooks/useAutoAcceptIndicator.test.ts (16 tests) 34ms
✓ src/config/extensions/extensionEnablement.test.ts (43 tests) 21ms
✓ src/ui/hooks/useCommandCompletion.test.ts (17 tests) 57ms
✓ src/config/extensions/github.test.ts (30 tests) 41ms
✓ src/ui/components/shared/BaseSelectionList.test.tsx (26 tests) 333ms
✓ src/ui/utils/commandUtils.test.ts (26 tests) 35ms
✓ src/config/policy.test.ts (19 tests) 5ms
✓ src/services/McpPromptLoader.test.ts (25 tests) 7ms
✓ src/validateNonInterActiveAuth.test.ts (17 tests) 10ms
✓ src/ui/hooks/useAtCompletion.test.ts (13 tests) 1048ms
✓ src/config/extensions/update.test.ts (8 tests) 212ms
✓ src/ui/components/InputPrompt.test.tsx (87 tests) 8202ms
✓ InputPrompt > command search (Ctrl+R when not in shell) > expands and collapses long suggestion via Right/Left arrows 367ms
✓ src/gemini.test.tsx (9 tests) 523ms
✓ gemini.tsx main function > verifies that we dont load the config before relaunchAppInChildProcess 507ms
✓ src/utils/errors.test.ts (22 tests) 10ms
✓ src/config/policy-engine.integration.test.ts (12 tests) 4ms
✓ src/ui/keyMatchers.test.ts (34 tests) 5ms
✓ src/config/trustedFolders.test.ts (21 tests) 8ms
✓ src/services/CommandService.test.ts (11 tests) 15ms
✓ src/ui/components/shared/MaxSizedBox.test.tsx (21 tests) 64ms
✓ src/config/config.integration.test.ts (18 tests) 180ms
(node:95774) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 mcp-client-update listeners added to [EventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
✓ src/config/settingsSchema.test.ts (16 tests) 7ms
✓ src/ui/components/Composer.test.tsx (18 tests) 91ms
✓ src/utils/installationInfo.test.ts (16 tests) 11ms
✓ src/ui/hooks/useQuotaAndFallback.test.ts (10 tests) 31ms
✓ src/ui/commands/memoryCommand.test.ts (10 tests) 7ms
✓ src/utils/commentJson.test.ts (12 tests) 16ms
✓ src/ui/components/StatsDisplay.test.tsx (12 tests) 141ms
✓ src/ui/components/LoadingIndicator.test.tsx (16 tests) 48ms
✓ src/ui/components/messages/DiffRenderer.test.tsx (13 tests) 199ms
✓ src/commands/mcp/add.test.ts (17 tests) 53ms
✓ src/ui/components/messages/ToolGroupMessage.test.tsx (14 tests) 58ms
✓ src/utils/relaunch.test.ts (8 tests) 7ms
✓ src/utils/handleAutoUpdate.test.ts (13 tests) 13ms
✓ src/ui/hooks/useInputHistoryStore.test.ts (14 tests) 40ms
✓ src/ui/commands/restoreCommand.test.ts (13 tests) 83ms
✓ src/ui/themes/color-utils.test.ts (16 tests) 5ms
✓ src/ui/auth/AuthDialog.test.tsx (14 tests) 121ms
✓ src/ui/commands/extensionsCommand.test.ts (11 tests) 11ms
✓ src/ui/hooks/useExtensionUpdates.test.ts (4 tests) 246ms
✓ src/ui/commands/copyCommand.test.ts (11 tests) 6ms
✓ src/ui/commands/ideCommand.test.ts (8 tests) 8ms
✓ src/utils/envVarResolver.test.ts (16 tests) 4ms
✓ src/services/prompt-processors/injectionParser.test.ts (21 tests) 6ms
✓ src/services/BuiltinCommandLoader.test.ts (10 tests) 326ms
✓ src/ui/hooks/useKeypress.test.ts (18 tests) 50ms
✓ src/ui/hooks/useEditorSettings.test.ts (10 tests) 21ms
✓ src/utils/sessionCleanup.integration.test.ts (5 tests) 18ms
✓ src/ui/hooks/useReverseSearchCompletion.test.tsx (10 tests) 32ms
✓ src/services/prompt-processors/atFileProcessor.test.ts (11 tests) 9ms
✓ src/ui/commands/setupGithubCommand.test.ts (8 tests | 1 skipped) 26ms
✓ src/ui/hooks/useInputHistory.test.ts (11 tests) 18ms
✓ src/ui/components/messages/ToolMessage.test.tsx (12 tests) 37ms
✓ src/ui/hooks/useShellHistory.test.ts (7 tests) 562ms
✓ src/ui/utils/computeStats.test.ts (12 tests) 10ms
✓ src/ui/hooks/usePermissionsModifyTrust.test.ts (8 tests) 24ms
✓ src/ui/hooks/useFolderTrust.test.ts (11 tests) 27ms
✓ src/ui/hooks/useIdeTrustListener.test.ts (5 tests) 22ms
✓ src/ui/components/Footer.test.tsx (17 tests) 49ms
✓ src/ui/hooks/useGitBranchName.test.ts (7 tests | 2 skipped) 29ms
✓ src/ui/components/HistoryItemDisplay.test.tsx (13 tests) 132ms
✓ src/ui/components/ModelDialog.test.tsx (9 tests) 62ms
✓ src/ui/hooks/usePhraseCycler.test.ts (9 tests) 32ms
✓ src/ui/components/messages/CompressionMessage.test.tsx (8 tests) 52ms
✓ src/ui/hooks/useHistoryManager.test.ts (8 tests) 29ms
✓ src/ui/hooks/useMessageQueue.test.ts (9 tests) 21ms
✓ src/ui/utils/textUtils.test.ts (9 tests) 2ms
✓ src/ui/commands/directoryCommand.test.tsx (7 tests) 7ms
✓ src/commands/mcp/remove.test.ts (6 tests) 29ms
✓ src/ui/themes/theme-manager.test.ts (12 tests) 27ms
✓ src/ui/components/ModelStatsDisplay.test.tsx (6 tests) 66ms
✓ src/ui/components/PermissionsModifyTrustDialog.test.tsx (6 tests) 228ms
✓ src/ui/commands/mcpCommand.test.ts (5 tests) 6ms
✓ src/commands/mcp/list.test.ts (4 tests) 6ms
✓ src/utils/deepMerge.test.ts (13 tests) 3ms
✓ src/ui/utils/MarkdownDisplay.test.tsx (30 tests) 260ms
✓ src/ui/utils/updateCheck.test.ts (9 tests) 6ms
✓ src/ui/components/shared/RadioButtonSelect.test.tsx (5 tests) 20ms
✓ src/ui/contexts/SessionContext.test.tsx (4 tests) 29ms
✓ src/ui/components/DebugProfiler.test.tsx (10 tests) 6ms
✓ src/ui/utils/highlight.test.ts (16 tests) 5ms
✓ src/utils/commands.test.ts (12 tests) 5ms
✓ src/ui/hooks/useLoadingIndicator.test.ts (5 tests) 94ms
✓ src/ui/components/ToolStatsDisplay.test.tsx (5 tests) 60ms
✓ src/ui/hooks/useFlickerDetector.test.ts (6 tests) 16ms
✓ src/ui/commands/aboutCommand.test.ts (5 tests) 8ms
✓ src/ui/components/messages/ToolConfirmationMessage.test.tsx (10 tests) 96ms
✓ src/ui/App.test.tsx (7 tests) 39ms
✓ src/commands/extensions/install.test.ts (8 tests) 14ms
✓ src/ui/components/views/McpStatus.test.tsx (12 tests) 67ms
✓ src/utils/gitUtils.test.ts (12 tests) 14ms
✓ src/ui/hooks/useConsoleMessages.test.ts (7 tests) 46ms
✓ src/ui/hooks/useFocus.test.ts (6 tests) 17ms
✓ src/ui/components/shared/EnumSelector.test.tsx (9 tests) 44ms
✓ src/ui/commands/compressCommand.test.ts (5 tests) 9ms
✓ src/ui/hooks/useTimer.test.ts (8 tests) 37ms
✓ src/ui/components/AnsiOutput.test.tsx (6 tests) 45ms
✓ src/ui/commands/toolsCommand.test.ts (4 tests) 10ms
✓ src/ui/components/PrepareLabel.test.tsx (6 tests) 24ms
✓ src/ui/components/FolderTrustDialog.test.tsx (9 tests) 156ms
✓ src/ui/themes/theme.test.ts (5 tests) 3ms
✓ src/ui/hooks/usePrivacySettings.test.ts (4 tests) 185ms
✓ src/ui/commands/initCommand.test.ts (3 tests) 4ms
✓ src/ui/commands/bugCommand.test.ts (2 tests) 6ms
✓ src/utils/userStartupWarnings.test.ts (5 tests) 36ms
✓ src/ui/commands/clearCommand.test.ts (2 tests) 5ms
✓ src/ui/components/views/ExtensionsList.test.tsx (9 tests) 43ms
✓ src/ui/commands/docsCommand.test.ts (3 tests) 8ms
✓ src/ui/components/ConsentPrompt.test.tsx (5 tests) 39ms
✓ src/utils/readStdin.test.ts (4 tests) 7ms
✓ src/ui/utils/displayUtils.test.ts (8 tests) 4ms
✓ src/commands/extensions/new.test.ts (4 tests) 29ms
✓ src/ui/commands/terminalSetupCommand.test.ts (5 tests) 3ms
✓ src/config/auth.test.ts (8 tests) 11ms
✓ src/ui/components/ProQuotaDialog.test.tsx (3 tests) 25ms
✓ src/ui/components/ThemeDialog.test.tsx (2 tests) 388ms
✓ src/ui/commands/statsCommand.test.ts (3 tests) 6ms
✓ src/ui/components/IdeTrustChangeDialog.test.tsx (6 tests) 134ms
✓ src/ui/components/ContextSummaryDisplay.test.tsx (4 tests) 26ms
✓ src/ui/hooks/useMemoryMonitor.test.ts (3 tests) 19ms
✓ src/ui/utils/markdownUtilities.test.ts (7 tests) 3ms
✓ src/utils/startupWarnings.test.ts (4 tests) 4ms
✓ src/ui/components/QueuedMessageDisplay.test.tsx (5 tests) 18ms
✓ src/ui/utils/formatters.test.ts (14 tests) 2ms
✓ src/test-utils/mockCommandContext.test.ts (3 tests) 4ms
✓ src/config/keyBindings.test.ts (3 tests) 9ms
✓ src/ui/components/shared/DescriptiveRadioButtonSelect.test.tsx (2 tests) 28ms
✓ src/utils/windowTitle.test.ts (7 tests) 3ms
✓ src/ui/utils/clipboardUtils.test.ts (6 tests) 168ms
✓ src/ui/components/Help.test.tsx (2 tests) 67ms
✓ src/ui/commands/helpCommand.test.ts (2 tests) 4ms
✓ src/ui/components/views/ToolsList.test.tsx (3 tests) 30ms
✓ src/commands/mcp.test.ts (3 tests) 6ms
✓ src/ui/commands/quitCommand.test.ts (1 test) 4ms
✓ src/ui/components/SessionSummaryDisplay.test.tsx (1 test) 51ms
✓ src/utils/cleanup.test.ts (4 tests) 3ms
✓ src/ui/components/Header.test.tsx (4 tests) 60ms
✓ src/ui/commands/privacyCommand.test.ts (2 tests) 3ms
✓ src/ui/hooks/useModelCommand.test.ts (3 tests) 12ms
✓ src/ui/components/ShellConfirmationDialog.test.tsx (4 tests) 65ms
✓ src/ui/commands/themeCommand.test.ts (2 tests) 3ms
✓ src/ui/components/views/ChatList.test.tsx (3 tests) 34ms
✓ src/ui/commands/permissionsCommand.test.ts (3 tests) 5ms
✓ src/ui/commands/settingsCommand.test.ts (2 tests) 4ms
✓ src/ui/commands/modelCommand.test.ts (2 tests) 5ms
✓ src/services/prompt-processors/argumentProcessor.test.ts (2 tests) 6ms
✓ src/ui/commands/corgiCommand.test.ts (2 tests) 3ms
✓ src/ui/commands/authCommand.test.ts (2 tests) 4ms
✓ src/ui/commands/editorCommand.test.ts (2 tests) 4ms
✓ src/config/extensions/variables.test.ts (1 test) 2ms
✓ src/ui/components/LoopDetectionConfirmation.test.tsx (2 tests) 32ms
✓ src/utils/processUtils.test.ts (1 test) 2ms
✓ src/commands/extensions/uninstall.test.ts (1 test) 6ms
Test Files 174 passed (174)
Tests 2665 passed | 8 skipped (2673)
Start at 20:00:06
Duration 37.19s (transform 4.27s, setup 1.46s, collect 128.58s, tests 24.82s, environment 44.95s, prepare 10.24s)
JUNIT report written to /Users/owenchristie/gem-cli/packages/cli/junit.xml
% Coverage report from v8
> @google/[email protected] test:ci
> vitest run
RUN v3.2.4 /Users/owenchristie/gem-cli/packages/core
Coverage enabled with v8
✓ src/tools/ripGrep.test.ts (45 tests) 318ms
✓ src/code_assist/oauth2.test.ts (24 tests) 75ms
✓ src/telemetry/loggers.test.ts (30 tests) 35ms
✓ src/core/client.test.ts (66 tests) 147ms
✓ src/core/coreToolScheduler.test.ts (30 tests) 269ms
✓ src/mcp/oauth-provider.test.ts (21 tests) 164ms
✓ src/config/config.test.ts (68 tests) 40ms
✓ src/utils/fileUtils.test.ts (65 tests) 109ms
✓ src/tools/edit.test.ts (54 tests) 136ms
✓ src/utils/memoryImportProcessor.test.ts (25 tests) 25ms
✓ src/services/shellExecutionService.test.ts (40 tests) 339ms
✓ src/tools/mcp-tool.test.ts (42 tests) 83ms
✓ src/tools/write-file.test.ts (30 tests) 143ms
✓ src/telemetry/clearcut-logger/clearcut-logger.test.ts (35 tests) 95ms
✓ src/utils/editCorrector.test.ts (40 tests) 17ms
✓ src/core/subagent.test.ts (19 tests) 28ms
✓ src/tools/read-many-files.test.ts (31 tests) 272ms
✓ src/core/logger.test.ts (38 tests) 116ms
✓ src/ide/ide-client.test.ts (23 tests) 28ms
✓ src/telemetry/metrics.test.ts (55 tests) 2566ms
✓ src/services/loopDetectionService.test.ts (37 tests) 145ms
✓ src/agents/executor.test.ts (15 tests) 19ms
✓ src/core/turn.test.ts (19 tests) 11ms
✓ src/policy/policy-engine.test.ts (28 tests) 7ms
✓ src/tools/smart-edit.test.ts (24 tests) 79ms
✓ src/telemetry/memory-monitor.test.ts (31 tests) 22ms
✓ src/utils/filesearch/fileSearch.test.ts (27 tests) 139ms
✓ src/utils/editor.test.ts (113 tests) 26ms
✓ src/telemetry/uiTelemetry.test.ts (19 tests) 7ms
✓ src/core/prompts.test.ts (40 tests) 17ms
✓ src/utils/memoryDiscovery.test.ts (16 tests) 106ms
✓ src/tools/mcp-client.test.ts (30 tests) 132ms
✓ src/utils/systemEncoding.test.ts (38 tests) 13ms
✓ src/tools/read-file.test.ts (28 tests) 126ms
✓ src/tools/memoryTool.test.ts (19 tests) 32ms
(node:96178) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 11 abort listeners added to [AbortSignal]. MaxListeners is 10. Use events.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:96203) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 11 abort listeners added to [AbortSignal]. MaxListeners is 10. Use events.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
✓ src/core/baseLlmClient.test.ts (21 tests) 10ms
✓ src/utils/workspaceContext.test.ts (34 tests) 43ms
✓ src/tools/grep.test.ts (24 tests) 188ms
✓ src/mcp/oauth-token-storage.test.ts (28 tests) 13ms
✓ src/utils/filesearch/crawler.test.ts (18 tests) 76ms
✓ src/code_assist/converter.test.ts (22 tests) 4ms
✓ src/utils/pathReader.test.ts (16 tests) 46ms
✓ src/utils/shell-utils.test.ts (50 tests) 7ms
✓ src/ide/ideContext.test.ts (23 tests) 7ms
✓ src/telemetry/gcp-exporters.test.ts (18 tests) 36ms
✓ src/tools/ls.test.ts (22 tests) 107ms
✓ src/tools/shell.test.ts (21 tests) 62ms
✓ src/tools/tool-registry.test.ts (9 tests) 29ms
✓ src/tools/glob.test.ts (38 tests) 1899ms
✓ src/utils/userAccountManager.test.ts (23 tests) 34ms
✓ src/mcp/token-storage/keychain-token-storage.test.ts (24 tests) 73ms
✓ src/utils/ignorePatterns.test.ts (28 tests) 8ms
✓ src/utils/retry.test.ts (18 tests) 32ms
✓ src/utils/getFolderStructure.test.ts (15 tests) 107ms
✓ src/utils/partUtils.test.ts (37 tests) 5ms
✓ src/core/geminiChat.test.ts (29 tests) 5552ms
✓ GeminiChat > sendMessageStream > should fail if the stream ends with an empty part and has no finishReason 507ms
✓ GeminiChat > sendMessageStream > should throw an error when a tool call is followed by an empty stream response 502ms
✓ GeminiChat > sendMessageStream > should throw InvalidStreamError when no tool call and no finish reason 501ms
✓ GeminiChat > sendMessageStream > should throw InvalidStreamError when no tool call and empty response text 501ms
✓ GeminiChat > sendMessageStream with retries > should yield a RETRY event when an invalid stream is encountered 503ms
✓ GeminiChat > sendMessageStream with retries > should retry on invalid content, succeed, and report metrics 504ms
✓ GeminiChat > sendMessageStream with retries > should set temperature to 1 on retry 503ms
✓ GeminiChat > sendMessageStream with retries > should fail after all retries on persistent invalid content and report metrics 502ms
✓ GeminiChat > should correctly retry and append to an existing history mid-conversation 503ms
✓ GeminiChat > should retry if the model returns a completely empty stream (no chunks) 502ms
✓ GeminiChat > should discard valid partial content from a failed attempt upon retry 503ms
✓ src/tools/modifiable-tool.test.ts (11 tests) 39ms
✓ src/mcp/oauth-utils.test.ts (21 tests) 6ms
✓ src/utils/generateContentResponseUtilities.test.ts (29 tests) 4ms
✓ src/utils/paths.test.ts (55 tests) 6ms
✓ src/utils/googleErrors.test.ts (9 tests) 5ms
✓ src/output/json-formatter.test.ts (15 tests) 6ms
✓ src/utils/llm-edit-fixer.test.ts (7 tests) 6ms
✓ src/services/gitService.test.ts (14 tests) 110ms
✓ src/services/chatRecordingService.test.ts (10 tests) 8ms
✓ src/mcp/token-storage/file-token-storage.test.ts (16 tests) 536ms
✓ src/telemetry/rate-limiter.test.ts (24 tests) 8ms
✓ src/mcp/token-storage/hybrid-token-storage.test.ts (11 tests) 9ms
✓ src/core/nonInteractiveToolExecutor.test.ts (8 tests) 8ms
✓ src/agents/invocation.test.ts (11 tests) 9ms
✓ src/tools/message-bus-integration.test.ts (9 tests) 42ms
✓ src/routing/strategies/classifierStrategy.test.ts (8 tests) 8ms
✓ src/utils/gitIgnoreParser.test.ts (20 tests) 67ms
✓ src/telemetry/sdk.test.ts (9 tests) 15ms
✓ src/utils/secure-browser-launcher.test.ts (14 tests) 11ms
✓ src/utils/bfsFileSearch.test.ts (11 tests) 89ms
✓ src/confirmation-bus/message-bus.test.ts (10 tests) 7ms
✓ src/code_assist/oauth-credential-storage.test.ts (12 tests) 15ms
✓ src/utils/errorReporting.test.ts (6 tests) 33ms
✓ src/utils/nextSpeakerChecker.test.ts (10 tests) 15ms
✓ src/telemetry/high-water-mark-tracker.test.ts (18 tests) 5ms
✓ src/services/fileDiscoveryService.test.ts (13 tests) 40ms
✓ src/utils/environmentContext.test.ts (8 tests) 22ms
✓ src/utils/googleQuotaErrors.test.ts (10 tests) 4ms
✓ src/ide/process-utils.test.ts (7 tests) 11ms
✓ src/tools/web-search.test.ts (9 tests) 62ms
✓ src/utils/terminalSerializer.test.ts (16 tests) 62ms
✓ src/tools/tools.test.ts (11 tests) 7ms
✓ src/tools/web-fetch.test.ts (9 tests) 55ms
✓ src/code_assist/server.test.ts (8 tests) 20ms
✓ src/routing/strategies/compositeStrategy.test.ts (6 tests) 6ms
✓ src/mcp/token-storage/base-token-storage.test.ts (12 tests) 4ms
✓ src/utils/summarizer.test.ts (8 tests) 32ms
✓ src/fallback/handler.test.ts (10 tests) 6ms
✓ src/code_assist/setup.test.ts (7 tests) 4ms
✓ src/ide/ide-installer.test.ts (11 tests) 8ms
✓ src/tools/diffOptions.test.ts (9 tests) 4ms
✓ src/mcp/sa-impersonation-provider.test.ts (8 tests) 12ms
✓ src/utils/filesearch/ignore.test.ts (12 tests) 26ms
✓ src/agents/registry.test.ts (12 tests) 7ms
✓ src/agents/schema-utils.test.ts (6 tests) 3ms
✓ src/telemetry/activity-detector.test.ts (13 tests) 6ms
✓ src/core/contentGenerator.test.ts (8 tests) 6ms
✓ src/agents/utils.test.ts (12 tests) 3ms
✓ src/ide/detect-ide.test.ts (14 tests) 3ms
✓ src/telemetry/config.test.ts (11 tests) 5ms
✓ src/tools/write-todos.test.ts (9 tests) 22ms
✓ src/utils/filesearch/crawlCache.test.ts (9 tests) 7ms
✓ src/utils/pathCorrector.test.ts (4 tests) 20ms
✓ src/utils/errorParsing.test.ts (10 tests) 7ms
✓ src/agents/subagent-tool-wrapper.test.ts (7 tests) 34ms
✓ src/mcp/google-auth-provider.test.ts (8 tests) 9ms
✓ src/utils/installationManager.test.ts (4 tests) 5ms
✓ src/routing/modelRouterService.test.ts (5 tests) 15ms
✓ src/utils/textUtils.test.ts (12 tests) 2ms
✓ src/config/models.test.ts (9 tests) 3ms
✓ src/utils/schemaValidator.test.ts (7 tests) 35ms
✓ src/routing/strategies/fallbackStrategy.test.ts (4 tests) 2ms
✓ src/utils/thoughtUtils.test.ts (11 tests) 8ms
✓ src/utils/safeJsonStringify.test.ts (8 tests) 2ms
✓ src/utils/geminiIgnoreParser.test.ts (2 tests) 12ms
✓ src/utils/flashFallback.test.ts (4 tests) 9ms
✓ src/config/storage.test.ts (6 tests) 7ms
✓ src/routing/strategies/overrideStrategy.test.ts (3 tests) 4ms
✓ src/utils/filesearch/result-cache.test.ts (3 tests) 3ms
✓ src/services/fileSystemService.test.ts (3 tests) 7ms
✓ src/telemetry/telemetry-utils.test.ts (6 tests) 2ms
✓ src/routing/strategies/defaultStrategy.test.ts (1 test) 2ms
✓ src/utils/formatters.test.ts (4 tests) 2ms
✓ src/index.test.ts (1 test) 2ms
✓ src/config/flashFallback.test.ts (6 tests) 7ms
✓ src/utils/tool-utils.test.ts (8 tests) 4ms
✓ src/tools/mcp-client-manager.test.ts (2 tests) 2ms
✓ src/telemetry/telemetry.test.ts (2 tests) 7ms
Test Files 134 passed (134)
Tests 2559 passed (2559)
Start at 20:00:44
Duration 14.68s (transform 2.86s, setup 445ms, collect 45.82s, tests 15.95s, environment 17ms, prepare 6.99s)
JUNIT report written to /Users/owenchristie/gem-cli/packages/core/junit.xml
% Coverage report from v8
> [email protected] test:ci
> vitest run --coverage
RUN v3.2.4 /Users/owenchristie/gem-cli/packages/vscode-ide-companion
Coverage enabled with v8
✓ src/open-files-manager.test.ts (17 tests) 13ms
✓ src/extension.test.ts (11 tests) 40ms
✓ src/ide-server.test.ts (13 tests | 1 skipped) 58ms
Test Files 3 passed (3)
Tests 40 passed | 1 skipped (41)
Start at 20:00:59
Duration 420ms (transform 169ms, setup 0ms, collect 397ms, tests 111ms, environment 0ms, prepare 126ms)
% Coverage report from v8
--------------------------------|---------|----------|---------|---------|------------------------------------------------------------------------------------------------------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
--------------------------------|---------|----------|---------|---------|------------------------------------------------------------------------------------------------------------------
All files | 48 | 76.63 | 55.1 | 48 |
vscode-ide-companion | 0 | 0 | 0 | 0 |
esbuild.js | 0 | 0 | 0 | 0 | 1-69
vscode-ide-companion/scripts | 0 | 0 | 0 | 0 |
check-vscode-release.js | 0 | 0 | 0 | 0 | 1-99
generate-notices.js | 0 | 0 | 0 | 0 | 1-160
vscode-ide-companion/src | 61.57 | 79.2 | 57.77 | 61.57 |
diff-manager.ts | 23.38 | 80 | 25 | 23.38 | 21-22,25-26,29-31,34-35,38-39,65,72-75,81-130,136-163,169-188,194-214,219-228,237-238,241-266
extension.ts | 67.19 | 80 | 50 | 67.19 | 101-103,122-124,133-137,142-146,170,173,176-201,204-208,213-227
ide-server.ts | 66.19 | 74.46 | 68.75 | 66.19 | 92-94,97-111,193,198-201,212,214-251,268-284,288-320,330-331,367,374-375,377-382,411-413,429,436,460-463,472-489
open-files-manager.ts | 94.36 | 85.29 | 100 | 94.36 | 67-68,85,87-88,146-147,154
vscode-ide-companion/src/utils | 88.23 | 66.66 | 100 | 88.23 |
logger.ts | 88.23 | 66.66 | 100 | 88.23 | 21-22
--------------------------------|---------|----------|---------|---------|------------------------------------------------------------------------------------------------------------------
> @google/[email protected] test:scripts
> vitest run --config ./scripts/tests/vitest.config.ts
RUN v3.2.4 /Users/owenchristie/gem-cli
stderr | scripts/tests/get-release-version.test.js > getVersion > Advanced Scenarios > should ignore a deprecated version and use the next highest
Ignoring deprecated version: 0.9.0-nightly.20250917.deprecated
stderr | scripts/tests/get-release-version.test.js > getVersion > Advanced Scenarios > should auto-increment patch version if the calculated one already exists
Git tag v0.7.0 already exists.
Version 0.7.0 exists, incrementing.
stderr | scripts/tests/get-release-version.test.js > getVersion > Advanced Scenarios > should auto-increment preview number if the calculated one already exists
Version 0.8.0-preview.0 already exists on NPM.
Version 0.8.0-preview.0 exists, incrementing.
✓ scripts/tests/get-release-version.test.js (8 tests) 5ms
Warning: No valid GitHub run ID found, workflow links may not work correctly
Warning: No valid GitHub run ID found, workflow links may not work correctly
Warning: No valid GitHub run ID found, workflow links may not work correctly
Warning: No valid GitHub run ID found, workflow links may not work correctly
Warning: No valid GitHub run ID found, workflow links may not work correctly
Warning: No valid GitHub run ID found, workflow links may not work correctly
Warning: No valid GitHub run ID found, workflow links may not work correctly
Warning: No valid GitHub run ID found, workflow links may not work correctly
Warning: No valid GitHub run ID found, workflow links may not work correctly
Warning: No valid GitHub run ID found, workflow links may not work correctly
Warning: No valid GitHub run ID found, workflow links may not work correctly
Warning: No valid GitHub run ID found, workflow links may not work correctly
Warning: No valid GitHub run ID found, workflow links may not work correctly
✓ scripts/tests/patch-create-comment.test.js (15 tests) 546ms
Test Files 2 passed (2)
Tests 23 passed (23)
Start at 20:01:00
Duration 700ms (transform 47ms, setup 23ms, collect 64ms, tests 551ms, environment 0ms, prepare 70ms)
system report:
Model Name: iMac
Model Identifier: Mac16,2
Chip: Apple M4
Total Number of Cores: 8 (4 performance and 4 efficiency)
Memory: 16 GB
System Firmware Version: 13822.1.2
OS Loader Version: 13822.1.2
Dive Deeper
Reviewer Test Plan
Testing Matrix
| 🍏 | 🪟 | 🐧 | |
|---|---|---|---|
| npm run | x | ❓ | ❓ |
| npx | ❓ | ❓ | ❓ |
| Docker | ❓ | ❓ | ❓ |
| Podman | ❓ | - | - |
| Seatbelt | ❓ | - | - |
Linked issues / bugs
Fixes #11026