@@ -63,7 +63,6 @@ import {
6363 readMirroredSessionHistoryMessages ,
6464 renderCodexWorkspaceMemoryReference ,
6565 resolveContextEngineBootstrapProjectionDecision ,
66- shouldProjectMirroredHistoryForCodexStart ,
6766} from "./attempt-context.js" ;
6867import {
6968 classifyCodexModelCallFailureKind ,
@@ -756,27 +755,16 @@ export async function runCodexAppServerAttempt(
756755 error : formatErrorMessage ( assembleErr ) ,
757756 } ) ;
758757 }
759- } else if (
760- shouldProjectMirroredHistoryForCodexStart ( {
761- startupBinding,
762- dynamicToolsFingerprint : codexDynamicToolsFingerprint ( toolBridge . specs ) ,
763- historyMessages,
764- forceProject : ! nativeToolSurfaceEnabled ,
765- } )
766- ) {
767- const projection = projectContextEngineAssemblyForCodex ( {
768- assembledMessages : historyMessages ,
769- originalHistoryMessages : historyMessages ,
770- prompt : params . prompt ,
771- } ) ;
772- promptText = projection . promptText ;
773- prePromptMessageCount = projection . prePromptMessageCount ;
774758 }
759+ // Codex app-server threads own conversation continuity. The mirrored
760+ // OpenClaw transcript is persistence/search state; only explicit
761+ // non-legacy context engines project alternate context into the turn prompt.
762+ const codexModelInputHistoryMessages = activeContextEngine ? historyMessages : [ ] ;
775763 const buildPromptFromCurrentInputs = ( ) =>
776764 resolveAgentHarnessBeforePromptBuildResult ( {
777765 prompt : prependCurrentInboundContext ( promptText , params . currentInboundContext ) ,
778766 developerInstructions,
779- messages : historyMessages ,
767+ messages : codexModelInputHistoryMessages ,
780768 ctx : hookContext ,
781769 } ) ;
782770 let promptBuild = await buildPromptFromCurrentInputs ( ) ;
@@ -1584,12 +1572,12 @@ export async function runCodexAppServerAttempt(
15841572 model : params . modelId ,
15851573 systemPrompt : buildRenderedCodexDeveloperInstructions ( ) ,
15861574 prompt : codexTurnPromptText ,
1587- historyMessages,
1575+ historyMessages : codexModelInputHistoryMessages ,
15881576 imagesCount : params . images ?. length ?? 0 ,
15891577 tools,
15901578 } ) ;
1591- const buildTurnStartFailureMessages = ( ) => [
1592- ...historyMessages ,
1579+ const buildCodexModelInputMessages = ( ) => [
1580+ ...codexModelInputHistoryMessages ,
15931581 buildCodexUserPromptMessage ( { ...params , prompt : codexTurnPromptText } ) ,
15941582 ] ;
15951583 const codexModelCallBaseFields = {
@@ -1608,7 +1596,7 @@ export async function runCodexAppServerAttempt(
16081596 baseFields : codexModelCallBaseFields ,
16091597 capture : codexModelContentCapture ,
16101598 tools,
1611- buildInputMessages : buildTurnStartFailureMessages ,
1599+ buildInputMessages : buildCodexModelInputMessages ,
16121600 buildSystemPrompt : buildRenderedCodexDeveloperInstructions ,
16131601 onErrorDiagnostic : ( error ) => {
16141602 embeddedAgentLog . debug ( "codex app-server model call diagnostic ended with error" , {
@@ -1748,9 +1736,13 @@ export async function runCodexAppServerAttempt(
17481736 turnStartErrorMessage ,
17491737 turnStartFailureKind ? { failureKind : turnStartFailureKind } : { } ,
17501738 ) ;
1739+ const turnStartFailureMessages = [
1740+ ...historyMessages ,
1741+ buildCodexUserPromptMessage ( { ...params , prompt : codexTurnPromptText } ) ,
1742+ ] ;
17511743 await runCodexAgentEndHook ( params , {
17521744 event : {
1753- messages : buildTurnStartFailureMessages ( ) ,
1745+ messages : turnStartFailureMessages ,
17541746 success : false ,
17551747 error : turnStartErrorMessage ,
17561748 durationMs : Date . now ( ) - attemptStartedAt ,
@@ -1790,7 +1782,7 @@ export async function runCodexAppServerAttempt(
17901782 ...buildCodexTurnStartFailureResult ( {
17911783 params,
17921784 message : usageLimitError . message ,
1793- messagesSnapshot : buildTurnStartFailureMessages ( ) ,
1785+ messagesSnapshot : turnStartFailureMessages ,
17941786 systemPromptReport,
17951787 } ) ,
17961788 } ;
0 commit comments