* Add argument parsing, suite filtering, and grep support to integration test scripts
- Add --run, --runGlob, --grep, --suite, and --help argument parsing
- --suite selects extension host test suites (comma-separated, glob patterns)
- --grep forwards test name filter to all runners via MOCHA_GREP env var
- Validate --suite filter matches at least one known suite
- Add MOCHA_GREP support to testrunner.js, CSS and HTML test runners
- Seed user settings to suppress dock bounce notifications
- Always apply *.integrationTest.js glob for node.js tests
- Add integration-tests skill documentation
* Address Copilot review feedback
- Quote cd $ROOT, rm -rf $VSCODEUSERDATADIR, rmdir %VSCODEUSERDATADIR%
- Quote --runGlob pattern to prevent premature glob expansion
- Use GREP_ARGS array for safe grep forwarding in .sh
- Use conditional call with proper quoting for grep in .bat
- Deduplicate suite list into KNOWN_SUITES variable
- Remove unused EXTRA_ARGS and ARGS variables from .bat
* Fix Windows CI: remove unnecessary enabledelayedexpansion
The original script used plain 'setlocal'. Adding 'enabledelayedexpansion'
may affect path resolution behavior on Windows CI. Since no delayed
expansion (\!var\!) syntax is used, revert to the original 'setlocal'.
* Fix Windows CI: capture %~dp0 before call :label corrupts it
In Windows batch, 'call :label' can change what %~dp0 resolves to.
Our should_run_suite subroutine uses 'call :should_run_suite', which
caused %~dp0 to resolve to the wrong directory for extension paths
that appear after the subroutine call. Capture the script directory
once at startup into %SCRIPT_DIR% and use it everywhere.
Historically we've tracked edits in the ChatEditingSession, which is
owned by the editor and _very_ internal and _very_ complex, for Reasons.
In the agent host world, the agent host now owns edits.
This is a minimal implementation of an IChatEditingSession that is used
for the agent host. It does not have keep/undo (the writing has been
on the wall for that for a while) which removes a large chunk of
complexity. Nevertheless, it can deliver diffs, undo/redo and restore
state.
Diffs still happen client-side, but this could be optimized in the
future.
Closes#305332
* test: add tests for external harness replacement behavior
* feat: enhance external customization item handling with storage inference and instruction enrichment
* refactor: remove workspaceSubpaths from chat session customization metadata
* Copilot CLI session 6be53c25-3ac3-44c2-97f1-846de07165de changes
* refactor: extract shared buildInstructionListItem and document provider API
Extract the instruction classification logic (applyTo parsing, badge
generation, groupKey assignment) into a shared buildInstructionListItem
method used by both the built-in and provider item paths.
Remove the instruction-specific enrichInstructionItemsFromProvider in
favor of inline logic in fetchItemsFromProvider that delegates to the
shared helper.
Add a section to the chat-customizations-editor skill documenting the
chatSessionCustomizationProvider proposed API flow.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix: address PR review — disposal fallback and agent instruction grouping
Fix disposal fallback: when an external harness that overrides a static
one is disposed, keep the active harness on the same id since the static
harness is restored. Only fall back to all[0] when no harness with that
id remains.
Fix agent instruction grouping: buildInstructionListItem now detects
well-known agent instruction files (AGENTS.md, CLAUDE.md, CLAUDE.local.md,
copilot-instructions.md) and assigns groupKey 'agent-instructions' so
they appear under the correct header for both built-in and provider items.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* revert: remove skill file edits to avoid merge conflict
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* feat: enhance AICustomizationListWidget with grouping and badge support for external customization items
* feat: add user data profile service and infer storage from URI in AICustomizationListWidget
* Copilot CLI session 8af2fd4a-10fe-4bba-b408-f1b90cebc8dc changes
* docs: add chatSessionCustomizationProvider API chain to customizations editor skill
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix: address PR review feedback
- Remove duplicate sectionToIcon, reuse getSectionIcon instance method
- Use Map for O(1) groupKey lookups instead of O(n²) includes/find
- Check active project root in inferStorageFromUri for Sessions window
- Set pluginUri on provider items and use it for storage inference
- Remove redundant plugin check from inferStorageFromUri (handled by caller)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Resolve merge conflict with origin/main. Remove duplicate re-export
from chatInputCompletions.ts (line 72) per review feedback. Update
notebook.chat.contribution.ts to import directly from
chatInputCompletionUtils.ts.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
When clicking a walkthrough step checkbox in an expanded step, a blue
focus border appeared and persisted until clicking elsewhere. This was
caused by the codicon element receiving tabindex='0' when the step
expands, making it focusable on mouse click with no CSS rule to suppress
the default outline.
Added :focus (outline: none) and :focus-visible (outline with focusBorder)
rules for .getting-started-step .codicon, mirroring the existing pattern
used for button elements in the same file.