repopilot 0.21.0 → 0.23.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.
Files changed (2) hide show
  1. package/README.md +35 -5
  2. package/package.json +8 -7
package/README.md CHANGED
@@ -24,9 +24,17 @@ drops a permission check and pipes request input into a shell.
24
24
  <img src="https://raw.githubusercontent.com/MykytaStel/repopilot/main/docs/demos/03-agent-review.gif" alt="repopilot review flagging a removed auth check and a request-to-shell taint flow in a one-file diff" width="800">
25
25
  </p>
26
26
 
27
- One command, `repopilot review .`, and the diff answers for itself:
27
+ One command, `repopilot review .`, and the diff answers for itself — one
28
+ verdict, the reasons behind it, and one next action, then the evidence:
28
29
 
29
30
  ```text
31
+ Decision: REVIEW (Change Proof: REVIEW)
32
+ Reasons:
33
+ - Definitely-sensitive review signal(s) require confirmation.
34
+ - A changed boundary has no corresponding test change.
35
+ …
36
+ Next action: Resolve or confirm the high-priority findings and sensitive signals listed below before merge.
37
+
30
38
  ⚑ access control changed — wagtail/images/views/images.py
31
39
  ⚑ auth check removed — wagtail/images/views/images.py:264
32
40
  Authentication/authorization check removed (auth calls: 1 -> 0)
@@ -54,6 +62,25 @@ checkout) is caught the same way.
54
62
  > flow is a path to verify, not a confirmed vulnerability. Use it beside
55
63
  > tests, linters, and dedicated security tools.
56
64
 
65
+ `VERIFIED` is only awarded when checks you configure and select with
66
+ `--verify` pass on the reviewed revision; `repopilot init --suggestions-output
67
+ repopilot-suggestions.toml` proposes them for your stack without applying
68
+ anything. Add `--detail full` for provenance, legacy readiness, and ownership.
69
+
70
+ ## Catch broken code, not just risky code
71
+
72
+ A tidy-looking rename and file move — nothing a diff review would flag on its
73
+ own — quietly breaks two callers that still expect the old names. No compiler
74
+ runs; both are AST-plus-resolver proofs.
75
+
76
+ <p align="center">
77
+ <img src="https://raw.githubusercontent.com/MykytaStel/repopilot/main/docs/demos/05-broken-code.gif" alt="repopilot review catching a removed export still imported and an unresolved local import in a tidy-looking rename" width="800">
78
+ </p>
79
+
80
+ ```bash
81
+ scripts/demo-broken-code-review.sh
82
+ ```
83
+
57
84
  ## Why not an LLM reviewer?
58
85
 
59
86
  - **Deterministic.** Same diff in, same signals out. You can gate a pipeline
@@ -90,8 +117,10 @@ Review groups evidence into tiers: security boundaries (access control,
90
117
  request trust, deploy surface, supply chain, secrets), behavioral changes
91
118
  (network, subprocess, filesystem, SQL, removed error handling or auth),
92
119
  algorithmic shifts, taint-lite flows (changed request/process input reaching
93
- SQL, exec, filesystem-write, or network sinks), and blast radius (files that
94
- import what changed).
120
+ SQL, exec, filesystem-write, or network sinks), broken local imports and
121
+ exports (a deleted or renamed file still imported, a removed export still
122
+ called under its old name — no compiler required), and blast radius (files
123
+ that import what changed).
95
124
 
96
125
  Signals are advisory by default. Gate CI on the high-confidence tier:
97
126
 
@@ -102,8 +131,9 @@ repopilot review . --base origin/main --fail-on-review definitely
102
131
  Every review also resolves to one merge-readiness verdict — `ready`,
103
132
  `review`, or `blocked` — built from findings, review signals, CODEOWNERS,
104
133
  and blast radius, with deterministic reason codes and suggested owners.
105
- Console, Markdown, JSON, MCP, and the GitHub Action summary all read the
106
- same record.
134
+ Console, Markdown, JSON, MCP, and the GitHub Action summary all read the same
135
+ ChangeProof and evidence records; machine projections keep the legacy fields
136
+ for compatibility.
107
137
 
108
138
  ## Compare risk across runs
109
139
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "repopilot",
3
- "version": "0.21.0",
3
+ "version": "0.23.0",
4
4
  "description": "Local-first CLI for reviewing Git changes, security boundaries, and blast radius before merge.",
5
5
  "license": "MIT OR Apache-2.0",
6
6
  "repository": {
@@ -22,7 +22,8 @@
22
22
  "release:contract": "python3 scripts/release-contract.py check",
23
23
  "test:release-contract": "python3 -m unittest discover -s scripts/tests -p 'test_*.py'",
24
24
  "review:performance": "node scripts/check-review-performance.js",
25
- "scan:performance": "node scripts/check-scan-performance.js"
25
+ "scan:performance": "node scripts/check-scan-performance.js",
26
+ "scan:resource": "python3 scripts/scan_resource_matrix.py"
26
27
  },
27
28
  "files": [
28
29
  "bin",
@@ -30,11 +31,11 @@
30
31
  "LICENSE"
31
32
  ],
32
33
  "optionalDependencies": {
33
- "@repopilot/darwin-arm64": "0.21.0",
34
- "@repopilot/darwin-x64": "0.21.0",
35
- "@repopilot/linux-arm64-gnu": "0.21.0",
36
- "@repopilot/linux-x64-gnu": "0.21.0",
37
- "@repopilot/win32-x64-msvc": "0.21.0"
34
+ "@repopilot/darwin-arm64": "0.23.0",
35
+ "@repopilot/darwin-x64": "0.23.0",
36
+ "@repopilot/linux-arm64-gnu": "0.23.0",
37
+ "@repopilot/linux-x64-gnu": "0.23.0",
38
+ "@repopilot/win32-x64-msvc": "0.23.0"
38
39
  },
39
40
  "keywords": [
40
41
  "cli",