diff --git a/core/kernel/src/main/kotlin/com/correx/core/kernel/orchestration/SessionOrchestratorExecution.kt b/core/kernel/src/main/kotlin/com/correx/core/kernel/orchestration/SessionOrchestratorExecution.kt index fbc0e013..90ba26f2 100644 --- a/core/kernel/src/main/kotlin/com/correx/core/kernel/orchestration/SessionOrchestratorExecution.kt +++ b/core/kernel/src/main/kotlin/com/correx/core/kernel/orchestration/SessionOrchestratorExecution.kt @@ -305,6 +305,11 @@ internal suspend fun SessionOrchestrator.executeStage( } emitContextTruncationIfNeeded(sessionId, stageId, contextPack) emitContextAssembled(sessionId, stageId, contextPack) + // #306, within-stage half: the delivery fold in unconfirmedFixEntries only runs at stage entry, + // so on its own it stops re-injection across ENTRIES, not across the turns of one entry — every + // pushBack rebuild re-uses accumulatedEntries and would carry the steer-away into all of them + // (7 consecutive turns, session d734e1de). It is one-shot by definition: drop it once delivered. + accumulatedEntries = accumulatedEntries.filterNot { it.sourceType == "unconfirmedFix" } var currentContext = contextPack var inferenceResult = runInference(