Found while executing #12776 (the census + narrowing needed a real tsc --noEmit reading of the package). Filed unassigned as an observation of the #7925 class (service-settings, closed) in a new package; measured in a worktree at origin/main aef1b7e6 and re-confirmed after the #12776 branch merged main at 750fff559.
The observation
Why it may deserve a card
The #12776 census surfaced this concretely: the flagship consumer of a spec contract carried locally-widened method: string annotations for years and nothing red ever appeared, because nothing compiles the package. #7925 (service-settings) and #12542 (rest) were the same class and both got fixed per-package; this is the analytics instance. The repair there was: wire a typecheck script (plus the debt-ledger mechanism where the standing errors are not worth fixing in the same PR).
Refs: #7925 (same class, service-settings) - #12542 / #12426 (same class, rest tests) - #12776 (how it surfaced).
Found while executing #12776 (the census + narrowing needed a real
tsc --noEmitreading of the package). Filed unassigned as an observation of the #7925 class (service-settings, closed) in a new package; measured in a worktree atorigin/mainaef1b7e6and re-confirmed after the #12776 branch merged main at750fff559.The observation
packages/services/service-analytics/package.jsonhas scriptsbuildandtestonly — notypecheck. Roottypecheckisturbo run typecheck, which silently no-ops for a package without the script (the exactservice-settingshas notypecheckscript — turbo silently no-ops it, and ~5 test files carry pre-existing type errors behind the unwired gate #7925 shape).tsconfig.jsonincludessrc, and its tests live insrc/__tests__/**, so a plainpnpm exec tsc --noEmitin the package DOES compile both src and tests — it just is not wired to any gate.buildis tsup (esbuild — no typecheck; the DTS pass only processes declarations) andtestis vitest (esbuild transform — no typecheck). So no CI lane runs tsc over this package at all.StrategyContext.executeAggregatedeclaresaggregations[].methodasstringwhile the engine contract declares the six-valueAggregationFunction#12776 diff (the error set is byte-identical before and after that narrowing):src/__tests__/analytics-service.test.ts(10,1)TS6133 — unused importAnalyticsDriverCapabilitiessrc/__tests__/measure-source-field-gate.test.ts— 7 x TS2339,.message/.field/.member/.paramaccessed on a union that includesAnalyticsResultsrc/__tests__/objectql-timedimension-projection.test.ts(67,68)— 2 x TS7053 implicit-any indexWhy it may deserve a card
The #12776 census surfaced this concretely: the flagship consumer of a spec contract carried locally-widened
method: stringannotations for years and nothing red ever appeared, because nothing compiles the package. #7925 (service-settings) and #12542 (rest) were the same class and both got fixed per-package; this is the analytics instance. The repair there was: wire atypecheckscript (plus the debt-ledger mechanism where the standing errors are not worth fixing in the same PR).Refs: #7925 (same class, service-settings) - #12542 / #12426 (same class, rest tests) - #12776 (how it surfaced).