paper: v0.1.6 — document whisper (private DM) and inventory commands

- Added whisper to §3.5 integration table and §3.7 command table
- Added whisper design paragraph: cross-room private messaging, type isolation, validation
- Added inventory stub to §3.7 command table
- Updated closing paragraph to include whisper isolation guarantee
This commit is contained in:
Alexander Whitestone
2026-04-13 16:18:36 -04:00
parent 6c0f7017a1
commit 00a2c98074

View File

@@ -2,7 +2,7 @@
**Authors:** Timmy Foundation
**Date:** 2026-04-12
**Version:** 0.1.5-draft
**Version:** 0.1.6-draft
**Branch:** feat/multi-user-bridge
---
@@ -164,6 +164,7 @@ The bridge translates between HTTP/WebSocket (for web clients) and Evennia's com
|---|---|---|
| `look` / `l` | `look` | ✅ Implemented |
| `say <text>` | `say` | ✅ Implemented (room broadcast) |
| `whisper <user> <msg>` | `whisper` | ✅ Implemented (private DM) |
| `who` | `who` | ✅ Implemented |
| `move <room>` | `goto` / `teleport` | ✅ Implemented (WS) |
@@ -189,13 +190,17 @@ The bridge implements classic MUD (Multi-User Dungeon) commands that enable rich
|---------|--------|-------------|
| `look` / `l` | `look` | View current room and its occupants |
| `say` | `say <message>` | Broadcast speech to room occupants |
| `whisper` | `whisper <user_id> <message>` | Private message to any online user (cross-room) |
| `go` / `move` | `go <room>` | Move to a new room, notifying previous occupants |
| `emote` / `/me` | `emote <action>` | Third-person action broadcast (e.g., "Alice waves hello") |
| `who` | `who` | List all online users with their rooms and command counts |
| `inventory` / `i` | `inventory` | Check inventory (stub for future item system) |
The `go` command enables room transitions over HTTP—previously only possible via WebSocket `move` messages. When a user moves, the bridge atomically updates room occupancy tracking and delivers departure notifications to remaining occupants via the room events queue. The `emote` command broadcasts third-person actions to co-present users while returning first-person confirmation to the actor, matching classic MUD semantics.
All commands maintain the same session isolation guarantees: a `say` in the Tower is invisible to users in the Chapel, and room transitions are consistent across concurrent requests.
The `whisper` command implements private directed messaging between any two online users, regardless of room. Whisper events use `type: "whisper"` (distinct from `type: "room_broadcast"`) and are delivered only to the target user's room events queue—third parties in either room cannot observe the exchange. This cross-room whisper capability means a user in the Tower can secretly contact a user in the Chapel, enabling private coordination within the multi-user world. The bridge validates: target must be online, sender cannot whisper to self, and message content is required.
All commands maintain the same session isolation guarantees: a `say` in the Tower is invisible to users in the Chapel, room transitions are consistent across concurrent requests, and whispers are private by design.
---