feat: Implement automatic artifact cleanup #193
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR implements the artifact cleanup functionality based on the
cleanup_old_artifactsandartifact_retention_dayssettings in the configuration. This resolves the potential issue of unbounded disk space usage from stored artifacts.Changes:
_cleanup_old_artifactsto theProgramDatabaseclass.db.save()to perform cleanup when checkpoints are created.tests/test_database_cleanup.py) to verify the cleanup logic.Note on Existing Tests:
While working on this, I encountered a pre-existing issue where the main test suite (
python -m unittest discover tests) fails with a401 Unauthorizederror, as it appears to be making an unexpected real API call. PerCONTRIBUTING.md, the tests should be mocked. This PR does not address that issue, as it is unrelated to the database changes. The new test I've added passes in isolation.