also looking at this
fix(reviews): the sidebar computes its own data again
#2The diff-renderer refactor (75db93a) rewrote the rendering half of the review screen's server script and took the sidebar's data block with it: descriptionHtml, protection, required checks, approvals, mergeability, blockers, and the stack. The template still referenced every one of them, and the imports stayed behind, so nothing looked deleted.
What that rendered, on every open pull request:
- "This cannot be merged yet" over an empty list of reasons, with the merge button disabled — nothing could be merged from the interface at all
- the pull request description gone
- the checks panel rendered as
@foreacherror HTML comments - the approval count reading "
of 0"
stx renders an undefined binding as its falsy branch and a failed @foreach as an HTML comment, so the page never raised an error anywhere — the same failure family the roadmap's "silent failure that costs the most" section describes.
Why no test caught it: the review-page e2e asserts on the diff and the threads — the main column — and the main column was the half the refactor kept. It also self-skips on a checkout with no database. Verified by booting the router, seeding a pull request, and diffing the rendered sidebar before/after; the block is restored as it was, placed after the render loop it now has to follow.
Found while setting up: ts-git-lfs and ts-ssh are bun linked on the machine that wired them (they're in bun.lock as link: entries but not published and not in package.json), so a fresh checkout cannot load routes/git.ts — route loading fails and every e2e that boots the router self-skips. Worth either vendoring, publishing, or making the LFS import lazy; happy to pick that up.
🤖 Generated with Claude Code
1 changed file on the files tab, with 0 review threads.