fix(web): pull request surface offers the checkout's PR - #8273

Closed
StiensWout wants to merge 3 commits into
pingdotgg:mainfrom
StiensWout:t3code/pr-surface-follows-checkout
Closed

fix(web): pull request surface offers the checkout's PR#8273
StiensWout wants to merge 3 commits into
pingdotgg:mainfrom
StiensWout:t3code/pr-surface-follows-checkout

Conversation

@StiensWout

@StiensWoutStiensWout commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Problem

On a thread whose checkout has an open pull request, the git menu shows View PR and opens that PR in the right panel, yet the right panel's own Pull request card is disabled with "No pull request on this branch yet." Two entry points to the same panel disagree about whether a PR exists.

The card only offered the thread's own PR, which requires the recorded thread branch to match the checkout. On a shared (non-worktree) checkout that recorded branch deliberately stays strict (#4460), so the common flow of an agent running git checkout -b and gh pr create mid-thread leaves the thread without an attributed PR while the checkout clearly has one.

Closes#8265

Solution

The card now falls back to the checkout's PR, opened against the project repository with the same gate View PR already uses. The thread's own PR still wins when it has one, and thread attribution (sidebar badge, composer footer, auto-settle) is unchanged. The menu's disabled reason now reads "This branch has no pull request yet." to match.

Before

Reporter's screenshot: View PR enabled, Pull request card disabled.

View PR enabled while the Pull request card says no PR

After

The card is enabled whenever View PR would open a PR in the panel, and opens the same one.

Verification

  • vp run typecheck for apps/web
  • vp lint and vp fmt --check on the two changed files
  • vp test run apps/web/src/components/RightPanelTabs.test.tsx

Made with Claude Fable 5 in T3 Code.


Note

Low Risk
UI-only fallback for opening an existing checkout PR in the right panel; thread PR resolution and attribution logic are unchanged.

Overview
Aligns the right panel Pull request card with the git menu View PR when a thread has no attributed PR but the checkout has an open one.

ChatView now derives checkoutPr from git status (open PR only, and only when there is no linked thread PR) and enables the surface when either the thread PR or that checkout PR exists. Opening the surface prefers the thread PR via openThreadPullRequest; otherwise it opens the checkout PR with openProjectPullRequest, matching View PR.

RightPanelTabs updates the disabled copy to "This branch has no pull request yet." so it is not thread-specific when the fallback applies. Thread attribution elsewhere is unchanged.

Reviewed by Cursor Bugbot for commit 21d2dc7. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Offer checkout PR on Pull Request surface when thread has no PR

  • Derives checkoutPr from gitStatusQuery in ChatViewContent so the PR surface shows an open checkout PR even when the thread has no linked PR
  • Opens the thread PR when one exists; otherwise opens the project's checkout PR via openProjectPullRequest
  • pullRequestSurfaceAvailable is now true when either the thread has a PR and threadRepository is present, or the checkout has an open PR and activeProjectRepository is present
  • Updates the disabled-reason text in RightPanelTabs.tsx from "This thread's branch has no pull request yet." to "This branch has no pull request yet."
  • Behavioral Change: the PR surface now activates for branches with an open checkout PR regardless of thread PR state, which may surface PRs that were previously hidden

Macroscope summarized 21d2dc7.

The right panel's Pull request card only offered the thread's own PR, which
requires the recorded thread branch to match the checkout. On a shared
checkout that branch stays strict, so an agent that branches and opens a PR
mid-thread left the card saying "No pull request on this branch yet" while
the git menu's View PR opened that same PR in the panel.
Fall back to the checkout's PR with the same gate View PR uses.
Closespingdotgg#8265
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Aug 26, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 90cf1fdc-04e3-4abf-b575-60eda8390fc3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Aug 26, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 856c3cd. Configure here.

Comment threadapps/web/src/components/ChatView.tsx
Mirrors the git menu's View PR gate so a merged or closed PR on the
checkout does not enable the card while the menu offers Create PR.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One finding on the new checkout-PR fallback for the pull-request surface. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ChatView.tsx Outdated
A linked PR is the thread's own even while its detail is loading, so the
surface card must not open the checkout's PR in that window.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@macroscopeapp

macroscopeappBot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 21d2dc7

Macroscope's review found this PR approvable — This is a narrowly scoped web bug fix that makes the Pull request surface match the existing git-menu behavior for open checkout PRs. Existing thread PR handling remains prioritized, while the second file only updates explanatory copy.

You can add or adjust custom eligibility rules. Learn more.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S10-29 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: PR sidebar doesn't recognize an active pull request that exists for the branch

1 participant

@StiensWout
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(web): pull request surface offers the checkout's PR - #8273

Closed
StiensWout wants to merge 3 commits into
pingdotgg:mainfrom
StiensWout:t3code/pr-surface-follows-checkout
Closed

fix(web): pull request surface offers the checkout's PR#8273
StiensWout wants to merge 3 commits into
pingdotgg:mainfrom
StiensWout:t3code/pr-surface-follows-checkout

Conversation

@StiensWout

@StiensWoutStiensWout commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Problem

On a thread whose checkout has an open pull request, the git menu shows View PR and opens that PR in the right panel, yet the right panel's own Pull request card is disabled with "No pull request on this branch yet." Two entry points to the same panel disagree about whether a PR exists.

The card only offered the thread's own PR, which requires the recorded thread branch to match the checkout. On a shared (non-worktree) checkout that recorded branch deliberately stays strict (#4460), so the common flow of an agent running git checkout -b and gh pr create mid-thread leaves the thread without an attributed PR while the checkout clearly has one.

Closes#8265

Solution

The card now falls back to the checkout's PR, opened against the project repository with the same gate View PR already uses. The thread's own PR still wins when it has one, and thread attribution (sidebar badge, composer footer, auto-settle) is unchanged. The menu's disabled reason now reads "This branch has no pull request yet." to match.

Before

Reporter's screenshot: View PR enabled, Pull request card disabled.

View PR enabled while the Pull request card says no PR

After

The card is enabled whenever View PR would open a PR in the panel, and opens the same one.

Verification

  • vp run typecheck for apps/web
  • vp lint and vp fmt --check on the two changed files
  • vp test run apps/web/src/components/RightPanelTabs.test.tsx

Made with Claude Fable 5 in T3 Code.


Note

Low Risk
UI-only fallback for opening an existing checkout PR in the right panel; thread PR resolution and attribution logic are unchanged.

Overview
Aligns the right panel Pull request card with the git menu View PR when a thread has no attributed PR but the checkout has an open one.

ChatView now derives checkoutPr from git status (open PR only, and only when there is no linked thread PR) and enables the surface when either the thread PR or that checkout PR exists. Opening the surface prefers the thread PR via openThreadPullRequest; otherwise it opens the checkout PR with openProjectPullRequest, matching View PR.

RightPanelTabs updates the disabled copy to "This branch has no pull request yet." so it is not thread-specific when the fallback applies. Thread attribution elsewhere is unchanged.

Reviewed by Cursor Bugbot for commit 21d2dc7. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Offer checkout PR on Pull Request surface when thread has no PR

  • Derives checkoutPr from gitStatusQuery in ChatViewContent so the PR surface shows an open checkout PR even when the thread has no linked PR
  • Opens the thread PR when one exists; otherwise opens the project's checkout PR via openProjectPullRequest
  • pullRequestSurfaceAvailable is now true when either the thread has a PR and threadRepository is present, or the checkout has an open PR and activeProjectRepository is present
  • Updates the disabled-reason text in RightPanelTabs.tsx from "This thread's branch has no pull request yet." to "This branch has no pull request yet."
  • Behavioral Change: the PR surface now activates for branches with an open checkout PR regardless of thread PR state, which may surface PRs that were previously hidden

Macroscope summarized 21d2dc7.

The right panel's Pull request card only offered the thread's own PR, which
requires the recorded thread branch to match the checkout. On a shared
checkout that branch stays strict, so an agent that branches and opens a PR
mid-thread left the card saying "No pull request on this branch yet" while
the git menu's View PR opened that same PR in the panel.
Fall back to the checkout's PR with the same gate View PR uses.
Closespingdotgg#8265
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Aug 26, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 90cf1fdc-04e3-4abf-b575-60eda8390fc3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Aug 26, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 856c3cd. Configure here.

Comment threadapps/web/src/components/ChatView.tsx
Mirrors the git menu's View PR gate so a merged or closed PR on the
checkout does not enable the card while the menu offers Create PR.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One finding on the new checkout-PR fallback for the pull-request surface. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ChatView.tsx Outdated
A linked PR is the thread's own even while its detail is loading, so the
surface card must not open the checkout's PR in that window.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@macroscopeapp

macroscopeappBot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 21d2dc7

Macroscope's review found this PR approvable — This is a narrowly scoped web bug fix that makes the Pull request surface match the existing git-menu behavior for open checkout PRs. Existing thread PR handling remains prioritized, while the second file only updates explanatory copy.

You can add or adjust custom eligibility rules. Learn more.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S10-29 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: PR sidebar doesn't recognize an active pull request that exists for the branch

1 participant

@StiensWout
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(web): pull request surface offers the checkout's PR - #8273

Closed
StiensWout wants to merge 3 commits into
pingdotgg:mainfrom
StiensWout:t3code/pr-surface-follows-checkout
Closed

fix(web): pull request surface offers the checkout's PR#8273
StiensWout wants to merge 3 commits into
pingdotgg:mainfrom
StiensWout:t3code/pr-surface-follows-checkout

Conversation

@StiensWout

@StiensWoutStiensWout commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Problem

On a thread whose checkout has an open pull request, the git menu shows View PR and opens that PR in the right panel, yet the right panel's own Pull request card is disabled with "No pull request on this branch yet." Two entry points to the same panel disagree about whether a PR exists.

The card only offered the thread's own PR, which requires the recorded thread branch to match the checkout. On a shared (non-worktree) checkout that recorded branch deliberately stays strict (#4460), so the common flow of an agent running git checkout -b and gh pr create mid-thread leaves the thread without an attributed PR while the checkout clearly has one.

Closes#8265

Solution

The card now falls back to the checkout's PR, opened against the project repository with the same gate View PR already uses. The thread's own PR still wins when it has one, and thread attribution (sidebar badge, composer footer, auto-settle) is unchanged. The menu's disabled reason now reads "This branch has no pull request yet." to match.

Before

Reporter's screenshot: View PR enabled, Pull request card disabled.

View PR enabled while the Pull request card says no PR

After

The card is enabled whenever View PR would open a PR in the panel, and opens the same one.

Verification

  • vp run typecheck for apps/web
  • vp lint and vp fmt --check on the two changed files
  • vp test run apps/web/src/components/RightPanelTabs.test.tsx

Made with Claude Fable 5 in T3 Code.


Note

Low Risk
UI-only fallback for opening an existing checkout PR in the right panel; thread PR resolution and attribution logic are unchanged.

Overview
Aligns the right panel Pull request card with the git menu View PR when a thread has no attributed PR but the checkout has an open one.

ChatView now derives checkoutPr from git status (open PR only, and only when there is no linked thread PR) and enables the surface when either the thread PR or that checkout PR exists. Opening the surface prefers the thread PR via openThreadPullRequest; otherwise it opens the checkout PR with openProjectPullRequest, matching View PR.

RightPanelTabs updates the disabled copy to "This branch has no pull request yet." so it is not thread-specific when the fallback applies. Thread attribution elsewhere is unchanged.

Reviewed by Cursor Bugbot for commit 21d2dc7. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Offer checkout PR on Pull Request surface when thread has no PR

  • Derives checkoutPr from gitStatusQuery in ChatViewContent so the PR surface shows an open checkout PR even when the thread has no linked PR
  • Opens the thread PR when one exists; otherwise opens the project's checkout PR via openProjectPullRequest
  • pullRequestSurfaceAvailable is now true when either the thread has a PR and threadRepository is present, or the checkout has an open PR and activeProjectRepository is present
  • Updates the disabled-reason text in RightPanelTabs.tsx from "This thread's branch has no pull request yet." to "This branch has no pull request yet."
  • Behavioral Change: the PR surface now activates for branches with an open checkout PR regardless of thread PR state, which may surface PRs that were previously hidden

Macroscope summarized 21d2dc7.

The right panel's Pull request card only offered the thread's own PR, which
requires the recorded thread branch to match the checkout. On a shared
checkout that branch stays strict, so an agent that branches and opens a PR
mid-thread left the card saying "No pull request on this branch yet" while
the git menu's View PR opened that same PR in the panel.
Fall back to the checkout's PR with the same gate View PR uses.
Closespingdotgg#8265
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Aug 26, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 90cf1fdc-04e3-4abf-b575-60eda8390fc3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Aug 26, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 856c3cd. Configure here.

Comment threadapps/web/src/components/ChatView.tsx
Mirrors the git menu's View PR gate so a merged or closed PR on the
checkout does not enable the card while the menu offers Create PR.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One finding on the new checkout-PR fallback for the pull-request surface. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ChatView.tsx Outdated
A linked PR is the thread's own even while its detail is loading, so the
surface card must not open the checkout's PR in that window.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@macroscopeapp

macroscopeappBot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 21d2dc7

Macroscope's review found this PR approvable — This is a narrowly scoped web bug fix that makes the Pull request surface match the existing git-menu behavior for open checkout PRs. Existing thread PR handling remains prioritized, while the second file only updates explanatory copy.

You can add or adjust custom eligibility rules. Learn more.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S10-29 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: PR sidebar doesn't recognize an active pull request that exists for the branch

1 participant

