Skip to content

docs(spec): 重测并改写 src/data 四处过期的 post-#5702/#5710 状态句(#6993) - #7054

Merged
os-project-manager merged 1 commit into
mainfrom
claude/issue-6993-expired-status-census
Aug 9, 2026
Merged

docs(spec): 重测并改写 src/data 四处过期的 post-#5702/#5710 状态句(#6993)#7054
os-project-manager merged 1 commit into
mainfrom
claude/issue-6993-expired-status-census

Conversation

@os-project-manager

Copy link
Copy Markdown
Collaborator

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'
driver-sql(better-sqlite3 :memory:)['1','2']['2'](精确)['1']
driver-sqlite-wasm(sql.js 引擎,继承)['1','2']['2']['1']
driver-turso local['1','2']['2']['1']
driver-turso remote(stub 传输,独立编译器)['1','2']['2']['1']
driver-memory 查询路径INVALID_FILTER/400['1','2'](全 Unicode 折叠)['1','2']
driver-memory 参考匹配器INVALID_FILTER/400敏感(false/true)
driver-mongodb translateFilterINVALID_FILTER/400降为 $regex+$options:'i'(硬编码仍在)
objectql having拒(裸 Error,见普查 c)敏感
formula matchesFilterCondition静默 false,非拒收(已评论至 #6520)敏感
service-analytics compileScopedFilterToSqlREAD_SCOPE_COMPILE_FAILED/500 fail-closed编译为 LIKE ? 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 全文逐字
driver-sqlINVALID_FILTER/400是($regex 与 $options 各自的 why 均逐字)
driver-sqlite-wasm(继承)INVALID_FILTER/400
driver-turso local / remoteINVALID_FILTER/400是(remote 为独立 emitter,前缀 [RemoteTransport])
driver-memoryINVALID_FILTER/400
driver-mongodbINVALID_FILTER/400
objectql havingundefined / undefined(裸 Error)

→ 五面全部逐字打印处方;信封半边四个驱动面齐,having 缺 —— 超出本卡围栏(行为改动),已立 #7047,站点 3 的改写如实点名。

四站点改写(E22:日期化再验证 + 显式证伪标记)

  1. filter-text-conformance.ts Status 节:旧「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 in packages/spec/src/data — including "$icontains … implemented by nobody" in the very file #6947's fix points @see at #6993)」,记分指向 conformance 台账;$regex 顺序约束段改为已发生的历史(plugin-auth: better-auth 的 contains 被译成裸 $regex,用户输入当正则求值 —— 且是 $regex 退役唯一挡路的生产者 #5710 已翻转生产者);@see 标签同步(5702 landed;补 6520/6682)。
  2. 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 in packages/spec/src/data — including "$icontains … implemented by nobody" in the very file #6947's fix points @see at #6993)」;参考求值器的论证保留(它现在仍是驱动运行之间守表的 oracle)。
  3. 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 → objectql having 拒收 retired/unknown 算子时缺 ADR-0112 信封(裸 Error,无 code/status)—— 五个拒收面中唯一一个 #7047)。
  4. filter-text-conformance.ts$contains 族 case 注释(卡片写的 filter.zod.ts:227,实际在本文件 :227 —— 报告中已更正锚点):归属改 drivers(memory, mongodb): the $contains family 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:generated10/10 生成物 gate 全绿(authorable-surface/**json-schema.manifest/**authorable-defaults/.base.jsonapi-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。
  • 反向验证方向,先判后测:预测 —— 纯注释改动,正反两个方向都不该有红(fix(spec): stop teaching the retired ETL layer as a live retry surface in flow.zod.ts (#6630, part 2) #6753:如实说明);实测一致 —— 改动前后同套断言全绿,证据是上面三张普查表与 pin 扫描,不是某个翻红的测试。

范围外产出

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

…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
@vercel

vercelBot commented Aug 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
ProjectDeploymentActionsUpdated (UTC)
objectstackIgnoredIgnoredAug 9, 2026 11:55am

Request Review

@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 1 package(s): @objectstack/spec.

106 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:

  • content/docs/ai/agents.mdx(via @objectstack/spec)
  • content/docs/ai/skills-reference.mdx(via @objectstack/spec)
  • content/docs/ai/skills.mdx(via @objectstack/spec)
  • content/docs/api/client-sdk.mdx(via @objectstack/spec)
  • content/docs/api/environment-routing.mdx(via @objectstack/spec)
  • content/docs/api/error-catalog.mdx(via @objectstack/spec)
  • content/docs/api/error-handling-client.mdx(via @objectstack/spec)
  • content/docs/api/error-handling-server.mdx(via @objectstack/spec)
  • content/docs/api/index.mdx(via @objectstack/spec)
  • content/docs/automation/approvals.mdx(via @objectstack/spec)
  • content/docs/automation/connectors.mdx(via @objectstack/spec)
  • content/docs/automation/flows.mdx(via @objectstack/spec)
  • content/docs/automation/hook-bodies.mdx(via packages/spec)
  • content/docs/automation/hooks.mdx(via @objectstack/spec)
  • content/docs/automation/index.mdx(via @objectstack/spec)
  • content/docs/automation/webhooks.mdx(via @objectstack/spec)
  • content/docs/automation/workflows.mdx(via @objectstack/spec)
  • content/docs/concepts/architecture.mdx(via @objectstack/spec)
  • content/docs/concepts/design-principles.mdx(via packages/spec)
  • content/docs/concepts/index.mdx(via @objectstack/spec)
  • content/docs/concepts/metadata-driven.mdx(via @objectstack/spec)
  • content/docs/concepts/metadata-lifecycle.mdx(via packages/spec)
  • content/docs/concepts/north-star.mdx(via @objectstack/spec)
  • content/docs/data-modeling/analytics.mdx(via @objectstack/spec)
  • content/docs/data-modeling/drivers.mdx(via @objectstack/spec)
  • content/docs/data-modeling/external-datasources.mdx(via @objectstack/spec)
  • content/docs/data-modeling/field-types.mdx(via @objectstack/spec)
  • content/docs/data-modeling/fields.mdx(via @objectstack/spec)
  • content/docs/data-modeling/formulas.mdx(via @objectstack/spec)
  • content/docs/data-modeling/index.mdx(via @objectstack/spec)
  • content/docs/data-modeling/objects.mdx(via @objectstack/spec)
  • content/docs/data-modeling/queries.mdx(via @objectstack/spec)
  • content/docs/data-modeling/schema-design.mdx(via @objectstack/spec)
  • content/docs/data-modeling/seed-data.mdx(via @objectstack/spec)
  • content/docs/data-modeling/validation-rules.mdx(via @objectstack/spec)
  • content/docs/data-modeling/validation.mdx(via @objectstack/spec)
  • content/docs/deployment/cli.mdx(via @objectstack/spec)
  • content/docs/deployment/tenancy-modes.mdx(via @objectstack/spec)
  • content/docs/deployment/troubleshooting.mdx(via @objectstack/spec)
  • content/docs/deployment/validating-metadata.mdx(via @objectstack/spec)
  • content/docs/getting-started/build-with-claude-code.mdx(via @objectstack/spec)
  • content/docs/getting-started/common-patterns.mdx(via @objectstack/spec)
  • content/docs/getting-started/examples.mdx(via @objectstack/spec)
  • content/docs/getting-started/quick-reference.mdx(via @objectstack/spec)
  • content/docs/getting-started/quick-start.mdx(via @objectstack/spec)
  • content/docs/getting-started/your-first-project.mdx(via @objectstack/spec)
  • content/docs/kernel/cluster.mdx(via @objectstack/spec)
  • content/docs/kernel/contracts/auth-service.mdx(via packages/spec)
  • content/docs/kernel/contracts/cache-service.mdx(via packages/spec)
  • content/docs/kernel/contracts/data-engine.mdx(via @objectstack/spec)
  • content/docs/kernel/contracts/index.mdx(via @objectstack/spec)
  • content/docs/kernel/contracts/metadata-service.mdx(via packages/spec)
  • content/docs/kernel/contracts/storage-service.mdx(via @objectstack/spec)
  • content/docs/kernel/index.mdx(via packages/spec)
  • content/docs/kernel/runtime-services/data-service.mdx(via @objectstack/spec)
  • content/docs/kernel/runtime-services/email-service.mdx(via packages/spec)
  • content/docs/kernel/runtime-services/examples.mdx(via @objectstack/spec)
  • content/docs/kernel/runtime-services/index.mdx(via packages/spec)
  • content/docs/kernel/runtime-services/queue-service.mdx(via packages/spec)
  • content/docs/kernel/runtime-services/sharing-service.mdx(via @objectstack/spec)
  • content/docs/kernel/runtime-services/sms-service.mdx(via packages/spec)
  • content/docs/kernel/runtime-services/storage-service.mdx(via @objectstack/spec)
  • content/docs/kernel/services-checklist.mdx(via @objectstack/spec)
  • content/docs/kernel/services.mdx(via @objectstack/spec)
  • content/docs/permissions/authorization.mdx(via @objectstack/spec)
  • content/docs/permissions/permission-sets.mdx(via @objectstack/spec)
  • content/docs/permissions/permissions-matrix.mdx(via @objectstack/spec)
  • content/docs/permissions/positions.mdx(via @objectstack/spec)
  • content/docs/permissions/rls.mdx(via @objectstack/spec)
  • content/docs/permissions/sharing-rules.mdx(via @objectstack/spec)
  • content/docs/permissions/system-context.mdx(via packages/spec)
  • content/docs/plugins/adding-a-metadata-type.mdx(via @objectstack/spec)
  • content/docs/plugins/development.mdx(via @objectstack/spec)
  • content/docs/plugins/index.mdx(via @objectstack/spec)
  • content/docs/plugins/packages.mdx(via @objectstack/spec)
  • content/docs/protocol/backward-compatibility.mdx(via @objectstack/spec)
  • content/docs/protocol/diagram.mdx(via packages/spec)
  • content/docs/protocol/kernel/config-resolution.mdx(via @objectstack/spec)
  • content/docs/protocol/kernel/http-protocol.mdx(via @objectstack/spec)
  • content/docs/protocol/kernel/i18n-standard.mdx(via @objectstack/spec)
  • content/docs/protocol/kernel/index.mdx(via @objectstack/spec)
  • content/docs/protocol/kernel/lifecycle.mdx(via @objectstack/spec)
  • content/docs/protocol/kernel/plugin-spec.mdx(via @objectstack/spec)
  • content/docs/protocol/knowledge.mdx(via @objectstack/spec)
  • content/docs/protocol/objectql/index.mdx(via @objectstack/spec)
  • content/docs/protocol/objectql/query-syntax.mdx(via @objectstack/spec)
  • content/docs/protocol/objectql/schema.mdx(via @objectstack/spec)
  • content/docs/protocol/objectql/security.mdx(via packages/spec)
  • content/docs/protocol/objectql/state-machine.mdx(via @objectstack/spec)
  • content/docs/protocol/objectui/actions.mdx(via @objectstack/spec)
  • content/docs/protocol/objectui/concept.mdx(via @objectstack/spec)
  • content/docs/protocol/objectui/index.mdx(via @objectstack/spec)
  • content/docs/protocol/objectui/layout-dsl.mdx(via @objectstack/spec)
  • content/docs/protocol/objectui/record-alert.mdx(via @objectstack/spec)
  • content/docs/protocol/objectui/widget-contract.mdx(via @objectstack/spec)
  • content/docs/ui/actions.mdx(via @objectstack/spec)
  • content/docs/ui/apps.mdx(via @objectstack/spec)
  • content/docs/ui/create-vs-edit-form.mdx(via @objectstack/spec)
  • content/docs/ui/dashboards.mdx(via @objectstack/spec)
  • content/docs/ui/field-grouping-and-order.mdx(via @objectstack/spec)
  • content/docs/ui/forms.mdx(via @objectstack/spec)
  • content/docs/ui/index.mdx(via @objectstack/spec)
  • content/docs/ui/public-data-collection.mdx(via @objectstack/spec)
  • content/docs/ui/setup-app.mdx(via @objectstack/spec)
  • content/docs/ui/translations.mdx(via @objectstack/spec)
  • content/docs/ui/views.mdx(via @objectstack/spec)

7 release-owned page(s) also reference the affected code. These are read-only:

  • content/docs/releases/implementation-status.mdx(via @objectstack/spec)
  • content/docs/releases/index.mdx(via @objectstack/spec)
  • content/docs/releases/v12.mdx(via @objectstack/spec)
  • content/docs/releases/v13.mdx(via @objectstack/spec)
  • content/docs/releases/v16.mdx(via @objectstack/spec)
  • content/docs/releases/v17.mdx(via @objectstack/spec)
  • content/docs/releases/v9.mdx(via @objectstack/spec)

content/docs/releases/ is RELEASE-OWNED (AGENTS.md "Documentation Guardrails"): release
notes are written centrally at release time, and a code PR that edits them is the exact PR
that guardrail exists to stop. They are still audited — read-only. If one of them is actually
wrong, file an issue or open a dedicated docs-only PR; do not edit it here.

Advisory only. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs origin/main → pass the list as args.docs.

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

Labels

documentationImprovements or additions to documentationprotocol:datasize/mteststooling

Projects

None yet

2 participants

@os-project-manager@claude