373571b476
Per Codex polish note: promote/reject/re-preview now Object.assign the server-returned candidate onto the local one — keeps status/updated_at/preview (and any future fields) in sync, while preserving the transient UI fields (_cat/_activate/_err). Promote uses res.candidate then loadStats(). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>