NomadsReach
0accc17b66
Retire the Qt/C++ host; ship the Avalonia host
...
Delete the Qt host (src/, cmake/, CMakeLists.txt, find-qt.bat, check-setup.bat,
build.bat, deploy.bat) now that the Avalonia host in host/ covers it on the same
dotnet toolchain. Add a self-hosted host-build CI job and a host README, and
rewrite the top-level README for the C# server + Avalonia host layout.
2026-08-16 18:24:14 -04:00
NomadsReach
16c101a4bc
Launcher milestone 2: player list, kick/ban, live stats
...
Adds an admin-protocol client (token-authed TCP JSON on 127.0.0.1:AdminPort,
reusing the server's .admin-token) that polls connected players and status
every 3s, plus Kick/Ban on the selected player and a players/uptime readout.
2026-08-16 18:22:03 -04:00
NomadsReach
1f01e68794
Add Avalonia server-host launcher (MVP scaffold)
...
Cross-platform C# GUI to replace the Qt/C++ Host GUI, on the same dotnet
toolchain as the server. MVP: load/save commonwealth-server.json, Start/Stop
the CommonwealthOnline.Server process (published exe, then dll, then source
run), and stream its output to a live log. Themed to the Commonwealth Online
brand (near-black + amber). Builds clean on net8.0.
Next: player list + kick/ban via the admin port, then retire the Qt host.
2026-08-16 18:15:40 -04:00
NomadsReach
6861fa4276
Print the co_gns_server_create failure reason in the bridge test
...
The bare assert hid why server creation fails on the CI runner. Emit the
error buffer to stderr before asserting so the cause is visible in logs.
2026-08-16 17:51:49 -04:00
NomadsReach
f1a7876770
Move DOTNET_INSTALL_DIR to step scope (runner context invalid at job env)
...
The job-level env used runner.tool_cache, which isn't available until a
runner is assigned, so the workflow failed to parse. Set it on the
setup-dotnet step, where the runner context is valid.
2026-08-16 17:46:35 -04:00
NomadsReach
9c4580daaf
Install the pinned .NET SDK to a runner-writable dir on self-hosted CI
...
setup-dotnet defaulted to /usr/share/dotnet, which the runner user cannot
write to (Permission denied). Point DOTNET_INSTALL_DIR at runner.tool_cache
so the 8.0 SDK installs into a writable, cached location.
2026-08-16 17:43:16 -04:00
NomadsReach
48ee0da01f
Fix C# gate: compile error, validator int handling, policy hits, GNS deps
...
- GnsTransport.cs: drop the illegal fixed statement on native.Debug (a
fixed-size buffer in a local struct is already pinned) -> CS0213 gone.
- ProtocolCore.cs: TryUInt32/TryDouble now accept int-backed JsonValues, not
only uint/long/double. Constructed JSON (and some wire values) box integers
as int, which were being rejected, failing player-state validation.
- MainWindow.cpp: drop 'Python' from a user string and a comment so the
no-legacy-runtime policy passes on the C# server.
- gns-transport.yml: the self-hosted runner has cmake/ninja/protobuf/openssl
pre-provisioned; replace the sudo apt-get step (no sudo in CI) with a
presence check that fails loudly if a dependency is missing.
Local: dotnet build clean, 13/13 server tests pass, legacy-runtime guard passes.
2026-08-16 17:40:31 -04:00
NomadsReach
ff5c6d883a
Run the GNS bridge job on the self-hosted runner instead of GitHub-hosted
...
The ubuntu-latest job cannot start while GitHub-hosted minutes are
billing-blocked. Target the self-hosted Linux x64 runner, matching the
rest of the CI (csharp-server.yml, CO-BETA/beta-ci.yml).
2026-08-16 16:51:10 -04:00
Nomads_Reach
5e8df12b70
Run runtime policy first on self-hosted gate
2026-08-16 02:58:42 -04:00
Nomads_Reach
512f8717ea
Run legacy runtime guard on every push and PR
2026-08-16 02:58:01 -04:00
Nomads_Reach
7267782084
Centralize legacy runtime checks in Linux validation
2026-08-16 02:57:42 -04:00
Nomads_Reach
6282323b12
Reject prohibited artifacts during CMake staging
2026-08-16 02:57:34 -04:00
Nomads_Reach
1fbfc3a51b
Strengthen packaged server artifact checks
2026-08-16 02:57:12 -04:00
Nomads_Reach
a788b5c076
Remove legacy runtime wording from Windows build
2026-08-16 02:57:00 -04:00
Nomads_Reach
6eee5354ea
Remove legacy runtime wording from deployment docs
2026-08-16 02:56:47 -04:00
Nomads_Reach
e9e4d79e62
Remove legacy runtime references from server docs
2026-08-16 02:56:40 -04:00
Nomads_Reach
4e942dfb6f
Remove legacy runtime references from root docs
2026-08-16 02:56:28 -04:00
Nomads_Reach
14e9d439e3
Add repository legacy runtime guard
2026-08-16 02:56:18 -04:00
Nomads_Reach
6e2db7934c
Fix C# test restore in Linux checks
2026-08-16 02:39:01 -04:00
Nomads_Reach
55b9c178b3
Fix C# test restore in Windows build
2026-08-16 02:38:52 -04:00
Nomads_Reach
377fe2754b
Fix C# test restore in CI
2026-08-16 02:38:42 -04:00
Nomads_Reach
757e614cdd
Complete C# server cutover
2026-08-16 02:36:32 -04:00
Nomads_Reach
ddadf87423
Add C# dedicated server replacement
2026-08-16 02:23:04 -04:00
Nomads_Reach
0024436ce8
Test GNS-aware dedicated server config handoff
2026-08-16 01:06:55 -04:00
Nomads_Reach
ad18858551
Add GNS-aware dedicated server entrypoint
2026-08-16 01:06:46 -04:00
Nomads_Reach
3d73d51331
Use transport-aware server entrypoint
2026-08-16 00:58:15 -04:00
Nomads_Reach
535fd40770
Gate GNS config persistence
2026-08-16 00:50:30 -04:00
Nomads_Reach
f478db83ec
Document opt-in GNS server config
2026-08-16 00:49:38 -04:00
Nomads_Reach
dd6f47c61b
Test GNS config persistence and validation
2026-08-16 00:49:24 -04:00
Nomads_Reach
d24e8c58e3
Persist GNS transport configuration
2026-08-16 00:49:10 -04:00
Nomads_Reach
2f4ddaaa26
Gate ServerService GNS lifecycle
2026-08-16 00:46:50 -04:00
Nomads_Reach
298110f589
Test ServerService GNS lifecycle
2026-08-16 00:46:31 -04:00
Nomads_Reach
86ec79eeb9
Add opt-in GNS host transport
2026-08-16 00:46:15 -04:00
Nomads_Reach
974113bf43
Gate transport-neutral authoritative server
2026-08-16 00:45:16 -04:00
Nomads_Reach
2f38c5b633
Exercise transport-neutral GNS server path
2026-08-16 00:45:02 -04:00
Nomads_Reach
99b242eee6
Send GNS packets without TCP framing
2026-08-16 00:44:34 -04:00
Nomads_Reach
94487f57ca
Test transport-aware server send boundary
2026-08-16 00:43:56 -04:00
Nomads_Reach
fcbf66a821
Add transport-aware authoritative server
2026-08-16 00:43:45 -04:00
Nomads_Reach
240c3e9a86
Add transport-neutral client send boundary
2026-08-16 00:43:31 -04:00
Nomads_Reach
759ecd510f
Gate GNS snapshot sequencing
2026-08-16 00:37:07 -04:00
Nomads_Reach
2493ce5f30
Test sequenced GNS gameplay snapshots
2026-08-16 00:36:52 -04:00
Nomads_Reach
39750a72ee
Enforce sequenced GNS snapshots
2026-08-16 00:35:21 -04:00
Nomads_Reach
a181794369
Test GNS snapshot envelope
2026-08-16 00:34:34 -04:00
Nomads_Reach
ee73c731b0
Add GNS snapshot sequence envelope
2026-08-16 00:34:21 -04:00
Nomads_Reach
d822baee21
Add self-hosted Networking V2 gate
2026-08-16 00:33:20 -04:00
Nomads_Reach
e359984468
Test GNS reliable send failure handling
2026-08-16 00:31:48 -04:00
Nomads_Reach
b8451d2260
Harden GNS gameplay reliability handling
2026-08-16 00:31:28 -04:00
Nomads_Reach
4a70c0a963
Test GNS gameplay adapter integration
2026-08-16 00:30:49 -04:00
Nomads_Reach
f158619670
Add GNS gameplay adapter
2026-08-16 00:30:19 -04:00
Nomads_Reach
c0caeca254
Run all native GNS bridge tests
2026-08-16 00:29:05 -04:00
Nomads_Reach
5d840b3000
Run native endpoint security test
2026-08-16 00:28:52 -04:00
Nomads_Reach
69c8e1e198
Test GNS remote endpoint query
2026-08-16 00:28:42 -04:00
Nomads_Reach
232b24a7da
Test TCP compatibility framing
2026-08-16 00:28:22 -04:00
Nomads_Reach
2edaede2b3
Isolate TCP message framing
2026-08-16 00:28:13 -04:00
Nomads_Reach
72b8dd5fac
Test GNS remote endpoint preservation
2026-08-16 00:27:56 -04:00
Nomads_Reach
9d8bb4404f
Preserve remote endpoint for GNS admission
2026-08-16 00:27:38 -04:00
Nomads_Reach
875e4957ee
Link GNS remote endpoint query
2026-08-16 00:27:10 -04:00
Nomads_Reach
4c558c2d61
Query GNS remote IPv4 endpoint
2026-08-16 00:26:59 -04:00
Nomads_Reach
99658a23ff
Expose GNS remote endpoint metadata
2026-08-16 00:26:51 -04:00
Nomads_Reach
0c75b35854
Test Python GNS bridge wrapper
2026-08-16 00:26:18 -04:00
Nomads_Reach
2bd5900178
Add Python GNS transport wrapper
2026-08-16 00:26:01 -04:00
Nomads_Reach
5179c63373
Test transport-neutral packet codec
2026-08-16 00:24:51 -04:00
Nomads_Reach
0deb87e979
Add transport-neutral packet codec
2026-08-16 00:24:41 -04:00
Nomads_Reach
f567a94145
Include GNS address utility definitions
2026-08-16 00:24:21 -04:00
Nomads_Reach
18899e9692
Fix native GNS bridge build flags
2026-08-16 00:20:20 -04:00
Nomads_Reach
2a05e3466b
Add native GNS server bridge
2026-08-16 00:19:32 -04:00
Nomads_Reach
56c8984845
Isolate load test from IP throttle
2026-08-16 00:10:08 -04:00
Nomads_Reach
a56209c265
Add GNS load and reorder acceptance tests
2026-08-16 00:08:33 -04:00
Nomads_Reach
ca962e4511
Define wrap-safe snapshot sequencing
2026-08-16 00:06:06 -04:00
Nomads_Reach
840445075d
Test player state interest and replay safety
2026-08-15 23:50:37 -04:00
Nomads_Reach
b04fca8154
Prevent stale player action replay
2026-08-15 23:49:31 -04:00
Nomads_Reach
4d5e07d1cc
Test reliable Protocol V2 player state relay
2026-08-15 23:40:21 -04:00
Nomads_Reach
8c352260a3
Split reliable Protocol V2 player state
2026-08-15 23:39:55 -04:00
Nomads_Reach
e7fde0192d
Test Protocol V2 player state validation
2026-08-15 23:38:18 -04:00
Nomads_Reach
f24bd062eb
Add Protocol V2 player state validation
2026-08-15 23:38:01 -04:00
Nomads_Reach
cebf12900c
Test server gameplay transport policy
2026-08-15 23:22:47 -04:00
Nomads_Reach
f8e3be53a9
Add server gameplay transport policy
2026-08-15 23:22:17 -04:00
Nomads_Reach
5ad59d871c
Cover scoped NPC authority handoff end to end
2026-08-15 23:02:23 -04:00
Nomads_Reach
cbaf322759
Harden Protocol V2 test packet framing
2026-08-15 22:51:50 -04:00
Nomads_Reach
d310d77428
Enforce scoped NPC authority epochs for Protocol V2
2026-08-15 21:56:33 -04:00
Nomads_Reach
94be46979e
Test scoped NPC authority epochs
2026-08-15 21:54:39 -04:00
Nomads_Reach
616df6f56f
Add scoped NPC authority epoch manager
2026-08-15 21:54:27 -04:00
Nomads_Reach
8f7ee31bd2
Test last-known-good movement correction
2026-08-15 21:49:33 -04:00
Nomads_Reach
8571056fb3
Reject impossible movement before relay and correct sender
2026-08-15 21:48:19 -04:00
Nomads_Reach
b4fe87e1ca
Track last accepted transform timing
2026-08-15 21:46:38 -04:00
Nomads_Reach
fb11d34e95
Test Protocol V2 synthetic client
2026-08-15 21:30:39 -04:00
Nomads_Reach
d09b4579e2
Add Protocol V2 synthetic client and load harness
2026-08-15 21:30:26 -04:00
Nomads_Reach
61be20a88a
Preserve staged admin token across rebuilds
2026-08-15 21:29:59 -04:00
Nomads_Reach
07e2a45cf4
Authenticate SIGTERM admin probe
2026-08-15 21:29:48 -04:00
Nomads_Reach
093bff6340
Test authenticated admin control channel
2026-08-15 21:28:36 -04:00
Nomads_Reach
40cbe6f5a5
Authenticate Host GUI admin requests
2026-08-15 21:28:19 -04:00
Nomads_Reach
654e0b405b
Ignore generated admin token
2026-08-15 21:27:56 -04:00
Nomads_Reach
b504c94b90
Authenticate localhost admin IPC
2026-08-15 21:27:43 -04:00
Nomads_Reach
dfc826d14d
Treat invalid unban input as a no-op
2026-08-15 21:09:39 -04:00
Nomads_Reach
6080015eb1
Normalize start script mode before Linux CI checks
2026-08-15 21:07:42 -04:00
Nomads_Reach
963951f64f
Preserve staged ban state across Host GUI rebuilds
2026-08-15 21:06:26 -04:00
Nomads_Reach
e7f44caa85
Document the Protocol V2 transition contract
2026-08-15 21:06:06 -04:00
Nomads_Reach
c3a8f7e9e2
Update NPC protocol tests for validated active sessions
2026-08-15 21:05:04 -04:00
Nomads_Reach
b4df2ed5c8
Update combat protocol tests for active sessions
2026-08-15 21:04:54 -04:00
Nomads_Reach
a7e8165aec
Cover protocol hardening and interest routing
2026-08-15 21:03:39 -04:00