Commit Graph
1476 Commits
Author SHA1 Message Date
Kyle CutlerandGitHub 224b261da4 Add list_browser_pages tool (#326976) 2026-07-22 07:45:54 -07:00
17d3b86b93 fix: mitigate Linux webview renderer FD exhaustion during resource loading (#326272)
Codex extension surfaced a renderer forced exit after hitting EMFILE on Linux
when a webview issued very large number of concurrent local resource fetches.

Diagnosis
- Codex extension can trigger roughly 625 concurrent webview resource requests.
- Webview resource loading currently forwards each request to the host and
  begins transferring the returned body immediately.
- Disk reads are chunked at 256 KiB, and Mojo uses shared-memory FDs for
  payloads above 64 KiB, so each in-flight resource body can consume file
  descriptors in the renderer while it is being streamed.
- The sandboxed renderer runs with RLIMIT_NOFILE=1024 on Linux.
- This is not specific to codex extensionn, any extension with enough concurrent
  resource bodies can accumulate to exhaust the renderer FD budget.

This makes the problem specifically about the number of simultaneously active
host-backed response bodies. A naive limiter around WebviewElement.loadResource()
would not address the root cause because loadResource() returns as soon as the
stream is transferred, while the FD pressure persists for the lifetime of the
stream in the renderer.

Introduce a service-worker-side global concurrency limit for host-backed webview
resource response bodies.

- Add a global limit of 32 active host-backed resource bodies in the webview
  service worker.
- Acquire a permit before creating/posting the load-resource request so time
  spent waiting for a slot does not consume the existing 30 second
  RequestStore timeout.
- Hold the permit for the full lifetime of the returned ReadableStream, and
  release it only when the stream reaches EOF, errors, or is cancelled.
- Release exactly once on all non-stream results and on every early/error path,
  including timeout handling.
- Preserve existing range request behavior, ETag/304 handling, CacheStorage
  behavior, Safari fallback streaming, and cancellation semantics.
- For cacheable responses, keep the permit until both source transfer and the
  associated cache write complete, without delaying delivery of the response
  back to the webview.
- Bump the service worker version and WebviewElement expected version together
  so clients pick up the updated worker.

Tests
- Add an API integration regression test that creates a webview, materializes
  many local resources, fetches them concurrently from inside the webview, and
  verifies the webview stays alive and all loads complete.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-17 20:09:53 +00:00
505665aeb5 Default editor and panel chat to Agent Host Copilot when the agent host is enabled (#326086)
* Default editor and panel chat to Agent Host Copilot when the agent host is enabled

Builds on the chat.editor.preferCopilotHarness behavior to make Agent Host
Copilot the computed default chat provider for both editor and panel chat
whenever the agent host is enabled, so first-time users land on Copilot instead
of Local. chat.editor.preferCopilotHarness stays scoped to the one-time
Local -> Copilot migration only.

- Thread an agentHostEnabled flag (from IAgentHostEnablementService) through the
  default-session-type resolution and its callers.
- Keep Local visible and selectable; honor explicit and remembered selections.
- New Local Chat opens a local session directly: it cancels the in-flight
  default-provider resolution (which would otherwise block on agent host
  activation) so the local request wins immediately.
- Open a Local chat first in all chat participant API tests, since chat
  participants are a Local-harness feature.
- Add a smoketest.openLocalChat command for Local panel smoke scenarios; the
  sandbox reopen path reveals the existing local session to avoid a focus race.
- Register an IAgentHostEnablementService stub in the component fixtures.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chat: honor resolved session type when starting a new chat

Fixes the New Chat drop bug (review comment #2 on #326086): when the
agent host is enabled the computed default is a non-local harness, so the
editor clear path recomputed that default and dropped explicit or
preserved local requests.

- clearChatSessionPreservingType now branches on the resolved session
  type for the sidebar (non-local -> loadSession, local ->
  startNewLocalSession) so a generic New Chat from a Local panel
  preserves Local, consistent with contributed panels.
- The resolved type is threaded through IChatWidget.clear ->
  viewOptions.clear -> chatEditor.clear -> clearChatEditor so the editor
  opens a session of that type instead of recomputing the default. This
  restores explicit "New Local Chat" from a non-local editor.
- clearChatEditor applies an explicit target type directly and keeps its
  swap-aware default only for direct (untargeted) calls.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chat: cancel the previous applyModel resolution before replacing it

Assigning a new CancellationTokenSource to the MutableDisposable only
disposes the previous source, and disposing a CancellationTokenSource
does not cancel it. So a re-entrant applyModel() (view render, switch
session) left the prior in-flight resolution running, racing to call
showModel with a stale result. Cancel the previous source explicitly
before replacing it.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-17 00:15:19 +00:00
Alex RossandGitHub 0a9cfc4e0f Fix missing api proposal check (#325094)
* Fix missing api proposal check

* Missing proposal
2026-07-09 09:19:51 +00:00
Kyle CutlerandGitHub 92a235c9a1 Skip flaky test (#324111) 2026-07-02 21:45:52 +00:00
Kyle CutlerandGitHub 7025dfadbc Browser: allow loading all files when workspace trust is disabled (#321043) 2026-07-02 12:59:18 -07:00
Bryan ChenandGitHub 822f146aac vscode-api-tests: use explicit types instead of typeRoots (#319453)
vscode-api-tests: use explicit "types" instead of "typeRoots"

Switches tsconfig from typeRoots-only (which only auto-includes @types/* found at the literal path ./node_modules/@types) to an explicit "types" list. Explicit types resolve via Node module resolution, so they keep working regardless of whether npm hoists @types/node to the workspace root or keeps it extension-local.

Refs microsoft/vscode-engineering#2912 — the recurring TS2591 "Cannot find name 'process'" failure on the build agent after #319389 changed the lockfile is consistent with @types/node being hoisted to a path the typeRoots-only config can't see. Matches the pattern already used by extensions/github, extensions/copilot, etc.
2026-06-02 13:01:30 -07:00
Kyle CutlerandGitHub 93afe85229 Browser: require trust for file:// loading (#319454)
* Browser: require trust for file:// loading

* feedback

* fix test

* fix tests
2026-06-02 08:27:46 -07:00
RoboandGitHub 8748be1f1a feat: update to Electron v42 (#316661)
* feat: update to Electron v42

* chore: drop support for arm 32-bit server

* chore: update types/node to v24.x

* chore: temporarily lock the target version for build/

* chore: update v8-source-location.patch

* chore: fix clippy

* chore: cleanup armhf server ci config

* fix: broken lock file

* fix: c++ version requirement for sysroot builds

* fix: msvc compilation of native modules

* fix: handle rejections for fire-and-forget loadurl

* fix: windows build

* ci: fix teardown of daemon process on windows

```
2026-05-15T20:55:09.7717127Z Assertion failed: !(handle->flags & UV_HANDLE_CLOSING), file src\win\async.c, line 76
```

* chore: update deb and rpm dependencies

* chore: update version info

* spec: improve reliablity of offscreencanvas tests

* spec: retry EPERM failures on teardown

* chore: update x86_64 rpm deps

* ci: exclude server binskim for armhf

* temp: bump distro

* test: ignore deprecation warnings treated as errors

* chore: update lockfile

* fix: externalize electron from auth extension bundles

 Error: Cannot find module 'c:\Users\cloudtest\AppData\Local\Temp\vscode-sanityQvCaze\vscode-server-win32-x64-web\extensions\github-authentication\dist\install.js'
     at Module._resolveFilename (node:internal/modules/cjs/loader:1476:15)
     at wrapResolveFilename (node:internal/modules/cjs/loader:1049:27)
     at defaultResolveImplForCJSLoading (node:internal/modules/cjs/loader:1073:10)
     at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1094:12)
     at Module._load (node:internal/modules/cjs/loader:1262:25)
     at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
     at Module.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:154:5)
     at node:internal/main/run_main_module:33:47 {
   code: 'MODULE_NOT_FOUND',
   requireStack: []
 }

 Node.js v24.15.0

* test: make wsl sanity tests reliable

* chore: bump electron@42.1.0

* temp: bump distro

* chore: bump electron@42.2.0

* chore: bump distro

* chore: update debian dependencies

* Revert "test: make wsl sanity tests reliable"

This reverts commit b3f2b63e83.

* test: do not fail for deprecation warnings

* chore: patch node24 server binary for wsl1

* chore: address review feedback

* chore: revert global navigation error handler in browserview

* chore: bump distro
2026-05-27 14:57:41 +02:00
Megan RoggeandGitHub 4d75b7af01 fix: disable data-idle fallback for sync terminal commands (#313589) 2026-04-30 22:36:07 +00:00
Johannes 41f67815ee api: merge module interceptors for esm and node 2026-04-30 15:14:52 +02:00
dileepyavanGitHubcopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
c810f47714 Sandbox_integration: Skipping sandbox integration tests to unblock. (#312537)
* adding allowRead and testing with defaults

* Rename terminal sandbox read allow list

* Remove Copilot settings change from sandbox PR

* changes

* changes

* Updating sandbox runtime package

* Updating tests

* Add macOS test cases for denyRead/allowRead behavior and ~ path handling

Agent-Logs-Url: https://github.com/microsoft/vscode/sessions/ec5cf3c2-6c7b-4577-bdbb-8ac3d42bdfb0

Co-authored-by: dileepyavan <52841896+dileepyavan@users.noreply.github.com>

* changes for readonly home dir

* skipping integrated tests for sandbox

* running srt in tmp_dir for linux

* running srt in tmp_dir for linux

* skipping failed integration test in linux

* fixing test failures

* fixing test failures

* skipping integration tests in CI pipeline

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-04-25 17:06:24 +00:00
dileepyavanGitHubcopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
bb09e7379b terminal: Disable read all by default (#311850)
* adding allowRead and testing with defaults

* Rename terminal sandbox read allow list

* Remove Copilot settings change from sandbox PR

* changes

* changes

* Updating sandbox runtime package

* Updating tests

* Add macOS test cases for denyRead/allowRead behavior and ~ path handling

Agent-Logs-Url: https://github.com/microsoft/vscode/sessions/ec5cf3c2-6c7b-4577-bdbb-8ac3d42bdfb0

Co-authored-by: dileepyavan <52841896+dileepyavan@users.noreply.github.com>

* changes for readonly home dir

* skipping integrated tests for sandbox

* running srt in tmp_dir for linux

* running srt in tmp_dir for linux

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-04-24 11:07:16 -07:00
853d2d9a4f Refactor browser creation flow, add ownership model (#312166)
* Refactor browser creation flow, add ownership model

Co-authored-by: Copilot <copilot@github.com>

* Opening in background

Co-authored-by: Copilot <copilot@github.com>

* feedback

Co-authored-by: Copilot <copilot@github.com>

* simplify

Co-authored-by: Copilot <copilot@github.com>

* fix

Co-authored-by: Copilot <copilot@github.com>

---------

Co-authored-by: Copilot <copilot@github.com>
2026-04-23 14:42:08 -07:00
Matt Bierner de7206fad5 Merge branch 'main' into dev/mjbvz/wonderful-piranha 2026-04-19 20:14:50 -04:00
e60d312067 Add browser tool smoke tests (#311123)
Co-authored-by: Copilot <copilot@github.com>
2026-04-18 00:19:35 +00:00
dileepyavanandGitHub 9684342937 Disabling flaky test for sandbox (#311113)
disabling flaky test for sandbox
2026-04-17 23:41:30 +00:00
3704d95c91 Support frames / workers in browser CDP (#311049)
* Support frames / workers in browser CDP

Co-authored-by: Copilot <copilot@github.com>

* path fix

Co-authored-by: Copilot <copilot@github.com>

* feedback

* Normalize blank URLs

Co-authored-by: Copilot <copilot@github.com>

---------

Co-authored-by: Copilot <copilot@github.com>
2026-04-17 11:47:17 -07:00
de858c03e4 Improve terminal unsandbox retry confirmation (#309671)
* Show unsandboxed retry in chat terminal

* Update src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fixing failed tests

* fixing tests

* Remove automatic unsandbox retry note

* Improve terminal unsandbox retry confirmation

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-13 19:41:28 -07:00
João MorenoandGitHub 91c7ec5681 fix: unskip chat tests (#309228) 2026-04-12 08:48:56 -07:00
d37d08cda0 Show automatic unsandbox retries in the chat terminal UI (#308655)
* Show unsandboxed retry in chat terminal

* Update src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fixing failed tests

* fixing tests

* Remove automatic unsandbox retry note

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-11 21:52:46 -07:00
Dmitriy VasyuraandGitHub 865a331340 Add agent network filter policy settings (#308434) 2026-04-10 23:31:42 +00:00
Christof Marti bd9c0c4919 Fix flaky test 2026-04-08 08:13:59 +00:00
João Moreno d4bb7b41ba getting ready to merge 2026-04-06 20:18:35 +02:00
João Moreno 9f64381092 skip test suite 2026-04-06 14:14:08 +02:00
João Moreno 92560ee581 another test skip 2026-04-06 09:49:41 +02:00
João Moreno 1d23f25ecc skip flaky test 2026-04-06 07:55:21 +02:00
João Moreno 75fea1b777 Merge remote-tracking branch 'origin/main' into joao/copilot-builtin 2026-04-05 20:39:32 +02:00
cc9f34504b Rename agent sandbox settings (#307237)
* Rename agent sandbox settings

* refactoring for review comments

* Update src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration.ts

Update for deprecation

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-01 20:56:32 +00:00
Anthony KimandGitHub 54b695e02e Add windowsUseConptyDll setting to runInTerminal tests (#307185) 2026-04-01 10:49:44 -07:00
Megan RoggeandGitHub a9ccde3863 Terminal tools: replace isBackground with mode=sync|async, remove await_terminal tool (#307141) 2026-04-01 11:40:36 -04:00
Alex RossandGitHub 82ec78a528 Disable more flaky tests (#307102) 2026-04-01 14:19:38 +02:00
Megan RoggeandGitHub 6c3a002c90 remove shell integration none tests (#306932) 2026-03-31 14:30:41 -07:00
João Moreno b92bbb8e27 skip self signed cert test 2026-03-31 17:25:40 +02:00
Alex RossandGitHub 8906163852 Skip flaky terminal test (#306668) 2026-03-31 20:23:15 +11:00
Megan RoggeandGitHub 61e3ba6f04 skip flakey sandbox test for now (#306417)
part of #305722
2026-03-30 21:57:09 +00:00
a2d7b9e13b [Sandbox] Notify user to run out of sandbox if the domain is not included in allowedDomains. (#306121)
* Rename sandbox setting to chat.agent.sandbox (#303421)

Rename the top-level sandbox setting from `chat.tools.terminal.sandbox.enabled`
to `chat.agent.sandbox` to reflect that sandboxing is a general agent concept,
not terminal-specific.

- Update setting ID value to `chat.agent.sandbox`
- Update description to be more general
- Deprecate old `chat.tools.terminal.sandbox.enabled` setting
- Update telemetry event name

Fixes #303421

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* updating terminal sandbox to agent sandbox

* removed allowTrustedDomains

* correcting the settings keys for sandboxing

* correcting the settings keys for sandboxing

* Explicit notification for blocked domains before running the command

* Fix terminal sandbox follow-ups

* main merge

* fixing tests

* Update src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Revert "Update src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.ts"

This reverts commit b956dfa719.

* removing local files

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-30 15:33:04 +02:00
57d9535056 Rename sandbox setting to chat.agent.sandbox (#303421) (#305846)
* Rename sandbox setting to chat.agent.sandbox (#303421)

Rename the top-level sandbox setting from `chat.tools.terminal.sandbox.enabled`
to `chat.agent.sandbox` to reflect that sandboxing is a general agent concept,
not terminal-specific.

- Update setting ID value to `chat.agent.sandbox`
- Update description to be more general
- Deprecate old `chat.tools.terminal.sandbox.enabled` setting
- Update telemetry event name

Fixes #303421

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* updating terminal sandbox to agent sandbox

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-29 01:31:02 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
e49f2d1a54 Bump node-forge from 1.3.2 to 1.4.0 in /extensions/vscode-api-tests (#305343)
Bumps [node-forge](https://github.com/digitalbazaar/forge) from 1.3.2 to 1.4.0.
- [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md)
- [Commits](https://github.com/digitalbazaar/forge/compare/v1.3.2...v1.4.0)

---
updated-dependencies:
- dependency-name: node-forge
  dependency-version: 1.4.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 14:15:43 -07:00
dileepyavanandGitHub 6afe980a82 Preserve $TMPDIR when retrying terminal commands outside the sandbox (#304601)
* Changes to include environment variables for retry without sandboxing

* adding e2e tests

* fixing code formatting
2026-03-27 05:49:29 +00:00
Megan RoggeandGitHub c4f707a8a4 tweak run_in_terminal changes (#304843) 2026-03-26 21:23:26 +00:00
Alexandru DimaandGitHub 3460bdb15c Fix command rewriting issues when terminal sandboxing is enabled (#303859)
* fix: command rewriting issues when terminal sandboxing is enabled

Fixes two issues with sandboxed terminal commands:

1. Sandboxed commands end up in shell history (#303769): The
   PreventHistoryRewriter was running before SandboxRewriter, so the
   leading space was applied to the inner command but not the final
   sandbox-wrapped command. Moved PreventHistoryRewriter to run last.

2. cd CWD prefix not stripped in sandbox mode (#303848): The
   SandboxedCommandLinePresenter was using the original (un-rewritten)
   command for display, bypassing cd prefix stripping. Changed to use
   forDisplay instead.

3. Fixed forDisplay being clobbered: The rewriter loop unconditionally
   overwrote forDisplay, so later rewriters without a forDisplay
   (like PreventHistoryRewriter) would clear the sandbox's display
   value. Changed to only update when explicitly provided.

Fixes #303769
Fixes #303848

* update doc comment for SandboxedCommandLinePresenter

* improve execute strategy logging for CI diagnostics

Upgrade strategy selection and completion logs to info level in
runInTerminalTool. In richExecuteStrategy, log at info level when
running in CI (for diagnosing shell integration race conditions)
and debug otherwise.

* fix: include ignorespace in bash shell integration history verification

When VSCODE_PREVENT_SHELL_HISTORY=1 is set (which it is for all tool
terminals created by the run_in_terminal tool), the bash shell
integration script sets HISTCONTROL="ignorespace" (line 67). This
causes bash to exclude space-prefixed commands from history.

Later in the same script (line 200), a regex decides whether to use
`history 1` or $BASH_COMMAND to capture the current command in
__vsc_preexec. The regex checks for erasedups, ignoreboth, and
ignoredups — but NOT ignorespace. This is a bug because:

1. The same script sets HISTCONTROL=ignorespace 130 lines earlier
2. ignoreboth (which IS in the regex) is defined by bash as
   "ignorespace + ignoredups" — so the compound form was handled
   but the simple form was not

The consequence: with HISTCONTROL=ignorespace and __vsc_history_verify=1,
__vsc_preexec calls `history 1` to get the current command. But the
command has a leading space (added by PreventHistoryRewriter), so bash
history never recorded it. `history 1` returns the PREVIOUS command
or nothing. This causes __vsc_current_command to be wrong or empty.

In __vsc_command_complete, when __vsc_current_command is empty, the
script sends the OSC sequence 633;D WITHOUT an exit code (line 373).
The VS Code side then receives onCommandFinished with exitCode=undefined,
breaking exit code detection for ALL tool terminal commands on bash.

The fix adds ignorespace to the existing regex, so bash falls back to
$BASH_COMMAND (which always works regardless of history settings).
This matches the behavior already provided when ignoreboth is set.

* docs: improve fix-ci-failures skill with faster log retrieval workflow
2026-03-22 18:04:12 +01:00
Alexandru DimaandGitHub ca117fbb4f Accept "Command produced no output" when shell integration is off (#303866)
Accept "Command produced no output" when shell integration is off (#303865)
2026-03-22 14:36:27 +00:00
Alex Dima 487646cee8 Attempt to cover up the run_in_terminal tool not being registered quickly 2026-03-22 10:50:35 +01:00
Alexandru Dima 5563927f89 Fix terminal output capture: prevent premature idle detection and handle partial command echoes
- setupRecreatingStartMarker returns IDisposable to stop marker recreation
  before sending commands (prevents marker jumping on PSReadLine re-renders)
- noneExecuteStrategy waits for cursor to move past start line after sendText
  before starting idle detection (prevents end marker at same line as start)
- findCommandEcho supports suffix matching for partial command echoes from
  wrapped getOutput() results (shell integration ON with long commands)
- Suffix matching requires mid-word split to avoid false positives on output
  that happens to be a suffix of the command (e.g. echo output)
- Integration tests: use ; separator on Windows, add && conversion test,
  handle Windows exit code quirks with cmd /c
2026-03-22 00:46:48 +01:00
Alex Dima 4ed68ee36f Fix slash history test 2026-03-21 23:23:32 +01:00
Alex Dima 436b09abc3 Fix sandbox tests for Linux: handle different shell path and error message
- Handle /usr/bin/bash (Linux) vs /bin/bash (macOS) in /tmp write test
- Handle 'Read-only file system' (Linux) vs 'Operation not permitted' (macOS)
- Add 'Read-only file system' to outputLooksSandboxBlocked heuristic
- Replace newlines with spaces (not empty) to handle terminal wrapping
- Extract outputLooksSandboxBlocked as exported function with unit tests
2026-03-21 22:36:04 +01:00
Alex Dima f4644120bc Cover case where the command is duplicated in stripCommandEchoAndPrompt 2026-03-21 22:28:19 +01:00
Alex Dima f4c042bfc8 Relax some tests when shell integration is off 2026-03-21 19:56:04 +01:00
Alex Dima 865568dbbc fix: Linux CI sandbox prereqs, platform-aware tests, broader prompt stripping
- Add bubblewrap and socat to Linux CI apt-get install
- Make sandbox test assertions platform-aware (macFileSystem vs linuxFileSystem)
- Make /etc/shells test accept both macOS and Linux first-line format
- Broaden wrapped prompt fragment regex to handle path chars (ts/testWorkspace$)
- Fix continuation pattern to match user@host:path wrapped lines
- Apply stripCommandEchoAndPrompt to getOutput() in BasicExecuteStrategy
  (basic shell integration lacks reliable 133;C markers so getOutput()
  can include command echo)
- Keep RichExecuteStrategy getOutput() unstripped (rich integration
  has reliable markers)
2026-03-21 19:06:50 +01:00