Repository navigation
v0.19.0
0.19.0 (2026-06-26)
Features
- config: add OpenAI model tiers and smart quality mode (29b37e6), closes #189 #190
- harness: add bundled default harness sections (9ac86e7), closes #187
- workflow: add loadHarnessSection helper (518a480), closes #188 #187 #187
Bug Fixes
- add retry logic for git and Claude API errors (58c2b12), closes humanbased-ai/crosscheck#164
- improve git auth and network error handling (5c4ef73), closes humanbased-ai/crosscheck#146
- release remote lock in finally block (b806bf1), closes humanbased-ai/crosscheck#175
- runner: fall back to the healthy vendor when a reviewer is unavailable (#236) (de629c1)
- tests: add mode field to QualityConfig fixtures in optimize tests (d6ef466), closes #189 #190
- tests: add mode field to QualityConfig test fixtures (0e3a76d), closes #189 #190
- make clone retry resilient to partial destinations (36c390d)
- resolve merge conflict — take main's runGit(retryable) approach with GIT_RESILIENCE_ARGS (ece4c60)
Continuous Integration
- weekly staging→main auto-promotion, remove manual release gate (79893b5)
What's Changed
- fix: remove --bare from issue command to restore OAuth support by @Trump-One in #91
- [crosscheck] fix: apply CR fixes from review of PR #89 — by Claude Code by @beingzy in #98
- fix: pipe prompt via stdin in claude reviewer by @Trump-One in #97
- fix: prefer ~/.crosscheck/config.yml over cwd in config discovery by @kay404 in #99
- feat: add clone_protocol config for ssh/https selection by @chababa9 in #100
- feat: smart-switch — subscription-limit fault tolerance for cross-vendor mode by @beingzy in #101
- fix: robust verdict parsing and persistent crosscheck SHA tracking by @beingzy in #103
- release: verdict parsing, persistent SHA cache, smart-switch, clone protocol by @beingzy in #104
- feat(picker): fixed-height viewport with / filter and PageUp/PageDown by @kay404 in #105
- fix(ci): don't push version-bump commit to protected main by @beingzy in #106
- fix(ci): don't push version-bump commit to protected main by @beingzy in #107
- feat: track and display token usage per workflow step by @beingzy in #108
- fix: infer VERDICT from Codex [P1]/[P2]/[P3] priority markers by @beingzy in #109
- fix(ci): use semver dry-run to compute next stable version for beta/alpha stamps by @beingzy in #110
- docs: reposition README around Auto Code Review Pipeline by @beingzy in #111
- chore: release staging → main by @beingzy in #112
- fix(ci): fall back to github.token when RELEASE_TOKEN secret is not set by @beingzy in #113
- fix(ci): open a sync PR when direct push to protected staging is rejected by @beingzy in #114
- fix(ci): long-term fix for staging sync — PR + auto-merge, never direct push by @beingzy in #115
- fix(ci): skip npm publish when version already exists on registry by @beingzy in #116
- fix: restore .codex/instructions after Codex review to prevent false recheck findings by @beingzy in #117
- fix: switch fix step to edit-block format, add size guard against truncation by @beingzy in #118
- fix: switch fix step to edit-block format with safety guards by @beingzy in #120
- feat: retry fix step on transient failure, notify PR author on final failure by @beingzy in #122
- fix(onboard): regenerate workflow.yml on preset downgrade by @chababa9 in #119
- release: v0.9.1 — fix step reliability and CI hardening by @beingzy in #123
- fix: ask which AI you primarily use during onboard; fix --reconfigure routing by @beingzy in #125
- feat: recheck round tracking + max_rounds onboard prompt by @beingzy in #126
- release: merge staging → main (0.11.0 → 0.12.0) by @beingzy in #127
- fix: use full detection chain in review command by @beingzy in #129
- fix: resolve merge conflict markers in board.ts by @beingzy in #130
- release: merge staging → main by @beingzy in #128
- feat: add in-flight lock to prevent duplicate reviews by @beingzy in #131
- fix: recheck comments link to original review and carry annotation tags by @beingzy in #132
- fix: annotation origin= always present; field order matches documented contract by @beingzy in #133
- fix: show CR as prior-round when displaying round 2+ PR stripe by @beingzy in #134
- feat: add conflict-resolve workflow step with onboard opt-in by @beingzy in #135
- feat: reorder watch board layout (config → stats → PR workspace) by @beingzy in #138
- fix: align cross-vendor routing with multi-agent usage by @beingzy in #137
- feat: add condition checks to conflict-resolve step by @beingzy in #136
- fix: harden conflict marker check against PR-controlled inputs by @beingzy in #139
- fix(ci): harden publish workflow (provenance, idempotency, node 22) by @beingzy in #140
- fix: scope [crosscheck] commit guard to commits ahead of base by @beingzy in #142
- fix: re-raise signals after PR-lock cleanup when sole listener by @beingzy in #143
- Promote staging to main by @beingzy in #141
- fix: release pushed-sha pending statuses from the run signal handler by @beingzy in #145
- fix: prefer PR side in conflict-resolve prompt; refresh remote lock to newSha by @beingzy in #144
- feat: human-readable duration in watch board by @Trump-One in #147
- fix: dedup webhook scopes and skip no-diff re-reviews by @beingzy in #148
- feat: post summary comment after silent-commit fix and conflict-resolve by @beingzy in #149
- feat(log): add step_type, step_name, vendor, duration_ms to completion events by @beingzy in #152
- feat(log): emit workflow_complete event in runWorkflow finally by @beingzy in #153
- docs: auto-fix gate redesign — outcome-based invariant, bounded loop, single gate by @beingzy in #151
- docs: redesign telemetry around versioned categories with idle upload by @beingzy in #150
- docs: add scan kickass PRD tickets by @beingzy in #157
- fix: harden crosscheck review deduping by @beingzy in #154
- feat: add model-aware review headers by @beingzy in #156
- feat: add annotation contract v2 by @beingzy in #155
- feat: add PR status scanner by @beingzy in #158
- feat: add scan command by @beingzy in #159
- feat: add scan and kickass operator queue by @beingzy in #160
- feat: add kickass operator command by @beingzy in #163
- refactor: dedupe PR status annotation parser by @beingzy in #161
- feat: add scan command by @beingzy in #162
- docs: rewrite README with per-command sections + mark scan/kickass done in prd by @beingzy in #165
- Promote to stable release with cutting-edge features by @beingzy in #167
- feat: rename PR states + add --reviewer vendor aliases by @beingzy in #166
- feat: supercharge kickass — all actionable PRs, fix→recheck cycles, --crazy/--halfcrazy by @beingzy in #168
- feat: add --timeout flag; crazy/halfcrazy lift all timeout constraints by @beingzy in #169
- feat: --timeout flag, --crazy/--half-crazy autonomous loop modes by @beingzy in #170
- feat: --concurrent flag for kickass — parallel PR execution by @beingzy in #172
- feat: remove crazy/half-crazy round ceiling — loop runs until stop condition by @beingzy in #171
- feat: configurable per-vendor review timeout (vendors.*.timeout_sec) by @kay404 in #173
- feat: data-driven logging — pr_complexity, token split, trigger source, retention 30d by @beingzy in #174
- fix: correct network mis-categorization and add retry in kickass by @beingzy in #177
- feat: identify next workflow step from PR comment history + detect-step command by @beingzy in #178
- fix: revert incorrect fixAfterReview shortcut that caused BLOCK rechecks to report 'nothing to do' by @beingzy in #179
- feat: adopt pr-workflow-state as unified next-step resolver across watch, serve, and kickass by @beingzy in #180
- fix: codex fix step, vendor fallback, concurrent stagger, network error handling by @beingzy in #181
- fix: vendor fallback for human-origin PRs in fix step by @beingzy in #182
- [codex] Fix detect-step workflow history by @beingzy in #183
- feat: add step vendor overrides and fallback by @beingzy in #185
- fix: improve kickass empty queue picker by @beingzy in #186
- fix: honor quality.tier for claude reviewer timeout default by @chababa9 in #192
- fix(diagnose): classify transient 429/529/budget errors as distinct patterns by @Trump-One in #196
- [codex] migrate crosscheck to HumanBased by @beingzy in #197
- fix: kickass+watch combo — detect-step routing and review→fix bridge by @beingzy in #193
- fix(models): honor vendors.claude.model instead of locking to quality.tier by @Trump-One in #194
- fix(logger): stop misclassifying transient 429/529/budget errors as auth by @Trump-One in #195
- chore: update license responsible party by @beingzy in #204
- feat: watch-style PRBoard display for ck kickass by @beingzy in #206
- docs: execute first growth cycle by @beingzy in #207
- docs: add agentic growth loop by @beingzy in #205
- feat: retry reviewer timeouts once before reporting failure by @chababa9 in #210
- feat: diagnose/optimize improvements + watch mode education tips by @beingzy in #209
- feat(verdict): severity gate — only Critical/High block (IN-628) by @Trump-One in #208
- feat(watch): post a PR-visible failure comment when the reviewer subprocess fails by @chababa9 in #212
- chore: promote staging to main by @beingzy in #213
- fix(verdict): treat [P2] findings as blocking in severity gate by @beingzy in #214
- feat: surface error category and remediation hints on workflow failures by @beingzy in #215
- fix(fix-step): tier-aware timeouts and correct retry vendor after double failure by @beingzy in #216
- docs: wire field report into growth cycle by @beingzy in #211
- fix: improve --crazy mode reliability by @beingzy in #217
- feat: diagnose --pr analysis, issue queue, and watch idle-issue timer by @beingzy in #218
- feat: enrich auto-fix comment with issues addressed, files changed, and vendor attribution by @beingzy in #219
- docs: rewrite README intro and add use-cases section by @beingzy in #220
- chore: promote staging to main — v1.1.0 by @beingzy in #221
- fix(watch): make max_rounds an autonomous fix→recheck cycle cap by @beingzy in #222
- feat(kickass): run PRs concurrently by default + automate beta publish by @beingzy in #224
- fix: keep live board within viewport height to prevent scrollback residue by @kay404 in #223
- fix: record the model that actually served the review, not the requested alias by @kay404 in #225
- fix: keep settled PR slots folded across recheck rounds (sticky fold) by @kay404 in #227
- feat: multi-PR specs + recheck/fix/resolve step commands by @beingzy in #226
- chore: reconcile staging → main + align version to 0.18.0 by @beingzy in #228
- chore: sync main → staging (features + 0.18.0) to match branches by @beingzy in #229
- fix: skip merged/closed PRs + log zero-change fixes by @beingzy in #230
- chore: align package.json to 0.18.0 release line by @beingzy in #231
- chore: verify push access (harmless no-op) by @Trump-One in #234
- fix(runner): fall back to healthy vendor when a reviewer is unavailable (IN-1106) by @Trump-One in #236
- fix: release remote lock in finally block by @rain2004-rr in #232
- fix: add retry logic for git and Claude API errors by @rain2004-rr in #233
- chore: add @lhdiyiwudi as a global code owner by @beingzy in #235
- feat(harness): extract default workflow instructions into bundled harness file by @beingzy in #241
- fix: improve git auth and network error handling by @rain2004-rr in #237
- feat(config): add OpenAI model tiers and smart quality mode by @beingzy in #240
- ci: weekly staging→main auto-promotion, remove manual release gate by @beingzy in #242
New Contributors
- @kay404 made their first contribution in #99
- @chababa9 made their first contribution in #100
- @rain2004-rr made their first contribution in #232
Full Changelog: v0.9.0...v0.19.0