Skip to content

v17 verification — rollup of all 17 defects found working the #3909 checklist #4482

Closed

Description

@baozhoutao

Rollup of every defect found while working the v17 verification checklist on #3909. 17 issues, all open. Filed across four verification runs against main @ 1ee48bc60 (post-17.0.0-rc.1), driving a real showcase boot plus purpose-built probe stacks as two live principals.

This issue exists so the RC train has one place to see the damage and decide what blocks exit. Each item below is independently reproducible — the linked issue carries the exact requests and responses.

(Correction to the run-4 comment on #3909, which said "13 defects" — the count is 17. The grouped list there was right; the total was a miscount.)


1 — Security & data integrity (8)

These change who can read or write what, or leave the audit record untrue.

2 — Contract & envelope (6)

Declared contracts that do not hold, or refusals that break the ADR-0112 envelope.

3 — UI & docs (3)


Suggested triage for RC exit

Should block: #4467 (aggregate disclosure past every access control), and the #4433 + #4434 pair (an over-granting sharing rule with no in-product way to revoke it). Both are security properties the v17 release page actively advertises as fixed.

Strong candidates: #4447 and #4477 — both let a caller do something the declared contract forbids, and both are one-line-of-defence gaps rather than degraded UX. #4462 lands data in the wrong database silently.

Can ship with, worth fixing soon: the envelope group (#4431, #4435, #4436, #4437) — wrong status codes and missing error.code, all mechanical. #4432 and #4455 are narrower but both let a surface report success it did not achieve.

Docs/UI: #4476 is cheap and should land before RC exit because it misinforms upgraders. #4475 and #4478 are visible but non-destructive.

Two things that are not defects, listed so they are not re-litigated

  • /graphql discovery slot. The route correctly 404s, but discovery still reports services.graphql as an unavailable slot whose message invites someone to implement it — for a surface v17 deliberately removed, and contradicting the docs sweep's own reduction to 16 services. Whether to drop the slot or reword the remedy is a design call, so no issue was filed. Raised here for a decision.
  • Two stale checklist claims on v17 verification tracker — browser-verify every user-facing change in the 17.0.0 train #3909. The seeds item promises a Seeds: X inserted · Y updated · Z skipped banner that does not exist (the code deliberately collapses those into one count and uses · to separate sources); the os migrate meta item's "rewrites all three" reads as an in-place codemod, but it rewrites the stack snapshot (--out), not TypeScript sources. Both are checklist-text errors, not code defects.

Tracker: #3909 — 48 of 59 items verified; the 11 remaining are annotated inline with the issue blocking each.

Activity

  1. self-assigned this
    on Aug 1, 2026
  2. os-zhuang commented on Aug 1, 2026

    @os-zhuang
    Contributor

    认领与排期

    这 17 项已全部认领给 @os-zhuang,按子系统拆成 7 条分支并行推进,每条一个草稿 PR,独立过 CI、独立评审、独立合并——一条红了不阻塞其余六条。

    卡 分支后缀 覆盖
    1 -analytics #4467 #4437 #4475
    2 -sharing #4433 #4434
    3 -data-envelope #4447 #4435 #4436 #4441 #4431 #4483
    4 -datasource #4462 #4432 #4455 #4449
    5 -flow-approval #4477 #4466 #4470 #4469
    6 -docs #4476 #4486 #4452 #4485
    7 / 8 objectui #4478 / objectui#3144 #3134 #3129

    分支前缀统一为 claude/v17-verification-defects-gnf9e6。

    三处与本 rollup 之外的今日新 issue 合并同卡,因为它们与卡内缺陷同属一条代码路径:#4475 归入 analytics(同为 dataset 查询构造)、#4449 归入 #4455(同形:闸门在自己从未采集到的证据上关闭)、#4470/#4469 归入 approvals/resume 子系统。#4485 先修,避免它的绝对 50ms 墙钟断言把后面几条 PR 无端染红。

    每张卡的验收都要求真实启动复现:按 issue 原文的请求打一遍,确认从坏结果变成对的结果,而不是只看单测转绿。

    RC 退出的三个阻塞项(#4467、#4433+#4434)在第一波。


    Generated by Claude Code

  3. os-zhuang commented on Aug 2, 2026

    @os-zhuang
    Contributor

    17 项全部修复并合入 main

    缺陷 PR
    #4467 analytics 越权 · #4437 measure 字段校验 #4494
    #4433 授权不撤回 · #4434 DELETE 500 #4495
    #4431 sandbox 拒绝码 · #4435 PATCH/DELETE 200 · #4436 缺 error.code #4496
    #4476 文档标注为 spec 18 #4497
    #4477 resume 无校验 · #4466 越权记成普通审批 #4502 + #4517
    #4447 审计锚点 · #4441 lookup 引用完整性 #4511
    #4462 静默写 DEFAULT 库 · #4432 overlay 遮蔽 · #4455 扫描漏检 #4520
    #4475 KPI 归零 objectui#3150
    #4478 法定人数不渲染 objectui#3163

    顺带修复:#4483 $search 主键泄漏 · #4485 ReDoS 断言负载敏感 · #4486 IDataEngine 文档 · #4452 flow DSL README · #4449 未接线的 lint 规则 · #4469 僵尸审批请求 · #4470 验证 harness 绕开持久化。


    「两件不是缺陷」的处置

    /graphql 发现槽 —— 已在 #4451 解决,无需决策。 本 issue 记录该观察时基于 main @ 1ee48bc60;#4451(经 #4473 合入)已移除 CORE_SERVICE_PROVIDER 的 graphql 条目与 metadata-protocol discovery 表的 graphql: { route: '/graphql' },原地留下说明性墓碑注释。当前 main 上 graphql 仅剩两类出现:external-lookup.zod.ts 的协议类型枚举(连接外部 GraphQL API,与是否提供该面无关),以及记录本次移除的注释。发现面不再报告该槽位。

    两条陈旧的清单声明 —— 属 #3909 的文本错误,未在本轮改动。


    三处 issue 自身的归因不成立,已在对应 PR 更正

    修复过程中实测推翻了三条原始归因。照原文修改会改错位置:

    四个缺陷曾带绿灯发布,根因同属测试替身漂移

    已单独立项跟踪该模式(见下方新立 issue)。

    本轮新立的 issue(均未认领)

    #4513 /meta/objects 读构建产物而非注册表,与实际强制行为公开矛盾 · #4515 重启后挂起 run 取不到 screen(修复涉及协议破坏性变更)· #4518 bootStack({ databaseFile }) 数据不跨进程内重启 · #4521 overlay 保存与派发解析间的缓存滞后 · objectui#3151 非预设日期字符串静默降级 · objectui#3152 被取消的运行发出指标为空的 FAIL 评论

    仍需维护者决策

    本 rollup 的 17 项已全部关闭,随此评论一并关闭。


    Generated by Claude Code

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions