Fix edit-load cover hydration race that dropped stored covers
The cover was hydrated inside the one-shot ?edit= loader, gated on
pdsUrl. But pdsUrl resolves after agent/did (adoptSession awaits the
profile + PDS lookup), so the article fetch usually landed first with
pdsUrl still null — the cover was skipped and the editLoadedRef one-shot
guard blocked any re-run. The picker showed the empty state, and the
next save passed coverImage=undefined, silently stripping the stored
cover from the document.
Move hydration to a dedicated effect keyed on pdsUrl so it re-runs once
pdsUrl arrives, and extract the guard into a pure, tested
coverFromStoredRef helper.