@@ -795,10 +795,13 @@ export class SessionManager {
|
||||
if (existsSync(this.sessionFile)) {
|
||||
this.fileEntries = loadEntriesFromFile(this.sessionFile);
|
||||
|
||||
// If file was empty or corrupted (no valid header), truncate and start fresh
|
||||
// to avoid appending messages without a session header (which breaks the session)
|
||||
// If file was empty, initialize it with a valid session header. If it was
|
||||
// non-empty but did not parse as a pi session, fail without modifying it.
|
||||
if (this.fileEntries.length === 0) {
|
||||
const explicitPath = this.sessionFile;
|
||||
if (statSync(explicitPath).size > 0) {
|
||||
throw new Error(`Session file is not a valid pi session and was not modified: ${explicitPath}`);
|
||||
}
|
||||
this.newSession();
|
||||
this.sessionFile = explicitPath;
|
||||
this._rewriteFile();
|
||||
|
||||
Reference in New Issue
Block a user