@codacy/verity-cli 0.35.4 → 0.36.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/CHANGELOG.md +96 -0
- package/README.md +22 -10
- package/bin/verity.js +2648 -454
- package/data/skills/verity-memory/SKILL.md +56 -8
- package/data/skills/verity-reflect/SKILL.md +9 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -64,6 +64,102 @@ installs are untouched.
|
|
|
64
64
|
which is the ordinary case for someone whose first Verity install *is* the
|
|
65
65
|
plugin.
|
|
66
66
|
|
|
67
|
+
## [0.36.0] — 2026-11-12
|
|
68
|
+
|
|
69
|
+
### 🧠 Curate your project's knowledge from the CLI
|
|
70
|
+
|
|
71
|
+
- **`verity memory edit <node-id>`** changes a node's title, files, status or
|
|
72
|
+
body. Verity checks the change before it writes anything, and the change
|
|
73
|
+
reaches the service at once, with no review needed.
|
|
74
|
+
- **`verity memory delete <node-id> --reason "…"`** removes a node that is wrong
|
|
75
|
+
or out of date, and **`verity memory restore <node-id>`** brings it back. The
|
|
76
|
+
reason stays on your machine.
|
|
77
|
+
- **`verity memory ask "<question>"`** (also `recall`) answers from your
|
|
78
|
+
project's knowledge. It quotes the matching nodes with their ids. It runs on
|
|
79
|
+
your machine, with no model, and sends nothing.
|
|
80
|
+
- **`verity memory dream`** shows a plan to merge near-identical nodes, retire
|
|
81
|
+
superseded ones and remove empty placeholders. `--apply` makes the changes,
|
|
82
|
+
`--revert <dream-id>` undoes them, and `--list` shows past runs. A node that
|
|
83
|
+
a person confirmed is never changed.
|
|
84
|
+
- **`verity reflect` fixes:** an edited node now reaches the service, the title
|
|
85
|
+
comes from the first line, and paths written as globs, folders or in
|
|
86
|
+
backticks are scoped. A placeholder node that you removed stays removed.
|
|
87
|
+
|
|
88
|
+
### 🎯 Findings outside your change no longer block it
|
|
89
|
+
|
|
90
|
+
- **At a commit and a push, Verity now knows which lines your change wrote.**
|
|
91
|
+
The CLI sends line numbers, never extra code. A finding more than 3 lines
|
|
92
|
+
away from every changed line is marked pre-existing: it is still shown, but
|
|
93
|
+
it does not block.
|
|
94
|
+
- **Your own problems still block.** A finding that a static tool reports keeps
|
|
95
|
+
its scope, and so does a problem that a removed line causes. A file that a
|
|
96
|
+
merge combined is reviewed as before. When the CLI cannot prove that the
|
|
97
|
+
line numbers fit the code it sent, the file is reviewed as before.
|
|
98
|
+
|
|
99
|
+
### 🔒 What Verity sends, and where
|
|
100
|
+
|
|
101
|
+
- **Includes security fixes.**
|
|
102
|
+
- **The plugin README now lists every destination**: what Verity sends, where
|
|
103
|
+
it goes, and how long it is kept.
|
|
104
|
+
- **The local scan runs offline**, with no telemetry and no update checks. For
|
|
105
|
+
Maven (`pom.xml`) projects, offline mode can miss some dependency findings.
|
|
106
|
+
- **To find known malicious packages**, the CLI sends the names and versions
|
|
107
|
+
of the packages in a changed dependency file to OSV.dev, a vulnerability
|
|
108
|
+
database that Google runs. This includes the names of private packages. It
|
|
109
|
+
sends no code. The Privacy Notice names OSV.dev.
|
|
110
|
+
- **The service now deletes raw telemetry on schedule**: metric points after 14
|
|
111
|
+
days and spans after 30 days. Daily totals are kept.
|
|
112
|
+
|
|
113
|
+
### 🪟 Windows
|
|
114
|
+
|
|
115
|
+
- **The hooks no longer open console windows**
|
|
116
|
+
([codacy/verity#1](https://github.com/codacy/verity/issues/1)). Every
|
|
117
|
+
process that the CLI starts is hidden, and git commands run without a shell.
|
|
118
|
+
The browser for sign-in still opens normally.
|
|
119
|
+
|
|
120
|
+
### ✂️ Fewer false blocks
|
|
121
|
+
|
|
122
|
+
- **A null or missing field that only makes one request or one script run fail
|
|
123
|
+
no longer blocks as a critical input-sanitization finding.** It is reported
|
|
124
|
+
as its own finding, at its real severity. A null field that makes a check
|
|
125
|
+
fail open, and a wrong type that changes what a query or command does, still
|
|
126
|
+
count under the rule.
|
|
127
|
+
|
|
128
|
+
### 📦 Dependencies
|
|
129
|
+
|
|
130
|
+
- **`@codacy/analysis-cli` 0.25.0 → 0.29.0.** A fresh install now shows 0
|
|
131
|
+
`npm audit` findings (it showed 11 moderate). The local scan uses Trivy
|
|
132
|
+
0.74.
|
|
133
|
+
|
|
134
|
+
## [0.35.5] — 2026-11-11
|
|
135
|
+
|
|
136
|
+
### 🔬 Formal verification at push is on by default
|
|
137
|
+
|
|
138
|
+
- **Every project gets the formal check at push**, also a project set up
|
|
139
|
+
before. Until now it ran only where `formal: "push"` was written, and
|
|
140
|
+
`verity init` wrote that only for a new project. At a push, Verity can check
|
|
141
|
+
a small Lean model of the riskiest changed function and replay a
|
|
142
|
+
counterexample on the real code. Only a reproduced bug can block. For the
|
|
143
|
+
replay, the source of that function goes to the Verity service. Turn it off
|
|
144
|
+
for a checkout with `verity config formal off`, or for a shell with
|
|
145
|
+
`VERITY_GIT_MOMENT_FORMAL=off`.
|
|
146
|
+
- **The first session after the upgrade starts the Lean 4 download** (about
|
|
147
|
+
800 MB, 2.7 GB on disk) on a machine with no install record, and says once
|
|
148
|
+
per machine that formal is on and how to turn it off. When Lean will not
|
|
149
|
+
come (`VERITY_NO_LEAN=1`, CI, too little disk, no release for the platform,
|
|
150
|
+
a failed download), it says why, and that a push skips the formal check.
|
|
151
|
+
`VERITY_NO_LEAN=1` and CI are checked before any probe for Lean.
|
|
152
|
+
- **An "off" counts only from a file that you control.** An "off" in a
|
|
153
|
+
`.verity/config.json` that git tracks, or that is a link, is ignored: a
|
|
154
|
+
repository cannot switch the review off for its clones. `verity config
|
|
155
|
+
formal`, `verity doctor`, `verity init` and the notice say so, and name
|
|
156
|
+
`git rm --cached .verity/config.json`. When git cannot tell, the "off" is
|
|
157
|
+
kept and the push says `formal: skipped (off-unverified: …)`.
|
|
158
|
+
- **Breaking:** `verity config formal` prints `push` when nothing is set
|
|
159
|
+
(it printed `off`). A re-run of `verity init` starts the Lean download in an
|
|
160
|
+
existing project. An earlier "off" in a tracked `.verity/config.json` no
|
|
161
|
+
longer counts.
|
|
162
|
+
|
|
67
163
|
## [0.35.4] — 2026-11-10
|
|
68
164
|
|
|
69
165
|
### 📐 The Standard file is machine-local
|
package/README.md
CHANGED
|
@@ -205,8 +205,9 @@ No re-setup needed: your token, Standard, and run history all carry over.
|
|
|
205
205
|
| `verity memory untrack` | Stop committing `.verity/memory/` — the graph stays on disk and leaves your diffs |
|
|
206
206
|
| `verity memory track` | Commit the graph on purpose, and record that so nothing offers to change it |
|
|
207
207
|
| **Formal verification** | |
|
|
208
|
-
| `verity config formal
|
|
209
|
-
| `verity config formal off` | Turn it off |
|
|
208
|
+
| `verity config formal` | Show the setting in force: `push` (the default) or `off` |
|
|
209
|
+
| `verity config formal off` | Turn it off for this checkout. The answer stays: nothing turns it on again |
|
|
210
|
+
| `verity config formal push` | Turn it back on for this checkout: at push, one risky changed function may get a Lean model, checked and replayed (see below) |
|
|
210
211
|
| `verity lean status` / `install` / `remove` | The managed Lean 4 toolchain the models are checked with (≈800 MB download, 2.7 GB on disk) |
|
|
211
212
|
| `verity prove candidates [paths]` | Rank the riskiest code from git history and shape signals, no model |
|
|
212
213
|
| `verity prove auto [files]` | Run the push-time phase by hand on the commits ahead of upstream |
|
|
@@ -233,7 +234,7 @@ No re-setup needed: your token, Standard, and run history all carry over.
|
|
|
233
234
|
| `/verity-reflect` | Capture learnings after a task |
|
|
234
235
|
| `/verity-prove <worry>` | Formal verification on demand: pick a function together, model it in Lean, replay any counterexample on the real code |
|
|
235
236
|
|
|
236
|
-
## Formal verification (
|
|
237
|
+
## Formal verification (on by default)
|
|
237
238
|
|
|
238
239
|
At `git push`, beside the review, Verity can build a **small Lean 4 model of one
|
|
239
240
|
risky function in the change**, search every interleaving of its actions up to a
|
|
@@ -249,13 +250,24 @@ or plain code stops in under a second with a named reason. Counterexamples can
|
|
|
249
250
|
only be replayed for **TypeScript, JavaScript and Python**; other languages stop
|
|
250
251
|
before any model is paid for.
|
|
251
252
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
253
|
+
Formal verification is on by default in every project, unless someone turned
|
|
254
|
+
it off with `verity config formal off` (or `VERITY_GIT_MOMENT_FORMAL=off`). An
|
|
255
|
+
"off" is an answer and stays. It does not count from a `.verity/config.json`
|
|
256
|
+
that git tracks or that is a link: a repository cannot switch the review off
|
|
257
|
+
for its clones. When git cannot tell, the "off" is kept and the push says
|
|
258
|
+
`formal: skipped (off-unverified: …)`.
|
|
259
|
+
|
|
260
|
+
The Lean 4 toolchain downloads in the background (≈800 MB, 2.7 GB on disk;
|
|
261
|
+
`verity lean status` shows the progress). `verity init` starts the download,
|
|
262
|
+
and the first Claude Code session after an upgrade starts it on a machine that
|
|
263
|
+
never tried. That session also says once, per machine, that formal is on, how
|
|
264
|
+
to turn it off, and why Lean will not come when it cannot.
|
|
265
|
+
|
|
266
|
+
Until Lean is ready, a push reports `formal: skipped (no-toolchain: Lean
|
|
267
|
+
installing, 63%)` and the gate decision does not change. The download does not
|
|
268
|
+
start in CI (unless `VERITY_LEAN=1`), with `VERITY_NO_LEAN=1`, with formal off,
|
|
269
|
+
or with less than 3.75 GB free. A failed download is not retried at each
|
|
270
|
+
session start: run `verity lean install`.
|
|
259
271
|
|
|
260
272
|
```bash
|
|
261
273
|
verity config formal off # turn it off for this checkout
|