Skip to content

[Phase 4A] PR Status: PROOF9-gated merge button #571

@frankbria

Description

@frankbria

Goal

Add a PROOF9-gated [Merge] button to the PR Status panel so the merge action enforces proof obligations before it becomes available.

Background

Follows the PR Status panel (#570). "Merge is gated on PROOF9 pass" is a core vision statement. Without a merge gate in the UI, this guarantee only exists in the CLI. The [Merge] button should be the last action in the SHIP phase.

Scope

[Merge] button (added to the PR Status panel from #570):

  • Calls POST /api/v2/pr/merge with the PR number
  • Active only when both conditions are met:
    1. All CI checks have passed
    2. PROOF9 GET /api/v2/proof/status returns no open (non-waived) requirements for the current workspace
  • Blocked state (either condition unmet): button is disabled with a tooltip explaining what's blocking
  • PROOF9 blocking message: if open requirements are blocking, show an inline list of the blocking REQ titles with a link to the PROOF9 page
  • CI blocking message: if CI is still running or failing, show "Waiting for CI checks" / "CI checks failing"
  • On merge success: show confirmation banner, stop polling

Acceptance criteria

  • [Merge] button disabled when CI failing or open PROOF9 requirements exist
  • Blocking reason shown inline with PROOF9 link when applicable
  • Merge calls correct API endpoint and shows success state
  • npm test pass

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestphase-4Phase 4: Multi-Agent Coordination

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions