Files
openclaw/docs
Eva (agent) e1d7ba5915 fix(agents): remove transient session-repair backups
Adapts @tynamite's fix from the abandoned #77945 to current main (which
moved to replaceFileAtomic after that PR was opened), and adds the docs +
changelog updates clawsweeper flagged plus a regression test for the
field condition from #80960.

When repairSessionFileIfNeeded writes a cleaned transcript, the sibling
*.bak-<pid>-<ts> snapshot is deleted after the atomic replace succeeds.
It is only retained — and only then reported via backupPath — when the
cleanup itself fails. This prevents the unbounded accumulation observed
in #80960, where a stuck operations-agent session with a persistently
malformed JSONL line caused 2,180 ~1.8 MB backup files to pile up over
~25 hours inside two gateway processes (PIDs 1220 and 2640).

Test changes:
- Replace requireBackupPath helper with expectNoRetainedBackup that
  also asserts no .bak-* siblings remain on disk.
- Update the four call sites that used to read the retained backup.
- Add a regression test that drives repair five times against a file
  with a recurring malformed tail and asserts zero retained backups.

Docs:
- docs/reference/transcript-hygiene.md: describe backup as transient,
  retained only on cleanup failure.

Fixes #80960. Supersedes #77945. Co-authored by @tynamite — credit for
the original approach.

Co-authored-by: tynamite <35367599+tynamite@users.noreply.github.com>
2026-05-16 12:38:26 +01:00
..
2026-05-16 10:11:41 +01:00
2026-05-15 04:16:07 +01:00
2026-05-07 19:43:06 -07:00
2026-05-15 15:33:27 +01:00
2026-05-15 11:44:58 +01:00
2026-05-08 06:01:23 +01:00
2026-05-15 11:44:58 +01:00
2026-04-17 16:05:10 +01:00