Skip to content

Migrate core render util to use xterm.js as part of the rendering loop.#19044

Open
jacob314 wants to merge 1 commit intomainfrom
branch_xterm_test
Open

Migrate core render util to use xterm.js as part of the rendering loop.#19044
jacob314 wants to merge 1 commit intomainfrom
branch_xterm_test

Conversation

@jacob314
Copy link
Contributor

@jacob314 jacob314 commented Feb 14, 2026

Summary

Switch all tests to xterm headless for snapshot rendering.

render.ts is the main file requiring real review. All other changes are minor snapshot churn due to switching renderers (new renderer always adds trailing newlines).

Test changes should just be mechanical code adding async and waiting for the renderer to be ready.

Diff is way smaller than it looks

Fixes #19045

It is possible we could have gotten away with not making these async but they will need to be async anyway in a bit when we update the ink renderer so didn't attempt to remove that.

@jacob314 jacob314 requested review from a team as code owners February 14, 2026 00:00
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @jacob314, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request undertakes a significant refactoring of the CLI's UI rendering infrastructure by replacing ink-testing-library with xterm.js. This migration aims to provide a more robust and controllable environment for UI rendering, particularly within testing contexts. The primary impact is a substantial update to the UI testing suite, ensuring that asynchronous UI updates are handled gracefully and reliably, leading to more stable and accurate test results.

Highlights

  • Core Rendering Utility Migration: The underlying rendering utility for the CLI has been migrated from ink-testing-library to xterm.js. This is a foundational change to how UI components are rendered and tested.
  • Enhanced UI Test Stability and Control: The migration introduces a new waitUntilReady() method in the test rendering utilities, ensuring that UI components are fully rendered and stable before assertions are made. This significantly improves the reliability and predictability of UI tests.
  • Standardized Asynchronous Test Patterns: Numerous UI tests across the codebase have been updated to adopt async/await patterns, incorporating await waitUntilReady() and act() wrappers to correctly handle asynchronous rendering cycles and component lifecycle events.
  • Improved waitFor Utility: The waitFor utility in test-utils/async.ts has been enhanced to support asynchronous assertions, allowing it to wait for promises to resolve within test conditions.
