Drop legacy lineup groups and fix two media cleanup gaps (#201)

- Lineups are graph rows only: lineupGroup is out of the contract, the
  client's legacy conversion and group decode paths are gone, and
  strategies:duplicate copies graph rows only. Local Hive keeps
  toLegacyGroups for the 3.2.3 rollback slot.
- A lineup patch never moves a row to another page; a key clash with a row
  on another page fails with LINEUP_PAGE_MISMATCH instead.
- Upload placeholders are removed once per batch, after every op, against
  the batch's final references (a lineup added later in the batch keeps
  the placeholder of the image it shows).
- Purging old tombstones reclaims the assets they were the last reference
  to, once nothing live or still-restorable shows them.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
dcd013021aDara Adedeji committed on 9/27/2026, 12:41:45 AM· committed by GitHubparent217c07a
25 files changedLine totals unavailable