diff --git a/packages/agent-claude-code/src/claude-code.ts b/packages/agent-claude-code/src/claude-code.ts index 72be905..b8c5191 100644 --- a/packages/agent-claude-code/src/claude-code.ts +++ b/packages/agent-claude-code/src/claude-code.ts @@ -176,8 +176,12 @@ async function runClaudeCode(ctx: AgentContext, model: string | null): Promise { - if (ctx.isFirstVisit || resumeDisabled) { + if (resumeDisabled) { await client.connect(cwd); return { useContinuation: false, resumed: false }; } + // Check session cache regardless of isFirstVisit. A previous run may + // have completed and cached its session but failed frontmatter + // validation — the step never got written to CAS so isFirstVisit is + // still true, yet we should resume the existing session. const cachedSessionId = await getCachedSessionId(ctx.threadId, ctx.role, ctx.storageRoot); if (cachedSessionId === null) { log("6RWK3N8Q", `no cached session for ${ctx.threadId}:${ctx.role}, starting new session`);