docs: add the v0.3.0 delivery report - #251
Conversation
中文交付报告:做了什么、拒绝了什么、与计划哪里不符、发布踩了哪五个坑。 三块是这份报告存在的理由: - §2 三个关键设计决定(单向取严、deny 不可被 bypassPermissions 豁免、 契约是策略不是边界)——决定了这层机制是"真的收紧"还是"看起来收紧"。 - §4 与计划不符的地方,含两条计划本身写错的判断。 - §6 发布五次失败的根因。v0.3.0 是本仓库第一个 tag,release.yml 从未跑过, 每修一个失败就往后推一步。其中 Node sidecar 哈希那条特别记了"修的是固定值 而不是放宽校验",以及"本地跑过脚本"恰恰是抓不到浅克隆 bug 的那种检查。 测试数按全量八个套件统计:1177 → 1415(+238)。此前 PR 描述里的 1414 少算了 根 scripts 套件。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Review — approve, no changesDocs only ( Worth merging for §4 and §6 specifically. A report that only lists what shipped is a press release; the parts that earn this one its own file are the ones a CHANGELOG structurally cannot hold:
§2's three design decisions are the right things to have argued in public, particularly contract One consequence worth noting: this documents 0.3.0 as published under |
The widened guard caught this the moment #251 landed on main: §7.1 of the delivery report tells readers to run `npm i -g @deepcode/cli`, which would 403 for the same reason the name it replaced did. The report is a dated snapshot and §7.1 is a record of what was decided at the time, so the decision stays on the page and the correction is appended to it rather than rewritten over it. The file joins the historical set for the same reason the other snapshots are in it. That the check found this by itself, on a document nobody would have thought to add to an allowlist, is the argument for scanning by exclusion. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Summary
v0.3.0 的中文交付报告 ——
docs/V0.3.0_REPORT.md。覆盖:做了什么、拒绝了什么、与计划哪里不符、发布踩了哪五个坑。纯文档 PR。
为什么单独写一份,而不是只留 CHANGELOG
CHANGELOG 回答"变了什么",这份回答"为什么这么定,以及哪里没做到"。三块内容是它存在的理由:
§2 三个关键设计决定 —— 评审时最值得看的部分,因为它们决定了这层机制是"真的收紧"还是"看起来收紧":
no-match永不获胜,所以没有契约文件时结果精确等于改造前,不是约等于。16 格合成表逐格枚举而非抽样。deny不可被bypassPermissions豁免 —— 本轮唯一刻意的不对称,也最值得争论。deny 是关于路径的常驻陈述,不是提示;让"跳过提示的模式"能清掉它,等于让契约最强的一句话同时最容易被关掉。security-model.md明确要求维护者别把它宣传成"秘密防护"。§4 与计划不符 —— 六条偏差,其中两条是计划本身写错了(PR 0 的"静默放行"前提、四客户端一致性测试的可验证范围)。未做的三项也直接列出。
§6 发布五次失败的根因 ——
v0.3.0是本仓库有史以来第一个 tag,release.yml从未跑过。两条单独记了教训:gen-release-notes.ts且输出正常,因为本地有完整历史。"我测过这个脚本"恰恰是抓不到这个 bug 的那种检查。一处数字更正
测试总数按全量八个套件统计为 1177 → 1415(+238)。此前几个 PR 描述里写的 1414 少算了根
scripts套件,报告用的是正确口径。Test plan
node scripts/check-docs.mjspnpm format:checkDocumentation
docs/V0.3.0_REPORT.mdREADME.md文档地图加入条目Release notes label
release-notes:internalRelated
收尾 #235–#250。详细决策记录见
docs/FLOATBOAT_ADOPTION_PLAN.md,调研见docs/research/floatboat.md。🤖 Generated with Claude Code