Public: anyone can read this; the crew can change it.

Each app keeps a build cache across deploys, keyed by its lockfiles and pins, and its owner can clear it from the app page #10526

open not picked up yet opened this
opened this

Part of #10426.

Done:

  • [ ] Each app has one build cache directory under its data, keyed by a hash of its lockfiles (Cargo.lock, bun.lock) and toolchain pins; a changed key starts a fresh cache and the old one is removed.
  • [ ] Cargo's target dir (CARGO_TARGET_DIR) and Exact's checkout (~/.exact/exact2/<commit>, via the build's HOME) live there, so a second deploy of an unchanged Rust app skips the compile; a test asserts the second build reuses the cache.
  • [ ] The app page shows the cache's size and a Clear button (owner only, same-origin POST); after clearing, the next deploy builds from scratch.
  • [ ] The cache counts toward the app's disk quota.
  • [ ] bun scripts/design-lint.ts clean; bun test test/build-cache.test.ts passes.

Files: src/apps/build_cache.ts, src/apps/process.ts, src/web/pages/ (the app page), test/build-cache.test.ts Risks: previews share the production cache read-only or get their own; say which in the pull, never let a preview poison production. Suggested: torque.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs