Fix #521: PR page redesign #528

Merged
crueber merged 1 commit from fix/issue-521 into main 2026-09-14 18:26:08 +00:00
Owner

Redesigns the PR conversation page (web/src/pages/Pull.jsx) to the issue page's design language — client-only, no wire change, ThreadTimeline untouched.

  • Header keeps the #517 badge unified (title-left/badge-right, open/closed/merged via pullBadgeView; muted #num span like Issue.jsx; no stacked second badge).
  • chip-merged already ships in ui.css (light+dark, #517); pulls-list chip path untouched (PROut has no merged signal — a list merged chip would need a wire change, out of scope).
  • Review bodies + thread comments render through renderBody with one shared repo mdCtx; finish-review modal draft preview stays plain by design.
  • PR description renders as a styled first-comment block on the live pr.body (body edits append no timeline event, so the old opened row went stale); the opened timeline row is now a one-line system row via pullEventText (moved to lib/pull-state.js for headless cover), keeping its event-0 anchor.
  • issue-page grid idiom; one .card-header for all cards (Mergeability, Reviewers, Checks, Merge, Reviews, Review summary, Finish review, Files); ReviewSummaryBar composes into the sidebar first.
  • Law-12 decision appended to docs/go/12_web_ui.md.

Tests: new web/test/unit/pull-event-text-521.test.js (11 tests) + #521-scoped refs-autolink pin update. Full node --test: 1191 total / 1190 pass / 1 fail (pre-existing live-server smoke subtest, verified head-to-head on pristine origin/main). vite build + esbuild green. No new deps. Browser proof open (shared-daemon loopback guard).

Redesigns the PR conversation page (web/src/pages/Pull.jsx) to the issue page's design language — client-only, no wire change, ThreadTimeline untouched. - Header keeps the #517 badge unified (title-left/badge-right, open/closed/merged via pullBadgeView; muted #num span like Issue.jsx; no stacked second badge). - chip-merged already ships in ui.css (light+dark, #517); pulls-list chip path untouched (PROut has no merged signal — a list merged chip would need a wire change, out of scope). - Review bodies + thread comments render through renderBody with one shared repo mdCtx; finish-review modal draft preview stays plain by design. - PR description renders as a styled first-comment block on the live pr.body (body edits append no timeline event, so the old opened row went stale); the opened timeline row is now a one-line system row via pullEventText (moved to lib/pull-state.js for headless cover), keeping its event-0 anchor. - issue-page grid idiom; one .card-header for all cards (Mergeability, Reviewers, Checks, Merge, Reviews, Review summary, Finish review, Files); ReviewSummaryBar composes into the sidebar first. - Law-12 decision appended to docs/go/12_web_ui.md. Tests: new web/test/unit/pull-event-text-521.test.js (11 tests) + #521-scoped refs-autolink pin update. Full node --test: 1191 total / 1190 pass / 1 fail (pre-existing live-server smoke subtest, verified head-to-head on pristine origin/main). vite build + esbuild green. No new deps. Browser proof open (shared-daemon loopback guard).
Header keeps the #517 badge unified (muted #num, no stacked badge);
review bodies + thread comments via renderBody with shared repo mdCtx;
PR description as first-comment block on live pr.body (opened row now a
system row via pullEventText in lib/pull-state.js); issue-page grid idiom;
one .card-header for all cards; ReviewSummaryBar composes into sidebar.
No wire change; ThreadTimeline untouched; chip-merged already in ui.css.
Sign in to join this conversation.
No description provided.