Context
Consumer: CDP MCP Task Manager / desk seats via EF Core WitDB provider 1.0.3, dual-seat MCP (primary + debug) historically sharing or remount-fighting large *.witdb files.
Bug
Durable databases end up with torn free-list: ArgumentOutOfRangeException / pageNumber out of range (FreePage ≥ TotalPageCount). Lived sizes were hundreds of MB to ~1GB after remount/Recover kill cycles.
Expected
Engine should either refuse writes under exclusive-lock races without corrupting free-list, or recover/heal torn free-list on Open with a clear error that does not strand the file.
Notes
Per-seat paths alone were not enough once a file was already torn. Combined with failed-Open handle leak (separate issue), cockpit/go=plan became a hard wall until manual quarantine.
We are cutting over seat storage to SQLite; reporting for engine integrity under remount/Kill pressure.
Context
Consumer: CDP MCP Task Manager / desk seats via EF Core WitDB provider 1.0.3, dual-seat MCP (primary + debug) historically sharing or remount-fighting large
*.witdbfiles.Bug
Durable databases end up with torn free-list:
ArgumentOutOfRangeException/ pageNumber out of range (FreePage ≥ TotalPageCount). Lived sizes were hundreds of MB to ~1GB after remount/Recover kill cycles.Expected
Engine should either refuse writes under exclusive-lock races without corrupting free-list, or recover/heal torn free-list on Open with a clear error that does not strand the file.
Notes
Per-seat paths alone were not enough once a file was already torn. Combined with failed-Open handle leak (separate issue), cockpit/
go=planbecame a hard wall until manual quarantine.We are cutting over seat storage to SQLite; reporting for engine integrity under remount/Kill pressure.