Skip to content

Add pre-merge rebase and head-bound command checks #22

Closed

Description

@mchwang

The guarded merge gate in #21 deliberately blocks when the PR base moved or a plan item has a cmd: acceptance check without a passing result tied to the reviewed head. Complete the approved pre-merge sequence once the runner/container execution boundary exists:

  • fetch the current base and head;
  • rebase through the trusted commit ledger, preserving owned and foreign classifications;
  • recompute attribution, choices, and approval staleness after the rewritten head;
  • stop for review when any owned fingerprint changed or unresolved foreign/ambiguous work appears;
  • run every plan-item cmd: check inside the approved container and persist results against the exact head;
  • push, wait for freshly required GitHub checks, rerun the already-fixed check, and hand the exact pair to the guarded merge coordinator.

Acceptance: failing-before/passing-after regressions cover a base move that leaves approvals valid, a rebase that makes an approval stale, a breaking command after rebase, a collaborator head push, and a cancelled or interrupted command.

Activity

  1. mchwang commented on Oct 3, 2026

    @mchwang
    ContributorAuthor

    Related follow-up from #103: #113, which requires a published head to hold only ledger-recorded commits. Revisit ownedCommits (ledger origin: 'owned' only) when rebasing writes foreign entries.

  2. reopened this on Oct 7, 2026
  3. mchwang commented on Oct 19, 2026

    @mchwang
    ContributorAuthor

    Closed by #178, which records T9 as complete. The pre-merge sequence landed in F1–F6: F5 #149, F6a #153, F6b #161, F6c #177 (all suites in CI; test and real-docker required on main; nightly live Claude probes). Open follow-ups: #174 (rebase conflict resolver timeout) and #176 (app-pinned required checks read as missing).

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions