fix(session): skip corrupt lines in load_transcript instead of crashing (#1744)

Wrap json.loads() in load_transcript() with try/except JSONDecodeError
so that partial JSONL lines (from mid-write crashes like OOM/SIGKILL)
are skipped with a warning instead of crashing the entire transcript
load. The rest of the history loads fine.

Adds a logger.warning with the session ID and truncated corrupt line
content for debugging visibility.

Salvaged from PR #1193 by alireza78a.
Closes #1193
This commit is contained in:
Teknium 2026-03-17 05:18:12 -07:00 committed by GitHub
parent aea39eeafb
commit 702191049f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 57 additions and 1 deletions

View file

@ -944,7 +944,13 @@ class SessionStore:
for line in f:
line = line.strip()
if line:
messages.append(json.loads(line))
try:
messages.append(json.loads(line))
except json.JSONDecodeError:
logger.warning(
"Skipping corrupt line in transcript %s: %s",
session_id, line[:120],
)
return messages