You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Local turbo cache served a DTS-less @objectstack/plugin-auth build in a fresh worktree with OS_SKIP_DTS unset — its own typecheck then reds on a diff that never touched it #11907
Observation from working #11377 (PR #11906) in a fresh per-task worktree; recorded, not diagnosed. Filed unassigned.
Measured (2026-08-25, fresh worktree, pnpm install clean, OS_SKIP_DTS verified unset in the environment)
pnpm exec turbo run typecheck --filter '...@objectstack/driver-sql' --filter '...@objectstack/objectql' (which builds dependencies via ^build) produced a packages/plugins/plugin-auth/dist/ containing index.js / index.mjs / maps but zero .d.ts files. @objectstack/plugin-auth#typecheck then failed its own second program (tsconfig.examples.json): examples/basic-usage.ts(13,28): error TS7016: Could not find a declaration file for module '@objectstack/plugin-auth'.
A direct pnpm --filter @objectstack/plugin-auth build emitted the DTS files fine (DTS dist/index.d.ts 272.91 KB etc.) — the build itself is healthy.
The next turbo run typecheckrestored the DTS-less artifact over the good dist (cache hit on the unchanged hash) and failed identically — so the bad artifact lived in the local turbo cache under the current input hash, and every turbo run re-materialized it.
turbo run build --filter @objectstack/plugin-auth --force replaced the cache entry; all subsequent runs green (48-package closure typecheck, 0 TS errors).
Why it is worth a record
OS_SKIP_DTS is declared in turbo.jsonglobalEnv, and it was unset here — so the documented "skip-DTS build hashes differently" defense should have applied, yet a DTS-less artifact sat under the hash of a normal build. Mechanism unestablished: candidates include the tsup DTS worker dying without failing the parent build under memory pressure (the shape CI infra: @objectstack/spec 的 DTS 构建贴着 runner 内存天花板 —— 每个 spec PR 首跑都被 OOM 杀掉一次(--max-old-space-size=12288 on a 16GB runner) #4845 recorded for spec's DTS build at a different scale), or something else entirely.
The failure presents exactly as "your change broke plugin-auth" on a diff that never touched it — the AGENTS.md §9 stale-artifact class, but through the cache, so the §9 remedy (pnpm build) does NOT clear it: a plain rebuild is a cache hit that restores the same bad artifact. The working remedy is --force (or clearing the entry).
CI is immune (fresh checkout); this only costs local/worktree rounds.
No fix proposed here; recording the signature and the --force remedy so the next agent recognizes it in one step instead of re-diagnosing per gate.
Observation from working #11377 (PR #11906) in a fresh per-task worktree; recorded, not diagnosed. Filed unassigned.
Measured (2026-08-25, fresh worktree,
pnpm installclean,OS_SKIP_DTSverified unset in the environment)pnpm exec turbo run typecheck --filter '...@objectstack/driver-sql' --filter '...@objectstack/objectql'(which builds dependencies via^build) produced apackages/plugins/plugin-auth/dist/containingindex.js/index.mjs/ maps but zero.d.tsfiles.@objectstack/plugin-auth#typecheckthen failed its own second program (tsconfig.examples.json):examples/basic-usage.ts(13,28): error TS7016: Could not find a declaration file for module '@objectstack/plugin-auth'.pnpm --filter @objectstack/plugin-auth buildemitted the DTS files fine (DTS dist/index.d.ts 272.91 KBetc.) — the build itself is healthy.turbo run typecheckrestored the DTS-less artifact over the good dist (cache hit on the unchanged hash) and failed identically — so the bad artifact lived in the local turbo cache under the current input hash, and every turbo run re-materialized it.turbo run build --filter @objectstack/plugin-auth --forcereplaced the cache entry; all subsequent runs green (48-package closure typecheck, 0 TS errors).Why it is worth a record
OS_SKIP_DTSis declared inturbo.jsonglobalEnv, and it was unset here — so the documented "skip-DTS build hashes differently" defense should have applied, yet a DTS-less artifact sat under the hash of a normal build. Mechanism unestablished: candidates include the tsup DTS worker dying without failing the parent build under memory pressure (the shape CI infra:@objectstack/spec的 DTS 构建贴着 runner 内存天花板 —— 每个 spec PR 首跑都被 OOM 杀掉一次(--max-old-space-size=12288on a 16GB runner) #4845 recorded for spec's DTS build at a different scale), or something else entirely.pnpm build) does NOT clear it: a plain rebuild is a cache hit that restores the same bad artifact. The working remedy is--force(or clearing the entry).No fix proposed here; recording the signature and the
--forceremedy so the next agent recognizes it in one step instead of re-diagnosing per gate.Generated by Claude Code