Files
boardroom-map/sandbox
Jonathan KirkwoodandClaude Fable 5 91212322c1 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>
2026-07-30 09:14:24 -05:00
..

Boardroom Map reviewer sandbox

This directory is the build context for the reviewer image, which runs on the DGX Spark — it is not packed into the .s9pk. The orchestrator rsyncs this folder to the head Spark and runs build.sh there (the Sparks are aarch64), or you can build it by hand.

  • grader_agent.py — a one-shot, read-only agent. It reads the documents mounted at /docs, runs one local model (through the on-Spark proxy) under its persona (/persona/PERSONA.md) and the shared rubric (/RUBRIC.md), and writes a single report to /out. With BM_ROLE=synthesizer it instead reads the panel's reports from /reports and writes CONSOLIDATED_REPORT.md.
  • reviewer.Dockerfile — lean pure-Python image (stdlib only).
  • build.shIMAGE=boardroom-grader:latest bash build.sh.

How it is launched (by the orchestrator)

Hardened and, in air-gapped mode, network-isolated:

docker run -d --name bm-grader-<id> \
  --network boardroom-net \                 # --internal in air-gapped mode
  --user 1000:1000 --security-opt no-new-privileges --cap-drop ALL \
  --read-only --tmpfs /tmp --tmpfs /home/rev --pids-limit 256 --memory 6g --cpus 4 \
  -e BM_MODEL=<alias> -e BM_LLM_BASE=http://boardroom-proxy:4000/v1 ... \
  -v <job>/docs:/docs:ro -v <job>/out:/out \
  -v <job>/personas/<id>.md:/persona/PERSONA.md:ro -v <job>/RUBRIC.md:/RUBRIC.md:ro \
  boardroom-grader:latest

The container can reach only the model proxy in air-gapped mode; it holds no credentials beyond a dummy proxy key and cannot touch the host or the documents' originals.