@bybrawe/opencode-loop 0.5.18 → 0.5.20
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 +216 -207
- package/README.md +1235 -1228
- package/package.json +69 -69
- package/scripts/comprehensive-test.mjs +570 -486
- package/scripts/smoke-test.mjs +24 -6
- package/src/index.js +2330 -2266
package/CHANGELOG.md
CHANGED
|
@@ -1,207 +1,216 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
## 0.5.
|
|
4
|
-
|
|
5
|
-
- Fixed
|
|
6
|
-
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
- Fixed
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
- Added
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
- Added a
|
|
74
|
-
-
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
-
|
|
83
|
-
-
|
|
84
|
-
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
- Fixed
|
|
91
|
-
-
|
|
92
|
-
-
|
|
93
|
-
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
-
|
|
99
|
-
-
|
|
100
|
-
- Added
|
|
101
|
-
-
|
|
102
|
-
-
|
|
103
|
-
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
- Added
|
|
111
|
-
-
|
|
112
|
-
-
|
|
113
|
-
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
- Added
|
|
120
|
-
-
|
|
121
|
-
-
|
|
122
|
-
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
-
|
|
129
|
-
-
|
|
130
|
-
- Added `
|
|
131
|
-
-
|
|
132
|
-
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
-
|
|
138
|
-
- Updated
|
|
139
|
-
- Added
|
|
140
|
-
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
-
|
|
146
|
-
-
|
|
147
|
-
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
-
|
|
154
|
-
-
|
|
155
|
-
-
|
|
156
|
-
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
## 0.4.
|
|
160
|
-
|
|
161
|
-
-
|
|
162
|
-
-
|
|
163
|
-
- Added
|
|
164
|
-
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
-
|
|
171
|
-
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
-
|
|
178
|
-
-
|
|
179
|
-
- Added
|
|
180
|
-
- Added
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
-
|
|
185
|
-
-
|
|
186
|
-
-
|
|
187
|
-
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
-
|
|
192
|
-
-
|
|
193
|
-
- Added
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.5.20
|
|
4
|
+
|
|
5
|
+
- Fixed Windows TUI loop state writes failing with `EPERM` / `EEXIST` when renaming a project-local `*.tmp` over an existing session state file. Heartbeat and due-timer updates no longer drop jobs when antivirus, IDE indexers, or OpenCode snapshots briefly lock the destination.
|
|
6
|
+
- Write atomic state payloads under the OS temp directory first, then replace the target with rename plus a copy/unlink fallback and short retries, so project trees no longer accumulate `opencode-loop/*.tmp` files that OpenCode tried to git-snapshot.
|
|
7
|
+
|
|
8
|
+
## 0.5.19
|
|
9
|
+
|
|
10
|
+
- Made the asynchronous goal prompt smoke test wait for the observable SDK call instead of assuming a single event-loop tick is always sufficient under load.
|
|
11
|
+
|
|
12
|
+
## 0.5.18
|
|
13
|
+
|
|
14
|
+
- Fixed package-based installs loading stale OpenCode cache entries after npm had installed a newer release. The installer now pins an existing package config entry to its exact installed version while preserving JSONC comments.
|
|
15
|
+
- Fixed Goal Mode mistaking delayed updates for its own scheduler-created user message as a real user interruption. Loop-owned message IDs remain recognized without hiding a distinct user message.
|
|
16
|
+
- Added a dedicated `opencode-loopd` regression suite for literal argument passing, BOM prompt files, model/agent forwarding, finite-run exit codes, invalid options, and Windows scheduled-task lifecycle behavior.
|
|
17
|
+
- Made finite daemon runs propagate OpenCode failures instead of reporting exit code 0, and reject invalid `--max-runs` values and missing project directories.
|
|
18
|
+
- Added `--model` and `--agent` forwarding to daemon and scheduled-task runs.
|
|
19
|
+
- Fixed Windows Task Scheduler installation failing when `/TR` exceeded its 261-character limit. Scheduled tasks now use a short launcher plus a task-specific JSON config under the local app-data directory, and uninstall removes both artifacts.
|
|
20
|
+
- Made Task Scheduler command launch failures return a nonzero exit code instead of silently succeeding.
|
|
21
|
+
- Added non-mutating `--help` and `--version` handling to the `opencode-loop` installer CLI.
|
|
22
|
+
|
|
23
|
+
## 0.5.17
|
|
24
|
+
|
|
25
|
+
- Prevented OpenCode project bootstrap deadlocks by deferring local SDK logging and session discovery until after plugin hooks are returned.
|
|
26
|
+
- Added a tool-denied `opencode-loop-local` command agent for all 30 slash commands, preventing local status/control commands from spawning tools or background subagents; scheduled work restores the normal agent/model context.
|
|
27
|
+
- Made the installer detect package-based plugin configuration in JSON or JSONC and remove duplicate local plugin copies instead of loading two schedulers.
|
|
28
|
+
- Fixed watched jobs so file changes actually trigger them, while unchanged paths remain dormant.
|
|
29
|
+
- Fixed preset parsing for explicit `0s`, flag-only presets, and custom `/loop-testfix` commands.
|
|
30
|
+
- Fixed command-event deduplication so compatibility events are suppressed without swallowing intentional repeated commands.
|
|
31
|
+
- Hardened safe shell detection for PowerShell and `rm` variants, removed the `npm run format` false positive, and paused invalid synchronous actions instead of retrying them indefinitely.
|
|
32
|
+
- Added comprehensive parser, preset, lifecycle, watch, safety, routing, goal, installer, JSONC, and initialization regression coverage.
|
|
33
|
+
|
|
34
|
+
## 0.5.16
|
|
35
|
+
|
|
36
|
+
- Treat active OpenCode tools, shell calls, and foreground or background subtasks as busy even if the parent session receives an idle/status event while they are still running.
|
|
37
|
+
- Prevent stale active-run recovery from finalizing a loop turn while any tracked tool call remains active.
|
|
38
|
+
- Added regression coverage proving that a due loop waits for long-running tools and background child sessions, then resumes only after that work finishes and the parent session becomes idle.
|
|
39
|
+
|
|
40
|
+
## 0.5.15
|
|
41
|
+
|
|
42
|
+
- Hardened experimental Goal Mode completion: agent tool completion now requires concrete evidence instead of accepting empty or generic claims.
|
|
43
|
+
- Required configured goal `--check` commands to pass before agent-tool completion, unless the user explicitly opts out or manually marks the goal done.
|
|
44
|
+
- Added a no-progress guard for goals. Goals pause after 3 turns without recorded meaningful progress by default, configurable with `--max-no-progress`.
|
|
45
|
+
- Paused active goals when a real user message arrives, so new user intent wins before the next automatic continuation.
|
|
46
|
+
- Preferred the OpenCode plugin SDK's `{ body }`, `{ path: { id }, body }`, and `{ query }` argument shapes while keeping flat and older path-key fallbacks.
|
|
47
|
+
- Added the resolved working directory and workspace-relative path rules to Goal Mode prompts so agents do not accidentally target filesystem-root paths.
|
|
48
|
+
- Increased Goal Mode's default active-turn recovery window to 3 minutes so slow model/tool turns are not finalized as stale after 20 seconds.
|
|
49
|
+
- Added plugin disposal cleanup for heartbeat, idle, due, watchdog, and active-run timers.
|
|
50
|
+
- Added an automated smoke test for SDK call order, Goal Mode prompts, evidence rejection, and successful completion state.
|
|
51
|
+
- Updated local installers to create or update config `package.json` with `@opencode-ai/plugin`, needed by local `.ts` plugins that import `tool()`.
|
|
52
|
+
- Updated Goal Mode status/report output and README guidance for the new guards.
|
|
53
|
+
|
|
54
|
+
## 0.5.14
|
|
55
|
+
|
|
56
|
+
- Guarded active-run finalization so heartbeat and retry checks do not treat a still-running assistant turn as finished.
|
|
57
|
+
- Made loop state writes atomic and backed up corrupt state files before falling back to an empty state.
|
|
58
|
+
- Changed `opencode-loopd` to pass prompts as process arguments instead of shell strings, preserving quotes in inline prompts.
|
|
59
|
+
- Stripped UTF-8 BOMs from daemon prompt files before sending them to OpenCode.
|
|
60
|
+
- Removed the package plugin entry from the example config to avoid duplicate loading after the recommended local installer path.
|
|
61
|
+
|
|
62
|
+
## 0.5.13
|
|
63
|
+
|
|
64
|
+
- Wrapped experimental goal tools with `tool()` and Zod schemas for current OpenCode tool validation.
|
|
65
|
+
- Added `@opencode-ai/plugin` as a dev dependency so fresh clones can resolve the tool helper during local development.
|
|
66
|
+
|
|
67
|
+
## 0.5.12
|
|
68
|
+
|
|
69
|
+
- Fixed local plugin installs to write `opencode-loop.ts`, matching OpenCode local plugin discovery.
|
|
70
|
+
- Removed stale `opencode-loop.js` local plugin copies during install to avoid duplicate or outdated local plugin loads.
|
|
71
|
+
- Made the PowerShell source installer honor `OPENCODE_CONFIG_DIR`, matching the npm and shell installers.
|
|
72
|
+
- Fixed `opencode-loopd` to pass the prompt to `opencode run` as the positional message instead of the non-existent `--prompt` flag.
|
|
73
|
+
- Added a short retry backoff for failing `opencode-loopd --every 0s` runs.
|
|
74
|
+
- Normalized command arguments from array/object forms so `opencode run --command loop ...` can schedule jobs like TUI slash commands.
|
|
75
|
+
- Stripped whole-argument quote wrappers before parsing loop durations, fixing quoted `opencode run --command loop "1h ..."` invocations.
|
|
76
|
+
- Fixed a goal finalization reassignment so the generated local TypeScript plugin parses under Bun.
|
|
77
|
+
- Fixed the Windows Task Scheduler helper script path used by `opencode-loopd install-task`.
|
|
78
|
+
- Tried current OpenCode SDK `{ path, body }` and `{ query }` argument shapes before older fallback shapes.
|
|
79
|
+
|
|
80
|
+
## 0.5.11
|
|
81
|
+
|
|
82
|
+
- Added a watchdog loop in addition to one-shot due timers, so recurring jobs keep checking due work even if OpenCode misses an idle event or a due timeout gets effectively stuck behind a stale busy state.
|
|
83
|
+
- Added stronger stale-active-run recovery. If a plugin-injected run is still marked active after the recovery window, the scheduler treats it as finished, finalizes it, and continues without waiting for another manual command such as `/loop-status`.
|
|
84
|
+
- Refreshed session status with workspace-aware calls before trusting cached busy/retry state.
|
|
85
|
+
- Kept `/compact` routing from v0.5.9: `session_compact` first, then `session.compact`, then summarize fallback.
|
|
86
|
+
- This targets the observed case where `/loop 1m ...` only continued after manually running `/loop-status`.
|
|
87
|
+
|
|
88
|
+
## 0.5.9
|
|
89
|
+
|
|
90
|
+
- Fixed stale-busy recovery for TUI sessions. Cached `busy` / `retry` status is now short-lived, so due jobs no longer get stuck at `due in every idle` after `/loop-status` or other short custom-command turns.
|
|
91
|
+
- Improved due-timer behavior when OpenCode misses or delays the final idle event after a command turn.
|
|
92
|
+
- Fixed `/compact` routing for current OpenCode TUI builds by trying `session_compact` first, then `session.compact`, then the session summarize fallback.
|
|
93
|
+
- Kept the command markdown templates short; OpenCode still creates a tiny `OK` turn for custom commands because markdown commands are prompt templates.
|
|
94
|
+
|
|
95
|
+
## 0.5.8
|
|
96
|
+
|
|
97
|
+
- Added a real due timer for TUI loop jobs, so delayed jobs can wake without waiting for another OpenCode event.
|
|
98
|
+
- Fixed `/loop 1m --no-now ...` style jobs so the first delayed run can fire on time when OpenCode is idle.
|
|
99
|
+
- Fixed scheduled action types such as `/loop-ask`, `/loop-command`, and `/loop-shell` so 0s and delayed jobs are scheduled even when their default mode is `--no-now`.
|
|
100
|
+
- Added busy retry behavior: if a due timer expires while OpenCode is busy, the job waits and retries instead of interrupting the active turn.
|
|
101
|
+
- Reschedules due timers after add, stop, pause, resume, run completion, goal pause/resume/clear, and post-run verification.
|
|
102
|
+
- Shortened command markdown templates so unavoidable custom command turns reply `OK` instead of producing misleading status text.
|
|
103
|
+
- Kept Experimental Goal Mode marked experimental.
|
|
104
|
+
|
|
105
|
+
## 0.5.7
|
|
106
|
+
|
|
107
|
+
- Added experimental Goal Mode with `/loop-goal <objective>`.
|
|
108
|
+
- Added goal lifecycle commands: `/loop-goal-status`, `/loop-goal-pause`, `/loop-goal-resume`, `/loop-goal-clear`, `/loop-goal-done`, and `/loop-goal-blocked`.
|
|
109
|
+
- Added local goal tools exposed to the agent: `opencode_loop_goal_complete`, `opencode_loop_goal_blocked`, and `opencode_loop_goal_progress`.
|
|
110
|
+
- Added goal acceptance criteria with repeated `--acceptance` / `--success` flags.
|
|
111
|
+
- Added post-turn goal check commands with repeated `--check` flags.
|
|
112
|
+
- Added `--complete-when-checks-pass` for goals that should automatically stop once all configured checks pass.
|
|
113
|
+
- Added `--max-turns` alias for goal run limits.
|
|
114
|
+
- Added goal reports under `.opencode/opencode-loop/goals/` and optional `--evidence-file`.
|
|
115
|
+
- Updated README with simple examples explaining prompt loops, command loops, shell loops, scheduled checks, and experimental persistent goals.
|
|
116
|
+
|
|
117
|
+
## 0.5.6
|
|
118
|
+
|
|
119
|
+
- Added clearer README examples for prompt loops, scheduled question loops, OpenCode slash-command loops, shell loops, first-run timing, and idle-safe behavior.
|
|
120
|
+
- Stabilized `/loop-command 200m /compact` by routing `/compact` and `/summarize` through OpenCode TUI compact handling instead of treating them as custom prompt commands.
|
|
121
|
+
- Clarified that command loops wait for idle and should be used for slash commands such as `/compact`.
|
|
122
|
+
- Kept fallback compatibility with older SDK-style calls where possible.
|
|
123
|
+
|
|
124
|
+
## 0.5.5
|
|
125
|
+
|
|
126
|
+
- Added explicit loop action types for prompt loops, scheduled question/check loops, OpenCode slash-command loops, and shell-command loops.
|
|
127
|
+
- Added `/loop-command` and `/loop-cmd` for scheduled OpenCode commands such as `/compact`. These wait for the first interval by default and run only when OpenCode is idle.
|
|
128
|
+
- Added `/loop-ask` for recurring check prompts such as “did you run tests, tsc --noEmit, and build?” It waits for the first interval by default.
|
|
129
|
+
- Added `/loop-prompt` to force prompt mode.
|
|
130
|
+
- Added `/loop-shell` for recurring shell commands.
|
|
131
|
+
- Added `/loop` type flags: `--prompt`, `--ask`, `--command`, `--cmd`, `--slash`, `--shell`, and `--compact`.
|
|
132
|
+
- Clarified README examples for scheduled `/compact`, hourly quality checks, and idle-safe timing.
|
|
133
|
+
- Added `publishConfig.access=public` and normalized npm bin paths.
|
|
134
|
+
|
|
135
|
+
## 0.5.4
|
|
136
|
+
|
|
137
|
+
- Fixed compatibility with recent OpenCode SDK/TUI call shapes.
|
|
138
|
+
- Updated session prompt, shell, and toast calls for current OpenCode while keeping backwards-compatible fallbacks.
|
|
139
|
+
- Added `session.status` idle gating and debounce so loop runs wait for OpenCode to become idle and do not stack on busy/queued turns.
|
|
140
|
+
- Improved runtime logging for prompt/shell/toast failures.
|
|
141
|
+
- Fixed the known update-related symptoms where `/loop` could appear queued, stay at `runs=0`, or only work intermittently after OpenCode updates.
|
|
142
|
+
|
|
143
|
+
## 0.5.0
|
|
144
|
+
|
|
145
|
+
- Added `opencode-loopd` background daemon for long-running loops outside the OpenCode TUI.
|
|
146
|
+
- Added `opencode-loopd install-task` and `opencode-loopd uninstall-task` helpers for Windows Task Scheduler.
|
|
147
|
+
- Updated README to clearly explain the difference between session-bound TUI loops and background daemon loops.
|
|
148
|
+
- Added npm bin entry for `opencode-loopd`.
|
|
149
|
+
- Updated package check script to validate the daemon script.
|
|
150
|
+
|
|
151
|
+
## 0.4.4
|
|
152
|
+
|
|
153
|
+
- Made the npm install path the primary README installation method now that the package is published as `@bybrawe/opencode-loop`.
|
|
154
|
+
- Clarified that `npx -y @bybrawe/opencode-loop` installs both the plugin file and `/loop-*` command markdown files.
|
|
155
|
+
- Moved the OpenCode `plugin` array config to an optional/advanced section because config-only loading may not install slash command markdown files.
|
|
156
|
+
- Removed maintainer/publish-oriented instructions from the user-facing install flow.
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
## 0.4.3
|
|
160
|
+
|
|
161
|
+
- Fixed duplicate loop creation by making /loop replace/upsert the default loop instead of appending duplicate jobs.
|
|
162
|
+
- Added --multi for users who intentionally want multiple independent loops in one session.
|
|
163
|
+
- Added --replace as an explicit alias for the default upsert behavior.
|
|
164
|
+
- Made command markdown files no-op/silent so the model is less likely to explain the command or create scheduler files.
|
|
165
|
+
- Hardened the continuation prompt to avoid scheduling, documentation search, and command explanation loops.
|
|
166
|
+
- Clarified that the plugin is session/TUI-bound and does not keep running after OpenCode, the terminal, or the machine disconnects.
|
|
167
|
+
|
|
168
|
+
## 0.4.2
|
|
169
|
+
|
|
170
|
+
- Changed npm package name to scoped package `@bybrawe/opencode-loop`.
|
|
171
|
+
- Fixed README npm/OpenCode config examples to use `"plugin": ["@bybrawe/opencode-loop"]`.
|
|
172
|
+
- Added an npm `bin` installer so `npx -y @bybrawe/opencode-loop` can copy plugin and command files into the OpenCode config directory.
|
|
173
|
+
- Clarified that `opencode-loop` and `@bybrawe/opencode-loop` are different npm package names.
|
|
174
|
+
|
|
175
|
+
## 0.4.1
|
|
176
|
+
|
|
177
|
+
- Fixed installation docs for GitHub/local installs.
|
|
178
|
+
- Clarified that `plugin`: [`opencode-loop`] only works after npm publishing.
|
|
179
|
+
- Added manual global install and project-local install instructions.
|
|
180
|
+
- Added verification and troubleshooting steps for `/loop-help` and `/loop-doctor`.
|
|
181
|
+
|
|
182
|
+
## 0.4.0
|
|
183
|
+
|
|
184
|
+
- Public repository metadata updated for `ByBrawe/opencode-loop`.
|
|
185
|
+
- Package renamed to `opencode-loop`.
|
|
186
|
+
- README rewritten in English for public GitHub discovery and SEO.
|
|
187
|
+
- Added `--prompt-file` for long reusable prompts.
|
|
188
|
+
- Added `--include-file` for extra context files.
|
|
189
|
+
- Added `--max-runtime` for total runtime limits.
|
|
190
|
+
- Added `--max-failures` and `--pause-on-verify-fail` for failure control.
|
|
191
|
+
- Added `--postrun` and `--notify` hooks.
|
|
192
|
+
- Added `--dry-run` preview mode.
|
|
193
|
+
- Added `/loop-doctor`, `/loop-init`, and `/loop-export` commands.
|
|
194
|
+
- Improved max-runs finalization so the final run can still verify/checkpoint.
|
|
195
|
+
- Improved state cleanup for non-assistant actions such as `/compact`.
|
|
196
|
+
- Kept all examples project-neutral and English.
|
|
197
|
+
|
|
198
|
+
## 0.3.1
|
|
199
|
+
|
|
200
|
+
- Converted public examples to English.
|
|
201
|
+
- Removed private/project-specific language from README.
|
|
202
|
+
- Added public `progress.md` workflow examples.
|
|
203
|
+
|
|
204
|
+
## 0.3.0
|
|
205
|
+
|
|
206
|
+
- Added SEO-oriented README for OpenCode loop / Claude Code style loop use cases.
|
|
207
|
+
- Added `/loop-help` and `/loop-logs`.
|
|
208
|
+
- Added `--verify`, `--preflight`, `--stop-file`, and `--progress-file`.
|
|
209
|
+
|
|
210
|
+
## 0.2.0
|
|
211
|
+
|
|
212
|
+
- Added max runs, timeout, until, compact scheduling, tests, checkpoints, branch setup, safe mode, batch mode, quiet mode, ask-never mode, watch mode, and preset commands.
|
|
213
|
+
|
|
214
|
+
## 0.1.0
|
|
215
|
+
|
|
216
|
+
- Initial local OpenCode loop plugin.
|