From fa28171380c1ee96b6e173169d98474a93b37048 Mon Sep 17 00:00:00 2001 From: Jeremy Date: Tue, 14 Apr 2026 18:58:39 -0500 Subject: [PATCH 1/2] fix(ci): install web host deps in dev-publish job The dev-publish job splits build into build:core + build:web-host, but web/ has its own lockfile and is not an npm workspace. The old 'npm run build' step self-healed via build-web-if-stale.cjs; the direct build:web-host call does not, causing 'next: not found'. Matches the pattern already used in ci.yml. --- .github/workflows/pipeline.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/pipeline.yml b/.github/workflows/pipeline.yml index 030fb9d15..414daad84 100644 --- a/.github/workflows/pipeline.yml +++ b/.github/workflows/pipeline.yml @@ -45,6 +45,9 @@ jobs: - name: Install dependencies run: npm ci + - name: Install web host dependencies + run: npm --prefix web ci + - name: Cache Next.js build uses: useblacksmith/cache@v5 with: From 1ab734d7f8fd8c0ab7b43195ed4363798be5009c Mon Sep 17 00:00:00 2001 From: Jeremy Date: Tue, 14 Apr 2026 19:05:15 -0500 Subject: [PATCH 2/2] fix(ci): run CI on pipeline.yml changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pipeline.yml was in CI's paths-ignore, so PRs that only touch pipeline.yml never trigger CI — but 'build' is a required status check, deadlocking those PRs forever. This also means pipeline.yml changes merge without any code validation, which is how the dev-publish 'next: not found' bug slipped through in the first place. --- .github/workflows/ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 07535b33a..992e5d58b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,6 @@ on: - '.github/workflows/ai-triage.yml' - '.github/workflows/build-native.yml' - '.github/workflows/cleanup-dev-versions.yml' - - '.github/workflows/pipeline.yml' - 'LICENSE' pull_request: branches: [main] @@ -16,7 +15,6 @@ on: - '.github/workflows/ai-triage.yml' - '.github/workflows/build-native.yml' - '.github/workflows/cleanup-dev-versions.yml' - - '.github/workflows/pipeline.yml' - 'LICENSE' concurrency: