# our_wandb memory

Non-obvious learnings, format quirks, deferred decisions. Append-only.

## 2026-06-10 — bootstrap recon

- **`/data/cameron/yam_remote` is dead.** It symlinks to `mnt/robot-lab` (russet,
  abandoned 2026-06-08). The wandb files ROLE.md points at don't exist there.
  Live runs are under the **yukon** mount: `/home/cameronsmith/mnt/yukon/cameron/puget/{wandb,code/wandb,data/wandb}/`.
- **`--name` is the grouping key**, and it's in `wandb-metadata.json`'s `args`
  array — NOT in a top-level field. metadata is written on every run (even
  in-progress); config.yaml/wandb-summary.json are NOT (only on completed runs).
  So never depend on config.yaml/summary existing — that would crash the list on
  any live run.
- **You don't need to parse the `.wandb` binary for the MVP.** `output.log` carries
  the loss history as text: `ckpt @ <step>  total=.. vol=.. grip=.. rot=..  <it/s>`.
  Regex it. The `.wandb` protobuf datastore is the v2 path only if Cameron wants the
  full internal per-step history.
- **serve.py is 2980 lines** — do NOT add parsing logic to it. Mirror the
  `data_viewer` route (serve.py:443): a static UI dir via `send_from_directory` +
  thin `/api/...` JSON endpoints; heavy logic in a separate importable module
  (`reports/wandb_runs.py`). `REPORTS_DIR = Path(__file__).parent`, port 8080,
  restarted in the `website_builder` tmux window.
- Image filename pattern: `media/images/<panel>/<key>_<idx>_<step>_<hash>.png`
  (e.g. `viz/rot_grid_0_1499_<hash>.png`). The trailing-but-one number is the step.
- **Two name flags**: newer train.py uses `--name`, older uses `--run_name`. Parse
  both (and `--wandb_project` for the project). Grouping key = whichever is present.
- **output.log is a loss source ONLY for newer runs.** Today's train.py prints
  `ckpt @ <step>  total=.. vol=.. grip=.. rot=..`. The *older* train.py's output.log
  has NO inline loss values — only `[ckpt] saved at step=N` + `Epoch N: val skipped`.
  So for older runs the only on-disk scalar is the *final* value in
  wandb-summary.json (`train/total`); full step-history would need the `.wandb`
  protobuf parser (v2). MVP: show step-series when parseable, else final summary +
  a "older run — no step history on disk" note. Don't crash.
