Skip to content

Release 0.3.1#989

Merged
Wirasm merged 5 commits intomainfrom
dev
Apr 8, 2026
Merged

Release 0.3.1#989
Wirasm merged 5 commits intomainfrom
dev

Conversation

@Wirasm
Copy link
Copy Markdown
Collaborator

@Wirasm Wirasm commented Apr 8, 2026

Release 0.3.1

Patch release: SQLite migration fix for existing databases and release build pipeline fix.

Fixed


Merging this PR releases 0.3.1 to main.

github-actions Bot and others added 5 commits April 8, 2026 10:16
Automates release verification via three install paths: brew (Homebrew
tap), curl-mac (install.sh to a sandboxed tmp dir on macOS), and
curl-vps (install.sh on a remote Linux VPS). Runs a fixed suite
(version, workflow list, assist workflow, env-leak gate, isolation
list), captures SHA256 of the tested binary, and cleans up on exit
so the dev bun-link binary is never disturbed.

Use when cutting a new release or reproducing a user bug report on
the released version. NOT for testing dev changes — those use
bun run validate or direct source invocation.

See issue (to be filed) for the release workflow fix that unblocks
the brew and curl-mac paths end-to-end.
… (#987)

* Investigate issue #986: release workflow bypasses build-binaries.sh

* fix(release): wire release workflow to scripts/build-binaries.sh (#986)

The release workflow called `bun build --compile` inline, bypassing the
build-time-constants rewrite in scripts/build-binaries.sh. Released binaries
shipped with BUNDLED_IS_BINARY=false, causing `archon version` to crash with
"package.json not found (bad installation?)" on v0.2.13 and v0.3.0.

Changes:
- Refactor scripts/build-binaries.sh to support single-target mode via
  TARGET/OUTFILE env vars; preserve multi-target local-dev mode unchanged.
  Always --minify; skip --bytecode for Windows targets.
- Update .github/workflows/release.yml to call the script with the matrix
  target/outfile, stripping the 'v' prefix and shortening the SHA.
- Add a post-build smoke test on bun-linux-x64 that asserts the binary
  reports "Build: binary" and the tag version (would have caught both
  broken releases).
- Document local CI-equivalent build invocation in the test-release skill.

Fixes #986

* chore: archive investigation for issue #986

* skill(release): document Homebrew formula SHA sync and verification

The release skill previously stopped at tag creation and GitHub release
creation. Formula updates were happening manually outside the skill and
consistently drifting — v0.3.0's homebrew/archon.rb had the correct
version string but SHAs from v0.2.13, because whoever updated it did so
before the release workflow had built the v0.3.0 binaries.

Add three new steps to close the gap:

- Step 10: wait for release workflow, fetch checksums.txt, update
  homebrew/archon.rb atomically with new version AND new SHAs in a
  single commit. The formula is regenerated from a template rather
  than edited in place, eliminating the risk of partial updates.
- Step 11: sync the rewritten formula to coleam00/homebrew-archon
  tap repo (the file users actually install from). Fails loudly if
  push access is missing instead of silently skipping.
- Step 12: run /test-release brew and /test-release curl-mac to
  verify the install path actually works end-to-end before announcing
  the release. A release that installs but crashes is worse than no
  release at all.

Also:
- Add a prominent warning at the top about the chicken-and-egg
  relationship between version and SHAs (they must move atomically,
  and SHAs can only be known after binaries exist).
- Add three new rules to "Important Rules":
  * never update version without also updating SHAs
  * never skip the tap sync (main repo formula is just a template)
  * never announce a release that failed /test-release

Related to #986 (release workflow bypasses build-binaries.sh) — both
bugs block the next working release; fixing only one leaves the
install path broken.

* fix(release): address review feedback on smoke test and restore trap

- release.yml: use inputs.version on workflow_dispatch so the build step
  doesn't embed the branch name as the binary version
- release.yml: compare smoke-test version against the stripped semver
  instead of the raw ref, so the check doesn't rely on the CLI re-adding
  a 'v' prefix
- release.yml: fail fast if the binary crashes on first invocation
  instead of falling through to the 'wrong build type' branch
- release.yml: add a second smoke step that runs 'workflow list' in a
  temp repo to catch the class of bug where bundled defaults fail to
  embed in the binary
- build-binaries.sh: drop '2>/dev/null' on the EXIT trap so restore
  failures surface in the log with a clear WARNING
- test-release skill: fix the single-target verification path
#988)

PR #983 added the allow_env_keys consent bit via PostgreSQL migrations
(migrations/000_combined.sql and migrations/021_*.sql) but did not
update packages/core/src/db/adapters/sqlite.ts, which has its own
independent schema bootstrap path. Result: every SQLite database has
been broken since #983 landed:

- Fresh installs: createSchema() creates remote_agent_codebases
  without the column, and POST /api/codebases fails on every call
  with "table remote_agent_codebases has no column named allow_env_keys".
- Existing installs upgraded from v0.2.x: CREATE TABLE IF NOT EXISTS
  is a no-op on the existing table and migrateColumns() never adds
  the column, same failure.

Cole's deployed server at archon-youtube.smartcode.diy hit this live —
every "add project" request returned 500 because the VPS runs
docker-compose with the SQLite default (no separate postgres service).

Two surgical changes to packages/core/src/db/adapters/sqlite.ts:

1. createSchema(): add `allow_env_keys INTEGER DEFAULT 0` to the
   remote_agent_codebases CREATE TABLE block so fresh databases get
   the column. SQLite has no true BOOLEAN — INTEGER with 0/1 matches
   the existing pattern used for `hidden` on conversations.

2. migrateColumns(): add a new idempotent try/catch block that
   PRAGMA-checks the codebases table for `allow_env_keys` and ALTERs
   it in if missing. Pattern matches the existing migration blocks
   for Conversations, Workflow runs, and Sessions columns.

The JavaScript read path in db/codebases.ts and the clients already
uses truthy checks (`if (!codebase?.allow_env_keys)`), which works
for both SQLite integer (0/1) and JS boolean (false/true) storage.
No other changes needed.

Fixes the live incident blocking Cole's demo and unblocks v0.3.1.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 8, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 941c4185-35e2-473a-bba3-b7aa32a53e5f

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@Wirasm Wirasm merged commit 1e2bce9 into main Apr 8, 2026
7 checks passed
puvuglobal pushed a commit to puvuglobal/Archon that referenced this pull request Apr 8, 2026
…tale-process-docs

docs: add Windows stale-process troubleshooting guidance
Tyone88 pushed a commit to Tyone88/Archon that referenced this pull request Apr 16, 2026
…tale-process-docs

docs: add Windows stale-process troubleshooting guidance
Tyone88 pushed a commit to Tyone88/Archon that referenced this pull request Apr 16, 2026
joaobmonteiro pushed a commit to joaobmonteiro/Archon that referenced this pull request Apr 26, 2026
…tale-process-docs

docs: add Windows stale-process troubleshooting guidance
joaobmonteiro pushed a commit to joaobmonteiro/Archon that referenced this pull request Apr 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant