@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 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 push` | Turn it on for this checkout: at push, one risky changed function may get a Lean model, checked and replayed (see below). On by default for a new project |
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 (opt-in)
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
- For a new project, `verity init` turns this on and starts the Lean 4 download
253
- in the background (≈800 MB, 2.7 GB on disk; `verity lean status` shows the
254
- progress). Until Lean is ready, a push reports `formal: skipped (no-toolchain:
255
- Lean installing, 63%)` and the gate decision does not change. Init does not
256
- start the download in CI (unless `VERITY_LEAN=1`), with `VERITY_NO_LEAN=1`,
257
- with formal off, or with less than 3.75 GB free. A re-run of init never turns
258
- formal on.
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