Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .github/instructions/sessions.instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,22 @@ When working on files under `src/vs/sessions/`, use these skills for detailed gu
- **`sessions`** skill — covers the full architecture: layering, folder structure, chat widget, menus, contributions, entry points, and development guidelines
- **`agent-sessions-layout`** skill — covers the fixed layout structure, grid configuration, part visibility, editor modal, titlebar, sidebar footer, and implementation requirements

## Mobile Component Architecture

The Agents window has an established mobile architecture (documented in `src/vs/sessions/MOBILE.md`). When adding phone-specific UI — bottom sheets, action sheets, mobile pickers, or any interaction that differs from desktop — follow these rules:

1. **Never add `IsPhoneLayoutContext` branching inside a desktop component.** Desktop code must have zero phone-layout checks. If a component needs different behavior on phone, create a mobile subclass or a phone-gated contribution instead.

2. **Create mobile subclasses in `browser/parts/mobile/`.** Extend the desktop class, override only the methods that differ (e.g., the picker/menu method), and keep the rest inherited. Examples: `MobileChatBarPart`, `MobileSidebarPart`, `MobilePanelPart`.

3. **Use conditional instantiation.** The call site that creates the component (e.g., `AgenticPaneCompositePartService`) should pick the mobile vs. desktop class based on viewport width at construction time — the same pattern already used for Part subclasses.

4. **Co-locate component CSS with its TypeScript file.** Each component should own its CSS in a `media/` subfolder next to the component, imported directly in the TypeScript file via `import './media/myComponent.css';`. Do not put component-specific styles in `mobileChatShell.css` — that file should contain only layout and shell-level styles for phone layout (`phone-layout` class rules).

5. **Prefer reusable mobile widgets.** Before hand-rolling a bottom sheet, check if an existing pattern (panel sheet, context menu action sheet, quick pick) can be reused or extended. If a new pattern is genuinely needed, build it as a reusable widget in `browser/parts/mobile/` so other features can share it.

6. **Phone-specific contributions** use `when: IsPhoneLayoutContext` in their registration and live in separate files — giving full file separation with no internal branching.

## Touch & iOS Compatibility

The Agents window can run on touch-capable platforms (notably iOS). Follow these rules for all DOM interaction code:
Expand Down
16 changes: 10 additions & 6 deletions cli/ThirdPartyNotices.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5933,7 +5933,7 @@ OTHER DEALINGS IN THE SOFTWARE.

---------------------------------------------------------

openssl 0.10.75 - Apache-2.0
openssl 0.10.78 - Apache-2.0
https://github.com/rust-openssl/rust-openssl

Copyright 2011-2017 Google Inc.
Expand Down Expand Up @@ -6012,7 +6012,7 @@ DEALINGS IN THE SOFTWARE.

---------------------------------------------------------

openssl-sys 0.9.111 - MIT
openssl-sys 0.9.114 - MIT
https://github.com/rust-openssl/rust-openssl

The MIT License (MIT)
Expand Down Expand Up @@ -9273,6 +9273,7 @@ Unless you explicitly state otherwise, any contribution intentionally submitted
[//]: # (crates)

[`ascon‑hash256`]: ./ascon-hash256
[`ascon‑xof128`]: ./ascon-xof128
[`bash‑hash`]: ./bash-hash
[`belt‑hash`]: ./belt-hash
[`blake2`]: ./blake2
Expand All @@ -9296,7 +9297,7 @@ Unless you explicitly state otherwise, any contribution intentionally submitted
[`sm3`]: ./sm3
[`streebog`]: ./streebog
[`tiger`]: ./tiger
[`turbo-shake`]: ./turbo-shake
[`turboshake`]: ./turboshake
[`whirlpool`]: ./whirlpool

[//]: # (footnotes)
Expand All @@ -9318,7 +9319,8 @@ Unless you explicitly state otherwise, any contribution intentionally submitted

[//]: # (algorithms)

[Ascon]: https://ascon.iaik.tugraz.at
[Ascon-Hash256]: https://doi.org/10.6028/NIST.SP.800-232.ipd
[Ascon-Xof128]: https://doi.org/10.6028/NIST.SP.800-232.ipd
[Bash]: https://apmi.bsu.by/assets/files/std/bash-spec241.pdf
[BelT]: https://ru.wikipedia.org/wiki/BelT
[BLAKE2]: https://en.wikipedia.org/wiki/BLAKE_(hash_function)#BLAKE2
Expand Down Expand Up @@ -9373,6 +9375,7 @@ Unless you explicitly state otherwise, any contribution intentionally submitted
[//]: # (crates)

[`ascon‑hash256`]: ./ascon-hash256
[`ascon‑xof128`]: ./ascon-xof128
[`bash‑hash`]: ./bash-hash
[`belt‑hash`]: ./belt-hash
[`blake2`]: ./blake2
Expand All @@ -9396,7 +9399,7 @@ Unless you explicitly state otherwise, any contribution intentionally submitted
[`sm3`]: ./sm3
[`streebog`]: ./streebog
[`tiger`]: ./tiger
[`turbo-shake`]: ./turbo-shake
[`turboshake`]: ./turboshake
[`whirlpool`]: ./whirlpool

[//]: # (footnotes)
Expand All @@ -9418,7 +9421,8 @@ Unless you explicitly state otherwise, any contribution intentionally submitted

[//]: # (algorithms)

[Ascon]: https://ascon.iaik.tugraz.at
[Ascon-Hash256]: https://doi.org/10.6028/NIST.SP.800-232.ipd
[Ascon-Xof128]: https://doi.org/10.6028/NIST.SP.800-232.ipd
[Bash]: https://apmi.bsu.by/assets/files/std/bash-spec241.pdf
[BelT]: https://ru.wikipedia.org/wiki/BelT
[BLAKE2]: https://en.wikipedia.org/wiki/BLAKE_(hash_function)#BLAKE2
Expand Down
2 changes: 1 addition & 1 deletion extensions/copilot/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@ Object.assign(product, {
'publicCodeMatchesUrl': 'https://aka.ms/github-copilot-match-public-code',
'manageSettingsUrl': 'https://aka.ms/github-copilot-settings',
'managePlanUrl': 'https://aka.ms/github-copilot-manage-plan',
'manageOverageUrl': 'https://aka.ms/github-copilot-manage-overage',
'manageAdditionalSpendUrl': 'https://aka.ms/github-copilot-manage-overage',
'upgradePlanUrl': 'https://aka.ms/github-copilot-upgrade-plan',
'signUpUrl': 'https://aka.ms/github-sign-up',
'provider': {
Expand Down
64 changes: 32 additions & 32 deletions extensions/copilot/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 4 additions & 2 deletions extensions/copilot/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -128,8 +128,10 @@
"chatReferenceBinaryData",
"languageModelSystem",
"languageModelCapabilities",
"languageModelPricing",
"inlineCompletionsAdditions",
"chatStatusItem",
"chatInputNotification",
"taskProblemMatcherStatus",
"contribLanguageModelToolSets",
"textDocumentChangeReason",
Expand Down Expand Up @@ -6608,7 +6610,7 @@
"@anthropic-ai/claude-agent-sdk": "0.2.112",
"@anthropic-ai/sdk": "^0.82.0",
"@github/blackbird-external-ingest-utils": "^0.3.0",
"@github/copilot": "^1.0.34",
"@github/copilot": "^1.0.38",
"@google/genai": "^1.22.0",
"@humanwhocodes/gitignore-to-minimatch": "1.0.2",
"@microsoft/tiktokenizer": "^1.0.10",
Expand All @@ -6627,7 +6629,7 @@
"@opentelemetry/sdk-trace-node": "^2.5.1",
"@opentelemetry/semantic-conventions": "^1.39.0",
"@sinclair/typebox": "^0.34.41",
"@vscode/copilot-api": "^0.2.19",
"@vscode/copilot-api": "^0.3.0",
"@vscode/extension-telemetry": "^1.5.1",
"@vscode/l10n": "^0.0.18",
"@vscode/prompt-tsx": "^0.4.0-alpha.8",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ export class ChatQuotaContribution extends Disposable implements IExtensionContr

constructor(@IChatQuotaService chatQuotaService: IChatQuotaService) {
super();
this._register(commands.registerCommand('chat.enablePremiumOverages', () => {
// Clear quota before opening the page to ensure that if the user enabled overages,
this._register(commands.registerCommand('chat.enableAdditionalUsage', () => {
// Clear quota before opening the page to ensure that if the user enabled additional usage,
// the next request they send won't try to downgrade them to the base model.
chatQuotaService.clearQuota();
env.openExternal(Uri.parse('https://aka.ms/github-copilot-manage-overage'));
}));
}
}
}
Loading
Loading