// Refuse damaged history before Pi's --continue can silently skip it. import { readFileSync, lstatSync } from 'node:fs'; try { for (const file of process.argv.slice(2)) { if (!lstatSync(file).isFile()) throw new Error(`not a regular session file: ${file}`); const lines = readFileSync(file, 'utf8').trim().split('\n'); const entries = lines.map((line) => JSON.parse(line)); const header = entries[0]; if (header?.type !== 'session' || typeof header.id !== 'string' || !header.id || typeof header.version !== 'number' || typeof header.cwd !== 'string' || !Number.isFinite(Date.parse(header.timestamp)) || entries.slice(1).some((entry) => !entry || typeof entry.type !== 'string')) { throw new Error(`invalid session structure: ${file}`); } if (header.cwd !== process.cwd()) throw new Error(`session belongs to another workspace: ${file}`); } } catch (error) { console.error(`dewey: cannot safely resume: ${error.message}; inspect history or explicitly use --fresh`); process.exit(1); }