Commit Graph

10510 Commits

Author SHA1 Message Date
5f8068cc05 launch: Allow evennia to log in background
When running `evennia start -l &`, the subprocess gets suspended by the OS due to TTY constraints. Explicitly passing `stdin/stdout/stderr` to DEVNULL prevents this hanging state without altering Foreground & Daemon behavior.
2026-02-22 16:03:40 -08:00
b80d1fd4ed Add WebSocket subprotocol negotiation per MUD Standards proposal
Implement RFC 6455 Sec-WebSocket-Protocol negotiation for Evennia's
WebSocket server, following the MUD Standards WebSocket specification
(https://mudstandards.org/websocket/).

New subprotocols:
  - json.mudstandards.org: JSON envelope format with structured OOB
  - gmcp.mudstandards.org: GMCP over WebSocket (TEXT + BINARY frames)
  - terminal.mudstandards.org: Raw ANSI/UTF-8 in BINARY frames

Architecture:
  Wire format strategy pattern via composition. A single WebSocketClient
  delegates encoding/decoding to a WireFormat instance selected during
  onConnect(). Adding a new format means adding a single file to the
  wire_formats/ package with zero changes to webclient.py.

Backward compatibility:
  Clients that send no Sec-WebSocket-Protocol header (including the
  built-in Evennia webclient) get v1.evennia.com format automatically.
  Existing behavior is fully preserved.

Additional changes:
  - Extract shared GMCP encode/decode into gmcp_utils.py (used by both
    telnet and websocket GMCP paths)
  - Add WEBSOCKET_SUBPROTOCOLS setting for server-side format control
  - Built-in JS webclient now sends Sec-WebSocket-Protocol: v1.evennia.com
  - Comprehensive test suite for all wire formats (~870 lines)
2026-02-16 10:21:52 -08:00
Cal
4690dfaf20 one last case just in case 2026-02-15 16:47:45 -07:00
Cal
d05fa6aeec just rewriting the func at this point 2026-02-15 16:45:43 -07:00
903ac91a11 nit: Remove 'None' print in LogObserver
Fixes:

```
2026-02-15 17:57:06 [..] Initial setup: Gathering static resources using 'collectstatic'
None2026-02-15 17:57:06 [..] 0 static files copied to '/home/jake/evennia/aystra/server/.static', 212 unmodified.
2026-02-15 17:57:06 [..] Initial setup complete. Restarting Server once.
2026-02-15 17:57:06 [..] Evennia Server successfully started.
|Portal| 2026-02-15 17:57:07 [..] Portal starting server ... 
```
2026-02-15 15:08:34 -08:00
3761a7cb21 Update Changelog 2026-02-15 19:15:58 +01:00
966301fc1f Evennia 6.0.0 major release v6.0.0 2026-02-15 18:57:12 +01:00
ef2a18108d Update docs 2026-02-15 18:37:08 +01:00
02b6561dae Update Changelog 2026-02-15 18:04:16 +01:00
ffd0cbcdcf Update CHANGELOG 2026-02-15 18:03:20 +01:00
40765867b7 Merge pull request #3862 from jaborsh/patch-1
fix: Fix TraitHandler bugs
2026-02-15 18:03:09 +01:00
5e23764cd5 Merge pull request #3863 from jaborsh/patch-2
xyzgrid: Replace nested look with dict lookup & short list filter
2026-02-15 17:58:01 +01:00
09acb446fa Update CHANGELOG 2026-02-15 17:49:58 +01:00
45c350ffa0 Merge pull request #3864 from jaborsh/patch-3
xyzgrid: Return Dijkstra solution
2026-02-15 17:48:12 +01:00
addf7247d0 Fix regressions in yes_no_handler helper 2026-02-15 15:48:10 +01:00
7c6bad3b42 xyzgrid: Return Dijkstra solution
When loading the Dijkstra solution, results are stored but recalculated anyway. This should be returned instead.
2026-02-15 06:07:42 -08:00
49e2066446 xyzgrid: Replace nested look with dict lookup & short list filter
Upstream is O(n^2) time complexity due to nested loop. Diff includes O(1) dict look up with short filter. Symbol_map is already built during `XYMap.parse()`.
2026-02-15 05:56:18 -08:00
cb821229c4 Use if |/ in EvTable stripped padding. Resolve #3693 2026-02-15 14:04:27 +01:00
0c13cb3a9d Fix broken Evtable formatting with MXP links. Resolve 3082 2026-02-15 14:03:03 +01:00
172d5162f0 Fix formatting of nested inner evtables. Resolve #3193 2026-02-15 13:32:23 +01:00
6fea92196d Make persistent EvMenus not create extra cmdsets. Resolve #3154 2026-02-15 13:18:33 +01:00
ff283072ec Add extra validation of monitor/monitored input funcs. Resolve #3312 2026-02-15 13:09:40 +01:00
1d43bd8bbb Make AUDIT_LOGS customizable from settings. Resolve #2627 2026-02-15 12:47:00 +01:00
4a52d1f7f2 fix: Fix TraitHandler bugs
1. `__name___` triple-underscore typo.
2. Broken f-string in `Trait.__init__`. `type(trait_data)` is literal text, not interpolated.
3. `type() in (float, int)` rejects subclasses of int/float. `isinstance(value, (int, float))` is safer.
2026-02-15 03:17:09 -08:00
67bac94aa9 Fix evennia connection line break issue. Resolve #2775 2026-02-15 12:14:04 +01:00
8b21527a8c Fix inconsistent filtering on AttributeProperties across typeclasses. Resolve #3194 2026-02-15 12:05:02 +01:00
0dd2b595a0 Make CmdSet.add respect allow_duplicates=True. Resolve #3601 2026-02-15 11:49:55 +01:00
cc25051e8f Fix evadventure QuestHandler initialization. Resolve #3560 2026-02-15 11:40:54 +01:00
36ee67ef16 Add regression test for AttributeProperty mixin. Closes #3155 2026-02-15 10:37:17 +01:00
cd0d896620 Fix :j / utils.justify wiping empty lines. Resolve #3649 2026-02-15 10:13:59 +01:00
ff76bd2388 Add regression test for AttributeHandler. Resolve #3225 2026-02-15 09:44:45 +01:00
e5e1e38f3e Make OnDemandHandler safer against pickle errors. Resolve #3513 2026-02-15 09:27:36 +01:00
59258ca7cf CI: Update Dockerimage. 2026-02-15 00:42:28 +01:00
c609e79dde CI: Try to reduce PostgreSQL overhead on XYZgrid multiple table merge (slowing Postgres CI runs) 2026-02-14 23:54:24 +01:00
bd162b0923 CI: Testing fuzzy regex postgres exception. 2026-02-14 22:56:50 +01:00
7e1c5aabb2 CI: More tweaking to speed up PostgreSQL ci test runs 2026-02-14 22:10:47 +01:00
c4d92a9125 Update Changelog 2026-02-14 21:23:28 +01:00
082e355bd4 CI: Fix failing test, extending postgres testing timeout 2026-02-14 21:20:43 +01:00
4f9383ee33 CI: PostgreSQL fails unless tag integers are always strings 2026-02-14 20:33:31 +01:00
d72a46ef4b CI: Remove diagnostic step 2026-02-14 20:24:29 +01:00
9c018b0e3c CI: More PostgreSQL fixing 2026-02-14 19:52:15 +01:00
3a8be92acc CI: Trying to analyze Psql CI fails 2026-02-14 19:39:12 +01:00
d6c7c197bc Update to Django 6.0.2 2026-02-14 17:59:38 +01:00
4ab0fdeee8 Fix unit tests for scipy1.17, python3.14 2026-02-14 17:23:05 +01:00
aa82f2f692 Add Python3.14 support, Increase minimum to Python3.12 2026-02-14 16:31:05 +01:00
c3b01d0aec Fix verbose import warning for debugpy contrib 2026-02-14 10:38:43 +01:00
abcb3d1cc3 Use utf8mb3 for MySQL (same as existing release) to fix CI 2026-02-14 09:38:39 +01:00
7480772404 Fix parsing issues in dice contrib. Resolve #3858 2026-02-14 09:15:04 +01:00
661615a844 Update CHANGELOG 2026-02-14 08:09:24 +01:00
d8808ba370 Merge pull request #3733 from InspectorCaracal/setattr-get-fix
Fix viewing attributes with `CmdSetAttribute`
2026-02-14 08:04:50 +01:00