陈化冰 case(v1 plan 显示):
K04 chain.status=closed(alt-closed by 种植 16;17;26;46)
K04 chain.target=true(老 plan reason 还含 K04)
→ 前端 TargetTimelineRow 强制按 discovered 渲染 ★潜在新链 + stage=1 hint
→ 但底部 HistoryStrip / ChainSidebarRow 看 status=closed 渲染 ✓已闭环
→ 同一条 chain 两个组件给出矛盾展示
修(双侧防御):
1. plan-aggregate.assemble 加约束:
if (c.status === 'closed') { c.target = false; continue; }
closed = 临床已结束(拔了/被替代/全治完);即使 SQL 老 reason 仍命中也不 ★
(SQL 召回老 closed chain 是 data race / 老 plan 残留,不该误导客服)
2. chain-viz.findFocused:
chains.find((c) => c.target && c.status !== 'closed')
双层防御,即使后端漏改也不显示 closed 在 focused
验证(陈化冰 v1 plan superseded,5 reasons 仍含 K04):
改前:K04 closed chain target=true → focused 错位
改后:K04 chain target=false → focused = K00 先天/萌出处置·46(下一个 target=true)
底部历史 ✓已闭环 正常显示
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| adapt-data.ts | Loading commit data... | |
| chain-viz.tsx | Loading commit data... | |
| drawer.tsx | Loading commit data... | |
| emr-soap-view.tsx | Loading commit data... | |
| execution-api.ts | Loading commit data... | |
| facts-timeline.tsx | Loading commit data... | |
| mock-data.ts | Loading commit data... | |
| outcome-form.tsx | Loading commit data... | |
| persona-display.ts | Loading commit data... | |
| plan-detail-app.tsx | Loading commit data... | |
| plan-detail-types.ts | Loading commit data... | |
| reason-line.tsx | Loading commit data... | |
| script-viewer.tsx | Loading commit data... | |
| shared.tsx | Loading commit data... | |
| task-drawer.tsx | Loading commit data... | |
| use-script-stream.ts | Loading commit data... | |
| use-summary-stream.ts | Loading commit data... |