Skip to content

feat: harden squash merge provenance#40

Merged
andrei-hasna merged 6 commits into
mainfrom
feat/e-00118-merge-trailer-hardening
Jul 23, 2026
Merged

feat: harden squash merge provenance#40
andrei-hasna merged 6 commits into
mainfrom
feat/e-00118-merge-trailer-hardening

Conversation

@andrei-hasna

Copy link
Copy Markdown
Contributor

Description

  • Add the repository-canonical agent-skills/merge-pr workflow with exact-head, reviewer, risk, repair-cycle, preflight, and merge-mode gates.
  • Build deterministic squash argv with explicit subject/body and full preflight plus command digest correlation.
  • Verify the actual provider merge commit and persist authoritative or non-authoritative receipts without exposing message text.
  • Add raw regression fixtures for the multi-commit synthesis incident and focused repository boundary coverage.

The historical hasna/tai#4 incident is evidence only; this PR does not rewrite, revert, force-push, or otherwise change protected history.

Type of change

  • Bug fix
  • New feature
  • Breaking change
  • Refactor
  • Documentation
  • Chore (dependency updates, CI, etc.)

Validation

  • Guard behavior suite: 24/24
  • Agent workflow integration: 4/4
  • Full isolated suite: 731/731
  • bun run typecheck
  • bun run build
  • Release guard and package dry-run
  • Skill validation and public-corpus drift check
  • Two independent exact-head reviews with no P0-P3
  • Fresh archived forward matrix: bundled 24/24 and independent 24/24
  • Redacted Gitleaks scan and commit-trailer scan

Recovery and rollback

Failed provider verification preserves a durable failed receipt and never triggers automatic protected-history mutation. If the workflow itself must be rolled back, land an ordinary reviewed revert PR, then repeat exact-head review and release gates before further merges.

Checklist

  • Tests pass (bun test)
  • Typecheck passes (bun run typecheck)
  • Documentation updated

@andrei-hasna
andrei-hasna merged commit aea887f into main Jul 23, 2026
1 check passed
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