mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-14 14:43:16 -06:00
2358566c29
* fix(doctor): restore the pre-migration session index when runs share a store Restore picked the winning archive by manifest iteration order, newest first. When a legacy writer recreated an empty sessions.json between migrations, the newest run had archived that empty file, so restore installed it and then refused the only archive holding real sessions as a conflict. Resolve one winning archive per destination before writing anything, preferring the earliest run whose archive is still restorable. Losing archives are never deleted and stay visible as conflicts. Closes #116163 * fix(doctor): fail closed on ambiguous session restores * test(doctor): key restore conflicts by archive * fix(doctor): narrow restored archive lookup * fix(doctor): stream restore archive hashing --------- Co-authored-by: Vincent Koc <vincentkoc@ieee.org>