Skip to content

chore(release): cut 0.1.0 - #1062

Merged
Juliusolsson05 merged 1 commit into
mainfrom
release/0.1.0
Sep 20, 2026
Merged

Juliusolsson05 merged 1 commit into
mainfrom
release/0.1.0

Conversation

@Juliusolsson05

Copy link
Copy Markdown
Owner

The first stable Agent Code release — signed, notarized, and published as releases/latest rather than as a prerelease. Around sixty pull requests separate it from the 0.0.2-beta.1 prerelease.

What is in here

Why 0.1.0 specifically

The release workflow validates the channel against the version (scripts/release/identity.mjs, added in #1035). Dry-run on this branch:

$ CHANNEL=stable node scripts/release/identity.mjs
tag=v0.1.0
name=Agent Code 0.1.0
prerelease=false
make_latest=true

$ CHANNEL=prerelease node scripts/release/identity.mjs
A prerelease needs a prerelease version, but package.json is 0.1.0.  (exit 1)

Both directions behave: a stable release of a prerelease version would make a beta latest, and a prerelease of a stable version would burn the stable tag.

The landing page is deliberately untouched

It already resolves releases/latest, which GitHub defines as the newest release that is neither a draft nor a prerelease — so the rolling nightly can never win it. That endpoint 404s today, which is exactly why the download buttons fall back to the Releases page and the status line is silent. Publishing this flips both automatically: findDiskImage suffix-matches -arm64.dmg / -x64.dmg, and the real beta assets are named Agent.Code-0.0.2-beta.1-arm64.dmg, so Agent.Code-0.1.0-arm64.dmg matches.

After merge

Dispatch release.yml with channel=stable, publish_release=true, both tag/name inputs left empty (they derive from package.json).

Still open and not blocking, recorded in the ledger: a replacement hero screenshot and the Cloudflare Pages connect + domain are owner items; README screenshots predate Nord.

🤖 Generated with Claude Code

The first STABLE release: signed, notarized, and published as
`releases/latest` rather than as a prerelease. Around sixty pull requests
separate it from the 0.0.2-beta.1 prerelease.

`package.json` and `package-lock.json` move to 0.1.0, which is what the
release workflow validates the channel against: `CHANNEL=stable
scripts/release/identity.mjs` now resolves `tag=v0.1.0 / prerelease=false /
make_latest=true`, and the prerelease channel correctly REFUSES a stable
version.

The notes are the draft from the release-readiness ledger with every PENDING
marker resolved — each of those PRs is merged — plus the four fixes that
landed after it was written (#1057 interrupted streams, #1058 detached tmux
shells, #1060 the paste envelope, and the tier-0 install consent in #1049).

The landing page needs no change and is not touched here: it resolves
`releases/latest`, which GitHub defines as the newest release that is neither
a draft nor a prerelease, so the rolling nightly can never win it. That
endpoint 404s today because no such release exists, which is exactly why the
download buttons fall back to the Releases page and the status line is silent.
Publishing this flips both.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Juliusolsson05
Juliusolsson05 merged commit 3f0b71f into main Sep 20, 2026
2 checks passed
@Juliusolsson05
Juliusolsson05 deleted the release/0.1.0 branch September 20, 2026 07:51
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