opencode-reviewer 2.1.2 → 2.1.4

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 CHANGED
@@ -1,8 +1,8 @@
1
1
  # OpenCode Reviewer
2
2
 
3
3
  Reviews pending permissions in the [OpenCode](https://github.com/anomalyco/opencode) sidebar using a separate LLM. Reviews
4
- native shell commands, file edits, and external-directory access. Skill, MCP and
5
- custom-tool requests currently remain manual.
4
+ native shell commands, file edits, skill loading, and external-directory access.
5
+ MCP and custom tools share a tool-review category, with registered descriptions and JSON Schemas included when available.
6
6
  Supports streaming explanations, saved report history and stats, auto-approval, and Linux
7
7
  desktop notifications (Gnome) with distinct sounds.
8
8
 
@@ -19,6 +19,13 @@ each request's data and scope rather than allowing only specific host versions.
19
19
 
20
20
  ## Install and config
21
21
 
22
+ Reviews send request data, the latest user prompt, and selected file snapshots,
23
+ diffs, skill instructions or tool arguments to your configured endpoint **before
24
+ permission approval**. Shell snapshots can follow symlinks outside the project;
25
+ denying the command afterward cannot undo that disclosure. Use an endpoint you
26
+ trust, and a local reviewer or a sandbox without accessible secrets when working
27
+ with untrusted repositories.
28
+
22
29
  Add this entry to the global `~/.config/opencode/cli.json`, or
23
30
  `$XDG_CONFIG_HOME/opencode/cli.json` when `XDG_CONFIG_HOME` is set.
24
31
  There is no project-local CLI configuration. OpenCode loads the
@@ -40,9 +47,8 @@ There is no project-local CLI configuration. OpenCode loads the
40
47
  "reviewBash": true,
41
48
  "reviewEdits": true,
42
49
  "reviewSkills": true,
43
- "reviewMcp": false,
44
- "reviewCustomTools": false,
45
- "reviewExternalDirectories": false,
50
+ "reviewTools": true,
51
+ "reviewExternalDirectories": true,
46
52
  "autoApprove": false,
47
53
  "fastMode": false,
48
54
  "extraCareful": true,
@@ -113,10 +119,9 @@ inclusive, fractions are invalid, and the maximum safe integer is
113
119
  | `stream` | boolean | `false` | Request SSE and show provisional rating/text updates. Normal automatic approval waits for a completed, validated report; fast mode can approve on an early Safe rating. Approval rules are described below. |
114
120
  | `reviewBash` | boolean | `true` | Review native `shell` permissions. The option keeps its existing name. |
115
121
  | `reviewEdits` | boolean | `true` | Review native `edit`, `write` and `patch` tools, which use the `edit` permission action. |
116
- | `reviewSkills` | boolean | `true` | Skill-review category switch. Exact mandatory skill instructions are currently unavailable to the V2 collector, so these requests remain manual. |
117
- | `reviewMcp` | boolean | `false` | MCP-review category switch. V2 MCP collection is currently unsupported; enabling this does not supply missing origin/catalog evidence or permit automatic approval. |
118
- | `reviewCustomTools` | boolean | `false` | Custom-tool review category switch. V2 custom-tool collection is currently unsupported; these requests remain manual. |
119
- | `reviewExternalDirectories` | boolean | `false` | Review directory access independently of operation-review switches. Directory approval can resume the operation without another prompt. |
122
+ | `reviewSkills` | boolean | `true` | Review native skill loading using the exact requested ID and full currently registered main instructions. Assumes the selected definition stays unchanged while permission is pending. Missing or ambiguous instructions remain manual. |
123
+ | `reviewTools` | boolean | `true` | Review other tools, including MCP and custom tools, using `TOOL-REVIEW-PROMPT.md`. Exact call linkage, arguments and permission scope are required. Descriptions and JSON Schemas are optional; missing evidence is explained to the LLM, which decides Safe/Unsafe. Safe reviews can use normal or fast automatic approval. |
124
+ | `reviewExternalDirectories` | boolean | `true` | Review directory access independently of operation-review switches. Directory approval can resume the operation without another prompt. |
120
125
  | `autoApprove` | boolean | `false` | Allow Safe reviews once automatically. Normally waits for completion, validation and the countdown. Works throughout the current conversation, including subagent browsing and hidden/covered reports. Home, dashboards, unrelated conversations and native permission decision editing wait without cancellation. |
121
126
  | `fastMode` | boolean | `false` | Requires `autoApprove: true`. Approve an eligible, front-of-queue request as soon as a Safe rating is parsed, bypassing the countdown. Respects `stream`; with `stream: false`, waits for the complete validated response. Finish the report and save it in the background after approval. |
122
127
  | `extraCareful` | boolean | `true` | Include extra-careful guidance when `autoApprove` is enabled. Setting `false` omits that guidance without disabling automatic approval. |
@@ -161,10 +166,28 @@ The plugin doesn't enable mouse tracking or reveal a hidden sidebar unless you
161
166
  click an approval notification; it checks that the sidebar is absent from the main
162
167
  conversation before showing it. Hidden automatic reports are saved normally.
163
168
 
164
- The skill, MCP and custom-tool options are still present, but these reviews aren't
165
- supported in V2. The reviewer can't get the required skill instructions or verify
166
- the source and catalog information for MCP and custom tools. Those requests need
167
- manual approval; they aren't rated Safe.
169
+ Skill reviews use the full main instructions from the server's current registered
170
+ skill definition, not a fresh `SKILL.md` read or an invocation-time snapshot. This
171
+ assumes that the selected definition stays unchanged while its permission is pending.
172
+ The exact skill ID, native call and permission scope must match. Missing, ambiguous
173
+ or oversized main instructions remain manual. Supporting files and scripts are not
174
+ inspected; their omission alone does not prevent review. Allowing a skill loads its
175
+ instructions, not a blanket grant for later tool actions.
176
+
177
+ Tool reviews use the exact effective tool ID, captured arguments and pending
178
+ permission scope. Current server-side registered names, descriptions and input
179
+ JSON Schemas are included when available. Missing, duplicate, oversized,
180
+ unreadable or unsupported definitions are omitted with factual reasons sent to
181
+ the LLM. The LLM decides whether the remaining evidence justifies Safe or Unsafe;
182
+ missing optional evidence does not itself force manual approval.
183
+
184
+ This assumes any supplied definition stays unchanged while approval is pending
185
+ and accurately describes behavior. The reviewer does not inspect executors or
186
+ remote implementations, infer origin from names, or claim an invocation-time
187
+ definition snapshot. Ambiguous call linkage still remains manual because the
188
+ reviewer cannot identify the operation being approved. Saved reports use the tool
189
+ category. All review categories default to enabled; `autoApprove` still defaults
190
+ to false. `reviewTools` replaces `reviewMcp` and `reviewCustomTools`.
168
191
 
169
192
  Code Mode and its tool search stay enabled. Native tool calls can be reviewed when
170
193
  the reviewer can match them exactly to their permission requests. Nested calls
@@ -230,8 +253,9 @@ controls remain available. Already-approved fast-mode reports finish in the back
230
253
  The commands remain available when review configuration or the companion is unavailable;
231
254
  they save the preference without starting reviews.
232
255
 
233
- At startup, the reviewer retries timed-out or not-yet-available companion handshakes
234
- for up to 10 seconds. If it remains unavailable, history and notifications still work;
256
+ At startup, the reviewer waits for the connected server event stream before its first
257
+ companion handshake. Connection waiting and retries for timed-out or not-yet-available
258
+ handshakes share one 10-second budget. If it remains unavailable, history and notifications still work;
235
259
  reload the plugin to try again. Invalid handshake data is not retried.
236
260
 
237
261
  If the server reconnects or the companion is replaced, reviews and auto-approval
@@ -242,6 +266,8 @@ from the old connection separate from the new one.
242
266
 
243
267
  Use `/reviewer-history` or **Reviewer: Report history** in the command palette to
244
268
  open the newest saved report for the current conversation and its descendants.
269
+ **Alt+H** toggles report history from the main conversation. Its shortcut can be
270
+ remapped with `keybinds["reviewer.history.toggle"]` in global `cli.json`.
245
271
  Left/Right or the arrow buttons select older/newer entries; Up/Down and
246
272
  PageUp/PageDown scroll. Close or Escape closes history. Repeating the command
247
273
  returns to the newest report. History remains available with review disabled or
@@ -320,7 +346,7 @@ received usage from unsuccessful or interrupted reviews, which do not count as
320
346
  completed reviews. Averages include measured reviews only.
321
347
 
322
348
  Reviews send the pending request, latest user prompt, project context, and relevant
323
- file snapshots, diffs, or tool arguments to your endpoint before approval. Shell
349
+ file snapshots, diffs, registered skill instructions, or tool arguments to your endpoint before approval. Shell
324
350
  file snapshots can follow symlinks outside the project. Missing evidence is noted
325
351
  in the report; ratings are advice based on the supplied evidence.
326
352
  </details>
@@ -438,12 +464,15 @@ Disable overlapping notification plugins to avoid duplicate alerts.
438
464
  Use Node.js 24.15.0+ within 24.x, or 22.22.2+ within 22.x, and npm.
439
465
  Run `npm ci --ignore-scripts`, then `npm run check` for typechecking, source tests,
440
466
  pure-helper tests and the build. `npm run test:helpers` runs the helper checks
441
- without building or starting OpenCode. Pull-request CI checks both Node versions
442
- and runs a separate representative Linux fixture profile on stock OpenCode
443
- 2.0.26 and 2.0.27.
444
- After building, run `node scripts/test-runtime.mjs --profile ci` for that same
467
+ without building or starting OpenCode. Pushing a version tag runs verification
468
+ and publication in one workflow: source tests, helper tests, reproducible builds
469
+ and archive checks must pass before the exact verified archive is published.
470
+ The manual **Extended host checks** workflow tests Node 22/24 and the real Linux
471
+ TUI on the newest stable OpenCode V2. These timing-sensitive host fixtures are
472
+ not an automatic release prerequisite.
473
+ After building, run `node scripts/test-runtime.mjs --profile v2-acceptance` for that same
445
474
  profile. Use `node scripts/test-runtime.mjs --list` for the complete runtime
446
- inventory or `node scripts/test-runtime.mjs --plan --profile ci` for a
475
+ inventory or `node scripts/test-runtime.mjs --plan --profile v2-acceptance` for a
447
476
  host-independent plan. Profiles select documented scenario/flag combinations;
448
477
  interactive desktop checks have separate prerequisites.
449
478
  See [AGENTS.md](https://github.com/mightykatun/opencode-reviewer/blob/main/AGENTS.md)
@@ -27,16 +27,16 @@ ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
27
27
  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
28
28
  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29
29
 
30
- # Bundled dependency: @opencode/theme 2.0.26
30
+ # Bundled dependency: @opencode/theme 2.0.29
31
31
 
32
- https://github.com/anomalyco/opencode/tree/v2.0.26/packages/theme
32
+ https://github.com/anomalyco/opencode/tree/v2.0.29/packages/theme
33
33
 
34
- The pinned theme syntax helper is bundled unchanged in the terminal payload.
34
+ The source-fingerprinted theme syntax helper is bundled unchanged in the terminal payload.
35
35
  A build-time adapter replaces its public barrel with a syntax-only re-export;
36
36
  unused theme parsers, schemas and their Effect dependency are not bundled.
37
37
  Solid and OpenTUI remain host-provided external dependencies.
38
38
 
39
- License source: https://github.com/anomalyco/opencode/blob/v2.0.26/LICENSE
39
+ License source: https://github.com/anomalyco/opencode/blob/v2.0.29/LICENSE
40
40
 
41
41
  ```text
42
42
  MIT License