mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-07-02 05:38:12 +00:00
- JsonProvider.checkpoint() and acheckpoint() now write to a temp file then os.replace() for atomic file updates (no partial writes) - Added threading.Lock to JsonProvider for sync path serialization - Added asyncio.Lock to JsonProvider for async path serialization - Added threading.Lock (_lineage_lock) to RuntimeState to protect read-update of _parent_id across concurrent checkpoint calls - Added asyncio.Lock (_async_lineage_lock) to RuntimeState for async - checkpoint_listener._do_checkpoint() now acquires _lineage_lock for the full read-write-update cycle - Temp files are cleaned up on write failure - Added 8 new tests: atomic write correctness, temp file cleanup on success/failure, async equivalents, and concurrent sync/async lineage preservation with 5 writers × 10 writes each Co-Authored-By: João <joao@crewai.com>