Commit f1cc3a3
`app.form.ts` 仍在给作者渲染八个 `retiredKey()` 墓碑键的输入控件 ——
`version` / `homePageId` / `objects` / `apis` / `sharing` / `embed` /
`mobileNavigation` / `aria`(issue 只点了后三个,全量扫出八个)。墓碑是
`z.never().optional()`,填进去不是静默丢弃,是整条 save 硬失败并抛出该键
的退役处方。八个控件全部移除,按套件惯例在原位留注释说明能力去向。
真正的价值在门这一侧:#3786 的对账断言用 `key ∈ shape` 判定「Zod 接受该
键」。在 `retiredKey()` 出现之前这两件事同义,之后不是了 —— 墓碑**按设计**
把键留在 walked shape 里(退役套件的 liveness 行正因为键还在才保留),于是
八个墓碑键对该断言永远为真,门绿着而作者拿到 422。
谓词收紧为「∈ shape 且不是墓碑」,双向都改:
- form-only 方向拆成两条独立断言,失败信息能分清「未声明→静默丢弃」与
「墓碑→硬失败」,后者更响也更早;
- zod-only 方向把墓碑键排除出「必须提供或立 ledger」的集合 —— 墓碑键的唯一
正确处置就是不提供。此前 `object.fields.conditionalRequired` 不被要求回填
纯属被一条无关的 `subset` ledger 条目挡住,是运气不是设计;
- ledger 的 `omit`/`subset` 自检改用 authorable 键计数,避免墓碑撑住一条
已失效的豁免。
检测器判 **schema 节点**(optional 内层是否 `z.never`),不匹配键名 —— 键名
清单本身就是 #3786 要消灭的手抄列表。这是 `build-schemas.ts` 里 JSON Schema
侧 `isRetired()`(`{ not: {} }`)的 zod 侧孪生。四条合成 schema 上的自检把
机制钉住(含 union 成员仍 live 时不算退役的安全方向),不依赖任何当期墓碑,
免得墓碑随版本退场后这条门悄悄变空转。
RED-first 实证:谓词收紧、表单未改时,`app` 那条用例红,恰好点名八个键;
摘掉输入后 41/41 绿。
表单输入变动会带走 i18n 抽取键,四个 metadata-forms bundle 按 merge 模式
重生成(纯删除 8 组);两个分区描述原文仍在宣传已退役能力(zh-CN 的
basics/navigation 甚至点名「版本」「首页」),按 bundle 值可手写的惯例一并
订正为真实语义。
Claude-Session: https://claude.ai/code/session_01ErbEDVAg1No9gdg1pgDAGB
Co-authored-by: Claude <noreply@anthropic.com>
1 parent 37e38d1 commit f1cc3a3
7 files changed
Lines changed: 263 additions & 152 deletions
File tree
- .changeset
- packages
- platform-objects/src/apps/translations
- spec/src
- system
- ui
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
Lines changed: 2 additions & 33 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
937 | 937 | | |
938 | 938 | | |
939 | 939 | | |
940 | | - | |
| 940 | + | |
941 | 941 | | |
942 | 942 | | |
943 | 943 | | |
944 | 944 | | |
945 | 945 | | |
946 | 946 | | |
947 | 947 | | |
948 | | - | |
| 948 | + | |
949 | 949 | | |
950 | 950 | | |
951 | 951 | | |
| |||
959 | 959 | | |
960 | 960 | | |
961 | 961 | | |
962 | | - | |
963 | | - | |
964 | | - | |
965 | 962 | | |
966 | 963 | | |
967 | 964 | | |
| |||
981 | 978 | | |
982 | 979 | | |
983 | 980 | | |
984 | | - | |
985 | | - | |
986 | | - | |
987 | | - | |
988 | | - | |
989 | | - | |
990 | | - | |
991 | | - | |
992 | | - | |
993 | | - | |
994 | | - | |
995 | | - | |
996 | | - | |
997 | | - | |
998 | | - | |
999 | | - | |
1000 | 981 | | |
1001 | 982 | | |
1002 | 983 | | |
| |||
1008 | 989 | | |
1009 | 990 | | |
1010 | 991 | | |
1011 | | - | |
1012 | | - | |
1013 | | - | |
1014 | | - | |
1015 | | - | |
1016 | | - | |
1017 | | - | |
1018 | | - | |
1019 | | - | |
1020 | | - | |
1021 | | - | |
1022 | | - | |
1023 | 992 | | |
1024 | 993 | | |
1025 | 994 | | |
| |||
Lines changed: 2 additions & 33 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
937 | 937 | | |
938 | 938 | | |
939 | 939 | | |
940 | | - | |
| 940 | + | |
941 | 941 | | |
942 | 942 | | |
943 | 943 | | |
944 | 944 | | |
945 | 945 | | |
946 | 946 | | |
947 | 947 | | |
948 | | - | |
| 948 | + | |
949 | 949 | | |
950 | 950 | | |
951 | 951 | | |
| |||
959 | 959 | | |
960 | 960 | | |
961 | 961 | | |
962 | | - | |
963 | | - | |
964 | | - | |
965 | 962 | | |
966 | 963 | | |
967 | 964 | | |
| |||
981 | 978 | | |
982 | 979 | | |
983 | 980 | | |
984 | | - | |
985 | | - | |
986 | | - | |
987 | | - | |
988 | | - | |
989 | | - | |
990 | | - | |
991 | | - | |
992 | | - | |
993 | | - | |
994 | | - | |
995 | | - | |
996 | | - | |
997 | | - | |
998 | | - | |
999 | | - | |
1000 | 981 | | |
1001 | 982 | | |
1002 | 983 | | |
| |||
1008 | 989 | | |
1009 | 990 | | |
1010 | 991 | | |
1011 | | - | |
1012 | | - | |
1013 | | - | |
1014 | | - | |
1015 | | - | |
1016 | | - | |
1017 | | - | |
1018 | | - | |
1019 | | - | |
1020 | | - | |
1021 | | - | |
1022 | | - | |
1023 | 992 | | |
1024 | 993 | | |
1025 | 994 | | |
| |||
Lines changed: 2 additions & 33 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
937 | 937 | | |
938 | 938 | | |
939 | 939 | | |
940 | | - | |
| 940 | + | |
941 | 941 | | |
942 | 942 | | |
943 | 943 | | |
944 | 944 | | |
945 | 945 | | |
946 | 946 | | |
947 | 947 | | |
948 | | - | |
| 948 | + | |
949 | 949 | | |
950 | 950 | | |
951 | 951 | | |
| |||
959 | 959 | | |
960 | 960 | | |
961 | 961 | | |
962 | | - | |
963 | | - | |
964 | | - | |
965 | 962 | | |
966 | 963 | | |
967 | 964 | | |
| |||
981 | 978 | | |
982 | 979 | | |
983 | 980 | | |
984 | | - | |
985 | | - | |
986 | | - | |
987 | | - | |
988 | | - | |
989 | | - | |
990 | | - | |
991 | | - | |
992 | | - | |
993 | | - | |
994 | | - | |
995 | | - | |
996 | | - | |
997 | | - | |
998 | | - | |
999 | | - | |
1000 | 981 | | |
1001 | 982 | | |
1002 | 983 | | |
| |||
1008 | 989 | | |
1009 | 990 | | |
1010 | 991 | | |
1011 | | - | |
1012 | | - | |
1013 | | - | |
1014 | | - | |
1015 | | - | |
1016 | | - | |
1017 | | - | |
1018 | | - | |
1019 | | - | |
1020 | | - | |
1021 | | - | |
1022 | | - | |
1023 | 992 | | |
1024 | 993 | | |
1025 | 994 | | |
| |||
Lines changed: 4 additions & 35 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
929 | 929 | | |
930 | 930 | | |
931 | 931 | | |
932 | | - | |
| 932 | + | |
933 | 933 | | |
934 | 934 | | |
935 | 935 | | |
936 | | - | |
| 936 | + | |
937 | 937 | | |
938 | 938 | | |
939 | 939 | | |
940 | | - | |
| 940 | + | |
941 | 941 | | |
942 | 942 | | |
943 | 943 | | |
944 | 944 | | |
945 | 945 | | |
946 | 946 | | |
947 | 947 | | |
948 | | - | |
| 948 | + | |
949 | 949 | | |
950 | 950 | | |
951 | 951 | | |
| |||
959 | 959 | | |
960 | 960 | | |
961 | 961 | | |
962 | | - | |
963 | | - | |
964 | | - | |
965 | 962 | | |
966 | 963 | | |
967 | 964 | | |
| |||
981 | 978 | | |
982 | 979 | | |
983 | 980 | | |
984 | | - | |
985 | | - | |
986 | | - | |
987 | | - | |
988 | | - | |
989 | | - | |
990 | | - | |
991 | | - | |
992 | | - | |
993 | | - | |
994 | | - | |
995 | | - | |
996 | | - | |
997 | | - | |
998 | | - | |
999 | | - | |
1000 | 981 | | |
1001 | 982 | | |
1002 | 983 | | |
| |||
1008 | 989 | | |
1009 | 990 | | |
1010 | 991 | | |
1011 | | - | |
1012 | | - | |
1013 | | - | |
1014 | | - | |
1015 | | - | |
1016 | | - | |
1017 | | - | |
1018 | | - | |
1019 | | - | |
1020 | | - | |
1021 | | - | |
1022 | | - | |
1023 | 992 | | |
1024 | 993 | | |
1025 | 994 | | |
| |||
0 commit comments