Changelog
  • package-lock.json
    • Removed ink-testing-library dependency.
    • Added @xterm/headless dependency.
  • package.json
    • Removed ink-testing-library dependency.
  • packages/cli/package.json
    • Removed ink-testing-library dependency.
    • Added @xterm/headless dependency.
  • packages/cli/src/config/extensions/github.test.ts
    • Updated mockImplementation to be asynchronous.
  • packages/cli/src/test-utils/async.ts
    • Modified waitFor utility to accept Promise<void> in its assertion function.
  • packages/cli/src/test-utils/render.test.tsx
    • Updated render and renderHook tests to use await waitUntilReady() and unmount().
    • Wrapped rerender calls and keypress simulations in act() for proper React testing behavior.
  • packages/cli/src/test-utils/render.tsx
    • Replaced ink-testing-library with ink (direct) and @xterm/headless for terminal emulation.
    • Introduced XtermStdout, XtermStderr, and XtermStdin classes to interface with xterm.js.
    • Added waitUntilReady() method to RenderInstance for asynchronous rendering synchronization in tests.
    • Implemented a global cleanup function for Ink instances.
  • packages/cli/src/ui/App.test.tsx
    • Updated all renderWithProviders calls to be asynchronous and include await waitUntilReady() and unmount().
  • packages/cli/src/ui/AppContainer.test.tsx
    • Updated cleanup import path.
  • packages/cli/src/ui/IdeIntegrationNudge.test.tsx
    • Removed delay utility function.
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
    • Wrapped stdin.write calls in act() for correct event handling.
  • packages/cli/src/ui/snapshots/App.test.tsx.snap
    • Updated snapshots to reflect changes in rendering output.
  • packages/cli/src/ui/auth/ApiAuthDialog.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/auth/AuthDialog.test.tsx
    • Added act import.
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
    • Wrapped handleAuthSelect calls in act().
  • packages/cli/src/ui/auth/AuthInProgress.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
    • Wrapped keypress handler calls in act().
  • packages/cli/src/ui/auth/LoginWithGoogleRestartDialog.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/auth/snapshots/ApiAuthDialog.test.tsx.snap
    • Updated snapshots to reflect rendering changes.
  • packages/cli/src/ui/auth/snapshots/AuthDialog.test.tsx.snap
    • Updated snapshots to reflect rendering changes.
  • packages/cli/src/ui/auth/snapshots/LoginWithGoogleRestartDialog.test.tsx.snap
    • Updated snapshots to reflect rendering changes.
  • packages/cli/src/ui/commands/extensionsCommand.test.ts
    • Updated mock implementation for mockDispatchExtensionState to be asynchronous.
  • packages/cli/src/ui/components/AboutBox.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/AdminSettingsChangedDialog.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady().
  • packages/cli/src/ui/components/AgentConfigDialog.test.tsx
    • Updated renderDialog helper to be asynchronous, incorporating await waitUntilReady() and unmount().
    • Wrapped keypress simulations in act().
  • packages/cli/src/ui/components/AlternateBufferQuittingDisplay.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/AnsiOutput.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/AppHeader.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/ApprovalModeIndicator.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/AskUserDialog.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady().
    • Wrapped keypress simulations in act().
  • packages/cli/src/ui/components/BackgroundShellDisplay.test.tsx
    • Removed delay utility function.
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
    • Wrapped keypress simulations in act().
  • packages/cli/src/ui/components/Banner.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/Checklist.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady().
  • packages/cli/src/ui/components/ChecklistItem.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady().
  • packages/cli/src/ui/components/CliSpinner.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/Composer.test.tsx
    • Updated renderComposer helper to be asynchronous and all calls to use await renderComposer().
  • packages/cli/src/ui/components/ConfigInitDisplay.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady().
  • packages/cli/src/ui/components/ConsentPrompt.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady().
  • packages/cli/src/ui/components/ConsoleSummaryDisplay.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/ContextSummaryDisplay.test.tsx
    • Updated renderWithWidth helper to be asynchronous and all calls to use await renderWithWidth().
  • packages/cli/src/ui/components/ContextUsageDisplay.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/CopyModeWarning.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/DebugProfiler.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
    • Wrapped event emissions in act().
  • packages/cli/src/ui/components/DetailedMessagesDisplay.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/DialogManager.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/EditorSettingsDialog.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
    • Wrapped keypress simulations in act().
  • packages/cli/src/ui/components/ExitWarning.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/FolderTrustDialog.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
    • Wrapped keypress simulations in act().
  • packages/cli/src/ui/components/Footer.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/GeminiRespondingSpinner.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/GradientRegression.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/Help.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/HistoryItemDisplay.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/HookStatusDisplay.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/IdeTrustChangeDialog.test.tsx
    • Added act import.
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
    • Wrapped keypress simulations in act().
  • packages/cli/src/ui/components/InputPrompt.test.tsx
    • Adjusted snapshot assertion for lastFrame().trim().split('\n') to handle xterm.js output.
    • Updated simulateClick calls to remove the stdin argument, aligning with the new render utility signature.
  • packages/cli/src/ui/components/LoadingIndicator.test.tsx
    • Updated renderWithContext to use renderWithProviders for consistency.
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
    • Introduced a TestWrapper component to manage state transitions in tests.
  • packages/cli/src/ui/components/LogoutConfirmationDialog.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
    • Wrapped keypress simulations in act().
  • packages/cli/src/ui/components/LoopDetectionConfirmation.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/MainContent.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/MemoryUsageDisplay.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/ModelDialog.test.tsx
    • Updated renderComponent helper to be asynchronous and all calls to use await renderComponent().
    • Wrapped keypress simulations in act().
  • packages/cli/src/ui/components/ModelStatsDisplay.test.tsx
    • Updated renderWithMockedStats helper to be asynchronous and all calls to use await renderWithMockedStats().
    • Added unmount() calls to tests.
  • packages/cli/src/ui/components/MultiFolderTrustDialog.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
    • Wrapped keypress simulations in act().
  • packages/cli/src/ui/components/NewAgentsNotification.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/Notifications.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/PermissionsModifyTrustDialog.test.tsx
    • Added act import.
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
    • Wrapped keypress simulations in act().
  • packages/cli/src/ui/components/QueuedMessageDisplay.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/QuittingDisplay.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/QuotaDisplay.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/RawMarkdownIndicator.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/RewindConfirmation.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
    • Wrapped keypress simulations in act().
  • packages/cli/src/ui/components/RewindViewer.test.tsx
    • Added vi.useFakeTimers() and vi.useRealTimers() to manage timers in tests.
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
    • Wrapped keypress simulations in act().
  • packages/cli/src/ui/components/RewindViewer.tsx
    • Wrapped the asynchronous onRewind call within onConfirm in a void (async () => { ... })() block to handle its asynchronous nature in a non-async context.
  • packages/cli/src/ui/components/SessionBrowser.test.tsx
    • Updated render calls to be asynchronous and include await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/SessionRetentionWarningDialog.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady().
  • packages/cli/src/ui/components/SessionSummaryDisplay.test.tsx
    • Updated renderWithMockedStats helper to be asynchronous and all calls to use await renderWithMockedStats().
    • Added unmount() calls to tests.
  • packages/cli/src/ui/components/SettingsDialog.test.tsx
    • Updated renderDialog helper to be asynchronous and all calls to use await renderDialog().
    • Wrapped keypress simulations in act().
  • packages/cli/src/ui/components/ShellInputPrompt.test.tsx
    • Added act import.
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
    • Wrapped keypress simulations in act().
  • packages/cli/src/ui/components/ShellModeIndicator.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/ShortcutsHelp.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/ShowMoreLines.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/StatsDisplay.test.tsx
    • Updated renderWithMockedStats helper to be asynchronous and all calls to use await renderWithMockedStats().
    • Added unmount() calls to tests.
  • packages/cli/src/ui/components/StickyHeader.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/SuggestionsDisplay.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady().
  • packages/cli/src/ui/components/Table.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady().
  • packages/cli/src/ui/components/ThemeDialog.test.tsx
    • Updated renderComponent helper to be asynchronous and all calls to use await renderComponent().
    • Wrapped keypress simulations in act().
  • packages/cli/src/ui/components/ThemedGradient.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/Tips.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/ToastDisplay.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady().
  • packages/cli/src/ui/components/ToolConfirmationQueue.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/ToolStatsDisplay.test.tsx
    • Updated renderWithMockedStats helper to be asynchronous and all calls to use await renderWithMockedStats().
    • Added unmount() calls to tests.
  • packages/cli/src/ui/components/UpdateNotification.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/UserIdentity.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/ValidationDialog.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
    • Wrapped keypress simulations in act().
  • packages/cli/src/ui/components/messages/CompressionMessage.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/messages/ErrorMessage.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/messages/GeminiMessage.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/messages/InfoMessage.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/messages/RedirectionConfirmation.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/messages/ShellToolMessage.test.tsx
    • Updated renderShell helper to remove stdin argument from simulateClick calls, aligning with the new render utility signature.
  • packages/cli/src/ui/components/messages/ThinkingMessage.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/messages/Todo.test.tsx
    • Updated renderWithUiState helper to be asynchronous and all calls to use await renderWithUiState().
    • Added unmount() calls to tests.
  • packages/cli/src/ui/components/messages/ToolConfirmationMessage.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/messages/ToolGroupMessage.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/messages/ToolMessage.test.tsx
    • Added vi.useFakeTimers() and vi.useRealTimers() for timer management in tests.
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/messages/ToolMessageFocusHint.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
    • Wrapped vi.advanceTimersByTime calls in act().
  • packages/cli/src/ui/components/messages/ToolMessageRawMarkdown.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/messages/ToolResultDisplay.test.tsx
    • Updated render calls to renderWithProviders and all tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/messages/ToolStickyHeaderRegression.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/messages/UserMessage.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/messages/WarningMessage.test.tsx
    • Updated tests to be asynchronous, incorporating await waitUntilReady() and unmount().
  • packages/cli/src/ui/components/shared/BaseSelectionList.test.tsx
    • Updated renderComponent helper to be asynchronous and all calls to use await renderComponent().
    • Added unmount() calls to tests.
  • packages/cli/src/ui/components/shared/BaseSettingsDialog.test.tsx
    • Updated renderDialog helper to be asynchronous and all calls to use await renderDialog().
    • Wrapped keypress simulations in act().
  • packages/cli/src/ui/components/shared/DescriptiveRadioButtonSelect.test.tsx
    • Updated renderComponent helper to be asynchronous and all calls to use await renderComponent().
    • Added unmount() calls to tests.
Activity
  • The pull request was created by jacob314.
  • No specific human activity (comments, reviews) has been recorded on this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request is a significant and well-executed migration of the core rendering utility for tests from ink-testing-library to a custom solution using xterm.js. This change provides a more accurate terminal emulation for testing purposes. The new render utility and its associated helper functions like waitUntilReady are well-designed and have been consistently applied across the entire test suite. The removal of setTimeout-based delays in tests is a major improvement for test stability and speed. The code quality is high, and the changes are thorough and consistent. I have no critical or high-severity issues to report. This is an excellent piece of work.

stderr: stderr as unknown as NodeJS.WriteStream,
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
stdin: stdin as unknown as NodeJS.ReadStream,
debug: false,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

previously we used debug: true which was needed for the hacks to get the last frame without going through a real ink pipeline.

@jacob314 jacob314 enabled auto-merge February 14, 2026 00:18
@github-actions
Copy link

Size Change: +58 B (0%)

Total Size: 24.4 MB

ℹ️ View Unchanged
Filename Size Change
./bundle/gemini.js 24.4 MB +58 B (0%)
./bundle/sandbox-macos-permissive-open.sb 890 B 0 B
./bundle/sandbox-macos-permissive-proxied.sb 1.31 kB 0 B
./bundle/sandbox-macos-restrictive-open.sb 3.36 kB 0 B
./bundle/sandbox-macos-restrictive-proxied.sb 3.56 kB 0 B
./bundle/sandbox-macos-strict-open.sb 4.82 kB 0 B
./bundle/sandbox-macos-strict-proxied.sb 5.02 kB 0 B

compressed-size-action

@gemini-cli gemini-cli bot added the area/platform Issues related to Build infra, Release mgmt, Testing, Eval infra, Capacity, Quota mgmt label Feb 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/platform Issues related to Build infra, Release mgmt, Testing, Eval infra, Capacity, Quota mgmt

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Switch to xterm.js headless based renderer for all unittests

2 participants