opencode-reviewer 2.0.2 → 2.1.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 (3) hide show
  1. package/README.md +17 -10
  2. package/dist/tui.js +308 -1941
  3. package/package.json +3 -4
package/README.md CHANGED
@@ -85,7 +85,7 @@ that are not exposed by TUI APIs:
85
85
  ```json
86
86
  {
87
87
  "$schema": "https://opencode.ai/config.json",
88
- "plugins": ["opencode-reviewer@latest"],
88
+ "plugins": ["opencode-reviewer@latest"]
89
89
  }
90
90
  ```
91
91
 
@@ -110,7 +110,7 @@ inclusive, fractions are invalid, and the maximum safe integer is
110
110
  | `apiKey` | string | Unset | Nonempty Bearer token. Takes precedence over `apiKeyEnv`. |
111
111
  | `apiKeyEnv` | string | Unset | Environment-variable name matching `[A-Za-z_][A-Za-z_0-9]*`. Without an inline key, its value must be set and nonblank when a review runs. Omit both key options for no Authorization header. |
112
112
  | `instructions` | string | Unset (built-ins) | Absolute, NUL-free directory path containing overrides for the [prompt templates](https://github.com/mightykatun/opencode-reviewer/tree/main/prompts), not inline instructions. Missing named files use built-ins; supplied files must be readable, regular, non-symlink, nonempty UTF-8 text up to 64 KiB. Fixed contracts cannot be overridden. |
113
- | `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. Presentation rules are described below. |
113
+ | `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
114
  | `reviewBash` | boolean | `true` | Review native `shell` permissions. The option keeps its existing name. |
115
115
  | `reviewEdits` | boolean | `true` | Review native `edit`, `write` and `patch` tools, which use the `edit` permission action. |
116
116
  | `reviewSkills` | boolean | `true` | Skill-review category switch. Exact mandatory skill instructions are currently unavailable to the V2 collector, so these requests remain manual. |
@@ -227,6 +227,12 @@ boundaries. A zero-second setting still approves without that grace.
227
227
  descendants. The setting is saved for resume. Both commands are also in the command
228
228
  palette. Disabling stops unapproved reviews and countdowns while native permission
229
229
  controls remain available. Already-approved fast-mode reports finish in the background.
230
+ The commands remain available when review configuration or the companion is unavailable;
231
+ they save the preference without starting reviews.
232
+
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;
235
+ reload the plugin to try again. Invalid handshake data is not retried.
230
236
 
231
237
  If the server reconnects or the companion is replaced, reviews and auto-approval
232
238
  stop. Reload the plugin or restart OpenCode to resume. This keeps cached permissions
@@ -264,9 +270,9 @@ An existing safe sibling database remains in use across restarts. Conversation
264
270
  enable/disable settings stay in the original OpenCode state directory.
265
271
  Saved modes require private ownership and a nonreplaceable path; an untrusted or
266
272
  unreadable mode suspends review rather than silently enabling it.
267
- The plugin deletes them only when it can verify that a deleted conversation belongs
268
- to the matching server and scope. If that can't be verified after an offline
269
- deletion, it keeps the history; a missing list entry or bare 404 isn't enough.
273
+ Deleting a conversation currently leaves its saved history in place. Known live
274
+ deletion events invalidate only volatile session state, not saved reports or totals.
275
+ A missing list entry or bare 404 cannot prove deletion ownership.
270
276
  Windows using the same state directory share history, grouped by host directory
271
277
  and main conversation. Reports not yet saved can be lost on shutdown or during a
272
278
  prolonged storage failure.
@@ -291,7 +297,7 @@ review counts once, even without usage data; a fresh review after re-enabling co
291
297
  again. Retries count extra API attempts actually dispatched, including format
292
298
  corrections and transport recovery. Manual approvals are not auto-approvals.
293
299
  Timings run from evaluation start, including evidence and retries, to the accepted
294
- attempt's first rating and final validated response, excluding rendering/countdown
300
+ attempt's first rating and final validated response, excluding countdown
295
301
  time. Non-streaming reviews use the final response time for both measurements.
296
302
  Averages use running means and sample counts; stored review details also retain
297
303
  their individual timings. Both scopes persist in the existing history database
@@ -331,8 +337,8 @@ terminal is focused:
331
337
  - **Session needs attention:** manual permissions. Reviewed requests
332
338
  stay silent during identification, report generation and retries. Final Safe
333
339
  reports notify when auto-approval is disabled or canceled, or after failed approval
334
- is confirmed to remain pending. Waiting for rendering, queue position or an
335
- automatic countdown to start does not trigger attention. Disabled/unsupported
340
+ is confirmed to remain pending. Waiting for conversation eligibility, native priority
341
+ or an automatic countdown to start does not trigger attention. Disabled/unsupported
336
342
  reviews and terminal analysis failures can notify without a report.
337
343
  - **Unsafe permission needs human approval:** a completed, validated Unsafe review,
338
344
  with its own sound. Provisional streamed ratings never notify.
@@ -346,7 +352,8 @@ terminal is focused:
346
352
  wait for the previous player to finish, so successive alerts do not overlap.
347
353
  - **Session error:** an unrecovered session/provider failure, not a review failure.
348
354
  - **Session ended:** a completed root-agent response, not a question/permission
349
- pause or an explicit user interruption.
355
+ pause or an explicit user interruption. Waits until the conversation's subagents,
356
+ shells and terminals have finished, including work the main agent stopped waiting for.
350
357
 
351
358
  Permission attention, Unsafe and question notifications, including their reminders,
352
359
  apply only to the current native input blocker in each visited root conversation.
@@ -438,6 +445,6 @@ After building, run `node scripts/test-runtime.mjs --profile ci` for that same
438
445
  profile. Use `node scripts/test-runtime.mjs --list` for the complete runtime
439
446
  inventory or `node scripts/test-runtime.mjs --plan --profile ci` for a
440
447
  host-independent plan. Profiles select documented scenario/flag combinations;
441
- interactive desktop checks and historical replays have separate prerequisites.
448
+ interactive desktop checks have separate prerequisites.
442
449
  See [AGENTS.md](https://github.com/mightykatun/opencode-reviewer/blob/main/AGENTS.md)
443
450
  for runtime tests and the tag-driven release process.