Race condition: pushAction/clear/undo could run before init() loaded DB history, causing persisted state to overwrite newer actions on load. Now all mutating methods await the _ready future set by init(). Three new tests cover restart persistence and the concurrent init+push race. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>