#3786 模式排查的 objectui 侧已完结(objectui#3017 → objectui#3019 + objectui#3043):九处手抄清单里八处已改为从 @objectstack/spec / @object-ui/types 单一来源派生,唯一无法派生的就剩 ImportWizard 预检的布尔 token 表 —— 因为 spec 没有导出它。
现状
- 唯一来源:服务端
import-coerce.ts 的 BOOL_TRUE / BOOL_FALSE(各 10 token:true/t/yes/y/1/on/是/对/✓/√ 与 false/f/no/n/0/off/否/错/✗/×)。 - objectui 侧镜像:
packages/plugin-grid/src/importCoercionContract.ts,现以「true/false 两集 + 不相交/trim-lowercase 归一化断言 + 钉扎清单」当闸门(objectui#3043)。闸门能把本仓的手滑改动变成红测试,但对服务端的改动依然只能靠人对表 —— 预检与服务端一旦不一致,要么预览把服务端能收的值标红,要么放行的值被服务端以 invalid_boolean 拒掉。
请求
- 从
@objectstack/spec(建议 data 子路径,与 REFERENCE_VALUE_TYPES 同处)导出这两个 token 集; - 服务端
import-coerce.ts 改为消费 spec 导出(删掉本地表); - objectui 随后把
importCoercionContract.ts 的本地集换成 import、删除钉扎清单 —— 退役路径已写在该文件与其测试的头注释里。
顺带(可选)
服务端 REFERENCE_TYPES = new Set([...REFERENCE_VALUE_TYPES, 'reference']) 与 objectui 的 REFERENCE_IMPORT_TYPES 现在是同链但各自 + 'reference';若 spec 直接导出含 'reference' 的完整集,两侧的字面量残留也能一并收敛(objectui 侧测试已埋了「spec 若纳入 'reference' 则提示退役别名」的断言)。
🤖 Generated with Claude Code
#3786 模式排查的 objectui 侧已完结(objectui#3017 → objectui#3019 + objectui#3043):九处手抄清单里八处已改为从
@objectstack/spec/@object-ui/types单一来源派生,唯一无法派生的就剩 ImportWizard 预检的布尔 token 表 —— 因为 spec 没有导出它。现状
import-coerce.ts的BOOL_TRUE/BOOL_FALSE(各 10 token:true/t/yes/y/1/on/是/对/✓/√与false/f/no/n/0/off/否/错/✗/×)。packages/plugin-grid/src/importCoercionContract.ts,现以「true/false 两集 + 不相交/trim-lowercase 归一化断言 + 钉扎清单」当闸门(objectui#3043)。闸门能把本仓的手滑改动变成红测试,但对服务端的改动依然只能靠人对表 —— 预检与服务端一旦不一致,要么预览把服务端能收的值标红,要么放行的值被服务端以invalid_boolean拒掉。请求
@objectstack/spec(建议data子路径,与REFERENCE_VALUE_TYPES同处)导出这两个 token 集;import-coerce.ts改为消费 spec 导出(删掉本地表);importCoercionContract.ts的本地集换成 import、删除钉扎清单 —— 退役路径已写在该文件与其测试的头注释里。顺带(可选)
服务端
REFERENCE_TYPES = new Set([...REFERENCE_VALUE_TYPES, 'reference'])与 objectui 的REFERENCE_IMPORT_TYPES现在是同链但各自 + 'reference';若 spec 直接导出含'reference'的完整集,两侧的字面量残留也能一并收敛(objectui 侧测试已埋了「spec 若纳入 'reference' 则提示退役别名」的断言)。🤖 Generated with Claude Code