docs(spec): 重测并改写 src/data 四处过期的 post-#5702/#5710 状态句(#6993) - #7054
Conversation
…us claims (#6993) Each of the four sites named a future issue as the gap; the issue landed; nothing related the two (the #6947 drift class). Every replacement number comes from a measurement executed on this branch — the five-driver / auxiliary-face scoreboard probes, a fresh run of scripts/check-driver-conformance.mjs, and a five-face $regex refusal audit — never from the card's own (explicitly to-be-re-measured) numbers. Sites, all prose-only: - filter-text-conformance.ts Status section: "implemented by nobody" / "two of five" / "every driver carries a DEBT row" → measured post-#5702/ #6518 state, wired to the gate-maintained ledger instead of hand counts. - filter-text-conformance.test.ts header: "no backend answers yet" → falsified with date stamp; the reference-evaluator argument kept. - filter.zod.ts $regex retirement block: the "hard order" future plan → shipped history, plus the measured per-face envelope census (#7047 for the one open half). - filter-text-conformance.ts $contains-family comment: attribution moved from #5702 to #6682; mongo's $options:'i' fold verified still present. Two same-file case notes contradicting the corrected sites were updated with them (disclosed on #6993 before implementing). Behaviour untouched: no operator added, no refusal changed, no assertion weakened; all 10 generated artifacts verified byte-identical. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018ffcE95NaMJcL9XJ9VDYgk
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
📓 Docs Drift CheckThis PR changes 1 package(s): 106 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:
⛔ 7 release-owned page(s) also reference the affected code. These are read-only:
|
Fixes #6993
四处站点均为 #6947 命名的失效类:状态句把某个未来 issue 写成缺口,issue 落地后没人回来改句子。本 PR 每个替换数字都来自本分支上执行的测量(E20:执行,不 grep ——
driver-sqlite-wasm继承编译器、自身零 case 臂,任何文本扫描都会少算),卡片上标注「待重测」的数字一个都没有照抄。纯注释/文本改动,行为零变化。普查 (a):
$icontains+$contains族记分板命令:每包一个临时 vitest probe(
probe-6993.census.test.ts,已删除,未随 PR 提交),fixture 两行{id:'1',name:'ACME CORP'}/{id:'2',name:'acme corp'},在场对照$eq:'acme corp'→['2'],缺席对照$contains:'zzz'→[](所有面对照全过);完整 JSONL 输出 68 行,附于 dev 报告。$icontains:'acme'$contains:'acme'$contains:'ACME'['1','2']['2'](精确)['1']['1','2']['2']['1']['1','2']['2']['1']['1','2']['2']['1']INVALID_FILTER/400['1','2'](全 Unicode 折叠)['1','2']INVALID_FILTER/400translateFilterINVALID_FILTER/400$regex+$options:'i'(硬编码仍在)havingmatchesFilterConditionfalse,非拒收(已评论至 #6520)compileScopedFilterToSqlREAD_SCOPE_COMPILE_FAILED/500 fail-closedLIKE ? ESCAPE ?(PG 上精确)→ 五驱动中三个应答
$icontains;$contains族在 SQL 三族精确、memory 查询路径 + mongodb 仍折叠(#6682)。普查 (b):
FILTER_TEXT_CASES覆盖与 DEBT 行命令:
node scripts/check-driver-conformance.mjs(判据 = 各驱动 suite import 整张 case-set):FILTER_TEXT 列ok= driver-sql / driver-sqlite-wasm / driver-turso;DEBT= driver-memory、driver-mongodb(两行,均指 #6682);合计36 covered / 4 DEBT(其中 FILTER_TEXT 2 行)/ 0 exempt。改写正文按 E17 指向该 gate 台账(它对 import 双向 RECONCILED),不再手写「N of five」。普查 (c):五面
$regex拒收审计对每面执行
{ $regex:'ac.*' }、{ $regex,$options }、悬空{ $options:'i' },读code/status,并用RETIRED_FILTER_OPERATORS[op].why做全文包含比对:code/statuswhy全文逐字INVALID_FILTER/400INVALID_FILTER/400INVALID_FILTER/400[RemoteTransport])INVALID_FILTER/400INVALID_FILTER/400havingError)→ 五面全部逐字打印处方;信封半边四个驱动面齐,
having缺 —— 超出本卡围栏(行为改动),已立 #7047,站点 3 的改写如实点名。四站点改写(E22:日期化再验证 + 显式证伪标记)
filter-text-conformance.tsStatus 节:旧「NO backend answers this table yet / implemented by nobody / two of five / every driver carries a DEBT row」→ 引述旧句 + 「was true in the spec:$regex按 ADR-0049 退役 +$icontains入算子词表与 FILTER_LOGIC_CASES(#4706 裁决 B 案 · 契约半边,先行) #5701 era and has since been falsified by drivers:$regex响亮拒收 +$icontains各后端实现(#4706 裁决 B 案 · 驱动半边) #5702 (closed 2026-08-08) and drivers(sql family): 文本算子的大小写折叠是「方言的」而非「契约的」——$contains在 SQLite 过折叠、$icontains在 PG/MySQL 过折叠 #6518 (re-verified 2026-08 … [finding] Three more expired post-#5702/#5710 status claims inpackages/spec/src/data— including "$icontains… implemented by nobody" in the very file #6947's fix points@seeat #6993)」,记分指向 conformance 台账;$regex顺序约束段改为已发生的历史(plugin-auth: better-auth 的contains被译成裸$regex,用户输入当正则求值 —— 且是$regex退役唯一挡路的生产者 #5710 已翻转生产者);@see标签同步(5702 landed;补 6520/6682)。filter-text-conformance.test.ts头部:旧「a standard no backend answers yet … nothing executes it」→ 「landed as … That premise was true when this file was written and has since been falsified … (re-verified 2026-08, [finding] Three more expired post-#5702/#5710 status claims inpackages/spec/src/data— including "$icontains… implemented by nobody" in the very file #6947's fix points@seeat #6993)」;参考求值器的论证保留(它现在仍是驱动运行之间守表的 oracle)。filter.zod.tsRETIRED_FILTER_OPERATORS退役块:旧「Wiring them to it is drivers:$regex响亮拒收 +$icontains各后端实现(#4706 裁决 B 案 · 驱动半边) #5702 … Hard order: plugin-auth: better-auth 的contains被译成裸$regex,用户输入当正则求值 —— 且是$regex退役唯一挡路的生产者 #5710 flips the producer, then drivers:$regex响亮拒收 +$icontains各后端实现(#4706 裁决 B 案 · 驱动半边) #5702 …」→ 「Both gates have fired since … shipped history, not pending advice」+ 普查 (c) 的逐面结果(四驱动面信封齐、having裸 Error → objectqlhaving拒收 retired/unknown 算子时缺 ADR-0112 信封(裸Error,无code/status)—— 五个拒收面中唯一一个 #7047)。filter-text-conformance.ts$contains族 case 注释(卡片写的filter.zod.ts:227,实际在本文件 :227 —— 报告中已更正锚点):归属改 drivers(memory, mongodb): the$containsfamily still folds case — the last two backends left on the wrong side of #4706 Q2 = A #6682,事实保留 —— mongo 的$options:'i'折叠仍在(执行translateFilter验证,见表 a)。披露的最小扩展(实施前已评论在 #6993):同文件两条 case
note:与改写正文直接矛盾,一并修正 —— 「On SQLite/turso today LIKE folds ASCII and returns both」(#6518 后为假)与「#5710 flips that producer BEFORE …」(改过去时)。仅 note 文本;filter/expected/mustMention/code未动,pin 扫描(字面 +toMatch(/…/)两种拼法,#6854)确认无测试钉住旧句。渲染输入核查(逐站点,实测)
grep -rln "RETIRED_FILTER_OPERATORS|Hard order|5710 flips|implemented by nobody|no backend answers" content/docs/→ 唯一命中content/docs/protocol/objectql/query-syntax.mdx(手写页,仅提及常量名,未引用任何过期句)。四站点均不落入content/docs/references/**(站点 2 为测试文件、站点 4 为行内注释;站点 1/3 文本在生成树中零命中),check:docs与全部生成物 gate 复核通过 → 无需再生成。验证
pnpm --filter @objectstack/spec build && check:generated→ 10/10 生成物 gate 全绿(authorable-surface/**、json-schema.manifest/**、authorable-defaults/、.base.json、api-surface/、content/docs/references/**逐字节不变 —— 验收围栏)。pnpm --filter @objectstack/spec test(maxWorkers=2)→ 351 文件 / 9131 测试全过。pnpm --filter @objectstack/spec typecheck→ OK;test-typecheck-debt.json前后diff为空(58 files / 266 errors,不变)。node scripts/check-nul-bytes.mjs→ OK;被改文件控制字节自扫 clean。范围外产出
having拒收 retired/unknown 算子时缺 ADR-0112 信封(裸Error,无code/status)—— 五个拒收面中唯一一个 #7047(新立,未指派):objectqlhaving拒收 retired/unknown 算子缺 ADR-0112 信封(裸Error)—— 五面普查的直接发现,修复属行为改动。$icontains(driver-memory 两面 / driver-mongodb / objectqlhaving/ formula)—— SQL 族已实现,同一 filter 在内存 double 上抛错 #6520 评论:formula 面对$icontains/$regex是静默false而非响亮拒收,与该卡现状表的「❌」不同类,建议实现臂时一并定夺。Changeset:
.changeset/filter-text-status-claims-remeasured.md(@objectstack/spec: patch)。🤖 Generated with Claude Code
https://claude.ai/code/session_018ffcE95NaMJcL9XJ9VDYgk
Generated by Claude Code