Repository navigation
Read a game's INFO name only from inside a closed block - #194
Conversation
mud.paroxysmrpg.com:3000 takes INFO as a character name. It replies "Illegal name, try another." and then its own prompt, `Name: ESC[40;0;37m`, with a trailing colour reset after the colon. `LoginCommandReading.MeaningfulName` read every `Name:` line anywhere in the reply, so that escape sequence became the listing's name and minted /g/40-0-37m (submitted 2026-09-20, renamed to Paroxysm by hand 2026-09-28). The same reading also admits the address in `CatalogueBinder`, which should only happen when the server actually named itself. `ConnectedPlayers` already refused anything outside a block that both opened and closed, for this reason. Both readers now take their lines from one `InfoBlock` helper that strips CSI colour codes first, so a coloured value still reads cleanly and a value made only of colour codes reads as empty. Tests: the measured Paroxysm bytes, an echoed `Name: INFO`, and an unterminated block are all refused. A coloured name inside a block reads without its codes. MUI.Crawl.Tests 606/606, MUI.Crawler.Tests 351/351. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Essentials Run ID: 📒 Files selected for processing (2)
Included review availability: This review used your included allowance. 0 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 1 review per hour. Your free on-demand review promotion remains active until October 9, 2026 at 6:00 PM UTC. WalkthroughThe login reader now parses names and connected-player counts from lines inside the first closed INFO block. It removes ANSI CSI escape sequences before parsing. Tests cover incomplete blocks and names with ANSI color codes. ChangesINFO Block Parsing
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix Merge Risk: ⚪ Minimal · up to No actionable issue remains; the change is ready to merge after normal checks. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
Comment |
What happened
mud.paroxysmrpg.com:3000(submitted 2026-09-20) treatsINFOas a character name. It replies:The second line is its own login prompt, ending in a colour reset.
LoginCommandReading.MeaningfulNameread anyName:line anywhere in the reply, so the listing was named\x1B[40;0;37mand got the slug/g/40-0-37m. I renamed it to Paroxysm by hand on 2026-09-28 (slug is nowparoxysm, and the old one 301s).Change
MeaningfulNamenow reads only the lines strictly inside anINFOblock that both opened and closed. That's the ruleConnectedPlayersalready followed.InfoBlockhelper, which strips CSI colour codes first. A coloured name reads cleanly, and a value that is only colour codes reads as nothing.CatalogueBinderalso uses a non-nullMeaningfulNameas a sign the address is a game, so a login prompt shaped likeName:no longer counts toward that either.Tests
Name: INFO, and an unterminated block.MUI.Crawl.Tests606/606,MUI.Crawler.Tests351/351.🤖 Generated with Claude Code
Summary by CodeRabbit