Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .github/workflows/publish-npm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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."
Expand All @@ -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=""
Expand All @@ -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'
Expand All @@ -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=""
Expand Down
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
18 changes: 18 additions & 0 deletions docs/releases/1.3.28.md
Original file line number Diff line number Diff line change
@@ -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.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
Loading