mirror of
https://github.com/d4rken-org/capod.git
synced 2026-09-14 18:26:11 -04:00
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