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
{{ message }}
Repository navigation
prisma-next: typecheck is red and not gated in CI — the type-level operator-capability tests aren't enforced #684
@cipherstash/prisma-next has excellent type-level tests proving that EQL v3 query operators are capability-gated at compile time — e.g. packages/prisma-next/test/operation-types.types.test-d.ts asserts (via @ts-expect-error) that:
eqlEq does not surface on storage-only eql_v3_boolean / eql_v3_text
eqlMatch does not surface on eql_v3_text_eq (no free-text index)
eqlGt does not surface on eql_v3_double_eq (no order/range)
These currently pass (each @ts-expect-error is satisfied), so the capability gating is real. But two gaps mean nothing enforces it going forward:
pnpm --filter @cipherstash/prisma-next typecheck is currently red — ~38 errors, all unrelated implicit-any (TS7006 / TS7031 / TS7053) in test/v3/properties.test.ts, integration/adapter.ts, and several test/live/* files. None are in the capability test files, but they fail the whole tsc --noEmit run.
typecheck isn't wired into any CI workflow (no .github/workflows/* runs the prisma-next typecheck script). So even once it's green, a regression that makes an unsupported operator type-check (silently removing the gating) would not be caught.
Why it matters
The .test-d.ts@ts-expect-error assertions are only enforced when tsc actually processes them. Right now they're aspirational: a future change that made eqlGt available on a non-ord column would flip an @ts-expect-error from 'used' to 'unused' — which is itself a tsc error — but only if typecheck runs and is required. Today it neither passes nor runs in CI.
Suggested fix
Fix the ~38 implicit-any errors (add annotations / satisfies) so typecheck is green.
Add a typecheck step to the prisma-next CI job (or the shared type-check job) so .test-d.ts capability assertions become a required, enforced check.
Context
Surfaced while reviewing the prisma-next EQL v3 work (#655) and the CLI skill companion (#683) — the skill documents 'unsupported operators are a compile error', which is true today but not CI-guarded.
Typecheck is hermetic now — packages/prisma-next/tsconfig.json resolves every consumed @cipherstash/stack subpath to source (mirroring packages/test-kit's paths), so pnpm --filter @cipherstash/prisma-next typecheck no longer depends on a prior pnpm build. The implicit-any noise came from a stale/partial packages/stack/dist resolving through the package exports; verified green with the dist deleted entirely.
Gated in CI — tests.yml now runs the prisma-next typecheck alongside the other type-test steps, so the .test-d.ts@ts-expect-error operator-capability assertions are an enforced check.
Activity
fix(prisma-next): hermetic typecheck against stack source, gated in CI (
calvinbrewer commentedon Jul 17, 2026
Addressed on #655 in 4c7abac6:
packages/prisma-next/tsconfig.jsonresolves every consumed@cipherstash/stacksubpath to source (mirroringpackages/test-kit's paths), sopnpm --filter @cipherstash/prisma-next typecheckno longer depends on a priorpnpm build. The implicit-anynoise came from a stale/partialpackages/stack/distresolving through the package exports; verified green with the dist deleted entirely.tests.ymlnow runs the prisma-nexttypecheckalongside the other type-test steps, so the.test-d.ts@ts-expect-erroroperator-capability assertions are an enforced check.🤖 Generated with Claude Code
fix(prisma-next): hermetic typecheck against stack source, gated in CI (
Feat/prisma next eql v3 (#655)
coderdan commentedon Jul 21, 2026
Fixed in #655.
fix(wizard): resolve @cipherstash/auth via the node condition; gate t…
fix(wizard): resolve @cipherstash/auth via the node condition; gate t…
fix(wizard): resolve @cipherstash/auth via the node condition; gate t…
fix(wizard): resolve @cipherstash/auth via the node condition; gate t…
fix(wizard): resolve @cipherstash/auth via the node condition; gate t…