@StiensWout
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(web): pull request surface offers the checkout's PR - #8273

Closed
StiensWout wants to merge 3 commits into
pingdotgg:mainfrom
StiensWout:t3code/pr-surface-follows-checkout
Closed

fix(web): pull request surface offers the checkout's PR#8273
StiensWout wants to merge 3 commits into
pingdotgg:mainfrom
StiensWout:t3code/pr-surface-follows-checkout

Conversation

@StiensWout

@StiensWoutStiensWout commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Problem

On a thread whose checkout has an open pull request, the git menu shows View PR and opens that PR in the right panel, yet the right panel's own Pull request card is disabled with "No pull request on this branch yet." Two entry points to the same panel disagree about whether a PR exists.

The card only offered the thread's own PR, which requires the recorded thread branch to match the checkout. On a shared (non-worktree) checkout that recorded branch deliberately stays strict (#4460), so the common flow of an agent running git checkout -b and gh pr create mid-thread leaves the thread without an attributed PR while the checkout clearly has one.

Closes#8265

Solution

The card now falls back to the checkout's PR, opened against the project repository with the same gate View PR already uses. The thread's own PR still wins when it has one, and thread attribution (sidebar badge, composer footer, auto-settle) is unchanged. The menu's disabled reason now reads "This branch has no pull request yet." to match.

Before

Reporter's screenshot: View PR enabled, Pull request card disabled.

View PR enabled while the Pull request card says no PR

After

The card is enabled whenever View PR would open a PR in the panel, and opens the same one.

Verification

  • vp run typecheck for apps/web
  • vp lint and vp fmt --check on the two changed files
  • vp test run apps/web/src/components/RightPanelTabs.test.tsx

Made with Claude Fable 5 in T3 Code.


Note

Low Risk
UI-only fallback for opening an existing checkout PR in the right panel; thread PR resolution and attribution logic are unchanged.

Overview
Aligns the right panel Pull request card with the git menu View PR when a thread has no attributed PR but the checkout has an open one.

ChatView now derives checkoutPr from git status (open PR only, and only when there is no linked thread PR) and enables the surface when either the thread PR or that checkout PR exists. Opening the surface prefers the thread PR via openThreadPullRequest; otherwise it opens the checkout PR with openProjectPullRequest, matching View PR.

RightPanelTabs updates the disabled copy to "This branch has no pull request yet." so it is not thread-specific when the fallback applies. Thread attribution elsewhere is unchanged.

Reviewed by Cursor Bugbot for commit 21d2dc7. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Offer checkout PR on Pull Request surface when thread has no PR

  • Derives checkoutPr from gitStatusQuery in ChatViewContent so the PR surface shows an open checkout PR even when the thread has no linked PR
  • Opens the thread PR when one exists; otherwise opens the project's checkout PR via openProjectPullRequest
  • pullRequestSurfaceAvailable is now true when either the thread has a PR and threadRepository is present, or the checkout has an open PR and activeProjectRepository is present
  • Updates the disabled-reason text in RightPanelTabs.tsx from "This thread's branch has no pull request yet." to "This branch has no pull request yet."
  • Behavioral Change: the PR surface now activates for branches with an open checkout PR regardless of thread PR state, which may surface PRs that were previously hidden

Macroscope summarized 21d2dc7.

The right panel's Pull request card only offered the thread's own PR, which
requires the recorded thread branch to match the checkout. On a shared
checkout that branch stays strict, so an agent that branches and opens a PR
mid-thread left the card saying "No pull request on this branch yet" while
the git menu's View PR opened that same PR in the panel.
Fall back to the checkout's PR with the same gate View PR uses.
Closespingdotgg#8265
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Aug 26, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 90cf1fdc-04e3-4abf-b575-60eda8390fc3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Aug 26, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 856c3cd. Configure here.

Comment threadapps/web/src/components/ChatView.tsx
Mirrors the git menu's View PR gate so a merged or closed PR on the
checkout does not enable the card while the menu offers Create PR.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One finding on the new checkout-PR fallback for the pull-request surface. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ChatView.tsx Outdated
A linked PR is the thread's own even while its detail is loading, so the
surface card must not open the checkout's PR in that window.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@macroscopeapp

macroscopeappBot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 21d2dc7

Macroscope's review found this PR approvable — This is a narrowly scoped web bug fix that makes the Pull request surface match the existing git-menu behavior for open checkout PRs. Existing thread PR handling remains prioritized, while the second file only updates explanatory copy.

You can add or adjust custom eligibility rules. Learn more.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S10-29 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: PR sidebar doesn't recognize an active pull request that exists for the branch

1 participant

@StiensWout
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(web): pull request surface offers the checkout's PR - #8273

Closed
StiensWout wants to merge 3 commits into
pingdotgg:mainfrom
StiensWout:t3code/pr-surface-follows-checkout
Closed

fix(web): pull request surface offers the checkout's PR#8273
StiensWout wants to merge 3 commits into
pingdotgg:mainfrom
StiensWout:t3code/pr-surface-follows-checkout

Conversation

@StiensWout

@StiensWoutStiensWout commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Problem

On a thread whose checkout has an open pull request, the git menu shows View PR and opens that PR in the right panel, yet the right panel's own Pull request card is disabled with "No pull request on this branch yet." Two entry points to the same panel disagree about whether a PR exists.

The card only offered the thread's own PR, which requires the recorded thread branch to match the checkout. On a shared (non-worktree) checkout that recorded branch deliberately stays strict (#4460), so the common flow of an agent running git checkout -b and gh pr create mid-thread leaves the thread without an attributed PR while the checkout clearly has one.

Closes#8265

Solution

The card now falls back to the checkout's PR, opened against the project repository with the same gate View PR already uses. The thread's own PR still wins when it has one, and thread attribution (sidebar badge, composer footer, auto-settle) is unchanged. The menu's disabled reason now reads "This branch has no pull request yet." to match.

Before

Reporter's screenshot: View PR enabled, Pull request card disabled.

View PR enabled while the Pull request card says no PR

After

The card is enabled whenever View PR would open a PR in the panel, and opens the same one.

Verification

  • vp run typecheck for apps/web
  • vp lint and vp fmt --check on the two changed files
  • vp test run apps/web/src/components/RightPanelTabs.test.tsx

Made with Claude Fable 5 in T3 Code.


Note

Low Risk
UI-only fallback for opening an existing checkout PR in the right panel; thread PR resolution and attribution logic are unchanged.

Overview
Aligns the right panel Pull request card with the git menu View PR when a thread has no attributed PR but the checkout has an open one.

ChatView now derives checkoutPr from git status (open PR only, and only when there is no linked thread PR) and enables the surface when either the thread PR or that checkout PR exists. Opening the surface prefers the thread PR via openThreadPullRequest; otherwise it opens the checkout PR with openProjectPullRequest, matching View PR.

RightPanelTabs updates the disabled copy to "This branch has no pull request yet." so it is not thread-specific when the fallback applies. Thread attribution elsewhere is unchanged.

Reviewed by Cursor Bugbot for commit 21d2dc7. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Offer checkout PR on Pull Request surface when thread has no PR

  • Derives checkoutPr from gitStatusQuery in ChatViewContent so the PR surface shows an open checkout PR even when the thread has no linked PR
  • Opens the thread PR when one exists; otherwise opens the project's checkout PR via openProjectPullRequest
  • pullRequestSurfaceAvailable is now true when either the thread has a PR and threadRepository is present, or the checkout has an open PR and activeProjectRepository is present
  • Updates the disabled-reason text in RightPanelTabs.tsx from "This thread's branch has no pull request yet." to "This branch has no pull request yet."
  • Behavioral Change: the PR surface now activates for branches with an open checkout PR regardless of thread PR state, which may surface PRs that were previously hidden

Macroscope summarized 21d2dc7.

The right panel's Pull request card only offered the thread's own PR, which
requires the recorded thread branch to match the checkout. On a shared
checkout that branch stays strict, so an agent that branches and opens a PR
mid-thread left the card saying "No pull request on this branch yet" while
the git menu's View PR opened that same PR in the panel.
Fall back to the checkout's PR with the same gate View PR uses.
Closespingdotgg#8265
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Aug 26, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 90cf1fdc-04e3-4abf-b575-60eda8390fc3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Aug 26, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 856c3cd. Configure here.

Comment threadapps/web/src/components/ChatView.tsx
Mirrors the git menu's View PR gate so a merged or closed PR on the
checkout does not enable the card while the menu offers Create PR.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One finding on the new checkout-PR fallback for the pull-request surface. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ChatView.tsx Outdated
A linked PR is the thread's own even while its detail is loading, so the
surface card must not open the checkout's PR in that window.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@macroscopeapp

macroscopeappBot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 21d2dc7

Macroscope's review found this PR approvable — This is a narrowly scoped web bug fix that makes the Pull request surface match the existing git-menu behavior for open checkout PRs. Existing thread PR handling remains prioritized, while the second file only updates explanatory copy.

You can add or adjust custom eligibility rules. Learn more.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S10-29 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: PR sidebar doesn't recognize an active pull request that exists for the branch

1 participant

