Show the pull request a branch already has - #15248
Draft
mtsgrd wants to merge 1 commit into
Draft
Conversation
mtsgrd
force-pushed
the
branch-tabs-workspace-only
branch
from
August 9, 2026 21:13
f04f994 to
43c5122
Compare
mtsgrd
force-pushed
the
branch-tabs-workspace-only
branch
from
August 9, 2026 21:26
43c5122 to
9e1ed4c
Compare
mtsgrd
force-pushed
the
branch-tabs-workspace-only
branch
from
August 9, 2026 22:04
9e1ed4c to
95c83de
Compare
mtsgrd
force-pushed
the
branch-tabs-workspace-only
branch
from
August 10, 2026 15:13
95c83de to
09d754f
Compare
mtsgrd
force-pushed
the
branch-tabs-workspace-only
branch
from
August 10, 2026 21:14
09d754f to
8dc24a5
Compare
Selecting a branch in the branches explorer showed a Diff / Pull Request toggle whose form could not work: publish_review derives the base from the branch's position in a workspace stack, and an unapplied branch has none. The pane dispatched on the operand, which says what is selected but not what it is, and both outline tabs mint a Branch operand. It now takes a DetailsSelection — AppliedBranch, UnappliedBranch, Commit or UncommittedFile — built by WorkspacePage, which already resolves selection per tab. Applied and unapplied are the words the rest of the app uses: unappliedStacks is what fills the branches tab, and ListedBranch was already taken by the SDK type those stacks are made of. An unapplied branch now shows its review when one exists — a review is keyed by branch name, so description, conversation, checks, reviewers and labels were already reachable. The toggle appears only alongside a review, so it is never a half-dead control, and a branch without one is its title and its diff. AppliedBranchDetails and UnappliedBranchDetails share BranchTabToggle, useBranchTabHotkeys, BranchDiff, BranchTitleRow and ReviewView; editing the description stays the applied view's affordance. Operand keeps its shape. It is the argument type of getOperations, and an unapplied branch is precisely what operations cannot act on, so the distinction belongs where the two tabs converge rather than in a dozen exhaustive matches that could not act on it. Its Branch case is now commented to say it means an applied branch, which it already did — operandLabel asserts the ref resolves to a segment.
mtsgrd
force-pushed
the
branch-tabs-workspace-only
branch
from
August 10, 2026 22:02
8dc24a5 to
d64a747
Compare
Contributor
|
From a UX perspective there are two issues:
|
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.
Selecting a branch in the branches explorer showed a Diff / Pull Request toggle whose form could not work:
publish_reviewderives the base from the branch's position in a workspace stack, and an unapplied branch has none.The pane dispatched on the operand — what is selected, not what it is — and both outline tabs mint a
Branch. It now takes aDetailsSelection:WorkspacePagealready resolves selection per tab, so it names what it resolved. Applied and unapplied are the words the rest of the app uses —unappliedStacksis what fills the branches tab, andListedBranchwas already taken by the SDK type those stacks are made of.What the branches tab shows now
A review is keyed by branch name, so the description, conversation, checks, reviewers and labels were already reachable — nothing new was needed to read them. The toggle appears only alongside a review, so it is never a half-dead control. Opening a review is still not offered here; apply the branch and use the workspace, where the base exists.
AppliedBranchDetailsandUnappliedBranchDetailsshareBranchTabToggle,useBranchTabHotkeys,BranchDiff,BranchTitleRowandReviewView. Editing the description stays the applied view's affordance; the review's own controls work in both.Operandkeeps its shape. It is the argument type ofgetOperations, and an unapplied branch is precisely what operations cannot act on — so the distinction belongs where the two tabs converge, not in a dozen exhaustive matches that could not act on it. ItsBranchcase is now commented to say it means an applied branch, which it already did:operandLabelasserts the ref resolves to a segment.Verification
Driven against the running dev app over CDP: an unapplied branch with a PR shows both tabs and the full review (description, checks, reviewers, labels, activity); one without shows title and diff only; an applied branch is unchanged and its pull-request tab still loads.
Checked against the committed tree in a scratch worktree, not the working copy: typecheck,
oxlintover the whole repo,prettier,knip:prod,knip:non-prodand the lite unit tests (77/77) all clean.