Files
the-nexus/FIRST_LIGHT_REPORT_EVENNIA_BRIDGE.md
Alexander Whitestone 1fe5176ebc
Some checks failed
CI / validate (pull_request) Failing after 4s
feat: feed Evennia world events into Nexus websocket bridge
2026-03-28 16:25:18 -04:00

50 lines
1.8 KiB
Markdown

# First Light Report — Evennia to Nexus Bridge
Issue:
- #727 Feed Evennia room/command events into the Nexus websocket bridge
What was implemented:
- `nexus/evennia_ws_bridge.py` — reads Evennia telemetry JSONL and publishes normalized Evennia→Nexus events into the local websocket bridge
- `EVENNIA_NEXUS_EVENT_PROTOCOL.md` — canonical event family contract
- `nexus/evennia_event_adapter.py` — normalization helpers (already merged in #725)
- `nexus/perception_adapter.py` support for `evennia.actor_located`, `evennia.room_snapshot`, and `evennia.command_result`
- tests locking the bridge parsing and event contract
Proof method:
1. Start local Nexus websocket bridge on `ws://127.0.0.1:8765`
2. Open a websocket listener
3. Replay a real committed Evennia example trace from `timmy-home`
4. Confirm normalized events are received over the websocket
Observed received messages (excerpt):
```json
[
{
"type": "evennia.session_bound",
"hermes_session_id": "world-basics-trace.example",
"evennia_account": "Timmy",
"evennia_character": "Timmy"
},
{
"type": "evennia.command_issued",
"actor_id": "timmy",
"command_text": "look"
},
{
"type": "evennia.command_result",
"actor_id": "timmy",
"command_text": "look",
"output_text": "Chapel A quiet room set apart for prayer, conscience, grief, and right alignment...",
"success": true
}
]
```
Interpretation:
- Evennia world telemetry can now be published into the Nexus websocket bridge without inventing a second world model.
- The bridge is thin: it translates and forwards.
- Nexus-side perception code can now consume these events as part of Timmy's sensorium.
Why this matters:
This is the first live seam where Timmy's persistent Evennia place can begin to appear inside the Nexus-facing world model.