diffowl 0.4.0 → 0.5.0
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/README.md +35 -20
- package/dist/cli.js +11149 -5278
- package/dist/cli.js.map +1 -1
- package/package.json +14 -5
package/README.md
CHANGED
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
|
|
10
10
|
Review agent-written code with a second model before it ships.
|
|
11
11
|
|
|
12
|
-
DiffOwl is a local code review CLI. It builds focused context from a Git diff,
|
|
12
|
+
DiffOwl is a local code review CLI. It builds focused context from a Git diff, runs a model through OpenCode or Codex, and records actionable findings in your repository.
|
|
13
13
|
|
|
14
|
-
It works with changes from any coding agent or human. You choose the
|
|
14
|
+
It works with changes from any coding agent or human. You choose the backend and model on your machine. DiffOwl does not require a hosted DiffOwl account.
|
|
15
15
|
|
|
16
16
|
## Why DiffOwl
|
|
17
17
|
|
|
@@ -20,27 +20,27 @@ The agent that wrote a change should not be its only reviewer. Asking it to revi
|
|
|
20
20
|
DiffOwl adds an independent pass between writing code and shipping it:
|
|
21
21
|
|
|
22
22
|
- Review the last commit, staged changes, a specific commit, or a whole branch.
|
|
23
|
-
-
|
|
23
|
+
- Review through OpenCode or a local Codex CLI authenticated with ChatGPT.
|
|
24
24
|
- Give the reviewer bounded local context instead of dumping the entire repository into a prompt.
|
|
25
25
|
- Keep findings after the review ends, with stable IDs and lifecycle states.
|
|
26
|
-
-
|
|
26
|
+
- Inspect and disposition durable findings after the review ends.
|
|
27
27
|
- Run reviews automatically after commits without blocking them.
|
|
28
28
|
|
|
29
|
-
TypeScript reviews include changed AST symbols, related tests, file excerpts, and bounded
|
|
29
|
+
TypeScript reviews can include changed AST symbols, related tests, file excerpts, and bounded import references. The structured import-reference section is TypeScript-only; non-TypeScript changes still get diff-centered review with targeted repository exploration.
|
|
30
30
|
|
|
31
31
|
## How it works
|
|
32
32
|
|
|
33
33
|
1. DiffOwl reads the Git change you selected.
|
|
34
34
|
2. It filters files and assembles relevant local context.
|
|
35
|
-
3. A separate model reviews the change through
|
|
35
|
+
3. A separate model reviews the change through your selected local backend.
|
|
36
36
|
4. DiffOwl writes a Markdown report and persists findings in SQLite.
|
|
37
|
-
5. You inspect the findings,
|
|
37
|
+
5. You inspect the findings, record their disposition, or hand them to a coding agent for resolution.
|
|
38
38
|
|
|
39
|
-
The orchestration and state stay in your repository. Review context
|
|
39
|
+
The orchestration and state stay in your repository. Review context goes only to the backend and model you selected.
|
|
40
40
|
|
|
41
41
|
## Quick start
|
|
42
42
|
|
|
43
|
-
You need Node.js 22.14.0 or newer
|
|
43
|
+
You need Node.js 22.14.0 or newer. OpenCode is the default backend for existing installations.
|
|
44
44
|
|
|
45
45
|
```bash
|
|
46
46
|
npm install --global opencode-ai
|
|
@@ -55,7 +55,15 @@ cd your-repository
|
|
|
55
55
|
diffowl init
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
-
`diffowl init`
|
|
58
|
+
`diffowl init` reports the selected runtime and the gitignored preference path. With OpenCode selected, it lists the models from your connected providers. Use `diffowl backend codex` before initialization if you want Codex, then choose a bare Codex model ID. The committed `.diffowl.yml` contains review policy, never your backend or model choice.
|
|
59
|
+
|
|
60
|
+
Codex reviews use an existing ChatGPT login from the local Codex CLI:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
codex
|
|
64
|
+
diffowl backend codex
|
|
65
|
+
diffowl model gpt-5-codex
|
|
66
|
+
```
|
|
59
67
|
|
|
60
68
|
Review the last commit:
|
|
61
69
|
|
|
@@ -91,6 +99,9 @@ diffowl review --staged --depth shallow
|
|
|
91
99
|
# Use a different model once
|
|
92
100
|
diffowl review --staged --model openai/gpt-5.6-luna
|
|
93
101
|
|
|
102
|
+
# Use Codex once without changing saved preferences
|
|
103
|
+
diffowl review --staged --backend codex --model gpt-5-codex
|
|
104
|
+
|
|
94
105
|
# Emit a versioned JSON document for scripts
|
|
95
106
|
diffowl review --base --format json
|
|
96
107
|
|
|
@@ -120,12 +131,7 @@ diffowl findings reopen fnd_abc --reason "The bug returned in a new path."
|
|
|
120
131
|
|
|
121
132
|
Use `--format json` with `findings list`, `show`, or `summary` when another tool needs the backlog.
|
|
122
133
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
diffowl chat
|
|
127
|
-
diffowl chat .diffowl/reviews/review-<timestamp>.md
|
|
128
|
-
```
|
|
134
|
+
Inspect a finding with `diffowl findings show`, then record its disposition with `fix`, `dismiss`, `defer`, or `reopen`. Run a new review when you need new model analysis.
|
|
129
135
|
|
|
130
136
|
## Resolve findings with a coding agent
|
|
131
137
|
|
|
@@ -166,7 +172,7 @@ diffowl agent-hook install --client claude
|
|
|
166
172
|
|
|
167
173
|
## Configuration
|
|
168
174
|
|
|
169
|
-
Project review policy lives in `.diffowl.yml`.
|
|
175
|
+
Project review policy lives in `.diffowl.yml`. Backend and model selection stay in the shared, gitignored `.diffowl/preferences.yml`. Linked worktrees use the same preference file.
|
|
170
176
|
|
|
171
177
|
```yaml
|
|
172
178
|
context:
|
|
@@ -195,21 +201,28 @@ rules:
|
|
|
195
201
|
- "Check authorization at every write boundary."
|
|
196
202
|
```
|
|
197
203
|
|
|
198
|
-
|
|
204
|
+
Inspect or change the local backend and its model without editing project policy:
|
|
199
205
|
|
|
200
206
|
```bash
|
|
207
|
+
diffowl backend
|
|
208
|
+
diffowl backend opencode
|
|
209
|
+
diffowl backend codex
|
|
210
|
+
diffowl backend --reset
|
|
211
|
+
|
|
201
212
|
diffowl model
|
|
202
213
|
diffowl model provider/model
|
|
203
214
|
diffowl model --reset
|
|
204
215
|
```
|
|
205
216
|
|
|
217
|
+
Each backend keeps its own model choice. Switching backends does not erase the other model. A legacy preference containing only `model: provider/model` still selects OpenCode.
|
|
218
|
+
|
|
206
219
|
Configuration is deep-merged with defaults, so the file only needs the settings your repository changes.
|
|
207
220
|
|
|
208
221
|
## Files DiffOwl creates
|
|
209
222
|
|
|
210
223
|
```text
|
|
211
224
|
.diffowl.yml # Committed project policy
|
|
212
|
-
.diffowl/preferences.yml # Gitignored
|
|
225
|
+
.diffowl/preferences.yml # Gitignored backend and model choices
|
|
213
226
|
.diffowl/state.db # Authoritative findings backlog
|
|
214
227
|
.diffowl/reviews/review-<timestamp>.md # Immutable review snapshot
|
|
215
228
|
.diffowl/reviews/latest.md # Copy of the newest report
|
|
@@ -224,9 +237,9 @@ Linked Git worktrees share the durable backlog and review reports from the prima
|
|
|
224
237
|
| -------------------- | ------------------------------------------- |
|
|
225
238
|
| `diffowl init` | Configure DiffOwl in the current repository |
|
|
226
239
|
| `diffowl review` | Run a review |
|
|
240
|
+
| `diffowl backend` | Inspect or change the local review backend |
|
|
227
241
|
| `diffowl model` | View or change the selected model |
|
|
228
242
|
| `diffowl findings` | Inspect and update durable findings |
|
|
229
|
-
| `diffowl chat` | Reopen an OpenCode review session |
|
|
230
243
|
| `diffowl hook` | Manage the post-commit hook |
|
|
231
244
|
| `diffowl agent-hook` | Manage supported agent client hooks |
|
|
232
245
|
| `diffowl server` | Manage the local OpenCode server |
|
|
@@ -236,6 +249,8 @@ Run `diffowl <command> --help` for every option.
|
|
|
236
249
|
## Troubleshooting
|
|
237
250
|
|
|
238
251
|
- No models found: run `opencode`, connect or re-authenticate a provider, then rerun `diffowl init`.
|
|
252
|
+
- Codex runtime missing: install the Codex CLI and make sure `codex` is on `PATH`.
|
|
253
|
+
- Codex authentication missing: run `codex` and sign in with ChatGPT.
|
|
239
254
|
- Review timed out: retry with `diffowl review --depth shallow`.
|
|
240
255
|
- Hook review failed: run the retry command shown by the next foreground DiffOwl command, or inspect `.diffowl/hook.log`.
|
|
241
256
|
- Agent did not load `diffowl-resolve`: verify it with `npx skills list`, then restart or reload the agent.
|