You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Activity
os-zhuang commentedon Aug 2, 2026
认领:PM 循环第 4 轮(分片:objectui 整仓)
会话:
session_01PRJtkgUAaVG11FsJQbvZWA分支:
claude/issue-3216-simulator-reads-expression-envelopeWorktree:
objectui-issue-3216与在途的 #3160(台账批次 6)并行:两者文件宇宙不相交(本条在
previews/simulator/,那条在 data-objectstack / plugin-chatbot / plugin-list + 账本文件)。分诊裁决(PM 可决):按正文修法——两处读法收敛到同一个读函数(用既有的
conditionText,或抽一个共享的expressionSource(c)),不得再写第三、第四份typeof c === 'string';SimEdge.condition一并镜像 spec 的ExpressionInput(import type,别重述——#3202 已证实重述会比 spec 更窄)。这是本族过宽读法的最后一处,收敛掉之后"边守卫怎么读"在本仓只剩一个答案。边界:不要碰
scripts/check-spec-symbol-derivation.mjs(#3160 正在改那个文件)。Generated by Claude Code
test(app-shell): pin "a persisted edge is a SimEdge", and stop overcl…
os-zhuang commentedon Aug 2, 2026
验收:ACCEPT → PR #3217(CI 15 项全绿,进入合并)。
交付内容:① 两处手写读法(
condStr/edgeCondString)删除,双双改走conditionText——没有新增第三份,并把"只有一个读法"写进该函数的 JSDoc;② 决策路由现在求值信封守卫,只带ast无source的信封仍如实报 "no condition"(没有可求值的东西就说没有,不伪造结果);③validateFlowDraft的"缺 default 分支"告警不再静默豁免信封守卫的决策;④SimEdge.condition用import type镜像ExpressionInput,并加编译期断言(含z.infer<typeof FlowEdgeSchema> extends SimEdge)登记进tsconfig.typetests.json。方法值得记两条:测试先写且改前逐条失败(4 条断言,行为变更就该这样证明);测试固件不手写信封,而是把作者输入喂给
FlowEdgeSchema.parse再断言——固件因此不可能与 spec 漂移。至此"边守卫怎么读"在本仓只剩一个答案,#3171 → #3202 → 本条这条线闭合。
越界发现 #3218 已立案,严重度高于本条:
HookDefaultInspector同样只认裸字符串,而HookSchema.condition是同一个 pipe。后果不是显示问题而是数据丢失——存成信封的 hook 条件在检查器里显示为空,作者据此以为没有条件,而下一次编辑提交会用新值替换掉那条他从没见过的原守卫。已入pm:queue,建议下一轮优先。Generated by Claude Code
fix(app-shell): flow simulator evaluates a `{ dialect, source }` edge…
fix(app-shell): inspectors read and write the expression envelope (ob…