Skip to content

feat(isl): add PR status indicators to stack navigation and headers#97

Draft
sontiO wants to merge 4 commits intomainfrom
pr97
Draft

feat(isl): add PR status indicators to stack navigation and headers#97
sontiO wants to merge 4 commits intomainfrom
pr97

Conversation

@sontiO
Copy link

@sontiO sontiO commented Mar 4, 2026

Stack navigation pills now show:

  • Closed PRs: red tint, line-through, circle-slash icon
  • Draft PRs: dashed border, purple edit icon
  • CI status: colored bottom border (green=pass, red=failed, amber=running)
    using signalSummary data already available from the bulk PR query

PR info headers (both expanded and compact) now show a state badge
for non-open PRs (Merged/Closed/Draft) with appropriate coloring,
so the PR state is immediately visible when the review window is open.

Added signalSummary to StackNavigationContext entries to support
CI status display on pills without additional API calls.


Stack created with Sapling. Best reviewed with ReviewStack.

Extend the lazy-loaded PRMergeState GraphQL query to also fetch:
- statusCheckRollup.contexts (individual CI check runs with status/conclusion)
- autoMergeRequest (whether auto-merge is enabled, with method)

Add server-side handlers for enableAutoMerge/disableAutoMerge mutations
using GitHub's enablePullRequestAutoMerge/disablePullRequestAutoMerge
GraphQL mutations.

Add corresponding message types to ClientToServerMessage and
ServerToClientMessage for the new auto-merge operations.
sontiO added 3 commits March 4, 2026 15:19
When mergeStateStatus is BLOCKED, derive more specific reasons:
- 'Waiting for CI checks to complete' when signalSummary is 'running'
- 'CI checks are failing' when signalSummary is 'failed'
- 'Waiting for required review approvals' when reviewDecision is REVIEW_REQUIRED
- Falls back to generic 'Blocked by branch protection rules' only when
  no specific reason can be determined

Show individual CI check runs (from the lazy-loaded query) in an
expandable CIStatusBadge below the merge block reasons, so users
can see exactly which checks are pending/failing/passing.
When a PR can't be merged yet (CI running, reviews pending, etc.),
show an 'Enable auto-merge' button as an alternative action. This
tells GitHub to automatically merge the PR once all branch protection
requirements are met.

When auto-merge is already enabled (detected via autoMergeRequest from
the lazy-loaded merge state query), show a status banner with a
'Disable auto-merge' button.

Uses GitHub's enablePullRequestAutoMerge and disablePullRequestAutoMerge
GraphQL mutations. Defaults to REBASE merge method to match our existing
merge strategy.
Stack navigation pills now show:
- Closed PRs: red tint, line-through, circle-slash icon
- Draft PRs: dashed border, purple edit icon
- CI status: colored bottom border (green=pass, red=failed, amber=running)
  using signalSummary data already available from the bulk PR query

PR info headers (both expanded and compact) now show a state badge
for non-open PRs (Merged/Closed/Draft) with appropriate coloring,
so the PR state is immediately visible when the review window is open.

Added signalSummary to StackNavigationContext entries to support
CI status display on pills without additional API calls.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant