fix(runtime): resolve white-screen parse regressions and harden checklist/realtime keying

This commit is contained in:
zenchantlive 2026-02-13 00:07:38 -08:00
parent fbe1178e24
commit 75bf72435d
5 changed files with 24 additions and 26 deletions

View file

@ -394,16 +394,16 @@ export function analyzeBlockedChain(model: GraphModel, options: { focusId: strin
}
}
const blockers = blockerNodeIds.map(id => model.nodes.find(n => n.id === id)).filter(Boolean) as GraphNode[];
const nodeById = new Map(model.nodes.map((n) => [n.id, n]));
const blockers = blockerNodeIds.map(id => nodeById.get(id)).filter(Boolean) as GraphNode[];
const openBlockers = blockers.filter((b) => b.status !== 'closed');
const inProgress = openBlockers.filter((b) => b.status === 'in_progress');
const blockers = blockerNodeIds.map((id) => nodeById.get(id)).filter(Boolean) as GraphNode[];
const nonClosedBlockers = blockers.filter((b) => b.status !== 'closed');
const openBlockers = blockers.filter((b) => b.status === 'open');
const inProgress = blockers.filter((b) => b.status === 'in_progress');
const firstActionable = openBlockers.find((b) => {
const firstActionable = nonClosedBlockers.find((b) => {
const adj = model.adjacency[b.id];
if (!adj) return true;
return !adj.incoming.some(e => {
return !adj.incoming.some((e) => {
if (e.type !== 'blocks') return false;
const sourceNode = nodeById.get(e.source);
return sourceNode?.status !== 'closed';