Skip to content

[pull] main from microsoft:main#1251

Merged
pull[bot] merged 32 commits into
code:mainfrom
microsoft:main
May 13, 2026
Merged

[pull] main from microsoft:main#1251
pull[bot] merged 32 commits into
code:mainfrom
microsoft:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented May 13, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

NikolaRHristov and others added 30 commits May 12, 2026 19:28
The `relayCreationTimeoutMs` override in `TestableSSHRemoteAgentHostMainService`
was missing its `protected` modifier, causing the mangler to promote it to
`public` and fail the `compile-build-with-mangling` step with:

  ERROR: Protected fields have been made PUBLIC. This hurts minification
  and is therefore not allowed.

Re-add `protected` to the override declaration to keep the field's
visibility consistent with the base class and satisfy the mangler.
…ngler

The field `relayCreationTimeoutMs` is `protected` in the base class. The
test subclass `TestableSSHRemoteAgentHostMainService` had overridden it
without an explicit access modifier, making it implicitly `public`. The
mangler correctly rejected this as it hurts minification.

Adding `protected` back satisfied the mangler but caused a TS2445 error
since the test was assigning to the field directly on an instance, which
is illegal for `protected` members outside the class hierarchy.

Fix by adding a narrow public setter `setRelayCreationTimeoutForTest` in
the test subclass. The field stays `protected`; the setter provides a
legitimate public entry point for tests.

Signed-off-by: Nikola Hristov <Nikola@PlayForm.Cloud>
Fixes #316140

Let's try with `table` as the default initially but we can switch to `hide` is we prefer
Fixes #311734

Set COPILOT_AGENT=1 in agent terminal sessions so CLI tools can
detect they are running inside an AI agent and adapt their output
(e.g. JSON instead of ANSI, disable interactive prompts, skip
animations). This follows the same pattern as other agents
(CLAUDE_CODE, CURSOR_AGENT, etc.).

Co-authored-by: Megan Rogge <meganrogge@Megans-MacBook-Pro.local>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
fix: restore protected modifier on relayCreationTimeoutMs in test helper
Enable output renderers for code blocks in chat
Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.5 to 7.5.8.
- [Release notes](https://github.com/protobufjs/protobuf.js/releases)
- [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.8/CHANGELOG.md)
- [Commits](protobufjs/protobuf.js@protobufjs-v7.5.5...protobufjs-v7.5.8)

---
updated-dependencies:
- dependency-name: protobufjs
  dependency-version: 7.5.8
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Add improved markdown front matter rendering
Update context keys for editor commands
* Remove model picker category

* fix compile
Follow up on #316140

Makes it easier to discover what the table is and hide it
…covery (#316292)

* agentHost/claude: Phase 9 — abort + steering + changeModel + crash recovery

Implements the runtime mutation surface for live Claude sessions:

- abortSession via _abortController.abort() (mirrors production reference)
- setPendingMessages steering via priority:'now' SDKUserMessage with
  steering_consumed signal on iterable yield
- changeModel hot-swap via Query.setModel + Query.applyFlagSettings, with
  'max' effort runtime clamp to 'xhigh' (single seam in claudeModelConfig)
- Yield-restart primitive: ClaudeMaterializer gains 'fresh'|'resume' start
  modes and a sibling materializeResume() for crash/abort recovery without
  re-firing onDidMaterializeSession
- Subprocess crash recovery without permanent _fatalError latch — sessions
  stay reusable across aborts and crashes via _rebindQuery + bijective
  state replay (model + effort + permissionMode)

Refactored claudeAgentSession into three focused units:

- ClaudePromptQueue — owns the SDKUserMessage iterable handed to query(),
  parks/wakes via DeferredPromise, batches turn completion at full drain
  (M10), fires steering_consumed on yield
- ClaudeSdkMessageRouter — dispatches each SDK message through the
  per-turn mapper, swallowing handler failures
- ClaudeSdkPipeline — orchestrates the WarmQuery + AbortController +
  queue + router lifecycle, including rebind on abort/crash with
  bijective state replay

Each new class has standalone unit test coverage:
- claudePromptQueue.test.ts (13 tests)
- claudeSdkMessageRouter.test.ts (5 tests)
- claudeSdkPipeline.test.ts (10 tests, synchronous lifecycle surface)

Plus 10 new Phase 9 integration tests in claudeAgent.test.ts covering
abort/resend, steering preempt + consumed signal, changeModel
provisional + materialized + 'max' clamp + id-only paths, crash
recovery via resume, and bijective state survival across restart.

Live E2E (smoke.md Scenarios A-D) verified 2026-05-13.

See src/vs/platform/agentHost/node/claude/phase9-plan.md for the full
contract, decisions, deviations, and risks.

* feedback
Add title and context menu for frontmatter in markdown preview
)

The trust check previously allowed any terminal to be created in a remote workspace, including local terminals with no remoteAuthority. Distinguish remote terminals from local ones so trust denial still blocks local terminal creation in remote workspaces.

Co-authored-by: Megan Rogge <meganrogge@Megans-MacBook-Pro.local>
roblourens and others added 2 commits May 13, 2026 14:13
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@pull pull Bot locked and limited conversation to collaborators May 13, 2026
@pull pull Bot added the ⤵️ pull label May 13, 2026
@pull pull Bot merged commit 130f343 into code:main May 13, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.