Lane 8: taking a handout back deletes its Discord posts and DMs; handout posts use faces (#896, D157, D238) #909
Loading…
Reference in a new issue
No description provided.
Delete branch "build/lane8-handout-takeback"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #896.
One take-back path
shelf_service.take_backnow serves both a shelf card's revoke (O10) and a handout's Undo (§2.10). The callers differ only in how they find the reveal. In order, it:revoked_at;Where a handout landed
POST /api/bot/reveals/{id}/message.POST /api/bot/reveals/{id}/dm-messageintoshelf_reveal_messages.8c9d0e1f2a3bon8b8c9d0e1f2a. Up, down and up ran clean on Postgres 16. The downgrade drops the table.reveal_taken_backevent carriesextra.messages. When there was a channel post, the old top-levelchannel_idandextra.message_idare kept, so an older bot still deletes the post.Fix outside the spec
create_handout_revealnow commits before dispatching to the bot. Before this, the bot's message-id report could race the commit, get a 404, and leave that message impossible to take back.Faces
The handout embeds now use
faces.handout. They have a golden row intest_faces.py, and the dev preview lists them.Contract
The contract stays additive (v2), and
check_version_syncpasses. A newer backend with an older bot can't delete DMs, which only matters during an upgrade.Checks
changelog.d/fragment.Note: D227 (
10e5f6a7b8c9) also chains on8b8c. Whichever merges second gets re-chained.🤖 Generated with Claude Code