@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 +8 -0
- package/README.md +1 -1
- package/package.json +1 -1
- package/scripts/smoke-test.mjs +1 -0
- package/src/index.js +4 -3
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.
|
|
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",
|
package/scripts/smoke-test.mjs
CHANGED
|
@@ -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
|
|
2224
|
-
//
|
|
2225
|
-
//
|
|
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
|
|