forge changelog

Every release, newest first.

Forge follows semver. Patch releases ship most weeks and never change behaviour; minors add commands and flags. Run forge upgrade to jump to the latest, or pin a version in CI and move on your own schedule.

Release notes

Dates are the public npm publish date. Every version stays installable — we have never unpublished a release.

3.2.0

latest

Edge runtimes

Services can now be provisioned on the edge runtime in every public region, cutting cold-start latency for request-shaped workloads. Existing services are untouched until you opt in.

  • addruntime = "edge" in forge.toml — provisions on the edge runtime instead of a container.
  • addforge deploy --region now accepts a comma-separated list for a single deploy.
  • addRegion sin1 is out of preview and generally available.
  • chgBuild cache keys now include the lockfile hash, so dependency-only changes rebuild correctly.
  • fixforge logs --follow no longer drops lines when a service scales mid-stream.
  • fixFixed a Windows path bug where forge init wrote .forge/project.json with backslash separators.
npm i -g forge@3.2.0 142 commits · 9 contributors

3.1.2

Healthcheck timing fixes

A patch release focused on the deploy gate. No flags changed and no behaviour is different on a healthy deploy.

  • fixHealthcheck polling started before the runtime had bound its port on slow cold starts, causing spurious exit-code 2 failures.
  • fixforge rollback printed the wrong previous version when the last deploy was a preview.
  • chgDeploy log lines are now flushed unbuffered, so CI output appears in real time instead of at exit.
npm i -g forge@3.1.2 21 commits · 4 contributors

3.1.0

Preview database forks

Preview deploys can now fork the production database copy-on-write, so pull-request reviews run against real-shaped data without touching production rows.

  • addforge db fork — create a copy-on-write fork bound to the current preview.
  • addPreview branches automatically fork the linked database when [db] fork = true is set.
  • addforge env pull --preview writes non-secret preview vars to a local .env.
  • chgForks are reclaimed 72 hours after the preview is deleted, up from 24.
  • fixforge db create no longer times out when the region is provisioning its first instance.
npm i -g forge@3.1.0 88 commits · 7 contributors

3.0.0

breaking

Scoped tokens and the new config format

The major that made CI safe by default. Tokens are now scoped per project and environment, and forge.toml replaced the old JSON config. One command migrates you.

  • addforge token create with per-environment scoping — a preview token cannot deploy to production.
  • addforge.toml config format, including [[service]] blocks for monorepos.
  • addforge export emits the generated Dockerfile and compose file.
  • chgDeploys are immutable versions (v1, v2, …); in-place overwrite is gone.
  • chgMinimum Node version for the CLI itself is now 20.
breaking: unscoped account-wide tokens from 2.x stopped working on this release. Run forge token migrate to mint scoped replacements, then update your CI secrets. Legacy forge.json is read for one more minor — forge config migrate converts it to forge.toml.
npm i -g forge@3.0.0 412 commits · 14 contributors

2.8.0

Incremental builds

The release that took cold deploys under ten seconds. Only changed modules are rebuilt and uploaded; unchanged layers are reused from the cache.

  • addIncremental module-level build cache, enabled by default.
  • addforge deploy --no-cache to force a cold build when reproducing a bug.
  • addforge diff v41 v42 — show what changed between two versions.
  • chgMedian cold deploy for the benchmark project dropped from 24.1s to 9.4s.
  • fixMonorepo builds no longer invalidate sibling service caches on an unrelated change.
npm i -g forge@2.8.0 156 commits · 11 contributors

2.7.0

Encrypted secrets at rest

Environment variables moved to AES-256 at rest with runtime injection. Values are no longer readable after they are set — only overwritten.

  • addforge env set|ls|rm with --prod and --preview scoping.
  • addSecrets are injected at boot and never written to disk on the build machine.
  • chgSecret values are masked in env ls output and stripped from build logs.
  • fixValues containing = or newlines are handled correctly when pasted at the prompt.
npm i -g forge@2.7.0 64 commits · 6 contributors

upgrading

The CLI checks for a newer version once a day and prints a one-line notice — it never updates itself. Upgrade when you choose to:

$ forge upgrade
→ 3.1.2 → 3.2.0
✓ upgraded forge 3.2.0 (darwin-arm64)

# or pin an exact version in CI
$ npm i -g forge@3.2.0

$ forge init — free for side projects.

Running an older major? forge upgrade takes you to 3.2.0, and the migration commands are in the 3.0.0 notes above.

Read the docs →

100 deploys/mo free · Pro from $19/seat · SOC 2 Type II