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

1 participant