feat(social): per-game friend request to disguised robots + lobby/stats/tile cosmetics #88
Reference in New Issue
Block a user
Delete Branch "feature/robot-friend-request"
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?
Functional — friend request to a disguised robot
Tapping the in-game add-friend 🤝 on an auto-match opponent who is secretly a pooled robot used to insert a real
friendshipspending row against the shared robot account (the same bug PR #83 fixed for blocking). It now records the request per (game, seat) in a newrobot_friend_requeststable, mirroringrobot_blocks:friendships;requestedRobotSeats), so it does not leak across the player's other games with that robot;Per owner decision there is no withdraw button / outgoing section in Profile → Friends.
Cosmetics
--ok/--danger, no bold); scores render in seat-number order, matching the over-the-board scoreboard. Finished games keep the muted look + place emoji.--tile-bg) so a player-placed tile reads with more contrast; light theme unchanged.Tests / docs
TestRobotFriendRequestIsPerGameAndReaped; gateway transcode round-trip extended with the robots vector; UI unit tests forscoreStanding/orderedSeats+ updateddecodeOutgoingList._ru), backend README, UI_DESIGN.Svelte trims leading/trailing whitespace inside an element, so the literal `<span class="sep"> : </span>` rendered as a bare ":" ("123:123"). Emit the separator as a string expression `{' : '}`, which Svelte preserves, restoring "123 : 123".