784715dc36
Chat channels went wrong: - An eleventh join printed nothing, and only `YOU_LEFT` freed a slot. - Lookups by number found suspended and pending channels. - Admin verbs sent a number as the name. - Defense broadcasts reached unconfirmed channels. - Trade outside a city took "City", and zone channels answered full names. - `/chatlist` printed a line of its own. The reference: - A join takes its slot when sent (`0x49edf3`), and refusals free it (`0x49c446`). A freed slot keeps its row id, so the walk skips it (`0x49bef0`). - Number lookups take confirmed slots only. Admin verbs resolve the slot (`0x49e880`). - The city word needs flag 0x20 and a city (`0x49a2d0`). Channel verbs, `DoEmote`, `UninviteByName`, `SendAddonMessage` and `ListChannels` now act inside their call. Each fact is tested against its address. Part of #2202 Fixes #276 Fixes #2169 Fixes #229 Fixes #2159 Fixes #225 Fixes #223 Fixes #230 Fixes #231 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>