opencode
opencode copied to clipboard
fix(log): await cleanup and sort files before deletion
Summary
- Await
cleanup()ininit()to prevent race condition where cleanup could run concurrently with file creation - Sort files before slicing to ensure oldest files are deleted, not arbitrary files based on filesystem order
Problem
Log files were being deleted immediately after creation due to two issues:
-
cleanup()was called fire-and-forget (not awaited), creating a race condition -
Bun.Glob.scan()returns files in arbitrary filesystem order, soslice(0, -10)was deleting random files instead of the oldest ones
Fix
- Added
awaitbeforecleanup()call - Added
.sort()before.slice(0, -10)to ensure lexicographic order (which matches chronological order for theYYYY-MM-DDTHHMMSS.logfilename format)
Tests
Added 8 tests covering:
- File creation (timestamp name, dev.log)
- Cleanup threshold behavior (5, 10, 11 files)
- Oldest file deletion
- Newest 10 files preserved
- dev.log excluded from cleanup (doesn't match glob)
- New log file created after cleanup runs