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 <noreply@anthropic.com>
This commit is contained in:
Christian Gick
2026-01-29 18:01:22 +02:00
parent e04a8ab524
commit d72a16d7e8

View File

@@ -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}`);