From dd4314df721107f35b9a88d1162942eeda786a56 Mon Sep 17 00:00:00 2001 From: josh Date: Sat, 12 Sep 2026 11:59:11 -0400 Subject: [PATCH] Clean up server detail page: remove debug scaffolding, tighten hero MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now that the pipeline works end-to-end, the "RCON reply" panel with its parsed-value grid and hex dump was pure debug scaffolding that ran on every page load — it duplicated every field the hero already surfaces and shoved a 13-line hex block into the fold. Deleted the whole section; the on-demand raw dump lives inside the RCON diagnostic panel (which still only renders when health isn't online, so it stays out of the way on healthy servers). Hero metadata compressed: status and last-seen pairs only render when health isn't online, since the pulsing dot conveys "healthy + fresh" better than a redundant text label. Mode pair hides when the gametype isn't reported (Plutonium T5 doesn't include it in the status header). Config panel hides the "held by beta" row when nothing is held — matches how the deployment history section already only renders when there's history. Co-Authored-By: Claude Opus 4.7 --- src/routes/servers/[name]/+page.svelte | 99 ++++---------------------- 1 file changed, 13 insertions(+), 86 deletions(-) diff --git a/src/routes/servers/[name]/+page.svelte b/src/routes/servers/[name]/+page.svelte index bd7a06c..1d4f44c 100644 --- a/src/routes/servers/[name]/+page.svelte +++ b/src/routes/servers/[name]/+page.svelte @@ -223,9 +223,13 @@
map {effectiveMap ?? '—'} - mode {gametypeLabel(effectiveGametype) || '—'} - status {effectiveHealth} - last seen {ago(effectiveSeen)} + {#if gametypeLabel(effectiveGametype)} + mode {gametypeLabel(effectiveGametype)} + {/if} + {#if effectiveHealth !== 'online'} + status {effectiveHealth} + last seen {ago(effectiveSeen)} + {/if}
@@ -385,53 +389,6 @@ {/if} - {#if effectiveSnippet || effectiveEndpoint} -
-
-

RCON reply

- {#if effectiveEndpoint} - - {/if} -
- -
-
-
endpoint
-
{effectiveEndpoint ? `${effectiveEndpoint.host}:${effectiveEndpoint.port}` : '—'}
-
-
-
players
-
{effectivePlayers ?? '—'}
-
-
-
map
-
{effectiveMap ?? '—'}
-
-
-
gametype
-
{effectiveGametype ?? '—'}
-
-
-
roster parsed
-
{effectiveRoster?.length ?? 0} row{(effectiveRoster?.length ?? 0) === 1 ? '' : 's'}
-
-
-
last seen
-
{ago(effectiveSeen)}
-
-
- - {#if effectiveSnippet} -
raw reply ({effectiveSnippet.split('\n').length} lines)
-
{effectiveSnippet}
- {:else} -
no reply captured yet — click probe rcon above
- {/if} -
- {/if} -

Roster

@@ -463,10 +420,12 @@
game_port
{server.game_port ?? '(unresolved)'}
-
-
held by beta
-
{server.held.length === 0 ? '—' : server.held.map((h) => h.target).join(', ')}
-
+ {#if server.held.length > 0} +
+
held by beta
+
{server.held.map((h) => h.target).join(', ')}
+
+ {/if}
@@ -827,38 +786,6 @@ border-radius: var(--r-sm); } - .rcon-hdr { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: 12px; - } - .rcon-hdr h2 { margin: 0; } - .parsed-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); - gap: 8px; - margin-bottom: 14px; - } - .raw-hdr { - font-family: var(--font-body); - font-size: 10px; - text-transform: uppercase; - letter-spacing: 1.2px; - color: var(--ink-500); - margin: 0 0 6px; - } - .raw-hdr.dim { - padding: 12px 14px; - text-transform: none; - letter-spacing: 0; - font-size: 12px; - background: var(--cherry-875); - border: 1px dashed var(--cherry-700); - border-radius: var(--r-sm); - } - .raw-hdr strong { color: var(--cream); } - .snippet-details { margin-top: 10px; font-family: var(--font-mono);