fix(reasoning): preserve investigation ownership across selection and question rejection
This commit is contained in:
+13
-12
@@ -2871,6 +2871,9 @@ function reseatSelectionAfterQuestionRejection({
|
||||
: { status: "none", nodeId: null };
|
||||
}
|
||||
|
||||
const QUESTION_FORMULATION_REJECTION_NO_QUESTION_REASON =
|
||||
"The selected investigation target remains active, but its current graph-backed question formulation was rejected as too complex.";
|
||||
|
||||
export function determineGraphBackedQuestion({ situationGraph }) {
|
||||
const graphSnapshot = cloneJsonSafe(situationGraph);
|
||||
let updatedSituationGraph = cloneJsonSafe(situationGraph);
|
||||
@@ -2937,15 +2940,12 @@ export function determineGraphBackedQuestion({ situationGraph }) {
|
||||
initialQuestionRejected &&
|
||||
deterministicSelection?.status === "selected"
|
||||
) {
|
||||
deterministicSelection = reseatSelectionAfterQuestionRejection({
|
||||
graph: updatedSituationGraph,
|
||||
deterministicSelection,
|
||||
excludedNodeIds: [deterministicSelection.nodeId],
|
||||
});
|
||||
questionResult = buildSelectedQuestionResult({
|
||||
updatedSituationGraph,
|
||||
deterministicSelection,
|
||||
});
|
||||
questionResult = {
|
||||
...questionResult,
|
||||
selectedQuestion: null,
|
||||
questionSuppressedReason:
|
||||
QUESTION_FORMULATION_REJECTION_NO_QUESTION_REASON,
|
||||
};
|
||||
}
|
||||
|
||||
if (
|
||||
@@ -2971,14 +2971,15 @@ export function determineGraphBackedQuestion({ situationGraph }) {
|
||||
? questionResult.selectedQuestion?.questionSuppressedReason ||
|
||||
questionResult.selectedQuestion?.reason ||
|
||||
"Eligible unresolved candidates remain tied after initial graph-backed selection."
|
||||
: (updatedSituationGraph.nodes || []).some(
|
||||
: questionResult.questionSuppressedReason ||
|
||||
((updatedSituationGraph.nodes || []).some(
|
||||
(node) =>
|
||||
node.kind === "unknown" &&
|
||||
!["resolved", "contradicted"].includes(node.status) &&
|
||||
!(updatedSituationGraph.resolvedNodeIds || []).includes(node.id),
|
||||
)
|
||||
? "Compatible unresolved candidates remain, but none produced a valid graph-backed question."
|
||||
: "No unresolved unknown candidates remain after initial graph construction.";
|
||||
? "Compatible unresolved candidates remain, but none produced a valid graph-backed question."
|
||||
: "No unresolved unknown candidates remain after initial graph construction.");
|
||||
|
||||
return {
|
||||
success: true,
|
||||
|
||||
Reference in New Issue
Block a user