Skip to content

Fix #69: emitted request escapes inline Markdown in manifest fields - #76

Merged
REPPL merged 1 commit into
mainfrom
fix-69-emit-md-escape
Aug 27, 2026
Merged

Fix #69: emitted request escapes inline Markdown in manifest fields#76
REPPL merged 1 commit into
mainfrom
fix-69-emit-md-escape

Conversation

@REPPL

@REPPL REPPL commented Aug 27, 2026

Copy link
Copy Markdown
Owner

Validated against main: EmitRequest renders App/Participant/Tasks with SafeText only, outside any fence (regression test added first — fails on main with the beacon link surviving verbatim).

Fix: hoist the escape set into session.SafeInline — one canonical home — with report.mdInline delegating to it and emit.go's three fields routed through it, so the two Markdown artefacts built from untrusted manifest text cannot drift. Corrects the comment whose 'matching report' parity claim the issue showed to be false. CHANGELOG entry added.

Fixes #69

EmitRequest rendered App, Participant, and Tasks through session.SafeText
only, which deliberately passes the inline-Markdown triggers through, and
the three fields sit as list items outside any code fence — so an
attacker-authored manifest value survived as a live link or image beacon
in a saved request.md, the exact construct report.md already neutralises
for the identical fields. Hoist the escape into session.SafeInline as the
one shared home (one-canonical-primitive), delegate report's mdInline to
it, and route the emit fields through it. The false 'matching report'
parity claim in EmitRequest's comment is corrected.

Fixes #69.

Assisted-by: Claude:claude-fable-5
@REPPL
REPPL merged commit 9602914 into main Aug 27, 2026
6 checks passed
@REPPL
REPPL deleted the fix-69-emit-md-escape branch August 27, 2026 05:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant