diff --git a/CHANGELOG.md b/CHANGELOG.md index 25bb2dd..e1e3f16 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.5.35 + +- Treat OpenCode `session.status=retry` as authoritative provider ownership: retry and unreadable status can no longer age into idle and cause an overlapping Loop turn; a genuinely completed current assistant message can still release stale retry safely. +- Recover transient Loop-owned network/provider failures with bounded exponential backoff (5s to 60s), refund failed infrastructure attempts from `runCount`/`lastRunAt`, re-enable jobs that only hit `--max-runs` because of the failed attempt, and keep infrastructure failures separate from ordinary `failureCount`. +- Add a two-minute watchdog for an explicitly stuck OpenCode retry, scoped only to a Loop-owned active turn: abort that owned retry, refund the logical run, and reschedule with backoff without touching unrelated foreground/user work. Successful normal turns reset the consecutive network-backoff counter. +- Preserve plain `/loop devam et` as intentionally unlimited, while explicit completion-bounded idle loops such as `bitene kadar`, `projeyi bitir`, and `until done` now auto-pause only after two consecutive current assistant replies both report verified completion and no remaining work. Replies naming next/remaining work reset the terminal signal. +- Make Turkish terminal/no-work detection Unicode-safe, expand outage/terminal regressions, keep the generated single-file stable bundle synchronized with modular source, and document retry, backoff, watchdog, and completion-bounded scheduling behavior in `docs/SCHEDULING.md`. + ## 0.5.34 - Make plain `/loop ` the ergonomic unlimited idle-continuation form: when the assistant stops and the session is safely idle, Loop sends the prompt again. Add explicit `idle`, recurring `every `, and one-shot `after/in ` schedule grammar while preserving legacy duration-first commands. diff --git a/README.md b/README.md index 9cde09c..9a4b17a 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ OpenCode Loop adds `/loop`, scheduled prompt/command/shell jobs, compact scheduling, verification/checkpoints, and the `opencode-loopd` background daemon. -> **Current stable release: `0.5.34`.** +> **Current stable release: `0.5.35`.** ## Install or update diff --git a/package-lock.json b/package-lock.json index fc0ae4e..a1fab2a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@bybrawe/opencode-loop", - "version": "0.5.34", + "version": "0.5.35", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@bybrawe/opencode-loop", - "version": "0.5.34", + "version": "0.5.35", "license": "MIT", "bin": { "opencode-loop": "scripts/install-with-goals.mjs", diff --git a/package.json b/package.json index 3a9d85e..be66720 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@bybrawe/opencode-loop", - "version": "0.5.34", + "version": "0.5.35", "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.", "type": "module", "main": "src/index.js",