Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Escape dynamic values in the customizations index#327475

Open
sricursion wants to merge 1 commit into
microsoft:mainmicrosoft/vscode:mainfrom
sricursion:codex/fix-customizations-index-escapingsricursion/vscode:codex/fix-customizations-index-escapingCopy head branch name to clipboard
Open

Escape dynamic values in the customizations index#327475
sricursion wants to merge 1 commit into
microsoft:mainmicrosoft/vscode:mainfrom
sricursion:codex/fix-customizations-index-escapingsricursion/vscode:codex/fix-customizations-index-escapingCopy head branch name to clipboard

Conversation

@sricursion

@sricursion sricursion commented Jul 25, 2026

Copy link
Copy Markdown

Fixes #327467

What changed

  • XML-entity encode every dynamic instruction, nested AGENTS.md, skill, truncated-skill, and agent value in both live customizations-index producers.
  • Add an explicit v2 format marker and decode only final <file>/<name> scalar values, exactly once, after structural extraction.
  • Preserve legacy unmarked index parsing, but fail closed when an unmarked index would otherwise authorize an external read or a direct Skill-tool read.
  • Bind the authorization cache to both request ID and index content so a marked-to-unmarked replacement revokes the prior exception.
  • Calculate skill truncation budgets from the encoded output.

The format marker is intentional because core and the built-in Copilot extension can update independently. Older unmarked indexes remain usable by non-security consumers, but cannot grant no-confirmation file access.

Validation

  • npm run typecheck-client
  • npm run transpile-client
  • Core computeAutomaticInstructions.test.ts: 64 passed
  • npm run eslint
  • npm run valid-layers-check
  • npm run define-class-fields-check
  • Copilot npm run typecheck
  • Copilot npm run lint
  • Copilot npm run compile
  • Copilot focused security suites: 173 passed
  • Copilot full npm run test:unit: 9,559 passed, 129 skipped
  • Skill-tool Mocha suite: 42 passed
  • Copilot npm run test:prompt: 393 passed, 3 pending
  • git diff --check

Copilot AI review requested due to automatic review settings July 25, 2026 17:13

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@sricursion
sricursion marked this pull request as ready for review July 25, 2026 17:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Workspace skill descriptions can alter customization-index structure and suppress external-file confirmation

3 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.