c8aa0c7a34
Second round of @helix4u review on #71779. Both findings reproduced before fixing. 1. My previous fix turned a crash into SILENT DATA LOSS. Returning status="missing" for a present-but-unusable state_meta looked like a safe degrade, but _verify_recovered_database only escalates "failed"/"partial" into a warning + loss_detected. Measured on the branch: a run that dropped a real metadata table reported warnings=[], loss_detected=False, partial=False, complete=True. Strictly worse than the ValueError it replaced -- that at least failed loudly. Now "failed" when the table exists but lacks key/value, "missing" only when genuinely absent. The damaged case yields warnings=['state_meta copy status is failed'], loss_detected=True, partial=True, complete=False, while staying verified=True so the output is still installable-with-review. 2. The race test I wrote had its own scheduling race: after the guard released the lock, the racer could win before the main thread set the release event, failing on a correct implementation. Rewritten per helix4u's design -- copy runs in a worker parked inside the patched copy, a second worker attempts connect_tracked(), assert it stays blocked, release, assert it then opens. Deterministic and ~1.1s instead of 10s; 12/12 stable. Sabotage-verified. Note the third scenario only failed after adding a unit-level test: recover_session_database short-circuits on the inspection result when state_meta is entirely absent, so the helper's absent-branch is unreachable end-to-end and a regression there was invisible. Both statuses are now pinned directly. 939 targeted tests green.