Commit 0d3eb35
fix(tone): strip any-language code fences so 'html' never leaks into art (#688)
**F13 from the investor-audit register.** The tone fence stripper's
language allowlist omitted `html`, so a ```html fence after the DOCTYPE
lost only its backticks — leaking a literal `html` token that rendered
as visible text beside the start button in the live proof artifact. The
existing leading-`html` band-aid (`normalizeToneArtifact`) is anchored
without `/m` and misses mid-document residue.
Fix: fence-opening lines strip generically (`/^\`\`\`[ \t]*[\w-]*[
\t]*\r?\n?/gm`). Closing-fence handling unchanged.
Verification: ToneGenerator suite 15/15; the new regression reproduces
the exact observed artifact shape and **fails against the old regex**
(stash-verified red-green); eslint clean.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Sinter Test <liminal@example.test>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>1 parent 5eeb692 commit 0d3eb35
2 files changed
Lines changed: 26 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
90 | 90 | | |
91 | 91 | | |
92 | 92 | | |
93 | | - | |
94 | | - | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
95 | 98 | | |
96 | 99 | | |
97 | 100 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
91 | 112 | | |
92 | 113 | | |
93 | 114 | | |
| |||
0 commit comments