Skip to content

feat(web): dock the thread's pull request on the composer - #244

Merged
badcuban merged 1 commit into
mainfrom
threadlines/mockup-dynamic-pull-requests
Sep 6, 2026
Merged

feat(web): dock the thread's pull request on the composer#244
badcuban merged 1 commit into
mainfrom
threadlines/mockup-dynamic-pull-requests

Conversation

@badcuban

@badcuban badcuban commented Sep 6, 2026

Copy link
Copy Markdown
Collaborator

The sidebar badge says a thread has a pull request and the Pull request tab says everything about it, but neither is in view while writing the next message, which is when "did the checks pass" decides what you type.

The composer's top edge now carries a row for the thread's pull request: state glyph and number, project, branch, diff stat, and a CI chip. The chip's popover lists check counts (In progress, Failed, Passed, Skipped), links to the checks page, and holds two switches: "Merge when checks pass" (GitHub auto-merge) and "Wrap up thread after merge or close" (the existing global setting, marked as such). Notice rows share the same frame under the PR row, so the composer still has one docked edge.

GitHub pull request links in a transcript render as icon-and-number chips coloured by state, with click behaviour unchanged. The chips and the row's number share one hover card: state, repository and number, time ago, title, author, diff stat and file count.

The row reads the same detail query the Pull request tab reads, so one poll serves both. Part of making the row reliable: the pull request listing read the primary environment descriptor through a non-reactive getter, so a surface mounted before bootstrap finished never saw the capability arrive and the listing stayed disabled. It now uses the reactive selector, which also affects the sidebar count and the Pull Requests page on a cold load.

Not in this PR: more than one pull request per thread, a dismiss control on the row, and an auto-fix switch. The design reference is docs/mockups/pull-request-strip.html.

Verified: fmt, lint, typecheck; unit tests for the row model, chip label and URL parsing; browser tests for the docked row with a notice under it and for transcript chips opening the Pull request tab. Screenshots of the row, popover and hover card were taken from the browser test harness during review.

The sidebar badge says a thread has a pull request and the Pull request tab says everything about it, but neither is in view while writing the next message, which is when "did the checks pass" matters.

The composer's top edge now carries a row for the thread's pull request: state glyph and number, project, branch, diff stat, and a CI chip whose popover lists the check counts, a link to the checks page, and switches for GitHub auto-merge and the wrap-up-on-settle setting. The notice rows share the same frame under it. GitHub pull request links in a transcript render as icon-and-number chips, and both the chips and the row's number share one hover card with the state, repository, title, author and size. The row reads the same detail query as the tab, so one poll serves both.

Along the way: the pull request listing read the primary environment descriptor through a non-reactive getter, so a surface mounted before bootstrap finished never saw the capability arrive and the listing stayed disabled. It now reads the reactive selector.
@vercel

vercel Bot commented Sep 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
threadlines Ready Ready Preview Sep 6, 2026 8:07am UTC

Request Review

@github-actions github-actions Bot added size:XXL vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. labels Sep 6, 2026
@badcuban
badcuban enabled auto-merge September 6, 2026 08:07
@badcuban
badcuban added this pull request to the merge queue Sep 6, 2026
Merged via the queue into main with commit c91a468 Sep 6, 2026
16 checks passed
@badcuban
badcuban deleted the threadlines/mockup-dynamic-pull-requests branch September 6, 2026 08:20
badcuban added a commit that referenced this pull request Sep 6, 2026
Main gained a pull request row above the composer and a hover card on pull
request links (#244) after this branch forked. Its test fixture built a
thread pull request without the new auto-merge field, which failed the
typecheck on the merge result.

Both new surfaces draw the state glyph from the shared tone table, so they
now carry the armed flag as well: the composer row and the hover card read
it from the detail once it lands (a queue position counts), and from the
thread's own resolution before that. The "armed or queued" rule the PR
header used inline is now one helper the three of them share.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant