From 629f0c3dd26e2a4bf7590834ff0694f7f308fc02 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 22 Dec 2025 20:43:29 +0000 Subject: [PATCH 1/4] Initial plan From c55e3cc3d1c5abf5b52f0e09d1dd2a46ad8d8a6a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 22 Dec 2025 20:51:32 +0000 Subject: [PATCH 2/4] Escape HTML in tooltip labels to prevent interpretation of angle brackets Co-authored-by: Keavon <4388688+Keavon@users.noreply.github.com> --- frontend/src/components/floating-menus/Tooltip.svelte | 9 ++++++++- .../src/components/widgets/inputs/NumberInput.svelte | 2 +- frontend/src/editor.ts | 1 + frontend/src/messages.ts | 2 +- frontend/src/subscription-router.ts | 2 +- 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/frontend/src/components/floating-menus/Tooltip.svelte b/frontend/src/components/floating-menus/Tooltip.svelte index 33beaaff34..fbaf4a1dc2 100644 --- a/frontend/src/components/floating-menus/Tooltip.svelte +++ b/frontend/src/components/floating-menus/Tooltip.svelte @@ -33,11 +33,18 @@ return text; } + function escapeHtml(text: string): string { + return text.replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'"); + } + function parseMarkdown(markdown: string | undefined): string | undefined { if (!markdown) return undefined; + // First, escape HTML special characters to prevent interpretation as HTML tags + const escaped = escapeHtml(markdown); + return ( - markdown + escaped // .split("\n") // .map((line) => line.trim()) // .join("\n") diff --git a/frontend/src/components/widgets/inputs/NumberInput.svelte b/frontend/src/components/widgets/inputs/NumberInput.svelte index 830fb1d8e5..8ac13f753c 100644 --- a/frontend/src/components/widgets/inputs/NumberInput.svelte +++ b/frontend/src/components/widgets/inputs/NumberInput.svelte @@ -1,7 +1,7 @@