Say something when the raise isn't a legal raise #56
Closed
jheaps
wants to merge 1 commits from
feature/casino-holdem-raise-guard into feature/casino-holdem-first-run
pull from: feature/casino-holdem-raise-guard
merge into: :feature/casino-holdem-first-run
:master
:feature/socialism
:polish/holdem-seats-one-size
:fix/holdem-dealer-chip-eats-its-seat
:polish/holdem-game-night-ready
:polish/holdem-round-next
:polish/holdem-seat-collisions
:polish/holdem-offline-and-render
:fix/naming-a-blind-deals-the-hand
:release/casino-holdem-polish
:fix/casino-holdem-phone-look
:fix/casino-holdem-sidebar-crowding
:fix/casino-holdem-contribution-rule
:fix/casino-holdem-one-stack-rule
:fix/casino-holdem-default-stack-buyin
:feat/casino-holdem-waiting-list
:feat/casino-holdem-misdeal
:feat/casino-holdem-cash-out
:feat/casino-holdem-clock
:feat/casino-holdem-rake
:fix/casino-holdem-stadium-ring
:fix/casino-holdem-phone-felt-shape
:fix/casino-holdem-audit-runs-everything
:feat/casino-holdem-straddle
:fix/casino-holdem-landscape-ring
:feat/casino-holdem-table-file
:fix/casino-holdem-touch-targets
:fix/casino-holdem-audit-modal-blindspot
:fix/casino-holdem-quicksplit-chop
:fix/casino-holdem-buildable-bet-sizes
:fix/casino-holdem-pot-sized-raise
:fix/casino-holdem-chips-to-count-out
:fix/casino-holdem-first-buy-in
:fix/casino-holdem-seating-a-table
:fix/casino-holdem-showdown-order
:fix/casino-holdem-hand-log-filter
:fix/casino-holdem-posting-in
:fix/casino-holdem-dead-button
:fix/casino-holdem-discarded-pot
:fix/casino-holdem-honest-tank-clock
:fix/casino-holdem-export-the-notes
:fix/casino-holdem-stacks-in-chips
:fix/casino-holdem-close-audit-blind-spots
:fix/casino-holdem-readable-dim-states
:fix/casino-holdem-drop-broken-watermark
:fix/casino-holdem-two-tabs
:fix/casino-holdem-unreadable-save
:fix/casino-holdem-say-when-not-saving
:fix/casino-holdem-shortcut-discovery
:fix/casino-holdem-rulings-index-compact
:fix/casino-holdem-rulings-index
:fix/casino-holdem-payout-in-chips
:fix/casino-holdem-move-seat-on-touch
:fix/casino-holdem-amount-fields-select
:fix/casino-holdem-touch-targets-by-pointer
:fix/casino-holdem-button-box-model
:fix/casino-holdem-blind-badge-placement
:fix/casino-holdem-buyin-deals-in
:fix/casino-holdem-bet-vs-raise
:fix/casino-holdem-deal-around-broke
:fix/casino-holdem-settle-up
:fix/casino-holdem-allin-and-bar
:fix/casino-holdem-one-dealer-button
:fix/casino-holdem-manual-deal
:fix/casino-holdem-less-guessing
:feature/casino-holdem-seat-editor
:fix/casino-holdem-landscape-table
:feature/casino-holdem-acting-seat
:feature/casino-holdem-raise-guard
:feature/casino-holdem-first-run
:feature/casino-holdem-contrast-audit
:feature/casino-holdem-layout-audit
:feature/casino-holdem-blind-fairness
:feature/casino-holdem-rulings-depth
:feature/casino-holdem-bank-audit
:feature/casino-holdem-fewer-taps
:feature/casino-holdem-render-perf
:feature/casino-holdem-keyboard-focus
:feature/casino-holdem-resilience
:feature/casino-holdem-messy-tables
:feature/casino-holdem-touch-mobile
:chore/casino-holdem-tech-debt
:feature/casino-holdem-dealer-batch
:feature/casino-holdem-seat-count-safety
:feature/casino-holdem-odd-chip
:feature/casino-holdem-button-moves
:feature/casino-holdem-allin-runout
:feature/casino-holdem-heads-up
:feature/casino-holdem-contrast
:feature/casino-holdem-touch-audit
:feature/casino-holdem-wizard-polish
:feature/casino-quicksplit-side-pots
:feature/casino-holdem-rebuys
:feature/casino-holdem-rulings
:feature/casino-holdem-sidebar-polish
:feature/casino-holdem-keyboard
:feature/casino-holdem-action-undo
:feature/casino-holdem-pace
:feature/casino-holdem-side-pot-breakdown
:feature/casino-holdem-gestures
:feature/casino-holdem-card-picker
:feature/casino-holdem-live-betting
:feature/casino-holdem-bet-chips
:feature/casino-holdem-seat-legibility
:feature/casino-holdem-undo-toasts
:feature/casino-holdem-quick-split
:feature/casino-holdem-mobile-table
:feature/casino-holdem-hand-history
:feature/casino-texas-holdem
:feature/casino-holdem-dealer-mode-polish
:feature/fractional-learned-weights
:fix/stockfish-dispose-hang
:fix/blog-cache-staleness
:fix/workflows
:gitea/workflows
:echo-acoustic-ranging
:chess-ui-overhaul
:feature/customChessEngine
:feature/blog
:AddProject
:feature/generalUpdate
:tech-debt/chess-cleanup
:tests/CreatePlaywrightTests
:UpdateParticleSimulatorButton
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Web search turned up the oversized-chip rule described as the single most common cause of floor disputes, and specifically a home-game problem. Chasing it led to checking what the bar does with an illegal raise — and the answer was nothing. Stacked on #55.
With the minimum at $18 and a player holding $200, typing 13 was accepted without a word. The engine then treated it as a short raise and correctly declined to reopen the betting — right for an all-in, wrong for someone who just misheard the bet, and either way the dealer was never told.
It says what's wrong and still lets it through
This tool records what the humans at the table actually did, and a dealer overruling the arithmetic is right more often than the arithmetic is. Confirm stays enabled in every case:
The second surfaces the rule fixed in #51 at the moment it decides something, rather than only in the rulings sheet.
Two minimums, which is where my first attempt went wrong
The pad already had a minimum — clamped to what the player can actually put in. Correct for the Min button, wrong for the warnings: for a short stack the clamped minimum equals their all-in, so neither warning could ever fire for exactly the player the rule exists for. They're separate now.
A regression the audit caught in the same round that introduced it
The note makes the pad taller →
--actionBarHeightgrows → the toast, which floats just above the bar since #45, gets pushed up over the table. Measured at 360x640:A toast is transient news about the action just taken; the pad is the dealer deciding the next one. The older one gets out of the way when the pad opens — nothing lost, since its Undo is also the bar's own undo control. The note is tighter on short screens and the pot breakdown hides during entry (which side pots exist isn't what's being read while typing an amount). Net 210px, and no seat covered that the pad wasn't already covering at 178px.
Two rulings entries from the same search
The oversized chip — a single big chip pushed out silently is a call, not a raise, however big it is; to raise you say so before it lands. And what a full raise is, which the pad now enforces in words.
Validation
137 tests passing. Raise warnings verified across four amounts on a deep stack and three on a short one, at eight viewports: note shows, pad stays reachable, contrast clean, Confirm never disabled. Toast confirmed still normal when the pad is closed. No console errors.
One note on process: two of my checks this round tripped the unresolved-pot confirm from #49 and looked like failures until I re-seeded — my test's fault, not the code's.
Web search turned up the oversized-chip rule described as the single most common cause of floor disputes, and specifically a home-game problem. Chasing that led to checking what the bar does with an illegal raise, and the answer was: nothing. With the minimum at $18 and a player holding $200, typing 13 was accepted without a word. The engine then treated it as a short raise and correctly declined to reopen the betting -- right for an all-in, wrong for somebody who just misheard the bet, and either way the dealer was never told. The raise entry now says what's wrong and still lets it through. This tool records what the humans at the table actually did, and a dealer overruling the arithmetic is right more often than the arithmetic is, so Confirm stays enabled in every case: $13 is under the $18 minimum. A legal raise is $18 or more -- otherwise it's a call, or all-in. All-in for less than a full raise. Legal, but it doesn't reopen the betting -- anyone who has already acted owes the difference or folds. More than they have. This goes in as all-in for $200. $10 is not above the $10 already bet -- that's a call, not a raise. The second one surfaces the rule fixed two rounds ago at the moment it decides something, rather than only in the rulings sheet. Two minimums, which is where the first attempt went wrong The pad already had a minimum, clamped to what the player can actually put in -- correct for the Min button, wrong for the warnings. For a short stack the clamped minimum equals their all-in, so neither warning could ever fire for exactly the player the rule exists for. Kept separate now: one for the button, the rules one for the warnings. A regression the audit caught, in the same round that introduced it The note makes the raise pad taller, --actionBarHeight grows, and the toast -- which floats just above the bar since the occlusion round -- got pushed up over the table. Measured at 360x640: bar 122px closed, 178px with the pad, 217px with a note, and the toast climbing from y506 to y411, covering seats outright. A toast is transient news about the action just taken; the pad is the dealer deciding the next one. The older one gets out of the way when the pad opens -- nothing is lost, its Undo is also the bar's own undo control. The note is tighter on short screens, and the pot breakdown hides during entry, since which side pots exist isn't what's being read while typing an amount. Net: 210px rather than 217px, and no seat covered that the pad wasn't already covering at 178px. Two rulings entries, from the same search The oversized chip -- a single big chip pushed out silently is a call, not a raise, however big it is; to raise you say so before it lands. And what a full raise is, which the pad now enforces in words. 137 tests passing. Raise warnings verified across four amounts on a deep stack and three on a short one, at eight viewports: note shows, pad stays reachable, contrast clean, Confirm never disabled. Toast still behaves normally when the pad is closed. Sources: cardplayer.com/.../contracts-and-poker-the-oversized-chip-rule, pokernews.com/strategy/be-careful-when-betting-essential-wsop-rules-to-remember Co-Authored-By: Claude Opus 5 <[email protected]> Claude-Session: https://claude.ai/code/session_015bnp7xKUPFFSpwkYNFaPgbPull request closed