@StiensWout
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(web): pull request surface offers the checkout's PR - #8273

Closed
StiensWout wants to merge 3 commits into
pingdotgg:mainfrom
StiensWout:t3code/pr-surface-follows-checkout
Closed

fix(web): pull request surface offers the checkout's PR#8273
StiensWout wants to merge 3 commits into
pingdotgg:mainfrom
StiensWout:t3code/pr-surface-follows-checkout

Conversation

@StiensWout

@StiensWoutStiensWout commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Problem

On a thread whose checkout has an open pull request, the git menu shows View PR and opens that PR in the right panel, yet the right panel's own Pull request card is disabled with "No pull request on this branch yet." Two entry points to the same panel disagree about whether a PR exists.

The card only offered the thread's own PR, which requires the recorded thread branch to match the checkout. On a shared (non-worktree) checkout that recorded branch deliberately stays strict (#4460), so the common flow of an agent running git checkout -b and gh pr create mid-thread leaves the thread without an attributed PR while the checkout clearly has one.

Closes#8265

Solution

The card now falls back to the checkout's PR, opened against the project repository with the same gate View PR already uses. The thread's own PR still wins when it has one, and thread attribution (sidebar badge, composer footer, auto-settle) is unchanged. The menu's disabled reason now reads "This branch has no pull request yet." to match.

Before

Reporter's screenshot: View PR enabled, Pull request card disabled.

View PR enabled while the Pull request card says no PR

After

The card is enabled whenever View PR would open a PR in the panel, and opens the same one.

Verification

  • vp run typecheck for apps/web
  • vp lint and vp fmt --check on the two changed files
  • vp test run apps/web/src/components/RightPanelTabs.test.tsx

Made with Claude Fable 5 in T3 Code.


Note

Low Risk
UI-only fallback for opening an existing checkout PR in the right panel; thread PR resolution and attribution logic are unchanged.

Overview
Aligns the right panel Pull request card with the git menu View PR when a thread has no attributed PR but the checkout has an open one.

ChatView now derives checkoutPr from git status (open PR only, and only when there is no linked thread PR) and enables the surface when either the thread PR or that checkout PR exists. Opening the surface prefers the thread PR via openThreadPullRequest; otherwise it opens the checkout PR with openProjectPullRequest, matching View PR.

RightPanelTabs updates the disabled copy to "This branch has no pull request yet." so it is not thread-specific when the fallback applies. Thread attribution elsewhere is unchanged.

Reviewed by Cursor Bugbot for commit 21d2dc7. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Offer checkout PR on Pull Request surface when thread has no PR

  • Derives checkoutPr from gitStatusQuery in ChatViewContent so the PR surface shows an open checkout PR even when the thread has no linked PR
  • Opens the thread PR when one exists; otherwise opens the project's checkout PR via openProjectPullRequest
  • pullRequestSurfaceAvailable is now true when either the thread has a PR and threadRepository is present, or the checkout has an open PR and activeProjectRepository is present
  • Updates the disabled-reason text in RightPanelTabs.tsx from "This thread's branch has no pull request yet." to "This branch has no pull request yet."
  • Behavioral Change: the PR surface now activates for branches with an open checkout PR regardless of thread PR state, which may surface PRs that were previously hidden

Macroscope summarized 21d2dc7.

The right panel's Pull request card only offered the thread's own PR, which
requires the recorded thread branch to match the checkout. On a shared
checkout that branch stays strict, so an agent that branches and opens a PR
mid-thread left the card saying "No pull request on this branch yet" while
the git menu's View PR opened that same PR in the panel.
Fall back to the checkout's PR with the same gate View PR uses.
Closespingdotgg#8265
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Aug 26, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 90cf1fdc-04e3-4abf-b575-60eda8390fc3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Aug 26, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 856c3cd. Configure here.

Comment threadapps/web/src/components/ChatView.tsx
Mirrors the git menu's View PR gate so a merged or closed PR on the
checkout does not enable the card while the menu offers Create PR.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One finding on the new checkout-PR fallback for the pull-request surface. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ChatView.tsx Outdated
A linked PR is the thread's own even while its detail is loading, so the
surface card must not open the checkout's PR in that window.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@macroscopeapp

macroscopeappBot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 21d2dc7

Macroscope's review found this PR approvable — This is a narrowly scoped web bug fix that makes the Pull request surface match the existing git-menu behavior for open checkout PRs. Existing thread PR handling remains prioritized, while the second file only updates explanatory copy.

You can add or adjust custom eligibility rules. Learn more.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S10-29 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: PR sidebar doesn't recognize an active pull request that exists for the branch

1 participant

