Files
capod/app
darken ed940b3b3d fix(debug): Stop a failed start from erasing a resumed recording
Two rollback defects found reviewing the failed-start handling, both cases
where cleaning up after a start that could not finish damaged something it
did not own:

- FileLogger.start() deletes the log file only when that same call created
  it, and reports the failure instead of swallowing it. A resumed session
  appends to the previous recording's core.log, and a failed append used to
  erase it while telling the recorder the start had succeeded. The writer is
  published only once it is usable, so a failed attempt leaves nothing behind
  that would make a later start() a no-op (F3).
- The module's rollback skips self-suppression: a recorder broken in one way
  throws the same instance on the start line and again when the rollback
  stops it, and addSuppressed(self) raises IllegalArgumentException — which
  aborted the rollback before the failure state was committed and took the
  shared state collector with it (F4).

Recorder.start() is the only production caller of FileLogger.start(), and it
runs inside the module's whole-branch guard, so the new throw lands in the
rollback rather than escaping.

Fixes review findings F3, F4
2026-08-04 18:26:47 +02:00
..
2022-09-14 18:00:18 +02:00
2022-09-14 18:00:18 +02:00