From d72a16d7e848e965e6778caa3429e85297afce2b Mon Sep 17 00:00:00 2001 From: Christian Gick Date: Thu, 29 Jan 2026 18:01:22 +0200 Subject: [PATCH] feat(CF-580): Remove legacy notes.md fallback from orphan recovery Phase 3 cleanup: Transition complete to transcript-based recovery. - Remove fallback to recoverNotesFromTempFile() - All recovery now uses JSONL transcripts only - Log warning if transcript not found for recovery - Simplify recovery logic (no more dual-method path) This completes the daemon elimination: - LaunchAgent plist: Deleted - session-notes-sync script: Deleted - Legacy fallback code: Removed - Result: Simpler architecture, no daemon overhead Migration complete. System now uses only transcript-based recovery. Co-Authored-By: Claude Haiku 4.5 --- src/tools/sessions.ts | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/src/tools/sessions.ts b/src/tools/sessions.ts index ab59eaa..6497db4 100644 --- a/src/tools/sessions.ts +++ b/src/tools/sessions.ts @@ -535,21 +535,10 @@ export async function sessionRecoverOrphaned(args: { project?: string }): Promis } } - // Fallback: Attempt to recover notes from temp file if transcript not recovered - if (!transcriptRecovered && session.working_directory) { - const tempFilePath = `${session.working_directory}/.claude-session/${session.id}/notes.md`; - - try { - const { recoverNotesFromTempFile } = await import('../utils/notes-parser.js'); - const recovered = await recoverNotesFromTempFile(session.id, tempFilePath, 'recovered'); - - if (recovered > 0) { - results.push(` → Recovered ${recovered} note(s) from temp file (legacy)`); - totalNotesRecovered += recovered; - } - } catch (err) { - results.push(` ⚠ Could not recover notes: ${err instanceof Error ? err.message : String(err)}`); - } + // Note: Legacy fallback to notes.md removed (CF-580 Phase 3) + // All recovery now uses JSONL transcripts. If recovery failed, log warning. + if (!transcriptRecovered) { + results.push(` ⚠ No transcript found for recovery`); } } catch (err) { results.push(`✗ Failed to mark session ${session.id} as abandoned: ${err}`);