Commit Graph
100 Commits
Author SHA1 Message Date
josh 1d073779fe Fix false stale Fleet reports caused by clock skew 2026-09-19 20:17:43 -04:00
josh 345839fbd4 Use current promoted files for blueprint launches 2026-09-19 19:58:30 -04:00
josh 41891b4209 Add per-server telemetry request diagnostics 2026-09-19 18:59:30 -04:00
josh a182aeb950 Add persistent player leaderboards from game telemetry 2026-09-18 16:43:44 -04:00
josh 0f55fa5f77 Replace server roster with live game scoreboard 2026-09-18 16:14:08 -04:00
josh 5bb49a776e Simplify telemetry to three game events 2026-09-18 15:35:21 -04:00
josh 6d903adb31 Fix fleet stale-status flicker during polling 2026-09-18 15:11:49 -04:00
josh f54cac8c50 Unify UI workflows and streamline fleet management 2026-09-18 14:00:28 -04:00
josh 9cf0bd87f4 Refresh Fleet with discovery, operation progress, and lobby watches 2026-09-18 11:59:14 -04:00
josh ef8ff69d17 Refresh Configs with browser editing and source inspection 2026-09-18 11:02:22 -04:00
josh ec51e38312 Refresh script library with batch uploads and beta handoff 2026-09-18 09:57:57 -04:00
josh b2ec01daf5 Fix scope restoration for promoted scripts 2026-09-18 08:08:17 -04:00
josh 3c49437bf9 Add GitHub plugin release imports and update discovery 2026-09-18 01:29:38 -04:00
josh a718efc9e7 Add publisher release versions to plugins 2026-09-18 01:16:45 -04:00
josh 166f039ae6 Add responsive mobile layouts and navigation 2026-09-18 01:09:05 -04:00
josh 453821805a Fix server deletion cleanup and allow failed cleanup to resume 2026-09-18 00:49:30 -04:00
josh 274aedb66e Add House Party Protocol for fleet-wide queued destruction 2026-09-18 00:39:19 -04:00
josh 586133c711 Conform blueprint launches to desired fleet counts 2026-09-18 00:28:17 -04:00
josh 989931a0f2 Add multi-server blueprint collections and atomic launches 2026-09-18 00:08:54 -04:00
josh 782c7c0bda Add deployment blueprints and reviewed launch recipes 2026-09-17 23:43:12 -04:00
josh edd74f09de Expand game reporter protocol and T6 integration guide 2026-09-17 21:58:57 -04:00
josh 4237371360 Fix beta preset selection and improve test plan builder UI 2026-09-17 21:51:25 -04:00
josh a50eae9d21 Add configurable beta test plans and staged rollout 2026-09-17 21:35:28 -04:00
josh 5b5266da3a Add operation flows and activity logs for betas and campaigns 2026-09-17 19:34:26 -04:00
josh 9dcf4ac1d3 Add T6 Zombies fleet support with Plutainer configuration 2026-09-17 18:03:12 -04:00
josh 1350e6df7c Show friendly map titles in fleet cards 2026-09-17 17:34:44 -04:00
josh 885abbdffe Use database fleet registry and gate RCON polling on container readiness 2026-09-17 17:28:38 -04:00
josh 3b1c9bf3d9 Rename Server keys page to Keys 2026-09-17 17:19:27 -04:00
josh c2ad5cc95a Queue server creation and verify health and selected map before completion 2026-09-17 17:14:36 -04:00
josh f37014fad9 Merge branch 'main' of https://gitea.thewrightserver.net/josh/electric-cherry 2026-09-17 16:57:13 -04:00
josh a611850649 new destruction flow 2026-09-17 16:57:08 -04:00
josh 5c2df6d652 Update README.md 2026-09-17 16:55:27 -04:00
josh e688283210 Update README.md 2026-09-17 16:54:14 -04:00
josh 5f8e03c693 Remove campaigns helper text from deployments page 2026-09-17 16:45:10 -04:00
josh 6f83700161 Separate campaigns from server deployment lifecycle tracking 2026-09-17 16:42:37 -04:00
josh 6c6e63fa80 Fix Scripts page to list only scripts 2026-09-17 16:25:26 -04:00
josh 60e44636aa Fix initial artifact deployment and drift file replacement 2026-09-17 16:15:47 -04:00
josh e8e7332365 Automatically deploy the lowest available lobby with exact ID preview 2026-09-17 15:59:29 -04:00
josh ae173517b6 Persist Plutonium keys by server ID and add key management 2026-09-17 15:54:10 -04:00
josh e4505a3be8 Set telemetry server ID when creating Komodo servers 2026-09-17 15:28:23 -04:00
josh bbb1639184 debug 2 2026-09-17 15:09:27 -04:00
josh 85c238fceb debug 2026-09-17 15:01:39 -04:00
josh 858704bb10 adds round telemetry support 2026-09-17 14:35:42 -04:00
josh 8e04a190b3 Roll deployment restarts through a shared fleet-wide recovery limit 2026-09-17 11:25:06 -04:00
josh 3f0d6dd87d Apply selected server maps automatically without config overlays 2026-09-17 11:05:01 -04:00
josh 1cd4eb6f09 Use UpdateResourceMeta to apply Komodo deployment tags 2026-09-17 09:45:18 -04:00
josh 516dfeb4c3 Fix Komodo tag IDs in Mongo Extended JSON responses 2026-09-17 09:41:27 -04:00
josh e6b5705478 Probe tagged-union ListTags shape + surface raw bodies on miss
read/ListTags with an empty body was returning something we couldn't
parse, so every tag lookup silently missed and the CreateTag duplicate
fallback dead-ended with no diagnostic.

Now the tag lookup tries two request styles in order — the per-endpoint
`read/ListTags {}` used by the rest of this file, then the tagged-union
`read {type: "ListTags", params: {}}` used by mbecker20/komodo's
canonical API. If both fail to yield a match, both raw response bodies
get logged so the actual Komodo shape is diagnosable on the next run
without another commit-and-deploy cycle.
2026-09-17 09:26:07 -04:00
josh 66f70cd9f3 Handle Komodo tag response shape variance + duplicate recovery
Two real-world Komodo responses broke the first pass:

1. read/ListTags didn't surface tag "t5" in a matchable shape, so we
   fell through to CreateTag and got HTTP 500 "duplicate key: t5".
2. write/CreateTag returned 200 with an id field named "id" (not "_id"),
   which the parser rejected as an unexpected shape even on success.

Fixes:
- extractTagId accepts either "id" or "_id"
- unwrapTagList peels back common list wrappers (bare array, {tags},
  {data}, {results}, {items}) instead of requiring a top-level array
- CreateTag duplicate-key error triggers a re-list so the existing tag
  can be resolved to its id instead of failing the whole tag pass
- Both ListTags and CreateTag branches log the raw body when parsing
  fails, so the next unfamiliar shape is diagnosable at a glance
2026-09-17 09:20:20 -04:00
josh 5c674615d3 Tag Komodo deployments with game + canonical map name
New deployments get two tags attached (e.g. "t5" and "zombie_pentagon")
so operators can filter the Komodo deployment list by game and by map.
Tags are ensured via read/ListTags + write/CreateTag fallback, then
attached with write/UpdateTagsOnResource against the deployment name.

Tag application runs fire-and-forget after CreateDeployment: any failure
logs a warning and the server creation proceeds. Tags are cosmetic
organization inside Komodo, not a correctness requirement.
2026-09-17 09:15:00 -04:00