Files
iamxvbaba ac81425363 fix(star-gifts): refuse upgrades of deleted gifts and align withdrawal docs
A deleted gift keeps its row, and a user message ref still resolves to it
by owner and msg_id. The paid upgrade path checked only Converted and
UniqueGiftID, so an upgrade of a deleted, upgradable gift ran until the
upgrade_msg_id write found no aggregate row and failed with an internal
error. The transaction rolled back, but the client got INTERNAL instead
of STARGIFT_INVALID.

The upgrade form now refuses a deleted gift before issuing a payment
form, and the upgrade transaction re-checks the lifecycle under the row
lock. TestStarGiftDeleteBlocksLaterUpgradePostgres pins that no Stars
are charged and nothing is minted.

docs/collectible-gifts.md described tmp_password as unsupported; main
issues account.getTmpPassword grants and serves exact Layer 225-231 via
payments.getStarGiftWithdrawalUrlLegacy with SRP.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ac81425363 · 2026-10-24 19:39:22 +08:00
History
..