Skip to content

fix(mcp): keep upload modal, skip short secrets and bad headers - #42713

Open
Sebastien Tardif (SebTardif) wants to merge 2 commits into
microsoft:mainfrom
SebTardif:fix-mcp-upload-route-secrets
Open

Sebastien Tardif (SebTardif) wants to merge 2 commits into
microsoft:mainfrom
SebTardif:fix-mcp-upload-route-secrets

Conversation

@SebTardif

Copy link
Copy Markdown
Contributor

Summary

  • Skip MCP secret redaction for values shorter than 4 characters.
  • Ignore browser_route header lines that have no name.
  • Clear the file-chooser modal only after setFiles succeeds.

Problem

Short secrets such as e ran through replaceAll and rewrote the whole tool response. Header strings without : became a header named "". browser_file_upload cleared modal state before setFiles, so a failed upload could not be retried.

Change

  • redactSecrets ignores empty and length-less-than-4 values (empty was already skipped).
  • Route header parsing skips entries whose : is missing or first.
  • clearModalState runs after setFiles completes.

Validation

  • tests/mcp/secrets.spec.ts: short secret e does not inject <secret> markers into hello.
  • tests/mcp/route.spec.ts: NotAHeader is ignored; X-Custom-Header still applies.
  • tests/mcp/files.spec.ts: missing path keeps the chooser; a second upload succeeds.

Do not redact secret values shorter than 4 characters. Ignore route
header lines that have no name. Clear the file chooser only after
setFiles succeeds so a failed upload can be retried.

Signed-off-by: Sebastien Tardif <sebtardif@ncf.ca>
@github-actions

Copy link
Copy Markdown
Contributor

Test results for "MCP"

40 failed
❌ [chrome] › mcp/cli-core.spec.ts:149 › upload multiple files @mcp-macos-latest-chrome
❌ [chrome] › mcp/files.spec.ts:106 › browser_file_upload keeps chooser when setFiles fails @mcp-macos-latest-chrome
❌ [chrome] › mcp/secrets.spec.ts:167 › short secret values are not redacted @mcp-macos-latest-chrome
❌ [chrome] › mcp/cli-core.spec.ts:149 › upload multiple files @mcp-ubuntu-latest-chrome
❌ [chrome] › mcp/files.spec.ts:106 › browser_file_upload keeps chooser when setFiles fails @mcp-ubuntu-latest-chrome
❌ [chrome] › mcp/secrets.spec.ts:167 › short secret values are not redacted @mcp-ubuntu-latest-chrome
❌ [chrome] › mcp/annotate.spec.ts:291 › should enter annotate mode on fresh dashboard.tsx mount with -s --annotate @mcp-windows-latest-chrome
❌ [chrome] › mcp/cli-core.spec.ts:149 › upload multiple files @mcp-windows-latest-chrome
❌ [chrome] › mcp/files.spec.ts:106 › browser_file_upload keeps chooser when setFiles fails @mcp-windows-latest-chrome
❌ [chrome] › mcp/secrets.spec.ts:167 › short secret values are not redacted @mcp-windows-latest-chrome
❌ [chromium] › mcp/cli-core.spec.ts:149 › upload multiple files @mcp-macos-latest-chromium
❌ [chromium] › mcp/files.spec.ts:106 › browser_file_upload keeps chooser when setFiles fails @mcp-macos-latest-chromium
❌ [chromium] › mcp/secrets.spec.ts:167 › short secret values are not redacted @mcp-macos-latest-chromium
❌ [chromium] › mcp/cli-core.spec.ts:149 › upload multiple files @mcp-windows-latest-chromium
❌ [chromium] › mcp/files.spec.ts:106 › browser_file_upload keeps chooser when setFiles fails @mcp-windows-latest-chromium
❌ [chromium] › mcp/secrets.spec.ts:167 › short secret values are not redacted @mcp-windows-latest-chromium
❌ [chromium] › mcp/cli-core.spec.ts:149 › upload multiple files @mcp-ubuntu-latest-chromium
❌ [chromium] › mcp/files.spec.ts:106 › browser_file_upload keeps chooser when setFiles fails @mcp-ubuntu-latest-chromium
❌ [chromium] › mcp/secrets.spec.ts:167 › short secret values are not redacted @mcp-ubuntu-latest-chromium
❌ [firefox] › mcp/cli-core.spec.ts:149 › upload multiple files @mcp-ubuntu-latest-firefox
❌ [firefox] › mcp/files.spec.ts:106 › browser_file_upload keeps chooser when setFiles fails @mcp-ubuntu-latest-firefox
❌ [firefox] › mcp/secrets.spec.ts:167 › short secret values are not redacted @mcp-ubuntu-latest-firefox
❌ [firefox] › mcp/cli-core.spec.ts:149 › upload multiple files @mcp-windows-latest-firefox
❌ [firefox] › mcp/files.spec.ts:106 › browser_file_upload keeps chooser when setFiles fails @mcp-windows-latest-firefox
❌ [firefox] › mcp/secrets.spec.ts:167 › short secret values are not redacted @mcp-windows-latest-firefox
❌ [firefox] › mcp/cli-core.spec.ts:149 › upload multiple files @mcp-macos-latest-firefox
❌ [firefox] › mcp/files.spec.ts:106 › browser_file_upload keeps chooser when setFiles fails @mcp-macos-latest-firefox
❌ [firefox] › mcp/secrets.spec.ts:167 › short secret values are not redacted @mcp-macos-latest-firefox
❌ [msedge] › mcp/cli-core.spec.ts:149 › upload multiple files @mcp-windows-latest-msedge
❌ [msedge] › mcp/files.spec.ts:106 › browser_file_upload keeps chooser when setFiles fails @mcp-windows-latest-msedge
❌ [msedge] › mcp/secrets.spec.ts:167 › short secret values are not redacted @mcp-windows-latest-msedge
❌ [webkit] › mcp/cli-core.spec.ts:149 › upload multiple files @mcp-macos-latest-webkit
❌ [webkit] › mcp/files.spec.ts:106 › browser_file_upload keeps chooser when setFiles fails @mcp-macos-latest-webkit
❌ [webkit] › mcp/secrets.spec.ts:167 › short secret values are not redacted @mcp-macos-latest-webkit
❌ [webkit] › mcp/cli-core.spec.ts:149 › upload multiple files @mcp-windows-latest-webkit
❌ [webkit] › mcp/files.spec.ts:106 › browser_file_upload keeps chooser when setFiles fails @mcp-windows-latest-webkit
❌ [webkit] › mcp/secrets.spec.ts:167 › short secret values are not redacted @mcp-windows-latest-webkit
❌ [webkit] › mcp/cli-core.spec.ts:149 › upload multiple files @mcp-ubuntu-latest-webkit
❌ [webkit] › mcp/files.spec.ts:106 › browser_file_upload keeps chooser when setFiles fails @mcp-ubuntu-latest-webkit
❌ [webkit] › mcp/secrets.spec.ts:167 › short secret values are not redacted @mcp-ubuntu-latest-webkit

8563 passed, 1446 skipped


Merge workflow run.

waitForCompletion returns immediately when a fileChooser modal is
already listed, so wrapping setFiles in it skipped the upload. Call
setFiles first, keep the chooser on failure, then settle.

Signed-off-by: Sebastien Tardif <sebtardif@ncf.ca>
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.

1 participant