Parser: detect name registration from user input during setup
(sender == name constraint prevents false matches on gameplay messages).
Bridge: extract _process_buffer() to handle leftover lines after
_wait_for_players returns, preventing messages from being stuck.
Player bots: proactively send name on join (not just first player
sending count) so they respond even if they missed the 'say me' prompt.
All tests pass (1551/1553 parser checkpoints, 38 player unit tests).
Bridge changes:
- Wait for at least one user to JOIN before starting monop
- Ensures observer is in channel to see all setup messages
Parser changes:
- Handle 'Player N, say me' even without prior 'How many players?'
- Infer num_players_expected from highest player number seen
- Emit state during setup phase
run_game.py changes:
- 3s stagger between bot joins so setup is visible in web UI
- Observer connects before bots to catch all registration messages