Repository navigation
Keep sandbox chat input visible while connecting - #343023
Merged
Osvaldo Ortega (osortega) merged 2 commits intoOct 20, 2026
Merged
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Recovery-banner layout and archived subagent composer handling still need correction.
2 open issues
What changed in this PR
Keeps sandbox chat drafts editable while recorded history is displayed and live content is loading, without enabling sending.
Changes:
- Keeps recorded sessions input-blocked until live content is ready.
- Updates composer visibility, archive handling, and recovery banners.
- Adds regression coverage and documents offline drafting.
| File | Description |
|---|---|
src/vs/workbench/contrib/chat/test/browser/widget/chatWidget.test.ts |
Tests composer visibility and recovery actions. |
src/vs/workbench/contrib/chat/test/browser/remoteAgentHost/editorCloudSandboxContribution.test.ts |
Checks offline drafting without waking compute. |
src/vs/workbench/contrib/chat/test/browser/remoteAgentHost/cloudSandboxSessionHandler.test.ts |
Tests blocking through live attachment. |
src/vs/workbench/contrib/chat/browser/widget/chatWidget.ts |
Adjusts archive and recovery-banner visibility. |
src/vs/workbench/contrib/chat/browser/remoteAgentHost/cloudSandboxSessionHandler.ts |
Blocks input until live content attaches. |
src/vs/sessions/contrib/providers/remoteAgentHost/test/browser/cloudSandboxAgentHostContribution.test.ts |
Checks blocking during automatic connection. |
src/vs/sessions/contrib/providers/remoteAgentHost/REMOTE_AGENT_HOST_SESSIONS_PROVIDER.md |
Documents Editor Window offline drafting. |
src/vs/sessions/contrib/chat/test/browser/chatView.test.ts |
Covers recorded-history composer transitions. |
src/vs/sessions/contrib/chat/browser/chatView.ts |
Keeps blocked composers visible with recorded history. |
Review effort: Balanced
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Osvaldo Ortega (osortega)
marked this pull request as ready for review
October 20, 2026 21:20
Osvaldo Ortega (osortega)
enabled auto-merge (squash)
October 20, 2026 21:20
Martin Aeschlimann (aeschli)
approved these changes
Oct 20, 2026
roblourens
approved these changes
Oct 20, 2026
Osvaldo Ortega (osortega)
deleted the
osortega/keep-sandbox-composer-visible
branch
October 20, 2026 23:30
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Keep the sandbox chat input visible and editable while cached or recorded history is displayed and the live connection is loading. Previously, the history model's read-only flag could hide the composer between history loading and live attachment.
Reuse the existing input-blocked state until live content is ready, without changing the history model or adding configuration. Sending remains disabled. Preserve archived-chat restrictions and recovery actions, and retain the Editor Window's existing connection-on-open policy.
No linked issue was provided.
Validation
The initial change passed client transpilation, 187 targeted browser tests, changed-file ESLint, and the patch whitespace check after rebasing onto
main. The review follow-up also passed the ChatWidget suite (131 passing, 4 existing skips) and changed-file ESLint. Both reported bugs were reproduced by regression tests before applying the fixes.Exact commands and results
Client transpilation — passed:
Targeted browser tests — 187 passed:
npm run test-browser-no-install -- --browser chromium --reporter dot \ --run src/vs/workbench/contrib/chat/test/browser/remoteAgentHost/cloudSandboxSessionHandler.test.ts \ --run src/vs/sessions/contrib/chat/test/browser/chatView.test.ts \ --run src/vs/sessions/contrib/providers/remoteAgentHost/test/browser/cloudSandboxAgentHostContribution.test.ts \ --run src/vs/workbench/contrib/chat/test/browser/remoteAgentHost/editorCloudSandboxContribution.test.ts \ --run src/vs/workbench/contrib/chat/test/browser/widget/chatWidget.test.ts \ --run src/vs/workbench/contrib/chat/test/common/chatService/chatService.test.ts \ --grep 'CloudSandboxSessionHandler|Sessions - Chat View|keeps the sandbox composer|history recovery remains visible|policy read-only banner|renders history during automatic resume|opens original offline history|blocks submission without accepting input|passes read-only transitions|a visible read-only composer refuses|blocked input rejects send'Changed-file ESLint — passed:
Review-fix ChatWidget tests — 131 passed, 4 skipped:
npm run test-browser-no-install -- --browser chromium --reporter dot \ --run src/vs/workbench/contrib/chat/test/browser/widget/chatWidget.test.ts \ --grep 'ChatWidget'Review-fix ESLint — passed:
Patch whitespace — passed:
Manual verification
Not performed against a live sandbox. To verify: