@humanbased/crosscheck 1.3.0-beta.81 → 1.3.0-beta.83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/kickass.test.js +31 -0
- package/dist/__tests__/kickass.test.js.map +1 -1
- package/dist/__tests__/pr-status.test.js +213 -3
- package/dist/__tests__/pr-status.test.js.map +1 -1
- package/dist/__tests__/pr-workflow-state.test.js +183 -1
- package/dist/__tests__/pr-workflow-state.test.js.map +1 -1
- package/dist/commands/detect-step.d.ts.map +1 -1
- package/dist/commands/detect-step.js +5 -1
- package/dist/commands/detect-step.js.map +1 -1
- package/dist/commands/diagnose.js +1 -1
- package/dist/commands/diagnose.js.map +1 -1
- package/dist/commands/kickass.d.ts +1 -1
- package/dist/commands/kickass.d.ts.map +1 -1
- package/dist/commands/kickass.js +35 -8
- package/dist/commands/kickass.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +9 -1
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/scan.d.ts.map +1 -1
- package/dist/commands/scan.js +6 -0
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +104 -61
- package/dist/commands/watch.js.map +1 -1
- package/dist/lib/pr-picker.d.ts +1 -1
- package/dist/lib/pr-picker.d.ts.map +1 -1
- package/dist/lib/pr-picker.js +10 -5
- package/dist/lib/pr-picker.js.map +1 -1
- package/dist/lib/pr-status.d.ts +2 -1
- package/dist/lib/pr-status.d.ts.map +1 -1
- package/dist/lib/pr-status.js +70 -6
- package/dist/lib/pr-status.js.map +1 -1
- package/dist/lib/pr-workflow-state.d.ts +17 -1
- package/dist/lib/pr-workflow-state.d.ts.map +1 -1
- package/dist/lib/pr-workflow-state.js +85 -3
- package/dist/lib/pr-workflow-state.js.map +1 -1
- package/get-started.md +30 -1
- package/package.json +1 -1
package/get-started.md
CHANGED
|
@@ -528,6 +528,8 @@ crosscheck alter humanbased-ai/xny-monorepo --reset # remove th
|
|
|
528
528
|
|
|
529
529
|
The depths differ in what happens after the initial review:
|
|
530
530
|
|
|
531
|
+
In every depth, an `APPROVE` stops all work on the commit it covers, and a later push re-opens the PR — see [What happens after a PR is approved?](#what-happens-after-a-pr-is-approved).
|
|
532
|
+
|
|
531
533
|
- **`review`** — review each new SHA; never modify code.
|
|
532
534
|
- **`review,fix`** — crosscheck auto-applies fixes when the verdict isn't `APPROVE`, and stops there; its own fix commit is not re-reviewed.
|
|
533
535
|
- **`review,fix,recheck`** — same, then rechecks its own fix commit. `max_rounds` in `~/.crosscheck/workflow.yml` bounds that fix→recheck cycle.
|
|
@@ -679,7 +681,7 @@ crosscheck scan --json
|
|
|
679
681
|
|
|
680
682
|
### `crosscheck kickass`
|
|
681
683
|
|
|
682
|
-
Selects all actionable PRs (any PR where a next step is needed: review, fix, recheck) and advances each one. Stale PRs are shown first. APPROVE PRs appear as a read-only "needs merge (manual)" section — visible so you know what's ready, but not dispatched automatically. The command revalidates the PR head before each mutation and prints an execution summary when it finishes.
|
|
684
|
+
Selects all actionable PRs (any PR where a next step is needed: resolve, review, fix, recheck) and advances each one. A PR with merge conflicts is dispatched as a `resolve` leg first — conflicts block everything downstream, and a base-branch move that conflicts a PR fires no webhook, so a scan is the only thing that notices. Stale PRs are shown first. APPROVE PRs appear as a read-only "needs merge (manual)" section — visible so you know what's ready, but not dispatched automatically. The command revalidates the PR head before each mutation and prints an execution summary when it finishes.
|
|
683
685
|
|
|
684
686
|
Each PR dispatch uses `detect-step` to read live PR comment history and advances **exactly the next needed step** — kickass drives one step per PR, then `watch` picks up continuation via the webhooks that step produces.
|
|
685
687
|
|
|
@@ -1644,6 +1646,33 @@ Each cycle is one `[crosscheck]` fix commit followed by one recheck. The loop st
|
|
|
1644
1646
|
|
|
1645
1647
|
`max_rounds` is respected by both `crosscheck watch` and `crosscheck run`. `watch` re-triggers on each pushed fix commit; `run` loops inline within the same session.
|
|
1646
1648
|
|
|
1649
|
+
### My PR became conflicted — will crosscheck resolve it?
|
|
1650
|
+
|
|
1651
|
+
Yes, if your workflow has a `conflict-resolve` step (the `onboard` default does). Conflicts are handled independently of the review ladder, because a PR usually conflicts when the **base branch** moves — which changes nothing about the code that was reviewed.
|
|
1652
|
+
|
|
1653
|
+
The catch is that a base-branch move fires no webhook on your PR, so `watch` never hears about it. `crosscheck scan` and `crosscheck kickass` are what notice: a conflicted PR shows `next=resolve` and is dispatched ahead of review, fix, and recheck. An approved PR that can no longer merge is resolved too — the merge commit then moves HEAD off the approved SHA, so the merged code gets a fresh review.
|
|
1654
|
+
|
|
1655
|
+
```bash
|
|
1656
|
+
crosscheck kickass # picks up conflicted PRs along with everything else
|
|
1657
|
+
crosscheck resolve <pr-url> # or force just the conflict-resolve step
|
|
1658
|
+
```
|
|
1659
|
+
|
|
1660
|
+
Fork PRs are skipped, same as with auto-fix — crosscheck cannot push to them. Repos narrowed to `review` or `review,recheck` never resolve conflicts either, since that would modify code.
|
|
1661
|
+
|
|
1662
|
+
### What happens after a PR is approved?
|
|
1663
|
+
|
|
1664
|
+
Crosscheck stops working on that commit. Once the newest verdict is `APPROVE` and it covers the PR's current HEAD, no further step runs — not a recheck, not a re-review. `watch` skips further events on that SHA, `crosscheck run` prints `this commit is already approved — nothing to do until new commits land`, and `kickass` lists the PR under "needs merge (manual)" instead of dispatching it.
|
|
1665
|
+
|
|
1666
|
+
**A push re-opens it.** New commits materially change what was approved, so the approval no longer applies: the next event runs a fresh review (round *n*+1) on the new code, and the full fix/recheck loop resumes from there. An `APPROVE` posted before the annotation carried a `sha=` field can't prove which commit it covers, so it is treated the same way — one review re-establishes it.
|
|
1667
|
+
|
|
1668
|
+
To force another pass on the approved commit itself, name the steps explicitly — that bypasses history detection:
|
|
1669
|
+
|
|
1670
|
+
```bash
|
|
1671
|
+
crosscheck run https://github.com/owner/repo/pull/123 --steps review
|
|
1672
|
+
```
|
|
1673
|
+
|
|
1674
|
+
`crosscheck detect-step <pr-url>` shows the stop reason for any PR.
|
|
1675
|
+
|
|
1647
1676
|
### Can I disable the auto-fix step?
|
|
1648
1677
|
|
|
1649
1678
|
Yes. Set `post_review.auto_fix.enabled: false` in your config, or set `trigger: never`. You can also raise `min_severity` to `error` to limit fixes to blocking issues only.
|