* agentHost: use async filesystem grants (Written by Copilot)
Avoid blocking the agent host event loop during relay resource and directory authorization. Await grant checks before dispatch and preserve session listing filters and symlink restrictions.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* agentHost: preserve relay action ordering (Written by Copilot)
Serialize asynchronous grant authorization and dispatch per relay client, including mixed request and notification forms, without changing synchronous local dispatch.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* eslint: guard sync filesystem calls (Written by Copilot)
Reject synchronous filesystem calls in production code, convert 17 low-risk runtime call sites, and document narrow startup/shutdown exceptions and deferred synchronous contracts. Run custom rule tests through the CI build-test entry point.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* eslint: refine sync filesystem scope (Written by Copilot)
Keep bootstrap, designated core startup/shutdown, and isolated askpass code out of the rule. Strengthen the diagnostic against disabling it and convert four more low-risk call sites to async without changing their existing contracts.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* eslint: justify sync FS exceptions (Written by Copilot)
Explain the shutdown, ordering, readiness, and synchronous consumer constraints behind each suppression. Identify temporary migration blockers explicitly rather than treating descriptions of synchronous APIs as permanent justifications.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* eslint: fix bound sync FS detection (Written by Copilot)
Track bound synchronous functions without flagging bind itself, and await cache-readiness filesystem probes instead of suppressing synchronous polling. Cover bound invocations and ready/missing marker behavior.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* build: reduce local validation costs (Written by Copilot)
Add client-only incremental builds, transpile extension JavaScript with correct module and output contracts, and reuse matching Electron runtimes for test startup. Update validation guidance and cover cold/warm state transitions and runtime loading.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* test: validate cold fast builds in CI (Written by Copilot)
Temporarily exercise cold build-fast and shipping extension activation on Windows and Linux before the existing Electron unit suites.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* test: seed cold CI activation profile (Written by Copilot)
Use the existing scenario harness profile migration setting so built-in Copilot participates in exact shipping-extension activation validation.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* test: remove temporary CI validation (Written by Copilot)
Windows x64 and Linux x64 both passed cold default build-fast and exact shipping-extension activation, language-service, and Markdown preview checks in Code OSS run 37404189501. Restore normal CI wiring and retain the validation evidence in the PR.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* build: repair caches and transpile modules (Written by Copilot)
Treat installed Electron runtime filesystem failures as cache misses while preserving repository configuration errors. Route explicit TypeScript module suffixes through extension transpilation and exclude sources and declarations from asset copying. Exercise the actual gulp task on an isolated fixture.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* eslint: enable no bracket notation rule
Enable code-no-bracket-notation-for-identifiers for JavaScript and TypeScript files while grandfathering the 509 files with existing violations in a CODEOWNERS-gated allowlist.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* eslint: update bracket allowlist owners
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* eslint: group bracket notation exclusions
Organize the existing baseline by feature area so cleanup can be tracked and assigned without changing the excluded file set.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* eslint: test no bracket notation rule
Add RuleTester coverage for valid accesses, diagnostics, and autofix edge cases. Preserve escaped string-literal property names by checking their raw source before reporting.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* eslint: fix bracket notation in language extensions
Replace identifier-safe bracket notation across language feature extensions and remove the completed group from the temporary allowlist.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix: wrap module script content in block scope to isolate variables (#229357)
When multiple <script> tags exist in an HTML file, the HTML language
server concatenates their content into a single virtual JavaScript
document for validation. This causes false "Cannot redeclare
block-scoped variable" errors when <script type="module"> tags declare
variables with the same name as regular <script> tags, since module
scripts should have their own scope per the HTML spec.
Fix by wrapping <script type="module"> content in block scope delimiters
({ ... }) in the virtual document, preventing variable name collisions
between module scripts and regular scripts.
* fix: validate HTML module scripts separately
* test: cover HTML module script isolation
---------
Co-authored-by: Martin Aeschlimann <martinae@microsoft.com>
Co-authored-by: Dmitriy Vasyura <dmitriv@microsoft.com>
* html-language-features: include JSDoc summary and tags in <script> hover
In doHover for JavaScript embedded in HTML <script> blocks, surface
info.documentation (JSDoc summary) and info.tags (@param, @returns,
etc.) alongside the existing info.displayParts signature. The hover
now returns a MarkupContent markdown payload with the signature,
description, and tag sections so HTML files get parity with
.js/.ts hovers.
Fixes#268776
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* update
---------
Co-authored-by: Martin Aeschlimann <martinae@microsoft.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* 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.
For #271167
This makes it so our built-in extensions can mostly be built using `tsc` on the command line. Previously the extensions were picking up a lot of typing info from the root `node_modules` that meant they weren't truly independent
For #269213
This adds a new eslint rule for `as any` and `<any>({... })`. We'd like to remove almost all of these, however right now the first goal is to prevent them in new code. That's why with this first PR I simply add `eslint-disable` comments for all breaks
Trying to get this change in soon after branching off for release to hopefully minimize disruption during debt week work