@khalilgharbaoui/opencode-claude-code-plugin 0.26.1 → 0.26.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@khalilgharbaoui/opencode-claude-code-plugin",
3
- "version": "0.26.1",
3
+ "version": "0.26.3",
4
4
  "description": "Claude Code CLI provider plugin for opencode",
5
5
  "author": "Khalil Gharbaoui",
6
6
  "type": "module",
@@ -232,8 +232,16 @@ Tell the user what a pick actually does before recommending one:
232
232
  - `stop`, dismissing the form, or answering with anything that is not one of the offered
233
233
  accounts ends the turn exactly as the rate-limit error does today. The limit is
234
234
  unchanged either way; failover moves the work, it does not create usage.
235
- - Only a rejected `rate_limit_event` or one of the two known account-limit error texts
236
- opens the form. A generic 4xx, a timeout or a bad flag never does.
235
+ - Only a rejected `rate_limit_event`, one of the two known account-limit error texts, or
236
+ an account-level failure the CLI reports on its own error reply opens the form. The
237
+ account-level kinds are `authentication_failed`, `oauth_org_not_allowed`,
238
+ `account_on_hold`, `verification_required` and `billing_error`. A generic 4xx, a
239
+ timeout or a bad flag never does.
240
+ - An expired login also writes a `▌ **claude account:**` note naming the account and the
241
+ command to fix it: `claude auth login` for the default account, or
242
+ `CLAUDE_CONFIG_DIR=<that account's config dir> claude auth login` for a named one. When
243
+ a user reports "Failed to authenticate: OAuth session expired", that command is the
244
+ fix; a switch made from that form lasts until opencode restarts.
237
245
  - Not available on the interactive transport or on compaction turns.
238
246
 
239
247
  `{ "accountFailover": "off" }` keeps the plain rate-limit error.
@@ -343,8 +351,9 @@ Names below become `mcp__opencode_proxy__<name>`; input config is case-insensiti
343
351
  A proxied call is held open until an event ends it, and the plugin listens to the
344
352
  `claude` process, the stream and the control protocol for those events rather than
345
353
  inferring failure from elapsed time: opencode's result resolves the call; an abort
346
- interrupts the CLI and rejects the turn's pending calls, even when it lands while
347
- opencode is running the tool; the next user message rejects what the previous turn left pending
354
+ interrupts the CLI and rejects the turn's pending calls, unless opencode still reports
355
+ the session busy (opencode 1.18 aborts the signal of every tool step while it runs the
356
+ tool, so busy means the call is being served, not refused); the next user message rejects what the previous turn left pending
348
357
  and tells the CLI; the process exiting, the chat being deleted, or opencode exiting
349
358
  rejects the rest. That is why `task` and `task_batch` carry no default deadline and a
350
359
  subagent runs to completion. Three timers remain and are distinct from that: the
@@ -352,7 +361,11 @@ optional per-tool deadlines above (a backstop the user chooses), the start and
352
361
  inactivity watchdogs (for a process that is alive but silent, which emits nothing to
353
362
  listen to; a CLI parked in a proxied call is exempt), and the connection keepalives
354
363
  (SSE comments or JSON whitespace every 15 s, so the CLI's HTTP client does not give up
355
- on a long call; they never extend a deadline). Do not present a raised deadline as the
364
+ on a long call; they never extend a deadline). A deadline that passes while opencode
365
+ still reports the session busy (a permission prompt the user has not answered, or the
366
+ tool still running) does not end the call: it logs `proxy call past its deadline, but
367
+ opencode is still serving it; waiting` at WARN once and is rechecked every minute. So an
368
+ unanswered permission prompt is not a reason to raise `proxyToolTimeoutMs`. Do not present a raised deadline as the
356
369
  fix for a long subagent; the default already waits for it. A deadline-free call is not
357
370
  silent while it waits: it logs `proxy call still waiting, no deadline` at WARN after
358
371
  five minutes and every five minutes after, with tool, call id and elapsed time. That