Skip to content

Remove source build fallback from release update flow - #693

Merged
selfcontained merged 1 commit into
mainfrom
fix/remove-source-build-fallback
Jun 26, 2026
Merged

Remove source build fallback from release update flow#693
selfcontained merged 1 commit into
mainfrom
fix/remove-source-build-fallback

Conversation

@selfcontained

Copy link
Copy Markdown
Owner

Summary

  • Remove source build fallback from deployTag — the if (!usedArtifact) block that ran git checkout, pnpm install, and pnpm run build:bun from source is gone. deployTag now calls await deployFromArtifact(job, tag) directly, so download failures surface as thrown errors instead of silently falling through to a dangerous build path.
  • Change deployFromArtifact from Promise<boolean> to Promise<void> — removed try/catch blocks that swallowed errors and returned false. Errors now propagate naturally.
  • Delete assertCommandOnPath helper — only called from the removed fallback.

Motivation

The v0.23.9 update wiped compiled binaries in dist/bun/, preventing the server from restarting. Root cause: deployFromArtifact caught errors and returned false, triggering the source build fallback. The build script (scripts/build-bun-binaries.mjs line 171) does rmSync(outDir, { recursive: true, force: true }) before building — when the build then failed, the binaries were gone and the server couldn't restart.

The source build fallback is inherently unsafe because it deletes existing binaries before attempting to build replacements. Removing it ensures artifact download failures are surfaced immediately rather than cascading into a worse state.

Test plan

  • pnpm run check — type checking passes
  • pnpm run test — all unit tests pass (2135 total)
  • pnpm run test:e2e — 171 passed, 12 skipped (terminal-live, needs tmux)

🤖 Generated with Claude Code

The fallback to `pnpm run build:bun` on artifact download failure
would wipe `dist/bun/` via rmSync before attempting a build, destroying
the running binary. If the build then failed, the server could not
restart. Remove the fallback entirely so download failures surface
immediately as errors instead of silently nuking binaries.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@selfcontained
selfcontained merged commit aab8e96 into main Jun 26, 2026
1 check passed
@selfcontained
selfcontained deleted the fix/remove-source-build-fallback branch June 26, 2026 03:35
@selfcontained
selfcontained restored the fix/remove-source-build-fallback branch June 26, 2026 16:54
selfcontained added a commit that referenced this pull request Aug 2, 2026
…release-workflow shape, cursor in preflight (#865)

- The update flow's build-from-source fallback was removed in #693; the
  runbook still described an artifact-first-with-fallback deploy. Now
  documents the artifact-only path and the corrupt-cache-retry behavior.
- The release workflow section claimed a single 'pnpm run ci' pass and a
  tag created with the version-bump commit. Documented the actual
  pipeline: prepare (bump incl. browser-extension manifest, notes,
  push to main) -> verify (check/lint/unit tests) -> signed+notarized
  builds -> Linux+macOS smoke tests -> publish, where 'gh release
  create' is what mints the tag.
- Preflight optional-dependency list was missing Cursor's 'agent'
  binary (#684).
- Noted force:true also bypasses the 503 migration-evaluation gate.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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