From c85ce9619ca48486b41b0926cbb20760abe03deb Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Wed, 18 Feb 2026 23:01:57 +0000 Subject: [PATCH] Strip `_vscodecontentref_` links from chat response markdown (#3823) * Initial plan * Strip _vscodecontentref_ links in unlikify pass of linkifier Co-authored-by: vijayupadya <41652029+vijayupadya@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: vijayupadya <41652029+vijayupadya@users.noreply.github.com> --- .../src/extension/linkify/common/linkifier.ts | 5 +++++ .../extension/linkify/test/node/linkifier.spec.ts | 13 +++++++++++++ 2 files changed, 18 insertions(+) diff --git a/extensions/copilot/src/extension/linkify/common/linkifier.ts b/extensions/copilot/src/extension/linkify/common/linkifier.ts index d8efc323a7f..7e4563abc46 100644 --- a/extensions/copilot/src/extension/linkify/common/linkifier.ts +++ b/extensions/copilot/src/extension/linkify/common/linkifier.ts @@ -264,6 +264,11 @@ export class Linkifier implements ILinkifier { return matched; } + // Strip fake content reference links generated by models + if (path.includes('_vscodecontentref_')) { + return text; + } + return /^\w+:/.test(path) ? matched : text; }); } diff --git a/extensions/copilot/src/extension/linkify/test/node/linkifier.spec.ts b/extensions/copilot/src/extension/linkify/test/node/linkifier.spec.ts index df1f2b6c17f..6af147c4af3 100644 --- a/extensions/copilot/src/extension/linkify/test/node/linkifier.spec.ts +++ b/extensions/copilot/src/extension/linkify/test/node/linkifier.spec.ts @@ -311,6 +311,19 @@ suite('Stateful Linkifier', () => { ]); }); + test(`Should de-linkify _vscodecontentref_ links`, async () => { + const linkifier = createTestLinkifierService().createLinkifier(emptyContext); + + const parts: string[] = [ + 'npx tsx [index.ts](http://_vscodecontentref_/1) eval [primer.eval.json](http://_vscodecontentref_/2) --repo .', + ]; + + const result = await runLinkifier(linkifier, parts); + assertPartsEqual(result, [ + 'npx tsx index.ts eval primer.eval.json --repo .' + ]); + }); + test(`Should not unlinkify text inside of code blocks`, async () => { const linkifier = createTestLinkifierService().createLinkifier(emptyContext);