Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .oxfmtrc.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
{
"$schema": "./node_modules/oxfmt/configuration_schema.json",
"tabWidth": 2,
"useTabs": false,
"ignorePatterns": []
}
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
- Fixed first-time `clawpatch open-pr` branch creation to start from the recorded patch base.
- Fixed command execution so providers that exit before reading stdin do not surface benign `EPIPE` errors.
- Fixed `clawpatch ci --since` empty-review output so it reports `reviewed: 0`.
- Fixed formatter configuration so `oxfmt` uses two-space indentation consistently across platforms.
- Added generic package-less monorepo app-root mapping for Node/Next projects under roots such as `apps/*` and `packages/*` when positive source or framework signals are present.
- Added a release-prep checklist for auditing changelog, package metadata, and dry-run package contents without publishing.
- Improved OpenCode malformed JSON diagnostics with output length, event kinds, and a bounded preview, thanks @rohitjavvadi.
- Fixed Express route mapping for aliased Router imports that follow block comment banners, thanks @rohitjavvadi.
- Fixed Bun package-manager detection to recognize the text `bun.lock` lockfile, thanks @austinm911.
Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ validation commands and records a patch attempt under `.clawpatch/`.
`lint`, `typecheck`, `format`
- Node/TypeScript workspace packages under `apps/*`, `packages/*`, and package
workspace patterns
- package-less Node/TypeScript app roots under monorepo folders such as
`apps/*` and `packages/*` when source or positive framework signals are
present
- generic extension/plugin packages under workspace roots such as `extensions/*`
and `plugins/*`, including package metadata, source, docs, and nearby tests
- semantic Node source groups for large packages, including runtime, commands,
Expand Down
17 changes: 12 additions & 5 deletions docs/feature-mapping.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,13 @@ Supported deterministic mappers today:
- npm package bins
- selected root and workspace package scripts
- Node/TypeScript workspace packages from `package.json` workspaces, `pnpm-workspace.yaml`, and common package folders
- package-less Node/TypeScript app roots under monorepo folders such as
`apps/*` and `packages/*` when source files or positive framework signals are
present
- Nx project metadata from `project.json`, including project names, source roots, project types, and target names
- Turborepo `turbo.json` metadata for workspace-aware validation commands and feature context
- bounded Node/TypeScript source groups under `src/`, `lib/`, `app/`, `pages/`, and `scripts/`
- bounded Node/TypeScript source groups under `src/`, `lib/`, `app/`,
`pages/`, `scripts/`, `server/`, and `api/`
- React Router `<Route path element>` declarations and React components in
root or nested frontend packages such as `frontend/`, `client/`, `web/`,
workspaces, and packages under `apps/` or `packages/`
Expand Down Expand Up @@ -95,10 +99,13 @@ and `plugins/*` are tagged as extension packages and keep package metadata,
source, docs, and tests together as review context.

In JavaScript/TypeScript monorepos, project discovery runs before framework
mapping. Workspace packages and Nx projects are normalized into project roots,
so framework mappers can apply the same heuristics to `apps/*` and `packages/*`
that they apply at the repository root. Feature tags include project name and
project root metadata, enabling commands such as:
mapping. Workspace packages, Nx projects, and package-less app roots with source
or positive framework signals are normalized into project roots, so framework
mappers can apply the same heuristics to `apps/*` and `packages/*` that they
apply at the repository root. Hoisted Next route mapping uses positive evidence
such as local Next commands, local Next config, App Router files, or Pages API
files instead of trying to enumerate every non-Next config file. Feature tags
include project name and project root metadata, enabling commands such as:

```bash
clawpatch review --project apps/web --limit 10
Expand Down
1 change: 1 addition & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ stderr so pipes stay parseable.
- [Validation](validation.md)
- [Providers](providers.md)
- [Safety](safety.md)
- [Release Prep](release-prep.md)
- [E2E with Gitcrawl](e2e-gitcrawl.md)
- [Initialization](initialization.md)

Expand Down
54 changes: 54 additions & 0 deletions docs/release-prep.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
title: Release Prep
description: "No-publish checks for preparing a clawpatch release"
---

# Release Prep

This checklist audits release readiness only. It does not publish, tag, create a
GitHub release, or change the package version.

## Current Snapshot

As of 2026-05-18:

- GitHub latest full release: `v0.3.0`
- `package.json` version: `0.3.0`
- npm `clawpatch` version: `0.3.0`
- `pnpm pack:smoke` passed
- `npm pack --dry-run --json --ignore-scripts` included expected package
contents such as `dist/`, `README.md`, `LICENSE`, and `package.json`

Prepare the next release only after the maintainer confirms the target version
and timing.

## Audit Commands

```bash
gh release list --repo openclaw/clawpatch --limit 20 --json tagName,isPrerelease,isDraft,publishedAt,isLatest
node -p "require('./package.json').version"
npm view clawpatch version --json
```

## Validation Commands

```bash
pnpm typecheck
pnpm lint
pnpm format:check
pnpm exec vitest run --maxWorkers=1
pnpm build
pnpm pack:smoke
npm pack --dry-run --json --ignore-scripts
```

## Manual Checks

- Confirm `CHANGELOG.md` has all user-visible, operational, or security-relevant
changes under the next unreleased version.
- Confirm README and docs mention any new mapper behavior, commands, or safety
constraints.
- Confirm the dry-run package includes built `dist/` files and excludes local
state, fixtures that should not ship, and private paths.
- Confirm no release action has been run unless release timing is explicitly
approved.
Loading
Loading