From 8509aa14bbf021cc3c465f4eba01ee360d4956bb Mon Sep 17 00:00:00 2001 From: Bailey Dixon Date: Wed, 15 Jul 2026 13:07:01 -0400 Subject: [PATCH] fix: build worker from clean deployment checkout --- CHANGELOG.md | 6 ++++++ DEVLOG.md | 9 +++++++++ Dockerfile | 5 ++++- package.json | 2 +- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bb07ddf1..ac15a12e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,12 @@ The dashboard's **What's New** rail reads this file at request time entries. Keep entries terse — one line per item under each version date, grouped by `Added` / `Changed` / `Fixed` / `Removed`. +## [2026-07-15] — v0.20.1 · Clean-checkout deployment + +### Fixed + +- **Worker images now build from the dedicated clean deployment clone.** The Dockerfile no longer requires Next's generated, gitignored `next-env.d.ts` for the `tsx` worker stage, removing a hidden dependency on development-checkout residue. + ## [2026-07-15] — v0.20.0 · Coordinated code delivery ### Added diff --git a/DEVLOG.md b/DEVLOG.md index 5a5de276..39d7847f 100644 --- a/DEVLOG.md +++ b/DEVLOG.md @@ -2,6 +2,15 @@ > Append-only session log. Read at session start. Update at session end. +## 2026-07-15 — Clean-checkout worker image follow-up + +The first guarded v0.20.0 deployment correctly stopped before production when +the new dedicated clean clone exposed that the worker Docker stage copied +Next's generated, gitignored `next-env.d.ts`. The worker executes through +`tsx` and does not consume that declaration file, so the Dockerfile no longer +requires it. This makes the image reproducible from a clean exact-ref checkout; +v0.20.1 carries the deployment-only correction. + ## 2026-07-15 — Shared code-work ownership and guarded delivery Implemented the common delivery contract for Forge agents, Codex Desktop tasks, diff --git a/Dockerfile b/Dockerfile index b7a09631..9fa859af 100644 --- a/Dockerfile +++ b/Dockerfile @@ -66,7 +66,10 @@ ARG BUILD_TIME="" ENV FORGE_GIT_SHA=$GIT_SHA ENV FORGE_BUILD_TIME=$BUILD_TIME COPY --from=prisma-client /app/node_modules ./node_modules -COPY package.json pnpm-lock.yaml* tsconfig.json next-env.d.ts next.config.ts ./ +# `next-env.d.ts` is generated by Next and intentionally gitignored. The worker +# runs through tsx and does not need it; omitting it keeps clean-clone builds +# reproducible instead of relying on residue from a developer checkout. +COPY package.json pnpm-lock.yaml* tsconfig.json next.config.ts ./ COPY prisma ./prisma COPY scripts ./scripts COPY plugins ./plugins diff --git a/package.json b/package.json index 5933fb68..ea588d41 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "forge", - "version": "0.20.0", + "version": "0.20.1", "private": true, "description": "Forge — a fast, minimalist, keyboard-driven project management platform with pluggable agents.", "license": "MIT",