v1.2.39 — prod promotion (backend #612 #838 #1007 #1023 #1024 #1054-#1058)

Themes:
- Song requests: credit bundles on a shared credit ledger, bundle checkout,
  funding precedence and credit return (#1055); stranded-request sweeper,
  ships DISARMED (#1058)
- Inventory escrow: unclaimed items expire to FORFEITED after 5 days, with a
  forward-only sweeper, 410 Gone on a claim of a forfeited item, and a knome
  notification (#1056). Ships ARMED; blast radius is zero by construction —
  the selector requires a non-null expiresAt, which only this build writes at
  creation and nothing backfills (verified on prod: 98 PENDING rows, 0 with
  expiresAt)
- Leveling events: cursor pagination, payment-purpose facet (#1054 #1057)
- Klan milestones: coalesce multi-rung notification fan-out into one summary
  per member (#612); classify a single-rung and a kommunity ESCROWED outcome
  as REWARD via one shared credited-or-held predicate (#1023 #1024)
- Knomes: cascade species/outfit/skill/food art rows on delete, keeping art
  still referenced elsewhere (#1007)
- Playout: shift reconcilingRecoversByMs by the 1s recovery evaluation
  granularity so the advertised bound is not overstated (#838)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011uF22YswSxmxG38VGNqRH7