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