diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml index 099cbfb..907bf48 100644 --- a/.github/workflows/publish-npm.yml +++ b/.github/workflows/publish-npm.yml @@ -14,7 +14,7 @@ permissions: jobs: publish: - name: Publish 1.3.27 + name: Publish 1.3.28 runs-on: ubuntu-latest steps: - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 @@ -38,7 +38,7 @@ jobs: id: release shell: bash run: | - EXPECTED="1.3.27" + EXPECTED="1.3.28" ACTUAL="$(node -p "JSON.parse(require('fs').readFileSync('package.json', 'utf8')).version")" if [ "$ACTUAL" != "$EXPECTED" ]; then echo "Package version $ACTUAL is not the one-shot stable $EXPECTED; skipping." @@ -57,7 +57,7 @@ jobs: if: steps.release.outputs.publish == 'true' shell: bash run: | - PREVIOUS="1.3.26" + PREVIOUS="1.3.27" VERSION="" LATEST="" BIN="" @@ -72,7 +72,7 @@ jobs: echo "Predecessor not authoritative yet on attempt $attempt: version=$VERSION latest=$LATEST bin=$BIN" sleep 10 done - echo "Refusing to publish 1.3.27 until 1.3.26 is visible and authoritative as npm latest." + echo "Refusing to publish 1.3.28 until 1.3.27 is visible and authoritative as npm latest." exit 1 - name: Install release dependencies if: steps.release.outputs.publish == 'true' @@ -84,7 +84,7 @@ jobs: if: steps.release.outputs.verify == 'true' shell: bash run: | - EXPECTED="1.3.27" + EXPECTED="1.3.28" VERSION="" LATEST="" BIN="" diff --git a/CHANGELOG.md b/CHANGELOG.md index 4113a31..ebbd2e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,16 @@ All notable changes to **OpenCode Goals** are documented here. +## 1.3.28 — 2026-08-24 + +Long-running steering and plan reliability release. + +- Resume a Goal that was auto-paused by the host no-progress guard when the user sends a concrete foreground work instruction, routing recovery through the normal guarded `/goal resume` chain and preserving the original instruction as active Goal steering; explicit user `/goal pause` remains authoritative. +- Scale the no-progress window from 4 to 12 turns while a current native Todo plan still has open work, so large read/recon/verification-heavy plans do not inherit the same three-turn stall window as short unplanned work. +- Keep prior Todo telemetry visibly stale across `/goal edit` and reject unchanged native Todo digest rebinding to the new Goal revision; a genuinely changed/rebuilt plan may bind current. +- Make cumulative Goal turn caps opt-in for newly created Goals (`maxTurns: 0`), while explicit `--max-turns` / `/goal budget --max-turns` limits and persisted finite legacy budgets remain hard guards. +- Add regressions for auto-stalled steering, explicit pause safety, 100-item Todo plans, Todo revision rebinding, unlimited default turn budgets, and explicit finite caps; validate real lifecycle, steering, compaction, semantic completion, progress, restart recovery, Loop 0.5.35 coexistence, compatibility, eval, and package-smoke gates across Ubuntu/Windows. + ## 1.3.27 — 2026-08-23 Cross-plugin command-ownership reliability release. diff --git a/docs/releases/1.3.28.md b/docs/releases/1.3.28.md new file mode 100644 index 0000000..37ebb5b --- /dev/null +++ b/docs/releases/1.3.28.md @@ -0,0 +1,18 @@ +# OpenCode Goal 1.3.28 + +Long-running steering and plan reliability release. + +## Fixed + +- Treat a host-generated no-progress auto-pause as recoverable from a concrete foreground work instruction. The plugin resumes through the normal guarded `/goal resume` chain and then preserves the user's original instruction as active Goal steering. +- Keep an explicit user `/goal pause` authoritative: unrelated work instructions still do not silently reactivate a deliberately paused Goal. +- Scale the no-progress window from 4 to 12 turns while a current native Todo plan still contains open work, so large read/recon/verification-heavy plans are not forced into the same three-turn stall window as short unplanned work. +- Keep Todo telemetry from the previous Goal revision visibly stale and refuse to rebind an unchanged native Todo digest after `/goal edit`; a genuinely changed/rebuilt native plan can bind to the new revision. +- Make cumulative turn caps opt-in for newly created Goals (`maxTurns: 0` by default), matching the existing unlimited-by-default cumulative token policy. Explicit `--max-turns`, `/goal budget --max-turns`, and persisted finite legacy budgets remain hard guards. + +## Verified + +- Added regression coverage for auto-stalled steering, explicit user pause safety, a 100-item native Todo plan, Todo revision rebinding, 40+ default Goal turns, and explicit finite turn budgets. +- Validated unit tests, adversarial evals, packed-package import/install checks, and OpenCode compatibility against both the minimum supported plugin API and current latest. +- Validated real OpenCode lifecycle, active steering, compaction continuation, semantic completion, host progress/no-op stall handling, process restart recovery, and released OpenCode Loop 0.5.35 coexistence on Ubuntu and Windows. +- Release Readiness validates the publish tarball on Node 20 and Node 24 across Ubuntu and Windows before the trusted npm publish step. diff --git a/package.json b/package.json index 6db9438..dd168de 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@bybrawe/opencode-goal", - "version": "1.3.27", + "version": "1.3.28", "description": "OpenCode goal plugin for persistent autonomous multi-turn coding agents with host-verified completion, restart recovery, and /goal workflows.", "type": "module", "main": "./dist/index.js",