# YAM — tasks

Active workstreams. Mark `[x]` when done; move stable conventions into
`memory.md`.

## Active

- [ ] **Investigate inter-substep delay during chunk execution.** Cameron
  reports ~3 s pause after each smooth_move_to. Root cause is *not* the
  obs-stream pause trick (that caused an orphan-frame bug — see
  `known-bugs.md`). Likely chiral lock contention + slow round-trips from
  HD1080+wrist payload. Try: lower obs hz to 5 during chunk; or fix the
  pause/resume to drain orphan frames safely.
- [ ] **Refactor `deploy_yam_2view.py` (2200 lines) into thin launcher +
  `lib/`.** Per the new Code Hygiene rule (≤300 lines/file). Split: fusion
  decode, recal, exo+arm render, viz, main loop.
- [ ] **Refactor `record_skip_wrist.py` similarly.** Shares rendering
  + recal with deploy — pull into shared `lib/`.
- [ ] **Move YAM code from `~/yam_para/` (puget) → `/data/cameron/para/robot/yam/`.**
  Set up sshfs mounts on puget + russet. Update launch commands.
- [ ] **Run `viz_start_frame_keypoints.py` on every episode** + visually
  inspect for misalignment / bad calib.

## Pending

- [ ] Cross-validate model after epoch 200.
- [ ] Investigate whether inter-substep delay also affects HD720
  scene-cam mode (would isolate payload-size hypothesis).
- [ ] Set up automated wandb run summary on training end.

## Recently completed (kept here briefly for context)

- [x] Add `DA3VolumeScene` third model variant (2026-06-05). Uses DA3-SMALL
  backbone + camera token (replaces CLS) + parallel feat DPT branch
  deep-copied from the depth branch (final 1×1 conv re-targeted to
  `feat_dim` channels). Same factored YX×Z×T scoring as `DinoVolumeScene`.
  Defaults: `n_height_bins=128`, `img_size=504`, `feat_dim=32`. CLI:
  `--da3` in `train.py`. First run `da3_yukon_pickplace_indist_v1` on
  yukon, batch 16, ~9 it/s. See `memory.md` § DA3VolumeScene.

- [x] Implement `deploy_yam_2view.py` with scene+wrist fusion (sum/max/scene_only).
- [x] Add cross-attention layers between scene and wrist patch grids.
- [x] 12 h cross-attn training run (`yam_wrist_xattn_v1`).
- [x] Hot-patch 7687 PKLs to convert `scene_camera` extrinsic from
  right_arm_base → left_arm_base via `T_lfr`.
- [x] HD1080 scene cam patch in `raiden_fork/raiden/cameras/zed.py:57`
  AND `raiden_fork/raiden/server.py:1213`.
- [x] Live exo-aruco recal at recording + inference startup (always-on,
  never load from JSON).
- [x] Aug-token (`F_oof_token`) wrist-abstain pattern (borrowed from
  Backbones agent).
