From 6f1316739608ca17a00c5bacfc25512bf09e2ced Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 23 Aug 2026 16:38:03 +0000 Subject: [PATCH] fix(build): declare content/** as an input of @objectstack/docs#build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The docs site renders every one of its 400+ pages from `content/`, which lives outside `apps/docs/`. With no `@objectstack/docs#build` entry the task inherited the generic `build` task, whose inputs are `$TURBO_DEFAULT$` — the package's own files only. A content-only commit therefore hashed identically to its predecessor, so `pnpm turbo run build --filter= @objectstack/docs` (the command `apps/docs/vercel.json` builds production with) could replay a stale `.next` against new content: a green deploy serving the previous pages, with no error anywhere. The new entry reproduces the generic task's `dependsOn` and `outputs` verbatim and adds only `inputs`, so nothing but the input set changes. `$TURBO_ROOT$/content/**` is the spelling five sibling tasks already use, and it covers both collections `source.config.ts` reads (`content/docs` and `content/blog`) plus `content/docs.site.json`. Not the same remedy as the `TURBO_FORCE` that protects the CI step: forcing a rebuild is right for a gate and wrong for production. Production is correct here because the task declares what it actually reads. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_015ahemw8RcTgqtxrj15PEZx --- turbo.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/turbo.json b/turbo.json index 1bc881050c..d01c071772 100644 --- a/turbo.json +++ b/turbo.json @@ -17,6 +17,11 @@ "outputs": [], "inputs": ["$TURBO_DEFAULT$", "!dist/**", "!coverage/**", "!.turbo/**"] }, + "@objectstack/docs#build": { + "dependsOn": ["^build"], + "outputs": ["dist/**", "json-schema/**", ".next/**", "!.next/cache/**"], + "inputs": ["$TURBO_DEFAULT$", "$TURBO_ROOT$/content/**"] + }, "@objectstack/metadata#test": { "dependsOn": ["build"], "outputs": [],