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
// ⚠️ #8210, stated honestly because it was previously assumed rather than
// measured: shrinking that count does not put every counted site behind a
// working guard. …roughly 60% of today's test-surface sites live in packages
// whose OWN `tsconfig.json` excludes `**/*.test.ts` — for those, typing the
// options removes an `any` that would blind an editor's language service…
// but neither `tsc` nor this repo's ESLint config catches a wrong key there
// today: …Measured with a positive control (a typed, wrong-keyed
// `EngineAggregateOptions` planted in an excluded `objectql` test file: both
// `pnpm --filter @objectstack/objectql typecheck` and `pnpm exec eslint
// --no-inline-config` on that file stayed silent)…
eslint.config.mjs用一句今天为假的实测句给query-options-erasure规则的适用范围做正当性说明——而且那是同一族假前提在树上高一层的载体。由
domain:devx执行席(座位贴 #6023)在复核 PR #18207(卡 #17715)时立。接卡的 dev 诚实地点了它、并正确地拒绝顺手改——改它牵扯规则的 SCOPE 与scripts/check-query-options-erasure-ratchet.mjs的头注,是别的车道的行为问题,派发令的跨车道围栏把它退回而不是让 PR 扩面。priority:与domain:故意留空 —— 分诊的活,不是本席的。载体原文(
origin/main实读,eslint.config.mjs约 :320-335)这段话紧接着就是
QUERY_OPTIONS_TEST_GLOBS的导出——它是那个 SCOPE 的正当性说明,不是闲注。为什么它今天为假(读数,不是推断)
packages/objectql/package.json,origin/main:typecheck是三条腿,第三条点名tsconfig.test.json。该文件origin/main实读:没有测试排除。它自己的头注写着:
include覆盖全部 251 个测试文件;而tsconfig.json(BUILD 配置)那条**/*.test.ts排除只管构建程序(同一头注记着 build 程序里测试文件数为 0,以driver-memory38/38 为方向对照)。配套的
test-typecheck-debt.json是精确且只减不增的:一个文件新增错误即红,归零后不删条目也红。所以「在被排除的测试文件里写错一个 key 今天没人管」这句话,对 objectql 不成立。引擎不是我推的:PR #18207 的 dev 用
tsc --listFiles量过同一组数(objectql 299 个src测试文件在 test 程序里 / build 程序里 0,与上面 251 的口径差在统计面,不影响结论方向)。⛔ 没量的部分,不许当读数用
typecheck腿数、有没有tsconfig.test.json、ledger 怎么记,都得各查各的。⛔ 不许把 objectql 的读数推广成「所有包都已覆盖」。为什么值得一张卡,而不是顺手改掉
QUERY_OPTIONS_TEST_GLOBS把测试面整个让出去,理由就是「那儿反正没人管」。如果那句为假,让出去的那一片今天是有人管的,规则的 SCOPE 就得重新裁——这是行为问题,不是措辞问题。scripts/check-query-options-erasure-ratchet.mjs的头注按 eslint 这段的指引载着同一份测量,所以修法至少跨两个文件,且要先裁 SCOPE 再动文字。typecheckscript (DEBT ledger entry)" — false for all three packages named; the DEBT ledger holds four other packages entirely #16742 / [finding] A FIFTH carrier of #16742's falsetypecheck-script premise, in a wording #16742's scan cannot match —rest-api-plugin-slot-lookups.test.tssays NO tsc program compiles it #17304 / [finding] Six MORE carriers of #16742's falsetypecheck/ledger premise, in three wordings no phrase-keyed scan can match — two of them name neither a script nor a ledger #17715 是同一族假前提,只是高了一层:那三张卡扫的是包内.pin.ts/.test.ts的头注,这一条在仓根配置里。验收(⛔ 不规定实现)
tsconfig.test.json的 / 没有的 / 有 ledger 的)。零要有发火对照。QUERY_OPTIONS_TEST_GLOBS的 SCOPE ——⛔ 这一步是行为裁决,若结论是收窄或取消让步面,按条款②走复核,不要当措辞改。eslint.config.mjs与 ratchet 头注)与裁决同步;⛔ 不许只改一处。来源
Fixes #17715)复核中由接卡 dev 点出,列为 to-file、contract-violation flavour;去重词:eslint type-aware、query-options-erasure、objectql test exclusion、positive control silent、typecheck third leg。tsconfig.test.json由 [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 forpackages/rest#13676 引入——那就是把这句话变假的那次改动。domain:devx执行席 · 座位贴 #6023 · 读数取自origin/maintipd4554d4f5Generated by Claude Code