Skip to content

feat(web): adopt upstream pull request surfaces - #14

Merged
rynfar merged 3 commits into
pylonfrom
upstream/2026-08-13-pr-surfaces
Aug 13, 2026
Merged

feat(web): adopt upstream pull request surfaces#14
rynfar merged 3 commits into
pylonfrom
upstream/2026-08-13-pr-surfaces

Conversation

@rynfar

@rynfar rynfar commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

Adopts upstream's pull request surfaces work (#6039) and the follow-up that scopes its errors per environment (#6490).

Supersedes #13, which GitHub auto-closed when its base branch upstream/2026-08-13-batch was deleted on merge of #12. Same three commits, rebased onto the merged pylon.

What's here

#6039 is upstream's flagship pull request work for this period. It builds on the PR surfaces Pylon already inherited:

  • Filters and qualifiers in the list, with an all-server listing so one page reads every connected environment rather than only the primary one
  • Update branch action, reactions, and in-place editing of a pull request's title, description, and your own comments, in Markdown with a preview
  • A checks popover and smarter diff file ordering
  • Provider coverage across GitHub, GitLab, Bitbucket, and Azure DevOps. Azure DevOps accepts a new title and description; its comments stay read-only, as they already were

#6490 then scopes pull request errors to the environment that produced them, which only makes sense once the list spans several.

Pylon adaptations

One commit at the end:

  • The one conflict was SidebarChrome.tsx, where Pylon gated the pull requests link on the primary environment's capability and upstream widens it to any connected one. Resolved toward upstream, since all-server listing is the feature.
  • Upstream's resolution also added a useLocation subscription to derive which footer page is open. Pylon's footer already derives exactly that from its own pathname/onFooterPage, and upstream only uses the value as a boolean, so I dropped the duplicate rather than run two router subscriptions in the sidebar footer.
  • Rebranded Update your T3 Code servers to browse pull requests. to say Pylon, plus the command palette test fixtures.
  • Turned four repeatedly-scanned arrays into sets (labels in three filter paths, statuses in the checks reducer). These are scanned once per filter per row, so the list pays for them.

Two react(no-array-index-key) warnings remain in PullRequestChecksPopover.tsx and PullRequestSummaryTab.tsx. Both are deliberate upstream choices with comments explaining them: the host decides how many check runs share a name, so position disambiguates and the index is a suffix on a name-and-url key rather than the key itself. I left that reasoning intact instead of papering over it.

Verification

  • vp test run over all 30 touched test files: 887 passed.
  • Typecheck on @t3tools/web, t3, @t3tools/contracts, @t3tools/client-runtime: no errors.
  • vp check repo-wide: clean apart from the two documented warnings above. Baseline for these files before #6039 was clean, so those two are the only lint delta.

Verified in a real client against a seeded copy of real data, driving the actual GitHub provider:

  • All-server listing showing pull requests from three projects across more than one repository
  • Filter popover renders every qualifier — State, Involvement, Draft, Review, Checks, Project — and applying Review: Approved narrowed the list to only approved rows and wrote &review=approved into the URL
  • Detail panel on a live pingdotgg/t3code pull request showed update branch ("This branch is out-of-date with main by 1 commit"), reactions, and timeline ordering
  • In-place editing is correctly permission-gated: Edit title / Edit description appear on the viewer's own authored pull request and are absent on someone else's
  • #6490's environment scoping visible as selectedEnvironmentId in the detail URL
  • No error alerts on any surface exercised

Model: Claude Opus 5. Harness: Claude Code.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith with what you need. Autofix is disabled.

Bil0000 and others added 3 commits August 13, 2026 17:26
…isting, update branch, reactions, in-place editing, smarter diffs (#6039)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
(cherry picked from commit b28f9bf0a1bd562623c027c5ed80b5ca50395b28)
Co-authored-by: Julius Marminge <julius0216@outlook.com>
(cherry picked from commit 92d4a2e996b19239d95e32a3feb05208e0a52306)
Rebrand the pull request server-capability copy, drop the redundant footer
route subscription the sidebar already derives from its own pathname, and
turn four repeatedly-scanned label and status arrays into sets.
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL labels Aug 13, 2026
@github-actions

Copy link
Copy Markdown

Thread transfer impact

⚠️ The latest CI run did not produce a thread transfer result for cda705f.

This comment will update automatically after the next completed run.

@rynfar
rynfar merged commit bcefea2 into pylon Aug 13, 2026
11 checks passed
@rynfar
rynfar deleted the upstream/2026-08-13-pr-surfaces branch August 13, 2026 23:32
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.

3 participants