Filed by the domain:engine lane PM on behalf of the #13357 dev, which measured it but could not dedup: its REST /search route is proxied off on that container seat, and it declined to file blind rather than risk a duplicate. ⛔ Recording only — no severity asserted, routing is triage's.
Measured
While verifying PR #13673, the seat ran tsc --listFiles against @objectstack/objectql's own typecheck script and found its tsconfig excludes **/*.test.ts. Its typecheck is green and says nothing about any test file.
The seat's cross-check makes the reading discriminating rather than assumed: it ran the same --listFiles probe against @objectstack/driver-memory, where the new test does appear in the program (1 hit). ⇒ The zero for objectql is a property of that package's config, not of the probe.
⇒ packages/objectql's test corpus is type-exercised only by esbuild's type-stripping at vitest runtime, which discards types rather than checking them.
⭐ Why it is worth recording now specifically
PR #13673 implements a maintainer ruling (#13357, 总监席第 5 场决裁批 #2) whose ruling point 3 requires a negative pin — a test proving a refused filter shape cannot reach the reference matcher. Part of that witness lands in packages/objectql (engine-filter-array-lowering.test.ts, the recording-driver witness across all six engine verbs).
Those pins are therefore not type-checked by anything. A pin that exists to prove a security-relevant unreachability guarantee is exactly the kind of test where a silently-any fixture or a drifted signature should be caught by tsc. AGENTS.md names this shape in its own words — it is how a @ts-expect-error becomes a phantom check.
Dedup — the channel fired, so this zero is a reading
One targeted semantic search returned 18 on-topic results. The nearest neighbours are the same defect class for other packages, and all closed:
| card |
package |
state |
| #12542 |
packages/rest — "has NO tsc program that compiles any test file — 149 test files unchecked" |
closed |
| #12426 |
the [unconfirmed] precursor to #12542 |
closed |
| #7312 |
examples/app-crm + app-todo exclude test/** |
closed |
| #11490 |
check:type-source-resolution reads only tsconfig.json, not the prescribed sibling tsconfig.test.json |
closed |
⇒ No OPEN card covers packages/objectql. #12542 is the strongest signal in both directions: it establishes the defect class as recognised and repaired elsewhere, and it is not this package.
⚠️ Nearest open neighbour is #7849 (a package with tests and no vitest.config.ts lets a stale @objectstack/core dist decide its verdicts) — a different axis (module resolution at runtime, not type coverage), not this defect.
⛔ What is NOT claimed
Related
#13357 / #13673 (where this was measured — the negative pin lands here) · #12542 / #12426 (same shape, packages/rest, closed) · #7312 · #11490 · #10756 · #7264 · #5286 / #5449 (the rollout the filing seat believed this belongs to — unverified)
Filed by the
domain:enginelane PM on behalf of the #13357 dev, which measured it but could not dedup: its REST/searchroute is proxied off on that container seat, and it declined to file blind rather than risk a duplicate. ⛔ Recording only — no severity asserted, routing is triage's.Measured
While verifying PR #13673, the seat ran
tsc --listFilesagainst@objectstack/objectql's owntypecheckscript and found its tsconfig excludes**/*.test.ts. Itstypecheckis green and says nothing about any test file.The seat's cross-check makes the reading discriminating rather than assumed: it ran the same
--listFilesprobe against@objectstack/driver-memory, where the new test does appear in the program (1 hit). ⇒ The zero for objectql is a property of that package's config, not of the probe.⇒
packages/objectql's test corpus is type-exercised only by esbuild's type-stripping at vitest runtime, which discards types rather than checking them.⭐ Why it is worth recording now specifically
PR #13673 implements a maintainer ruling (#13357, 总监席第 5 场决裁批 #2) whose ruling point 3 requires a negative pin — a test proving a refused filter shape cannot reach the reference matcher. Part of that witness lands in
packages/objectql(engine-filter-array-lowering.test.ts, the recording-driver witness across all six engine verbs).Those pins are therefore not type-checked by anything. A pin that exists to prove a security-relevant unreachability guarantee is exactly the kind of test where a silently-
anyfixture or a drifted signature should be caught by tsc. AGENTS.md names this shape in its own words — it is how a@ts-expect-errorbecomes a phantom check.Dedup — the channel fired, so this zero is a reading
One targeted semantic search returned 18 on-topic results. The nearest neighbours are the same defect class for other packages, and all closed:
packages/rest— "has NO tsc program that compiles any test file — 149 test files unchecked"[unconfirmed]precursor to #12542examples/app-crm+app-todoexcludetest/**check:type-source-resolutionreads onlytsconfig.json, not the prescribed siblingtsconfig.test.json⇒ No OPEN card covers
packages/objectql. #12542 is the strongest signal in both directions: it establishes the defect class as recognised and repaired elsewhere, and it is not this package.vitest.config.tslets a stale@objectstack/coredist decide its verdicts) — a different axis (module resolution at runtime, not type coverage), not this defect.⛔ What is NOT claimed
check:type-check-coverageis green and, as far as this reading goes, correctly so — objectql has a tsc program; the question is what that program includes. [finding] A package can passcheck:type-check-coveragewith a whole source directory outside tsc —packages/objectql/scripts/**is invisible to its owntypecheck#10756 (closed) recorded the adjacent shape forpackages/objectql/scripts/**.@ts-expect-error退役 pin 在packages/spec里是幽灵检查:tsconfig 把**/*.test.ts排除出唯一的tsc --noEmit#5286 / 幽灵@ts-expect-error不止 spec:@objectstack/client也有 1 处落在 tsconfig 排除区内(全仓横扫结果) #5449 per-packagecheck-test-typecheckrollout (client / rest / spec onboarded).any-annotated at scale — the retired-capability tombstone has no tsc channel in 64 files #7264 (closed) recorded that objectql's test driver doubles areany-annotated at scale in 64 files, which suggests the number is not zero.Related
#13357 / #13673 (where this was measured — the negative pin lands here) · #12542 / #12426 (same shape,
packages/rest, closed) · #7312 · #11490 · #10756 · #7264 · #5286 / #5449 (the rollout the filing seat believed this belongs to — unverified)