Commit Graph
19591 Commits
Author SHA1 Message Date
Neil 88fa7ed2a9 feat(onboarding): install Antigravity in an explicit setup terminal (#39172)
* feat(onboarding): install Antigravity in an explicit setup terminal

* fix(onboarding): address review on Antigravity installer dialog
2026-11-06 13:30:03 -08:00
Neil 77214beaae test(agent-hooks): warm encoded PowerShell before timing Windows payload delivery (#39171)
The payload-delivery suite started its first Windows PowerShell 5.1 hook
launches at the same moment as the runner's cold first powershell.exe start,
with only a 15s per-launch bound. The stdin-lifecycle suite already absorbed
that cost in a warm-up; share it so both suites pay cold start outside the
per-hook hang bound.
2026-11-06 13:17:25 -08:00
Neil c85d633837 test: fail unit tests that run a real agent CLI from PATH (#38961)
* test: stop unit tests from running the developer's real agent CLIs

A live relay test reached the host's real `claude --version` through the
inherited PATH. On a machine whose claude wrapper never exits, each run left
an orphaned loop behind (14 were found on one host, running for days).

- Add a unit-test setup guard that shadows agent CLI names on PATH with
  stand-ins that fail the test which ran them.
- Give the live relay test its own claude/codex stubs.
- Kill the whole process tree when the WSL guest's version probe times out.

* test: keep structured-session tests off the real codex CLI

These hosts get a scripted transport, but the at-rest `/` command read
spawns the resolved codex command directly, so on a machine with codex
installed each run started a real `codex app-server`. Point them at a
missing binary, as on CI.

* test: isolate agent discovery in session fixtures
2026-11-06 12:56:01 -08:00
Neil f0bfce8fce fix(automations): accept Antigravity model and effort extra arguments (#39161)
Antigravity automations refused --extra-agent-args, so unattended agy jobs
could only use the model and effort from agy's global settings.json. Allow
--model and --effort through the existing allowlist; permission, mode, and
other flags stay refused.

Part of #35234 (STA-12678).
2026-11-06 12:55:54 -08:00
Jinjing 1cd9ed1355 fix: restore delete action in session list (#39163) 2026-11-06 12:55:14 -08:00
Neil c8e06e5e30 fix(antigravity): wait for agy's composer before pasting continuation context (#38939)
* fix(antigravity): wait for agy's composer before pasting continuation context

The renderer's paste gate armed its 1.5s quiet window on any bracketed-paste enable, including the launching shell's own prompt, so a slow agy start received the handoff in cooked mode before its TUI ran. Wait for agy's '? for shortcuts' composer row while agy holds bracketed paste instead.

* fix(antigravity): accept agy's composer rows when a custom statusLine hides the hint

A command statusLine replaces agy's '? for shortcuts' row, so Continue in New Session waited the full 20s and pasted blind, and a CLI launch prompt burned 20s of its 60s. Also accept the rule / '>' / rule composer rows (the layout #38930 reads), still anchored to agy's own 2004h and revoked by the shell's 2004l. Checked against agy 1.5.2 captures: custom statusLine and default layouts fire; the trust dialog and signed-out startup do not.

* fix(antigravity): offer back pre-ready typed text the composer wait drops; move scanner tests

The agy composer wait has no quiet fallback, so a slow start now hits the
20s timeout and drops held type-ahead. The drop notice now carries a Copy
action with the typed text, and still shows when the user switched
worktrees, so it is never lost silently.

Move the composer-rows scanner cases into draft-paste-ready-scanner.test.ts
since main removed antigravity-readiness-transcripts.test.ts (#38973).

* chore(plugins): regenerate declarative testing bundle for antigravity config change
2026-11-06 12:54:24 -08:00
Neil a20e577dc9 feat(antigravity): manage accounts in the selected WSL distro (#39007)
Antigravity Accounts rejected a WSL account location outright. agy inside
WSL keeps its login in its file store (~/.gemini/antigravity-cli/
antigravity-oauth-token; it detects WSL the same way
isAntigravityFileStorageHost does), so save/select/remove now work there:

- A WSL credential backend reads and writes that file through runWslProcess
  in the selected distro (default resolved via resolveWslDefaultDistro). It
  checks the distro is running before every guest command and never starts a
  stopped one. Writes are a compare-and-swap inside the guest (sha256 of the
  expected file), go through a private temp file and rename, and pass the
  credential on stdin rather than the command line.
- runWslProcess accepts stdin input for argv-delivered commands.
- Each distro gets its own encrypted vault, so accounts never cross distros
  or the Windows host.
- Accounts "Refresh usage" is enabled for WSL now that usage reads the
  selected runtime (#38985), and rejects a reading tagged with another
  runtime's provenance.

Fixes #25847
Linear: STA-9624
2026-11-06 12:54:20 -08:00
Jinwoo Hong 01f65352d8 fix(automations): run lists send byte-bounded previews; Run Details reads one full row (#38218)
* fix(automations): run lists send byte-bounded previews; Run Details reads one full row

* fix(automations): retry a failed full run read on the next history read

* fix(automations): show a full-output read failure with Retry in Run Details
2026-11-06 15:49:45 -05:00
Jinwoo Hong 16f2d38acb fix(automations): Run now returns the saved pending row; launcher parity (#38217)
* fix(automations): Run now returns the saved pending row; quiet, titled, retained run terminals

Run now answers with the durable pending row instead of waiting behind
the automation's lane; one detached handler records a launch failure.
Existing-workspace launches no longer surface their owner, a new
workspace's startup tab carries the run title, and finished-run cleanup
keeps a terminal a user opened after its process started.

* fix(automations): keep launched runs and user-opened run terminals intact

A failed flush after a launch no longer rewrites a dispatched run as a launch failure.
A user tab open marks the pane activation shows, read after any spawn it starts.

* fix(automations): own launch-failure recording in the service; quiet pending pane notice on mobile
2026-11-06 15:46:47 -05:00
Brennan Benson 969c5ddd3a Support native Plan mode in chat (#38286)
* Add session Build and Plan choices to native chat

* Refresh planning choices across connected composers

* Give composer catalog tests a complete transport fixture

* Preserve planning choices through fresh turns and older hosts

* Type planning delivery fixture choices explicitly

* Honor mode capability for retained queued command picks

* Update existing native mode contract expectations

* Keep proposed plans visible in completed chat turns

* Group chat mode with permissions and goal controls

* Keep chat composer controls accessible in narrow panes

* Preserve composer overflow ownership and editor focus

* Complete composer localization catalog and subscription checks

* Keep chat composer controls contained in narrow panes

* Use the button spacing for compact Save

* Place chat mode immediately before Goal

* Restore Plan status test dependencies after main sync

* Show an exit pill only while chat Plan mode is active

* Remove obsolete composer tooltip translations

* Remove unused Build toggle catalog entries

* Apply Plan commands immediately from composer picks

* Preserve picked skill origin in composer admission

* Supply phone platform to composer regression fixture

* Preserve mode picks until their writer admits them

* Narrow the phone mode command before its draft transform

* Document the option fixture mutation shape

* Match phone Plan controls to the composer mode pills

* Assert optimistic mode feedback in the phone fixture

* Retain the phone mode pick recovery regression proof

* Use the relocated observation imports after the main merge

* Restore the composer IME module import after merging

* Read the queue assertion helper from its relocated owner

* Point the mode fixture at the relocated selection controller

* Register the phone Plan pill localization keys
2026-11-06 12:42:48 -08:00
Jinwoo Hong 60834fb1b6 fix(mobile): a failed page remounts instead of re-downloading; deadlines count only foreground time (#38868)
* fix(mobile): a failed page remounts instead of re-downloading; deadlines count only foreground time

Page deadlines now pause in the background and restart on return, so React Native firing overdue timers on resume no longer reads as a page failure. A failed document remounts the same files once, then shows the failure screen; it never deletes and re-downloads on its own. Try again after a page failure or an unreadable generation deletes the host cache first, so it downloads fresh. Replaces #34550 without its file-size check.

* fix(mobile): drop reports a remounted page's retired view already queued

A failed page remounts at once, minting the replacement's session before
React commits it. A fault or ready the old view had already queued then
landed on the replacement: a second fault showed the failure screen
before the new page loaded, and a late ready marked it ready and
cancelled its load deadline. Each report now carries the session of the
view that rendered it and is dropped once that view is retired.
2026-11-06 15:31:57 -05:00
Neil 10b8666c45 refactor(terminal): organize rendering and parked-view owners (#39146) 2026-11-06 12:11:27 -08:00
Brennan Benson bfa43ba82a ci(e2e): drop the dictation route to a deleted spec (#39149)
#38014 deleted tests/e2e/voice-microphone-selection.spec.ts but the feature-area
route still selects it, so every PR touching dictation or src/main/speech fails
'changed e2e specs' with 'No such file or directory'.
2026-11-06 19:48:21 +00:00
Brennan Bensonandalexcastgonz 48476a8055 fix(gitlab): paginate pipeline jobs and bridges past 100 items (#39046)
* fix(gitlab): paginate pipeline jobs and bridges past 100 items

The Checks panel fetched one 100-item page of a pipeline's jobs and
bridges, so larger pipelines (and expanded child pipelines) silently lost
the rest. Move the header-aware page walker used for labels and members
into its own module and use it for pipeline jobs and bridges too.

Fixes STA-13623

Co-authored-by: alexcastgonz <82875882+pcbeingused333@users.noreply.github.com>

* fix(gitlab): follow every advertised page and keep fetched pages on a later failure

Review repairs for #39046: follow advancing x-next-page headers without a
page cap (the cap now bounds only guessed pages for missing or unusable
headers), keep rows already fetched when a later page fails, and stop
bridge paging once the parent job list fails.

* fix(gitlab): fail the details read on an incomplete page walk

A later-page failure now fails the MR details read, so Checks and the
dialog keep the jobs they last showed and report the failure, instead of
replacing a complete list with a prefix. Forbidden child pipelines (first
page refused) stay tolerated. Paging also stops on empty pages and
rejects page numbers past the safe-integer range so it always ends.

* fix(gitlab): treat exhausted page guesses as incomplete and translate the dialog load error

* fix(gitlab): follow only the consecutive next page and name the dialog load-error key

A next-page header that skips ahead or carries trailing text is now
treated like a missing header, so no page is skipped. The dialog's
load-error message uses an intent-named translation key.

---------

Co-authored-by: alexcastgonz <82875882+pcbeingused333@users.noreply.github.com>
2026-11-06 11:46:20 -08:00
Brennan Benson 586ba88b1a test(acp): point the restored-model test at the moved host test fixtures (#39144) 2026-11-06 11:45:32 -08:00
Brennan Benson d0a3190b86 Import Codex command history the way the live chat shows it (#39066)
* Import canonical Codex execution history

* Fix Codex history import lint warnings

* Preserve Codex imported prompt content and item lifecycle

* Preserve Codex root order after history fact eviction

* Order imported Codex turns by recorded chronology

* Preserve retained Codex lifecycle and history row placement
2026-11-06 11:44:32 -08:00
Neil 2462e9cac4 refactor(renderer): organize terminal PTY transport owners (#39134)
* refactor(renderer): organize terminal PTY transport owners

* test(terminal): mock concrete PTY shutdown owner
2026-11-06 11:36:05 -08:00
Jinjing a5ca71c3ba fix(sidebar): include Pinned in collapse all projects (#39145)
* fix(sidebar): include Pinned in collapse all projects

* fix(sidebar): keep pinned toggles working outside project grouping
2026-11-06 11:31:29 -08:00
Brennan Benson d2637d1bf9 Group turn diffs and opened PRs under Chat UI › Turn activity (#39127)
* feat(native-chat): group turn diffs and opened PRs under Settings › Chat UI › Turn activity

Both Hide buttons now share one toast naming what Orca stops showing, with a
link to the new Turn activity section.

* fix(native-chat): say where to turn a card kind off when Hide can't save
2026-11-06 11:29:41 -08:00
Kelvin Amoaba 937ff5fea6 fix(dictation): hold-to-dictate keeps what you said when settings change or the window loses focus (#39132)
* fix(dictation): keep a held dictation through settings changes and insert it on blur

* test(dictation): name the callback re-creation test after what it does

* fix(dictation): keep a held dictation when keybindings are refetched
2026-11-06 19:23:55 +00:00
Jinwoo HongandKelvin Amoaba a4c05a7b6b fix(test): point the ACP restored-model test at the moved host test helpers (#39140)
Co-authored-by: Kelvin Amoaba <97001695+AmoabaKelvin@users.noreply.github.com>
2026-11-06 14:21:17 -05:00
Neil 4941215ad1 refactor(terminal): organize input, clipboard, links and completion owners (#39113)
* refactor(terminal): group input, clipboard, links and completion owners

* test(terminal): mock concrete file action owners

* refactor(terminal): preserve file routing import admission

* test(acp): import host fixtures from defining owners

* ci: follow concrete journal item lifecycle owners
2026-11-06 11:12:24 -08:00
Brennan Benson 261533ae01 refactor(native-chat): split transcript slot selection under the line limit (#38978) 2026-11-06 11:05:30 -08:00
Brennan Benson d1ff924fba ci(mobile): point the recorded-transcript paths at the moved journal files (#39133)
#38638 moved journal-payload-bounds.ts and journal-reasoning-row.ts into
agent-session-journal/item-lifecycle/; #38956 then listed them at their old
paths, which fails the path-literal ratchet on every PR.
2026-11-06 11:04:34 -08:00
Neil 3228095e97 refactor(renderer): organize launch, workspace, browser and search owners (#38845)
* refactor(renderer): group launch, workspace, and browser owners

* fix(renderer): restore workspace name Enter focus to agent picker
2026-11-06 10:37:45 -08:00
Brennan Benson 8a3fefd026 Keep the saved model when reopening ACP chats (#38815)
* Preserve native model choice when restoring ACP chats

* Forward startup observations through the OpenCode connection

* Use fixed time in the connection regression fixture

* Complete the model-command fixture session identity
2026-11-06 10:35:12 -08:00
Brennan Benson 3161529031 fix(mobile): keep tall chat controls reachable above the keyboard (#38919)
* fix(mobile): let expanded queued messages yield to the keyboard

* fix(mobile): keep lower chat controls reachable above the keyboard

* fix(mobile): preserve lower chat focus and queue isolation

* fix(mobile): retain focus and scroll holds across chat interactions

* fix(mobile): preserve pending reading corrections while scrolling

* fix(mobile): preserve navigation through elastic scrolling

* test(mobile): type the lower region performance fixture

* test(mobile): narrow the node mock descriptor props

* fix(mobile): retain composer reveal through browser scrolling

* fix(mobile): distinguish pointer motion from observed navigation

* Preserve prompt arrival and intentional mobile reading positions

* test(mobile): provide complete prompt layout observations
2026-11-06 10:29:55 -08:00
buf0-bot[bot] 76e4769cf7 Update README downloads badge (#39125)
Co-authored-by: buf0-bot[bot] <252831055+buf0-bot[bot]@users.noreply.github.com>
2026-11-06 18:23:29 +00:00
Brennan Benson 7033f778e8 Keep native chat responsive after reading older messages (#38920)
* Bound native chat history after returning to latest

* Keep reader return evidence aligned with measured content

* Correct transcript regression fixtures and type annotations

* Preserve reader gestures through smaller row measurements

* Keep transcript regression tests focused on behavior

* Pin transcript passthrough and send admission expectations

* Preserve source correspondence in transcript projection reuse

* Keep reader intent separate from observed scroll geometry

* Preserve pending reader movement through no-op pins
2026-11-06 10:20:16 -08:00
Kelvin Amoaba 7fc3ca44e5 fix(dictation): keep the last word when you stop dictating (#39109)
* fix(dictation): keep the last word when dictation stops

Streaming models got no trailing audio before inputFinished, so the
encoder never saw the lookahead frames it needs to emit the final word.
Pad 0.66 s of silence at stop, as sherpa-onnx's own decoders do.

The renderer also tore the mic down the instant stop was pressed,
dropping the unread processor buffer. Keep capturing 250 ms after a
user stop before closing the stream.

* refactor(dictation): let the stop tail rely on the capture generation check

* refactor(dictation): keep the capture hook's stop-tail import on one line

* fix(dictation): leave a session an error tore down during the stop tail
2026-11-06 18:19:28 +00:00
Kelvin Amoaba fb095951cf perf(mobile): revalidate the "+" agent list without a login shell (#38958)
* perf(mobile): revalidate the "+" agent list without a login shell

The new-tab sheet forced preflight.refreshAgents on the first open of every
session screen, so switching worktrees spawned a login shell and reset the
desktop's captured environment each time. Track refreshed workspaces per
connection instead: later screens on the same connection send the cheap
preflight.detectAgents, and a reconnect refreshes once again.

* fix(mobile): spend the per-connection refresh only on a real refresh

* fix(mobile): count a refresh once it is sent

* refactor(mobile): keep a sent refresh counted
2026-11-06 18:19:15 +00:00
Kelvin Amoaba 25e6bc4be3 perf(runtime): cache OMP and Grok model discovery (#38977)
* perf(runtime): cache OMP and Grok model discovery

* perf(runtime): share a slow model probe for its whole timeout

* refactor(runtime): key and probe model discovery from one input
2026-11-06 18:18:53 +00:00
Kelvin Amoaba fb2277e72f fix(speech): post a streaming partial only when its text changes (#39108)
The streaming worker posted the current hypothesis after every 100 ms feed,
so desktop IPC and the phone's text version churned about ten times a second
with unchanged text. A 5 s clip now sends 11 partials instead of 42.
2026-11-06 18:18:34 +00:00
Kelvin Amoaba fff906dc65 refactor(agent-session): share the model-snapshot rules with the phone (#39023)
* refactor(agent-session): share the model-snapshot rules with the phone

Move the pure snapshot selection and record rules, the account settings that make held lists stale, and the saved-only preload decision into src/shared so the phone can seed its model picker from the same rules. The renderer keeps its per-host store and sync.

* refactor(agent-session): tidy the shared snapshot rules
2026-11-06 18:18:20 +00:00
Kelvin Amoaba 0fe0c51c97 perf(mobile): probe idle relay sessions (#39047)
* perf(mobile): probe idle relay sessions

* perf(mobile): name relay idle probe cost in the liveness gate

* fix(mobile): don't count relay probe misses behind a pending reply

* fix(mobile): count frames during a relay probe window as liveness

* refactor(mobile): share the probe-settled reset in the liveness watchdog

* fix(mobile): stop excusing relay probe misses after a request timeout of silence
2026-11-06 18:17:58 +00:00
Kelvin Amoaba f76e6eebda perf(mobile): stop live input and keyboard height re-rendering the whole session (#39032)
* perf(mobile): stop live input and keyboard height re-rendering the whole session

* refactor(mobile): drop the web soft-keyboard state hook nothing reads

* refactor(mobile): read the session keyboard lift from the shared occlusion hook

* test(mobile): give the command dock render probe a live input store
2026-11-06 18:17:31 +00:00
Kelvin Amoaba e28bcfea65 perf(mobile): keep the chat mounted behind its terminal (#39003)
* perf(mobile): keep the chat mounted behind its terminal

* test(mobile): assert only what the hidden chat shows

* refactor(mobile): skip the hidden chat by element identity

* test(mobile): find the chat view without a cast

* test(mobile): typecheck the overlay toggle test

* fix(mobile): release a chat's scroll hold when it shows again

* test(mobile): typecheck the hidden-list reading-place case
2026-11-06 18:17:08 +00:00
Kelvin Amoaba a0da1caafb perf(runtime): stat the device registry at most once a second (#38979)
* perf(runtime): stat the device registry at most once a second

* test(runtime): restore real timers after each revocation test

* test(runtime): drop the registry read-count test

* refactor(runtime): trim the registry throttle comments

* fix(runtime): pairing and delegation planning read the device file unthrottled
2026-11-06 18:16:45 +00:00
Kelvin Amoaba 582044269b perf(mobile): share one clientEvents stream per host connection (#39011)
* perf(mobile): share one clientEvents stream per host connection

* perf(mobile): keep the shared clientEvents stream across a same-tick rejoin

* fix(mobile): let a later subscriber retry after the shared clientEvents open throws

* fix(mobile): guard the shared clientEvents cleanup after a throwing open

* test(e2e): give the phone list's socket client the shared clientEvents shape
2026-11-06 18:16:22 +00:00
Kelvin Amoaba 222ec8b750 perf(mobile): serialize bridge replies once (#39019)
splitBridgeReply now returns ready frame strings: the payload is stringified once and spliced into envelopes that match the old JSON.stringify output byte for byte, and its UTF-8 size is counted once. utf8ByteLength skips the ASCII prefix with a native search, since Hermes interprets the per-unit loop.
2026-11-06 18:16:00 +00:00
Vyacheslav ScherbininandKelvin Amoaba b67fbb42ee feat(emulator): remember the last successful device (#36558)
* fix: restore last successful emulator selection

* fix: preserve successful emulator attach when preference storage fails

* Share emulator recency metadata and valid-selection guard

* Align PR 36558 with current checked types and component contracts

* fix(i18n): remove keys from replaced controls

* fix(emulator): preserve workspace and CLI device choices

* ci: refresh emulator checks after main repairs

---------

Co-authored-by: Kelvin Amoaba <97001695+AmoabaKelvin@users.noreply.github.com>
2026-11-06 18:14:12 +00:00
Brennan Benson 4cccf7b04a perf(native-chat): reuse unchanged phone transcript rows (#38956)
* perf(native-chat): reuse unchanged phone transcript rows

* fix(native-chat): narrow retained projection output reuse

* refactor(native-chat): isolate phone session status type

* Document source comparison key safety

* Use last-member array accessor

* test(native-chat): check phone captures across source boundaries

* ci(mobile): route recorded transcript decoder inputs
2026-11-06 10:14:07 -08:00
Kelvin Amoaba 6239efb34a perf(agent-session): stream chat text as appends (#39051)
* perf(agent-session): stream chat text as appends

* perf(mobile): read text-append support from the connection's status answer

* perf(mobile): open the chat stream once the host's append support is known

* refactor(mobile): seed text-append support from the shell's status

* fix(agent-session): stop asking for appends after one is refused
2026-11-06 18:12:19 +00:00
Kelvin Amoaba ef3d9bbdc2 perf(mobile): seal and decode socket frames through native bindings (#39053)
* perf(mobile): seal and decode socket frames through native bindings

* refactor(mobile): decode base64 socket messages with the canonical primitive

* refactor(mobile): share the canonical base64 decoder with socket payloads
2026-11-06 18:11:41 +00:00
Kelvin Amoaba 586d214eda fix(speech): stop streaming dictation dropping its first second (#39107)
A new streaming stream starts with empty encoder caches, and zipformer
en-20M then drops most of the first second of speech: the first word was
wrong on 71 of 73 LibriSpeech clips. Each session's stream now takes a
second of silence before its first audio. That cuts per-utterance WER from
27.0% to 16.1%. The priming runs on the first feed so stop never waits for it.
2026-11-06 18:09:02 +00:00
Kelvin Amoaba 60ced6e411 perf(speech): decode offline dictation on up to 4 threads (#39104)
Offline models decode the whole utterance after stop, so their thread count
is the user's wait. On the shipped sherpa-onnx, 4 threads cut a 5 s
utterance from about 190 ms to 122 ms with the same transcript and memory.

The recognizer configs move from stt-worker.ts into stt-worker-model-config.ts
so the worker has room under its line cap.
2026-11-06 17:59:19 +00:00
Vyacheslav ScherbininandKelvin Amoaba 1cdf9b8022 feat(emulator): group and search the device picker (#36548)
* fix(emulator): distinguish used and unavailable devices in picker

* fix(emulator): retain older usage timestamps and English review fixtures

* Share emulator recency metadata and valid-selection guard

* Align PR 36548 with current checked types and component contracts

* fix(i18n): remove keys from replaced controls

* fix(emulator): reset picker search and keep retries usable

Clear the picker search after choosing a device and keep Connect available
when the host should choose its default device on a retry.

* ci: refresh emulator picker checks after main repairs

---------

Co-authored-by: Kelvin Amoaba <97001695+AmoabaKelvin@users.noreply.github.com>
2026-11-06 17:55:32 +00:00
Vyacheslav ScherbininandKelvin Amoaba 7928495938 fix(android): prevent black frames while dragging text handles (#38022)
* Protect Android insertion and selection magnifier readback

* ci: refresh Android checks against current main

* ci: refresh Android checks after main repairs

---------

Co-authored-by: Kelvin Amoaba <97001695+AmoabaKelvin@users.noreply.github.com>
2026-11-06 17:52:28 +00:00
Kelvin Amoaba e507dd7732 fix(mobile): unbreak main after the speed batch (review test, page budget) (#39094)
* test(mobile): give the review note test a query client

* build(mobile): raise the page code budget to 9.75 MiB

* build(mobile): re-measure the page chunk sweep after the speed batch

* test(runtime): follow the terminal RPC module move in the output credit test
2026-11-06 17:44:10 +00:00
Naveen Chatlapalli eed02e976f fix(test): follow the terminal RPC module move (#39097) 2026-11-06 17:40:35 +00:00