fix(reasoning): enforce terminal post-mutation eligibility
This commit is contained in:
@@ -1660,7 +1660,7 @@ function isSelectableUnresolvedUnknown(graph, nodeId) {
|
||||
return Boolean(
|
||||
node &&
|
||||
node.kind === "unknown" &&
|
||||
!["resolved", "contradicted"].includes(node.status) &&
|
||||
!["known", "resolved", "contradicted"].includes(node.status) &&
|
||||
!(graph.resolvedNodeIds || []).includes(node.id),
|
||||
);
|
||||
}
|
||||
@@ -1673,9 +1673,7 @@ function listUnresolvedUnknownCandidates(
|
||||
|
||||
return (graph.nodes || []).filter(
|
||||
(node) =>
|
||||
node.kind === "unknown" &&
|
||||
!["resolved", "contradicted"].includes(node.status) &&
|
||||
!(graph.resolvedNodeIds || []).includes(node.id) &&
|
||||
isSelectableUnresolvedUnknown(graph, node.id) &&
|
||||
!resolvedCurrentTurnSet.has(node.id),
|
||||
);
|
||||
}
|
||||
@@ -2183,7 +2181,7 @@ function selectPatternCompatibleUnknownCandidate({
|
||||
(node) =>
|
||||
node.kind === "unknown" &&
|
||||
!excluded.has(node.id) &&
|
||||
!["resolved", "contradicted"].includes(node.status),
|
||||
isSelectableUnresolvedUnknown(graph, node.id),
|
||||
)
|
||||
.filter(
|
||||
(node) =>
|
||||
@@ -3704,11 +3702,9 @@ export function applyValidatedProposal({
|
||||
|
||||
const remainingUnknownExists =
|
||||
newActiveUnknownNodeId != null &&
|
||||
updatedSituationGraph.nodes.some(
|
||||
(node) =>
|
||||
node.id === newActiveUnknownNodeId &&
|
||||
node.kind === "unknown" &&
|
||||
!updatedSituationGraph.resolvedNodeIds.includes(node.id),
|
||||
isSelectableUnresolvedUnknown(
|
||||
updatedSituationGraph,
|
||||
newActiveUnknownNodeId,
|
||||
);
|
||||
|
||||
if (!remainingUnknownExists) {
|
||||
@@ -3846,9 +3842,8 @@ export function applyValidatedProposal({
|
||||
: null;
|
||||
const carriedActiveUnknownStillUnresolved = Boolean(
|
||||
carriedActiveUnknownNode &&
|
||||
carriedActiveUnknownNode.kind === "unknown" &&
|
||||
!["resolved", "contradicted"].includes(carriedActiveUnknownNode.status) &&
|
||||
!updatedSituationGraph.resolvedNodeIds.includes(
|
||||
isSelectableUnresolvedUnknown(
|
||||
updatedSituationGraph,
|
||||
carriedActiveUnknownNode.id,
|
||||
),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user