Commit Graph
40 Commits
Author SHA1 Message Date
Nomads_Reach 550aac04f9 ops: remove temporary deployment workflow 2026-08-18 14:33:59 -04:00
Nomads_Reach 8258affc22 ops: restore Gitea sync workflow after deployment attempt 2026-08-18 14:33:48 -04:00
Nomads_Reach 4a8ae3cab9 ops: restore CSharp workflow after deployment attempt 2026-08-18 14:33:34 -04:00
Nomads_Reach febd599ce2 ops: add visible sync-runner deploy check 2026-08-18 14:26:28 -04:00
Nomads_Reach 0cc4c0e4d4 ops: use sync runner for fleet deployment 2026-08-18 14:24:42 -04:00
Nomads_Reach 0a55f3e50a ops: allow private deployment status beacon 2026-08-18 14:20:44 -04:00
Nomads_Reach 117b0a616b ops: run fleet deployment on marked main push 2026-08-18 14:17:54 -04:00
Nomads_Reach 1bcc564c03 ops: attach runner fleet deployment job 2026-08-18 14:16:24 -04:00
Nomads_Reach 97f69d966d ops: expose deployment run on draft PR 2026-08-18 14:14:57 -04:00
Nomads_Reach 343bc9dd49 ops: deploy runner scheduler and fleet 2026-08-18 14:13:57 -04:00
Nomads_Reach 9c5c16caf8 Disable Git credential helpers during Gitea sync 2026-08-17 16:02:56 -04:00
Nomads_Reach 30142c9706 Move Gitea sync to isolated trusted runner and stop persisting token 2026-08-17 15:52:19 -04:00
Nomads_Reach 7b4acf61d5 Pin CO-SERVER publish actions and reduce artifact retention 2026-08-17 15:52:05 -04:00
Nomads_Reach 3353726aef Harden CO-SERVER host build runner 2026-08-17 15:51:56 -04:00
Nomads_Reach 6f1e7d8f99 Route GNS build to isolated CO-SERVER runner 2026-08-17 15:51:49 -04:00
Nomads_Reach e1d894e828 Harden CO-SERVER build runner selection 2026-08-17 15:51:40 -04:00
Nomads_Reach f8bd621f18 Route acceptance to isolated CO-SERVER runner 2026-08-17 15:51:31 -04:00
Nomads_ReachandGitHub 098cf34355 Run the Gitea sync workflow on the self-hosted runner (#23)
Acceptance (end-to-end TCP) / End-to-end TCP acceptance (push) Canceled after 0s
CSharp Server Gate / Repository policy, C# build and test (push) Canceled after 0s
GNS Transport Bridge / Linux native GNS bridge (push) Canceled after 0s
Host GUI (Avalonia) / Build Avalonia host (push) Canceled after 0s
Acceptance (end-to-end TCP) / End-to-end TCP acceptance (pull_request) Canceled after 0s
CSharp Server Gate / Repository policy, C# build and test (pull_request) Canceled after 0s
GNS Transport Bridge / Linux native GNS bridge (pull_request) Canceled after 0s
Host GUI (Avalonia) / Build Avalonia host (pull_request) Canceled after 0s
GitHub-hosted runners are billing-blocked for this org, so the hosted
open-gitea-pr job never started (empty logs, immediate failure on every push
to main). Retarget it to [self-hosted, Linux, X64] like the other workflows;
the runner has LAN access to the Gitea host, and this workflow only fires on
push to main, so it never runs untrusted fork PR code.
2026-08-16 20:07:37 -04:00
Nomads_ReachandGitHub 6edc16ed20 Add an end-to-end TCP acceptance harness (issue #15) (#20)
Stand up the real AuthoritativeServer behind the real TCP transport on a
loopback port and drive real SyntheticProtocolClient sockets through it, so the
matrix is exercised over an actual connection rather than in-memory fakes.

Covers the baseline-protocol, TCP-compatibility, and interest-management
sections: welcome->hello->sessionReady handshake, unique/non-spoofable
server-owned ids, malformed and oversized rejection before mutation, rate-limit
tripping, transform/playerState/worldState relay, action events not
replay-cached to late joiners, disconnect/reconnect leaving no stale session,
same-cell relay vs distant interest filtering, multi-client no cross-cell spam,
and handshake-timeout reaping.

The harness runs for real wherever loopback TCP can bind (dev machines, the
self-hosted runner) and skips cleanly otherwise. Wired into a self-hosted CI
job gated by the runtime-policy guard. 60s idle-timeout, 32/64-client load /
packet-loss / reconnect-churn, and GNS sections remain follow-ups.
2026-08-16 19:17:08 -04:00
Nomads_ReachandGitHub ea275210cd Restyle the Avalonia server host and add a single-file publish workflow (#18)
Give the host a cohesive vault-terminal look: header wordmark with a live
status pill that glows green while running, sectioned configuration card with
per-field labels, a terminal-style server log, richer player rows (id, name,
address, packet counts), and a bold Start/Stop control bar. All existing
bindings are unchanged.

Add publish-host.yml to build self-contained, single-file win-x64 and
linux-x64 binaries on the self-hosted runner and upload them as artifacts,
and document the untrimmed publish commands in the host README.
2026-08-16 18:47:14 -04:00
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 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 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 535fd40770 Gate GNS config persistence 2026-08-16 00:50:30 -04:00
Nomads_Reach 2f4ddaaa26 Gate ServerService GNS lifecycle 2026-08-16 00:46:50 -04:00
Nomads_Reach 974113bf43 Gate transport-neutral authoritative server 2026-08-16 00:45:16 -04:00
Nomads_Reach 759ecd510f Gate GNS snapshot sequencing 2026-08-16 00:37:07 -04:00
Nomads_Reach d822baee21 Add self-hosted Networking V2 gate 2026-08-16 00:33:20 -04:00
Nomads_Reach c0caeca254 Run all native GNS bridge tests 2026-08-16 00:29:05 -04:00
Nomads_Reach 2a05e3466b Add native GNS server bridge 2026-08-16 00:19:32 -04:00
Nomads_Reach 6080015eb1 Normalize start script mode before Linux CI checks 2026-08-15 21:07:42 -04:00
NomadsReach 34fb54990c Open a Gitea PR automatically when main is merged on GitHub 2026-08-15 20:53:03 -04:00
andrew 881aa33eef Harden Linux server runtime and packaging
Linux Compatibility / Ubuntu dedicated server (push) Has been cancelled
Linux Compatibility / Arch Linux container (push) Has been cancelled
Adds end-to-end Linux compatibility work for the dedicated server: new CI workflow (Ubuntu + Arch), line-ending/executable safeguards, and a local venv-first startup flow with split dependency files for server vs optional host GUI tooling. Improves runtime resilience with better bind error messages, stricter config validation, writable-state checks, cleaner socket/thread shutdown behavior, and SIGTERM-aware graceful stop handling for headless/systemd use. Updates deployment/startup docs and adds portability/runtime integration tests to lock in these behaviors.
2026-08-01 21:39:23 +12:00