diff --git a/.github/workflows/build-native.yml b/.github/workflows/build-native.yml index e526fa218..134cbfe45 100644 --- a/.github/workflows/build-native.yml +++ b/.github/workflows/build-native.yml @@ -200,10 +200,19 @@ jobs: - name: Post-publish smoke test run: | VERSION=$(node -p "require('./package.json').version") - sleep 15 TMPDIR=$(mktemp -d) cd "$TMPDIR" npm init -y - npm install "gsd-pi@${VERSION}" - npx gsd --version - echo "Published package is functional" + # Retry npm install with backoff — npm registry propagation can take 30-90s + for attempt in 1 2 3 4 5; do + echo "Smoke test attempt ${attempt}/5..." + if npm install "gsd-pi@${VERSION}" 2>/dev/null; then + npx gsd --version + echo "Published package is functional" + exit 0 + fi + echo "npm install failed, waiting before retry..." + sleep 30 + done + echo "::error::Smoke test failed after 5 attempts — gsd-pi@${VERSION} not installable from npm" + exit 1 diff --git a/CHANGELOG.md b/CHANGELOG.md index 315e19e61..792de38b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,8 +6,26 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ## [Unreleased] +## [2.10.9] - 2026-03-14 + +### Added +- Team collaboration: multiple users can work on the same repo without milestone name clashes by checking in `.gsd/` planning artifacts (#338) + +### Changed +- Execute-task loop detection uses adaptive reconciliation instead of hard-stopping, reducing false positives (#342) +- Memory storage switched from better-sqlite3 to sql.js (WASM) for Node 25+ compatibility (#356) + ### Fixed -- Fixed residual `gsd auto` branch-switch failure: `git checkout -- .gsd/` only reverts *tracked* runtime files; a new `discardUntrackedRuntimeFiles` step (`git clean -fdx`) now also removes untracked runtime files (e.g. `STATE.md`) that would otherwise trigger "The following untracked working tree files would be overwritten by checkout" when the target branch still has them committed +- Node 22.22+ compatibility: `.ts` import extensions normalized to `.js` for module resolution (#354) +- Infinite loop when complete-slice merges to main are interrupted (#345) +- Credential backoff no longer triggers on transport errors; quota exhaustion handled gracefully (#353) +- OAuth-backed providers (Gemini) no longer crash on quota exhaustion (#347) +- Secrets skip in auto mode no longer crashes (#352) +- Untracked runtime files discarded before branch switch to prevent checkout conflicts (#346) +- TUI crash/corruption on code blocks with lines exceeding terminal width (#343) +- Infinite skip loop in `gsd auto` broken by adding roadmap completion check +- Model ID variant suffix stripped correctly for OAuth Anthropic API calls +- `.gsd/` planning artifacts force-added and `handleAgentEnd` reentrancy guarded (#341) ## [2.10.8] - 2026-03-14 @@ -461,7 +479,8 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ### Changed - License updated to MIT -[Unreleased]: https://github.com/gsd-build/gsd-2/compare/v2.10.8...HEAD +[Unreleased]: https://github.com/gsd-build/gsd-2/compare/v2.10.9...HEAD +[2.10.9]: https://github.com/gsd-build/gsd-2/compare/v2.10.8...v2.10.9 [2.10.8]: https://github.com/gsd-build/gsd-2/compare/v2.10.7...v2.10.8 [2.10.7]: https://github.com/gsd-build/gsd-2/compare/v2.10.6...v2.10.7 [2.10.6]: https://github.com/gsd-build/gsd-2/compare/v2.10.5...v2.10.6 diff --git a/native/npm/darwin-arm64/package.json b/native/npm/darwin-arm64/package.json index b968fa699..3ed3dd914 100644 --- a/native/npm/darwin-arm64/package.json +++ b/native/npm/darwin-arm64/package.json @@ -1,6 +1,6 @@ { "name": "@gsd-build/engine-darwin-arm64", - "version": "2.10.6", + "version": "2.10.9", "description": "GSD native engine binary for macOS ARM64", "os": [ "darwin" diff --git a/native/npm/darwin-x64/package.json b/native/npm/darwin-x64/package.json index 9cd266654..dd7edc07c 100644 --- a/native/npm/darwin-x64/package.json +++ b/native/npm/darwin-x64/package.json @@ -1,6 +1,6 @@ { "name": "@gsd-build/engine-darwin-x64", - "version": "2.10.6", + "version": "2.10.9", "description": "GSD native engine binary for macOS Intel", "os": [ "darwin" diff --git a/native/npm/linux-arm64-gnu/package.json b/native/npm/linux-arm64-gnu/package.json index cc0cbb165..29ec15ae5 100644 --- a/native/npm/linux-arm64-gnu/package.json +++ b/native/npm/linux-arm64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@gsd-build/engine-linux-arm64-gnu", - "version": "2.10.6", + "version": "2.10.9", "description": "GSD native engine binary for Linux ARM64 (glibc)", "os": [ "linux" diff --git a/native/npm/linux-x64-gnu/package.json b/native/npm/linux-x64-gnu/package.json index 3d9103ef9..26a153d42 100644 --- a/native/npm/linux-x64-gnu/package.json +++ b/native/npm/linux-x64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@gsd-build/engine-linux-x64-gnu", - "version": "2.10.6", + "version": "2.10.9", "description": "GSD native engine binary for Linux x64 (glibc)", "os": [ "linux" diff --git a/native/npm/win32-x64-msvc/package.json b/native/npm/win32-x64-msvc/package.json index 12ffcd068..2058d4979 100644 --- a/native/npm/win32-x64-msvc/package.json +++ b/native/npm/win32-x64-msvc/package.json @@ -1,6 +1,6 @@ { "name": "@gsd-build/engine-win32-x64-msvc", - "version": "2.10.6", + "version": "2.10.9", "description": "GSD native engine binary for Windows x64 (MSVC)", "os": [ "win32" diff --git a/package.json b/package.json index fbad59586..86e5efcf3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gsd-pi", - "version": "2.10.8", + "version": "2.10.9", "description": "GSD — Get Shit Done coding agent", "license": "MIT", "repository": {