it's now fixed. The root cause was that destructive file truncation during "session normalization" - now the session header is written immediately instead of leaving an empty file, so even if a run doesn't complete with an assistant message, the session file stays valid and retains its structure for subsequent runs.