@StiensWout
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(web): pull request surface offers the checkout's PR - #8273

Closed
StiensWout wants to merge 3 commits into
pingdotgg:mainfrom
StiensWout:t3code/pr-surface-follows-checkout
Closed

fix(web): pull request surface offers the checkout's PR#8273
StiensWout wants to merge 3 commits into
pingdotgg:mainfrom
StiensWout:t3code/pr-surface-follows-checkout

Conversation

@StiensWout

@StiensWoutStiensWout commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Problem

On a thread whose checkout has an open pull request, the git menu shows View PR and opens that PR in the right panel, yet the right panel's own Pull request card is disabled with "No pull request on this branch yet." Two entry points to the same panel disagree about whether a PR exists.

The card only offered the thread's own PR, which requires the recorded thread branch to match the checkout. On a shared (non-worktree) checkout that recorded branch deliberately stays strict (#4460), so the common flow of an agent running git checkout -b and gh pr create mid-thread leaves the thread without an attributed PR while the checkout clearly has one.

Closes#8265

Solution

The card now falls back to the checkout's PR, opened against the project repository with the same gate View PR already uses. The thread's own PR still wins when it has one, and thread attribution (sidebar badge, composer footer, auto-settle) is unchanged. The menu's disabled reason now reads "This branch has no pull request yet." to match.

Before

Reporter's screenshot: View PR enabled, Pull request card disabled.

View PR enabled while the Pull request card says no PR

After

The card is enabled whenever View PR would open a PR in the panel, and opens the same one.

Verification

  • vp run typecheck for apps/web
  • vp lint and vp fmt --check on the two changed files
  • vp test run apps/web/src/components/RightPanelTabs.test.tsx

Made with Claude Fable 5 in T3 Code.


Note

Low Risk
UI-only fallback for opening an existing checkout PR in the right panel; thread PR resolution and attribution logic are unchanged.

Overview
Aligns the right panel Pull request card with the git menu View PR when a thread has no attributed PR but the checkout has an open one.

ChatView now derives checkoutPr from git status (open PR only, and only when there is no linked thread PR) and enables the surface when either the thread PR or that checkout PR exists. Opening the surface prefers the thread PR via openThreadPullRequest; otherwise it opens the checkout PR with openProjectPullRequest, matching View PR.

RightPanelTabs updates the disabled copy to "This branch has no pull request yet." so it is not thread-specific when the fallback applies. Thread attribution elsewhere is unchanged.

Reviewed by Cursor Bugbot for commit 21d2dc7. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Offer checkout PR on Pull Request surface when thread has no PR

  • Derives checkoutPr from gitStatusQuery in ChatViewContent so the PR surface shows an open checkout PR even when the thread has no linked PR
  • Opens the thread PR when one exists; otherwise opens the project's checkout PR via openProjectPullRequest
  • pullRequestSurfaceAvailable is now true when either the thread has a PR and threadRepository is present, or the checkout has an open PR and activeProjectRepository is present
  • Updates the disabled-reason text in RightPanelTabs.tsx from "This thread's branch has no pull request yet." to "This branch has no pull request yet."
  • Behavioral Change: the PR surface now activates for branches with an open checkout PR regardless of thread PR state, which may surface PRs that were previously hidden

Macroscope summarized 21d2dc7.

The right panel's Pull request card only offered the thread's own PR, which
requires the recorded thread branch to match the checkout. On a shared
checkout that branch stays strict, so an agent that branches and opens a PR
mid-thread left the card saying "No pull request on this branch yet" while
the git menu's View PR opened that same PR in the panel.
Fall back to the checkout's PR with the same gate View PR uses.
Closespingdotgg#8265
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Aug 26, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 90cf1fdc-04e3-4abf-b575-60eda8390fc3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Aug 26, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 856c3cd. Configure here.

Comment threadapps/web/src/components/ChatView.tsx
Mirrors the git menu's View PR gate so a merged or closed PR on the
checkout does not enable the card while the menu offers Create PR.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One finding on the new checkout-PR fallback for the pull-request surface. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ChatView.tsx Outdated
A linked PR is the thread's own even while its detail is loading, so the
surface card must not open the checkout's PR in that window.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@macroscopeapp

macroscopeappBot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 21d2dc7

Macroscope's review found this PR approvable — This is a narrowly scoped web bug fix that makes the Pull request surface match the existing git-menu behavior for open checkout PRs. Existing thread PR handling remains prioritized, while the second file only updates explanatory copy.

You can add or adjust custom eligibility rules. Learn more.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S10-29 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: PR sidebar doesn't recognize an active pull request that exists for the branch

1 participant

