Skip to content

fix(scripts): make the Windows full run startable and resumable - #20

Merged
canyang25 merged 3 commits into
mainfrom
ruoshi/feat-full-run-fixes
Oct 9, 2026
Merged

canyang25 merged 3 commits into
mainfrom
ruoshi/feat-full-run-fixes

Conversation

@rzhang569

@rzhang569 rzhang569 commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes found during the first full 89-task run on Windows (2026-10-07, 11 h on a 16 GB laptop).

  • 1Password won't authorize op.exe called from inside WSL, so run_full_windows.ps1 reads the key on the Windows side and passes it in via WSLENV; env.sh keeps a key already in the environment
  • env.sh: a failed or empty read is now an error (the first run exported an empty key and got 401s)
  • run_full.sh resume silently exited under pipefail; now finds harbor's nested config.json and also retries auth failures
  • full_progress.sh: one-line progress, including whether harbor is still alive
  • setup doc: swap is required (harbor grew past 11 GB and was OOM-killed), autoMemoryReclaim, troubleshooting
  • subset mode: run_full.sh subset <job dir> <task>... (N_TRIALS each) and run_full_windows.ps1 subset -Tasks a,b -Trials 3 -Job jobs/<name>, for dev-slice runs
  • tests for env.sh

What the first full run on Windows/WSL found, and the fixes:

- run_full.sh resume exited silently before resuming: with `set -euo
  pipefail`, `ls jobs/full-<ts>/config.json ... | head -n 1` failed on the
  missing top-level path (harbor writes config.json one level down). Now a
  plain loop. Resume also filters AuthenticationError, since a run started
  without a key leaves 401 results behind.
- env.sh: a failed `op read` exported an empty key (the pipeline's status
  was tr's); now it fails loudly, and an empty value is an error too. A
  variable already in the environment is kept and op is not called, so the
  key can be passed in from outside.
- scripts/run_full_windows.ps1: the 1Password app never authorizes op.exe
  when it is called from inside WSL (authorization timeout every time), so
  the key is read on the Windows side and handed to the tmux session
  through WSLENV. Modes: start, resume, task.
- scripts/full_progress.sh: done/pass counts, whether harbor is alive, log
  age. A tmux session outlives harbor, so `tmux ls` says nothing.
- docs/setup-windows.md: swap=8GB and autoMemoryReclaim in .wslconfig
  (harbor itself passed 11 GB RSS at trial 56 and was OOM-killed), the
  1Password reality, resume semantics, score.py's inner job directory, and
  a troubleshooting list from the night.
- tests/test_env_sh.py: env.sh with a fake op on PATH.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
rzhang569 and others added 2 commits October 8, 2026 18:18
`run_full.sh subset <job dir> <task>...` runs the named tasks only,
N_TRIALS attempts each (default 1), into the given job dir — harbor's -i
per task. The Windows launcher gets the same as
`run_full_windows.ps1 subset -Tasks a,b -Trials 3 -Job jobs/<name>` (tmux
session `subset`, log `jobs/<name>.log`), and uses an LLM_API_KEY already
in its environment so a wrapper that probes the gateway first costs one
Allow click, not two. full_progress.sh drops the /89 denominator and reads
the subset's log for non-full jobs. This is how the 20-task candidate run
and the dev-slice runs are started.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Two things the first subset run from a fresh worktree hit:

- `tee -a jobs/<name>.log` ran before harbor had created jobs/, so on a
  clone with no jobs/ yet the log couldn't be opened, tee exited, harbor
  died on the broken pipe and the tmux session vanished with no trace.
  `mkdir -p jobs` first.
- `powershell -File ... -Tasks a,b,c` hands the parameter one string, not
  an array (that split only happens when called from inside PowerShell),
  so run_full.sh was asked for a task named "a,b,c". Split on commas in
  the script so both forms work.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@canyang25
canyang25 merged commit 4f8a680 into main Oct 9, 2026
1 check passed
@rzhang569
rzhang569 deleted the ruoshi/feat-full-run-fixes branch October 11, 2026 20:33
rzhang569 added a commit that referenced this pull request Oct 14, 2026
ruoshi/feat-sampling at 6867ff0 (main: medium effort, 16k), 13 tasks, 3 trials
each, concurrency 2. Baseline: no extra settings. Card sampling:
LLM_TEMPERATURE=1.0, LLM_TOP_P=0.95, LLM_TOP_K=20, LLM_MIN_P=0. Never give
up: AGENT_MAX_TURNS_WITHOUT_ACTION=1000. Exported with scripts/export_trials.py.
canyang25 added a commit that referenced this pull request Oct 16, 2026
eval: batch 1, model-card sampling (#20) and never giving up (#21): no
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants