Small UI cleanup, auto-refresh, and per-kind artifact routes

- Remove redundant "manage scripts" button and pipeline sidebar from Fleet page
- Bump log tail default 200 -> 1000 lines
- Auto-refresh (5s) on deployments list/detail, betas list, server detail, and artifact detail
- Drift ignores dedicated.cfg (Plutonium MP config; regenerates if deleted)
- Extract ArtifactDetail component; mount under /scripts/[id], /configs/[id], /plugins/[id] so configs and plugins no longer land on /scripts URLs

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-09-12 23:30:04 -04:00
co-authored by Claude Opus 4.7
parent f10f0cefef
commit f716036d89
15 changed files with 668 additions and 603 deletions
+11 -1
View File
@@ -8,6 +8,7 @@
scope_type: 'game' | 'map' | null;
scope_value: string | null;
current_version_id: number | null;
kind: 'script' | 'config' | 'plugin' | 'baseline';
latestVersion: {
id: number;
version: number;
@@ -145,6 +146,15 @@
return `${s.scope_type}=${s.scope_value ?? '?'}`;
}
// Configs/baselines and plugins have their own detail routes; scripts fall
// through to /scripts/{id}. The "all scripts" list is still an everything
// view, but each row deep-links to the right family.
function detailHref(s: ScriptRow): string {
if (s.kind === 'config' || s.kind === 'baseline') return `/configs/${s.id}`;
if (s.kind === 'plugin') return `/plugins/${s.id}`;
return `/scripts/${s.id}`;
}
// What state tag to show on a script row. Distinguishes "never promoted"
// (whole script is untested) from "promoted but has a newer untested
// version" (existing production is fine, but there's unreleased work).
@@ -238,7 +248,7 @@
{:else}
<div class="scripts">
{#each scripts as s (s.id)}
<a class="script-row" href="/scripts/{s.id}">
<a class="script-row" href={detailHref(s)}>
<div class="row-top">
<span class="script-name">{s.name}</span>
<span class="scope tag scope-{s.scope_type ?? 'none'}">{scopeLabel(s)}</span>