Multi-network:
- Left panel now shows Networks section above Rooms
- /join <name> joins a new network at runtime; -network flag now optional
- ctrl+n cycles between joined networks; /net <n|name> switches by number or name
- All state (rooms, peers, messages) scoped per network via netData struct
- Messages keyed by "netId:room" (same as web store)
Reactions:
- /react <emoji> — react to the last message in the current room
- /react <n> <emoji> — react to message number n
- Reactions displayed as a dimmed line below each message: 👍 2 ❤️ 1
- EvtReaction handler updates in-place and refreshes viewport
History:
- EvtHistoryLoaded now handled: historical messages prepended, deduped by mid, sorted by time
UX:
- Each message prefixed with [n] line number so /react targets are unambiguous
- -network flag is now optional (start idle, /join to connect)
- Status bar hint updated with new commands
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>