@StiensWout
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(web): pull request surface offers the checkout's PR - #8273

Closed
StiensWout wants to merge 3 commits into
pingdotgg:mainfrom
StiensWout:t3code/pr-surface-follows-checkout
Closed

fix(web): pull request surface offers the checkout's PR#8273
StiensWout wants to merge 3 commits into
pingdotgg:mainfrom
StiensWout:t3code/pr-surface-follows-checkout

Conversation

@StiensWout

@StiensWoutStiensWout commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Problem

On a thread whose checkout has an open pull request, the git menu shows View PR and opens that PR in the right panel, yet the right panel's own Pull request card is disabled with "No pull request on this branch yet." Two entry points to the same panel disagree about whether a PR exists.

The card only offered the thread's own PR, which requires the recorded thread branch to match the checkout. On a shared (non-worktree) checkout that recorded branch deliberately stays strict (#4460), so the common flow of an agent running git checkout -b and gh pr create mid-thread leaves the thread without an attributed PR while the checkout clearly has one.

Closes#8265

Solution

The card now falls back to the checkout's PR, opened against the project repository with the same gate View PR already uses. The thread's own PR still wins when it has one, and thread attribution (sidebar badge, composer footer, auto-settle) is unchanged. The menu's disabled reason now reads "This branch has no pull request yet." to match.

Before

Reporter's screenshot: View PR enabled, Pull request card disabled.

View PR enabled while the Pull request card says no PR

After

The card is enabled whenever View PR would open a PR in the panel, and opens the same one.

Verification

  • vp run typecheck for apps/web
  • vp lint and vp fmt --check on the two changed files
  • vp test run apps/web/src/components/RightPanelTabs.test.tsx

Made with Claude Fable 5 in T3 Code.


Note

Low Risk
UI-only fallback for opening an existing checkout PR in the right panel; thread PR resolution and attribution logic are unchanged.

Overview
Aligns the right panel Pull request card with the git menu View PR when a thread has no attributed PR but the checkout has an open one.

ChatView now derives checkoutPr from git status (open PR only, and only when there is no linked thread PR) and enables the surface when either the thread PR or that checkout PR exists. Opening the surface prefers the thread PR via openThreadPullRequest; otherwise it opens the checkout PR with openProjectPullRequest, matching View PR.

RightPanelTabs updates the disabled copy to "This branch has no pull request yet." so it is not thread-specific when the fallback applies. Thread attribution elsewhere is unchanged.

Reviewed by Cursor Bugbot for commit 21d2dc7. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Offer checkout PR on Pull Request surface when thread has no PR

  • Derives checkoutPr from gitStatusQuery in ChatViewContent so the PR surface shows an open checkout PR even when the thread has no linked PR
  • Opens the thread PR when one exists; otherwise opens the project's checkout PR via openProjectPullRequest
  • pullRequestSurfaceAvailable is now true when either the thread has a PR and threadRepository is present, or the checkout has an open PR and activeProjectRepository is present
  • Updates the disabled-reason text in RightPanelTabs.tsx from "This thread's branch has no pull request yet." to "This branch has no pull request yet."
  • Behavioral Change: the PR surface now activates for branches with an open checkout PR regardless of thread PR state, which may surface PRs that were previously hidden

Macroscope summarized 21d2dc7.

The right panel's Pull request card only offered the thread's own PR, which
requires the recorded thread branch to match the checkout. On a shared
checkout that branch stays strict, so an agent that branches and opens a PR
mid-thread left the card saying "No pull request on this branch yet" while
the git menu's View PR opened that same PR in the panel.
Fall back to the checkout's PR with the same gate View PR uses.
Closespingdotgg#8265
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Aug 26, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 90cf1fdc-04e3-4abf-b575-60eda8390fc3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Aug 26, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 856c3cd. Configure here.

Comment threadapps/web/src/components/ChatView.tsx
Mirrors the git menu's View PR gate so a merged or closed PR on the
checkout does not enable the card while the menu offers Create PR.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One finding on the new checkout-PR fallback for the pull-request surface. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ChatView.tsx Outdated
A linked PR is the thread's own even while its detail is loading, so the
surface card must not open the checkout's PR in that window.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@macroscopeapp

macroscopeappBot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 21d2dc7

Macroscope's review found this PR approvable — This is a narrowly scoped web bug fix that makes the Pull request surface match the existing git-menu behavior for open checkout PRs. Existing thread PR handling remains prioritized, while the second file only updates explanatory copy.

You can add or adjust custom eligibility rules. Learn more.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S10-29 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: PR sidebar doesn't recognize an active pull request that exists for the branch

1 participant

@StiensWout