Ship v0.1.1–v0.1.5: first-live-run fixes and dashboard viewer

- v0.1.1: config persistence — FileHelper paths made absolute
  (/media/startos/volumes/main/...); relative paths resolved into the JS
  runtime's ephemeral cwd so action saves never reached /data
- v0.1.2: preJobStopContainers (Configure Grading) — docker-stop resident
  vLLM containers on the head Spark at job start, no auto-restart
- v0.1.3: preflight auth (LiteLLM master_key gates /models),
  poll-until-loaded, crash fast-fail (restarting counts as dead)
- v0.1.4: HF_HUB_OFFLINE/TRANSFORMERS_OFFLINE in airgapped serving
  (--internal network has no DNS); grader _post timeout 600→1800s for
  ~3.6 tok/s GB10 generation
- v0.1.5: dashboard viewer survives the periodic background refresh;
  download buttons for deck reports, deck JSON, and SCORECARD.md
- .gitignore: .startos/ build workspace, start-technologies/

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Jonathan Kirkwood
2026-07-30 09:14:24 -05:00
co-authored by Claude Fable 5
parent 1d1074b625
commit 91212322c1
16 changed files with 262 additions and 46 deletions
+12 -1
View File
@@ -172,6 +172,10 @@ export const configShape = z.object({
autoRunOnDrop: z.boolean().default(false),
// Name of the per-job Docker network created on the head Spark.
networkName: z.string().default('boardroom-net'),
// Space/comma-separated docker container names stopped on the head Spark at
// the start of every job to free GPU memory (e.g. an always-on vLLM another
// service runs). NOT restarted afterwards — their owner reloads them.
preJobStopContainers: z.string().default(''),
// --- Portfolio companies ---
// The authoritative source of pinned KPI targets and KPI-name aliases. Decks
@@ -212,4 +216,11 @@ export const configShape = z.object({
export type Config = z.infer<typeof configShape>
export const configFile = FileHelper.json('./config.json', configShape)
// Absolute path into the `main` volume (mounted at /media/startos/volumes/main
// in the JS runtime, /data in the orchestrator container). A relative path here
// resolves against the JS runtime's EPHEMERAL working directory and silently
// loses the config on restart.
export const configFile = FileHelper.json(
'/media/startos/volumes/main/config.json',
configShape,
)