Changelog

We ship on Tuesdays. Breaking changes get a month of notice.

17 Aug 2026

v4.2.0

Per-branch environment variables

New Improved

Variables can now be scoped to a branch pattern, so preview builds stop borrowing production credentials by accident.

  • → Pattern matching supports globs, e.g. release/*
  • → Secrets inherit from the default set unless overridden
  • → The variable editor now shows which builds used a value last

5 Aug 2026

v4.1.0

Runner images split into layers

Improved Breaking

Base tooling and language runtimes now live in separate layers, which cuts a cold runner start from 41 to 12 seconds.

Breaking: pinned image digests

Anything pinning runner@sha256:… must repin before 1 October. Tag-based references keep working.

22 Jul 2026

v4.0.3

Cache keys no longer collide across packages

Fixed

In monorepos, two packages with identical lockfile hashes could share a cache entry. Keys now include the workspace path.

  • → Existing entries are invalidated once, on first build
  • → Restore logs now print the full key that matched
Older releases →
">

The prompt

Create a product changelog page with Tailwind CSS built on a vertical rail. A header with the page title, a line about the release cadence, and an "Subscribe to updates" outline button on the right. Below, entries laid out as a grid on md: a left column holding the date and a monospaced version pill, and a right column with a border-left rail, a small dot marker sitting on the line, and the entry card. Each entry card carries a headline, a row of category chips (New, Improved, Fixed, Breaking) in tinted colours, a short paragraph, and a bullet list where each item starts with a small arrow glyph; one entry should include an inline "Breaking" callout box in amber explaining the migration step. Keep three entries so the rail reads as a timeline, then finish with a muted "Older releases →" link at the bottom.

Paste it into Claude, Cursor, v0 or any AI coding tool. Prefer the finished markup? .