Context
Follow-up from #100 (which moved the model-free e2e tests onto the PR path via the e2e_fast tag). That PR deliberately did not touch the release flow — this issue tracks designing one.
Problem
release.yml is triggered on a v* tag and gates goreleaser on a single test job:
- run: go test -race -count=1 -timeout=10m ./...
That runs the untagged build, so it excludes all of internal/e2e/ (everything there is behind //go:build e2e / e2e_fast). Consequences for a release cut:
Nothing currently ties "this commit passed the security audit" to "this commit is being released."
What to decide
Non-goals
Refs #66, #100
Context
Follow-up from #100 (which moved the model-free e2e tests onto the PR path via the
e2e_fasttag). That PR deliberately did not touch the release flow — this issue tracks designing one.Problem
release.ymlis triggered on av*tag and gatesgoreleaseron a singletestjob:That runs the untagged build, so it excludes all of
internal/e2e/(everything there is behind//go:build e2e/e2e_fast). Consequences for a release cut:-tags=e2e_fast) — dir_token isolation (fix(serve): stop /__omac__/dirs from leaking other workdirs' tokens #74), the mutation-tested assertion predicates (fix(sandbox,e2e): protect docker.sock, harden fs assertions to per-path #84), the--no-sandboxexposure report (e2e: testing ideas to validate (security + creative) #66), registry invariants — does not run before a tag is published, even though it now runs on every PR.e2e.yml) runs only on the Saturday cron / manual dispatch, so a tag cut mid-week ships against a security audit that may be up to a week stale.Nothing currently ties "this commit passed the security audit" to "this commit is being released."
What to decide
goreleaserruns: at leastgo test -tags=e2e_fast(cheap, model-free). Wire it intorelease.yml'stestjob or as aneeds:dependency.e2e.ymlpass for the released SHA (e.g. release only from a SHA the weekly suite already validated, or trigger a live run on the tag — noting the claude-code billing and macOS/codex--no-sandboxcaveats).RELEASING.md/ checklist) so it's reproducible, not tribal knowledge.-rctags to skip the live suite but not final tags).Non-goals
Refs #66, #100