Repository navigation
fix(web): preserve bare anchor placeholders in markdown - #16637
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a focused markdown-rendering bug fix confined to the existing web renderer, with regression tests covering unmatched placeholders and preserving valid links and raw HTML. It does not alter product defaults, schemas, infrastructure, or static-analysis configuration. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (2)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 4 remain after this review. 📝 WalkthroughWalkthroughThe Markdown renderer now detects unmatched raw HTML anchor placeholders before raw HTML parsing and converts them to text. Tests cover unmatched and paired anchors, apparent closing tags in comments, attributes, and scripts, and preservation of related markup. ChangesMarkdown anchor handling
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to The change keeps unmatched bare anchor placeholders as text in the Markdown renderer. It also leaves paired anchors and normal links intact. No concrete merge-blocking risk was found. Architecture SummaryArchitecture risk: 🔵 Low · up to The change affects 1 system. Changed systems: Architecture concerns Review detailsSystems and components
Before / after behavior
🚥 Pre-merge checks | ✅ 3 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (3 passed)
Full details: Description checkExplanation The description explains the problem and fix, and gives detailed verification results with before-and-after screenshots. It does not include the required scope and approval information or explain why this focused fix needs no prior approval.
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
## What's Changed * fix(web): show attempted paths in file preview errors by @maria-rcks in pingdotgg/t3code#15628 * fix(vcs): passive sidebar rows stop retaining remote pollers by @maria-rcks in pingdotgg/t3code#15666 * feat(web): group keybindings settings by area with a page toolbar by @maria-rcks in pingdotgg/t3code#12822 * feat(web): stop T3-owned subagents from Lineage by @Bil0000 in pingdotgg/t3code#15211 * feat(web): add fast actions to linked pull requests by @maria-rcks in pingdotgg/t3code#16627 * feat(web): open right panel tab menu with Mod+T by @Bil0000 in pingdotgg/t3code#15686 * fix(server): provider sessions clean up when their start is interrupted by @juliusmarminge in pingdotgg/t3code#15571 * fix(web): show "No project" near the top of the new thread picker by @juliusmarminge in pingdotgg/t3code#16628 * refactor(server): instrument WS RPCs in group middleware by @juliusmarminge in pingdotgg/t3code#15548 * chore(deps): upgrade @pierre/diffs to 1.5.2 and @pierre/trees to beta.6 by @juliusmarminge in pingdotgg/t3code#16644 * fix(relay): a host restarting onto a deleted tunnel gets a new one by @juliusmarminge in pingdotgg/t3code#16649 * fix(server): recover a deleted tunnel when Cloudflare says "Tunnel not found" by @juliusmarminge in pingdotgg/t3code#16648 * fix(web): iPhone Duo fold controls follow the phone's orientation by @gabrielelpidio in pingdotgg/t3code#16630 * fix(web): keep workspace options when expanding lineage by @maria-rcks in pingdotgg/t3code#16635 * fix(web): preserve bare anchor placeholders in markdown by @maria-rcks in pingdotgg/t3code#16637 * fix(pi): preserve provider identity in discovered models by @maria-rcks in pingdotgg/t3code#16661 * fix(auth): preserve explicitly granted pairing scopes by @juliusmarminge in pingdotgg/t3code#9785 * feat(auth): separate environment administration permissions by @juliusmarminge in pingdotgg/t3code#9786 * feat(auth): separate source control write permissions by @juliusmarminge in pingdotgg/t3code#9787 * feat(auth): separate filesystem read and write permissions by @juliusmarminge in pingdotgg/t3code#9788 * feat(auth): separate browser preview control permissions by @juliusmarminge in pingdotgg/t3code#9789 * feat(auth): separate diagnostics and usage permissions by @juliusmarminge in pingdotgg/t3code#9790 * feat(auth): allow passive terminal observation by @juliusmarminge in pingdotgg/t3code#9791 * fix(auth): keep old clients connected across scope changes by @juliusmarminge in pingdotgg/t3code#10298 * feat(server): hosted agents like ChatGPT can sign in to the T3 MCP server by @juliusmarminge in pingdotgg/t3code#16718 **Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261006.2752...v0.0.46-nightly.20261007.2761 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261007.2761
bare
<A>placeholders in assistant markdown were parsed as unclosed html anchors, dropping the placeholder and turning later paragraphs blue. preserve unmatched bare inline anchors as text before html parsing while keeping paired anchors and normal links intact. web and desktop share this renderer.verified the supplied message through a real provider turn and client reload, plus normal markdown/raw links, inline code, opening html details, paired anchors closing inside larger html blocks, and self-closing bare anchors. checked light/dark themes and a narrower viewport. blacksmith: 147 scoped tests, targeted lint (three existing warnings), and web typecheck passed; the three original placeholder regression cases failed before the fix.
model:
gpt-6.1-sol; harness: codex.