v0.4.0
- Added
clawpatch cito initialize, map, review, write a report, and append a GitHub Actions step summary in one CI-friendly command. - Added
clawpatch open-pr --patch <id>to turn an applied patch attempt into an explicit GitHub pull request. - Added a
claudeprovider for routing map, review, fix, and revalidate through the local Claude Code CLI in print mode, thanks @aurokin. - Added an experimental
cursorprovider for local Cursor Agent CLI review workflows behind explicit opt-in gates, thanks @aurokin. - Added review prompt provenance and budget accounting for included files, omitted files, prompt bytes, and approximate tokens.
- Added retries for transient acpx JSON review failures via
--prompt-retriesandCLAWPATCH_REVIEW_RETRIES, thanks @coletebou. - Hardened review ingestion so provider findings must cite included files with valid line ranges and matching evidence quotes.
- Fixed provider review to preserve valid sibling findings when per-finding schema or evidence validation fails, recording drops in
run.errorsas non-fatalschema-droporvalidation-dropentries, thanks @coletebou. - Improved provider schema validation failures so
run.errors[].messageshows compact one-line Zod issue summaries, thanks @coletebou. - Added
totalandresultsaliases onclawpatch report --jsonoutput while keeping the legacyfindingscount, thanks @coletebou. - Fixed
clawpatch open-prso repositories without default-branch metadata use a dedicated patch branch and let GitHub choose the PR base. - Fixed
clawpatch open-prretries to push the recorded patch commit instead of any later local branch tip. - Fixed first-time
clawpatch open-prbranch creation to start from the recorded patch base. - Fixed command execution so providers that exit before reading stdin do not surface benign
EPIPEerrors. - Fixed
clawpatch ci --sinceempty-review output so it reportsreviewed: 0. - Fixed formatter configuration so
oxfmtuses two-space indentation consistently across platforms. - Added generic package-less monorepo app-root mapping for Node/Next projects under roots such as
apps/*andpackages/*when positive source or framework signals are present. - Added Maven project mapping for root, nested, and multi-module Java/Kotlin projects with Spring role slices, Maven validation defaults, and
pom.xmldetection, thanks @julianshess. - Added a release-prep checklist for auditing changelog, package metadata, and dry-run package contents without publishing.
- Improved bounded source grouping so large flat directories split repeated filename families like command, plugin, doctor, and runtime files into more coherent review slices.
- Fixed acpx provider error reporting by reading the terminal
result.stopReasonenvelope and surfacing non-end_turnreasons as typedClawpatchErrorcodes (agent-cancelled,agent-refused,agent-truncated) instead of opaquemalformed-output, thanks @coletebou. - Added website crawler artifacts and a static smoke check for metadata, anchors, and social-card dimensions, thanks @zack-dev-cm.
- Improved OpenCode malformed JSON diagnostics with output length, event kinds, and a bounded preview, thanks @rohitjavvadi.
- Fixed finding signatures so equivalent evidence remains stable across re-reviews, thanks @rohitjavvadi.
- Fixed provider exit-code classification for stdout-only authentication and quota failures, thanks @rohitjavvadi.
- Improved Node route mapping to preserve literal Express and Hono mount prefixes, thanks @rohitjavvadi.
- Improved Flask route mapping to preserve static blueprint URL prefixes, thanks @rohitjavvadi.
- Improved Django route mapping to preserve literal
include()route prefixes, thanks @rohitjavvadi. - Added conservative Rails route mapping for literal root and HTTP verb routes, thanks @rohitjavvadi.
- Fixed heuristic feature mapping to honor configured path include/exclude filters, thanks @schedawg74.
- Fixed Express route mapping for aliased Router imports that follow block comment banners, thanks @rohitjavvadi.
- Fixed Laravel route mapping to include array-style
Route::groupprefixes, thanks @rohitjavvadi. - Fixed Fastify route-object mapping to emit static method arrays while ignoring dynamic entries, thanks @rohitjavvadi.
- Fixed Fastify plugin callback route mapping for typed parameters and plugin aliases, thanks @rohitjavvadi.
- Fixed FastAPI route mapping to include static
APIRouter(prefix=...)values, thanks @AsishKumarDalal. - Added
--include-dirtyto review, CI, and revalidation file filters for auditing uncommitted worktree changes, thanks @AsishKumarDalal. - Fixed Bun package-manager detection to recognize the text
bun.locklockfile, thanks @austinm911. - Fixed review-output schema to tolerate optional
reproductionandminimumFixScopefields and zero-valued evidence line numbers (normalized tonull), recovering 4 of 28 zod issue patterns observed in run20260517T190759-3c9e9e(78 errors over 1000 features) that previously dropped whole-feature output instead of the affected finding. - Changed
clawpatch review --jobsandclawpatch ci --jobsdefaults from a fixed10tofloor(cpuCores / 2)clamped to[1, 10], thanks @coletebou. - Added
clawpatch review --rate-limit-per-minute <n>(alsoCLAWPATCH_RPM) to cap how many provider calls may start within any rolling 60s window across jobs, thanks @coletebou.
Release proof:
- npm: https://www.npmjs.com/package/clawpatch/v/0.4.0
- tarball: https://registry.npmjs.org/clawpatch/-/clawpatch-0.4.0.tgz
- integrity: sha512-ylvMucavrdSPixd5gzkd312pNBj/TX2r4gcFCOAteRPVkoiKJm99ZdGrM0hJzJGsz7E9bRnKyKTt0LVd1OnW7Q==
- release commit: cdd58ac
- CI: https://github.com/openclaw/clawpatch/actions/runs/26283615092
- CodeQL: https://github.com/openclaw/clawpatch/actions/runs/26283615019
- local proof: pnpm typecheck && pnpm lint && pnpm format:check && pnpm test && pnpm build && pnpm pack:smoke && npm pack --dry-run --json --ignore-scripts