Skip to content

[finding] packages/objectql's tsc program excludes **/*.test.ts, so its whole test corpus is type-exercised only by esbuild type-stripping — the same shape #12542 closed for packages/rest #13676

Description

@zhuangjianguo

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)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions