@bybrawe/opencode-loop 0.5.21 → 0.5.22

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
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.5.22
4
+
5
+ - Hardened compatibility with current OpenCode 1.18.15 while preserving the existing `>=1.4.0` peer range.
6
+ - Handled loop commands now also set `output.noReply = true`; OpenCode 1.18.x safely ignores the unknown field, while hosts that add the proposed `noReply` hook support can skip the acknowledgement model turn automatically.
7
+ - Added Bun runtime loading coverage so CI exercises the runtime OpenCode actually uses to load plugins, not only Node syntax/tests.
8
+ - Added explicit minimum-peer coverage against `@opencode-ai/plugin@1.4.0` and scheduled testing against the latest published OpenCode plugin package.
9
+ - Kept the v0.5.21 server-plugin acknowledgement fallback for current OpenCode versions where `command.execute.before` cannot cancel the prompt turn.
10
+
3
11
  ## 0.5.21
4
12
 
5
13
  - Verified server-plugin compatibility against OpenCode 1.18.15 and updated the development plugin dependency accordingly.
package/README.md CHANGED
@@ -16,7 +16,7 @@ v0.5.11 includes a referenced heartbeat scheduler. This is important in OpenCode
16
16
 
17
17
  ## Current status
18
18
 
19
- **v0.5.21 targets current OpenCode 1.18.x compatibility and safer releases.** Server-plugin control commands keep their locked-down acknowledgement prompt instead of creating an empty command message, `/compact` prefers the current `session.compact` TUI command, and CI now covers Ubuntu and Windows before publishing. **v0.5.20 fixes Windows TUI state writes.** Session job state is written through the OS temp directory with rename plus copy/unlink fallback and short retries, so antivirus locks and OpenCode snapshots no longer drop `/loop` jobs with `EPERM` on rename. **v0.5.19** hardens Goal Mode, package updates, and the background daemon: package installs are pinned to the installed version so OpenCode cannot keep loading an older cached release, scheduler-created goal messages no longer self-interrupt on delayed updates, finite daemon failures return nonzero, model/agent selection is supported, Windows scheduled tasks use a short launcher that stays below the `/TR` limit, and asynchronous release verification is reliable under load.
19
+ **v0.5.22 adds forward-compatible OpenCode command handling plus Bun and peer-range compatibility CI.** **v0.5.21 targets current OpenCode 1.18.x compatibility and safer releases.** Server-plugin control commands keep their locked-down acknowledgement prompt instead of creating an empty command message, `/compact` prefers the current `session.compact` TUI command, and CI now covers Ubuntu and Windows before publishing. **v0.5.20 fixes Windows TUI state writes.** Session job state is written through the OS temp directory with rename plus copy/unlink fallback and short retries, so antivirus locks and OpenCode snapshots no longer drop `/loop` jobs with `EPERM` on rename. **v0.5.19** hardens Goal Mode, package updates, and the background daemon: package installs are pinned to the installed version so OpenCode cannot keep loading an older cached release, scheduler-created goal messages no longer self-interrupt on delayed updates, finite daemon failures return nonzero, model/agent selection is supported, Windows scheduled tasks use a short launcher that stays below the `/TR` limit, and asynchronous release verification is reliable under load.
20
20
 
21
21
  The known update-related symptoms from older builds are fixed:
22
22
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bybrawe/opencode-loop",
3
- "version": "0.5.21",
3
+ "version": "0.5.22",
4
4
  "description": "Claude Code/Codex style /loop and experimental goal mode for OpenCode: heartbeat scheduler, idle-safe loops, scheduled commands, compact scheduling, verification, checkpoints, and persistent coding goals.",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -94,6 +94,7 @@ try {
94
94
  }, output)
95
95
  assert.equal(output.parts.length, 1, "a locally handled slash command must keep a valid acknowledgement prompt")
96
96
  assert.equal(output.parts[0].text, "original command body")
97
+ assert.equal(output.noReply, true, "handled commands should request noReply for compatible OpenCode hosts")
97
98
 
98
99
  await hooks["command.execute.before"]({ command: "loop-now", sessionID, arguments: "goal" }, { parts: [] })
99
100
  assert.equal(
package/src/index.js CHANGED
@@ -2220,9 +2220,10 @@ async function handleCommand(directory, client, input, fallbackName, fallbackArg
2220
2220
  if (isLoopCommandName(name)) guardLoopOwnedUserMessage(sessionID)
2221
2221
 
2222
2222
  const handled = () => {
2223
- // OpenCode server plugins cannot currently cancel the command prompt turn.
2224
- // Keep the command markdown acknowledgement intact so opencode-loop-local
2225
- // receives a valid, tool-denied message instead of an empty parts array.
2223
+ // OpenCode 1.18.x ignores unknown hook output fields, while proposed/newer
2224
+ // hosts can honor noReply to skip the otherwise unavoidable model turn.
2225
+ // Keep acknowledgement parts intact as the compatibility fallback.
2226
+ if (output && typeof output === "object") output.noReply = true
2226
2227
  return true
2227
2228
  }
2228
2229