feat(web): dock the thread's pull request on the composer - #244
Merged
Conversation
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.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
badcuban
enabled auto-merge
September 6, 2026 08:07
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.