Fix Codex MCP file path capture and conversation ID persistence

1. Add input field to file_change timeline items for patch_apply_end
   and threadItemToTimeline so file paths appear in both input/output

2. Fix conversation ID preservation on resume by always setting
   lockConversationId when sessionId exists, and falling back to
   sessionId if conversationId not in metadata

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Mohamed Boudra
2025-12-25 13:54:25 +07:00
co-authored by Claude Opus 4.5
parent 31312f5396
commit f1df1cdcce
2 changed files with 12 additions and 16 deletions
@@ -2395,7 +2395,14 @@ class CodexMcpAgentSession implements AgentSession {
const parsed = SessionIdentifiersSchema.parse(metadata);
if (parsed.conversationId) {
this.conversationId = parsed.conversationId;
this.lockConversationId = true;
}
}
// Always lock conversation ID on resume to preserve the original
// Even if metadata didn't have conversationId, we'll use sessionId as fallback
if (this.sessionId) {
this.lockConversationId = true;
if (!this.conversationId) {
this.conversationId = this.sessionId;
}
}
const history = this.sessionId ? SESSION_HISTORY.get(this.sessionId) : undefined;
@@ -3304,6 +3311,7 @@ class CodexMcpAgentSession implements AgentSession {
callId,
displayName: buildFileChangeSummary(summaryFiles),
kind: "edit",
input: { files: summaryFiles },
output,
}),
});
@@ -3529,6 +3537,7 @@ class CodexMcpAgentSession implements AgentSession {
callId: item.callId,
displayName: buildFileChangeSummary(summaryFiles),
kind: "edit",
input: { files: summaryFiles },
output: { files: changes },
});
}