diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d50be15651..8a63e60a29 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -138,8 +138,12 @@ jobs: # Run without CLAUDE_BIN_PATH set. Expect a clean resolver error. # Capture both stdout and stderr; we only care that the resolver message is present. + # --no-worktree skips isolation: this test exercises the Claude resolver + # path, not worktree setup. Without it we hit the worktree auto-sync added + # in #1310 first and fail on "neither origin/HEAD nor origin/main exist" + # because the fresh `git init` tmp repo has no origin configured. set +e - OUTPUT=$(env -u CLAUDE_BIN_PATH "$BIN" workflow run archon-assist "hello" 2>&1) + OUTPUT=$(env -u CLAUDE_BIN_PATH "$BIN" workflow run archon-assist --no-worktree "hello" 2>&1) EXIT_CODE=$? set -e echo "$OUTPUT" @@ -181,8 +185,10 @@ jobs: git init -q git -c user.email=ci@example.com -c user.name=ci commit --allow-empty -q -m init + # --no-worktree: same rationale as the negative-case test above — this + # test exercises the Claude subprocess spawn path, not worktree setup. set +e - OUTPUT=$(CLAUDE_BIN_PATH="$CLI_PATH" "$BIN" workflow run archon-assist "hello" 2>&1) + OUTPUT=$(CLAUDE_BIN_PATH="$CLI_PATH" "$BIN" workflow run archon-assist --no-worktree "hello" 2>&1) EXIT_CODE=$? set -e echo "$OUTPUT" diff --git a/CHANGELOG.md b/CHANGELOG.md index f1f781a886..63d98f8264 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,9 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.3.9] - 2026-04-22 + +First release with working compiled binaries since v0.3.6. Both v0.3.7 and v0.3.8 were tagged but neither shipped release assets — v0.3.7 was blocked by two genuine binary-runtime bugs (Pi SDK's module-init crash + Bun `--bytecode` producing broken output), and v0.3.8 was blocked by an unrelated CI smoke-test regression where `release.yml`'s Claude resolver test required an `origin` remote that the fresh `git init` test repo didn't have. Both superseded tags remain for history; their GitHub Releases were deleted at the time of tagging so `releases/latest` fell back to v0.3.6 throughout, keeping `install.sh` and Homebrew safe. v0.3.9 is what users actually install. + +### Fixed + +- **Release binary smoke test no longer fails on the fresh `git init` test repo.** The Claude resolver smoke in `release.yml` ran `archon workflow run archon-assist` against a tempdir with no `origin` remote; as of #1310's worktree auto-sync logic this fails with "neither origin/HEAD nor origin/main exist" before the resolver is reached, so the CI assertion (`"Claude Code not found"` in output) never matched and the linux-x64 build aborted — taking the entire release matrix down via fail-fast. Adding `--no-worktree` to both the negative and positive resolver tests skips isolation, which is what the tests actually want: they exercise the Claude resolver path, not worktree setup. (#1357) + ## [0.3.8] - 2026-04-22 -Hotfix for v0.3.7 — restore working compiled binaries. v0.3.7 was tagged but never shipped any working assets: two distinct bugs (Pi SDK's module-init `package.json` read, and Bun `--bytecode` producing broken output for this project's module graph) made every compiled archon binary crash at startup. The v0.3.7 GitHub Release was deleted immediately (the tag remains for history); v0.3.8 is the first release with working `archon-{darwin,linux}-{arm64,x64}` and `archon-windows-x64.exe` binaries since v0.3.6. Homebrew and `install.sh` were never updated to v0.3.7, so users were not exposed to the broken state. +Tagged but never released. Intended as the hotfix for v0.3.7's binary-runtime crashes; the code fixes shipped in v0.3.9 actually originated here (Pi SDK module-init lazy-load, Bun `--bytecode` removal). v0.3.8's own release CI aborted on an unrelated smoke-test assertion in `release.yml` and no binaries were uploaded. The GitHub Release was deleted; the tag remains for history. See v0.3.9 for the release users actually install. ### Fixed diff --git a/package.json b/package.json index 9153069c82..536c8ff7b2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "archon", - "version": "0.3.8", + "version": "0.3.9", "private": true, "workspaces": [ "packages/*" diff --git a/packages/adapters/package.json b/packages/adapters/package.json index de465130f6..5029c3f52a 100644 --- a/packages/adapters/package.json +++ b/packages/adapters/package.json @@ -1,6 +1,6 @@ { "name": "@archon/adapters", - "version": "0.3.8", + "version": "0.3.9", "type": "module", "main": "./src/index.ts", "types": "./src/index.ts", diff --git a/packages/cli/package.json b/packages/cli/package.json index f74cbfd087..e21b7f2bf9 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@archon/cli", - "version": "0.3.8", + "version": "0.3.9", "type": "module", "main": "./src/cli.ts", "bin": { diff --git a/packages/core/package.json b/packages/core/package.json index d024002644..24f9884b7b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@archon/core", - "version": "0.3.8", + "version": "0.3.9", "type": "module", "main": "./src/index.ts", "types": "./src/index.ts", diff --git a/packages/docs-web/package.json b/packages/docs-web/package.json index a77bad6eda..e62cd63f10 100644 --- a/packages/docs-web/package.json +++ b/packages/docs-web/package.json @@ -1,6 +1,6 @@ { "name": "@archon/docs-web", - "version": "0.3.8", + "version": "0.3.9", "private": true, "scripts": { "dev": "astro dev", diff --git a/packages/git/package.json b/packages/git/package.json index 66357d975d..f8c8e018e5 100644 --- a/packages/git/package.json +++ b/packages/git/package.json @@ -1,6 +1,6 @@ { "name": "@archon/git", - "version": "0.3.8", + "version": "0.3.9", "type": "module", "main": "./src/index.ts", "types": "./src/index.ts", diff --git a/packages/isolation/package.json b/packages/isolation/package.json index fe000efdb7..ace2da54f0 100644 --- a/packages/isolation/package.json +++ b/packages/isolation/package.json @@ -1,6 +1,6 @@ { "name": "@archon/isolation", - "version": "0.3.8", + "version": "0.3.9", "type": "module", "main": "./src/index.ts", "types": "./src/index.ts", diff --git a/packages/paths/package.json b/packages/paths/package.json index 5df8eb3ace..51e93faf6d 100644 --- a/packages/paths/package.json +++ b/packages/paths/package.json @@ -1,6 +1,6 @@ { "name": "@archon/paths", - "version": "0.3.8", + "version": "0.3.9", "type": "module", "main": "./src/index.ts", "types": "./src/index.ts", diff --git a/packages/providers/package.json b/packages/providers/package.json index 88ecb3ddce..b1e523d2ab 100644 --- a/packages/providers/package.json +++ b/packages/providers/package.json @@ -1,6 +1,6 @@ { "name": "@archon/providers", - "version": "0.3.8", + "version": "0.3.9", "type": "module", "main": "./src/index.ts", "types": "./src/index.ts", diff --git a/packages/server/package.json b/packages/server/package.json index 7615d6399c..09cf17c9d8 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,6 +1,6 @@ { "name": "@archon/server", - "version": "0.3.8", + "version": "0.3.9", "type": "module", "main": "./src/index.ts", "scripts": { diff --git a/packages/web/package.json b/packages/web/package.json index a132d517a2..359168b14c 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -1,6 +1,6 @@ { "name": "@archon/web", - "version": "0.3.8", + "version": "0.3.9", "private": true, "type": "module", "scripts": { diff --git a/packages/workflows/package.json b/packages/workflows/package.json index ccaa6eaf57..568e36966c 100644 --- a/packages/workflows/package.json +++ b/packages/workflows/package.json @@ -1,6 +1,6 @@ { "name": "@archon/workflows", - "version": "0.3.8", + "version": "0.3.9", "type": "module", "exports": { "./schemas/*": "./src/schemas/*.ts",