Commit 2aeb81c
feat(benchmarks): add pool viewer and auto-shutdown (#20)
* feat(benchmarks): add HTML viewer for WAA pool benchmark results
Add pool_viewer.py module and CLI command for generating interactive
HTML viewers from WAA parallel benchmark runs.
Features:
- Parse waa-pool-*.log files to extract task results
- Summary stats (total tasks, success rate, avg time per task)
- Per-worker breakdown showing tasks per worker
- Task list with pass/fail status and step counts
- Domain breakdown with per-domain success rates
- Interactive filters for domain and status
Usage:
uv run python -m openadapt_ml.benchmarks.cli view-pool
uv run python -m openadapt_ml.benchmarks.cli view-pool --run-name pool_run_20260204
uv run python -m openadapt_ml.benchmarks.cli view-pool --no-open
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs(claude): document VM auto-shutdown and orphan prevention
Add documentation for the auto-shutdown feature:
- Explain auto-shutdown policy (default 4 hours)
- Document --auto-shutdown-hours flag for pool-create and create
- Document -y flag for pool-cleanup (skip confirmation)
- Document test VM cleanup via try/finally
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs(readme): update CLI commands to use pool-* workflow
Update documentation to reflect the current working CLI:
- Replace outdated `vm monitor` with `pool-status/pool-vnc/pool-logs`
- Update single VM workflow to use `pool-create --workers 1`
- Add analyze_pool_logs.py script for parsing benchmark results
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(cli): prevent orphaned test VMs during pool-create
Remove --no-wait flag from test VM creation so the VM fully exists
before we attempt to delete it. Previously, the test VM would still
be provisioning when delete was called, causing delete to fail
silently and leave orphaned VMs consuming quota.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(cli): use waa-auto image in pool-wait, wait for apt lock
Critical fixes for end-to-end pool workflow:
1. Use waa-auto:latest in pool-wait (not windowsarena/winarena)
- pool-create builds waa-auto with modern dockurr/windows v5.14
- pool-wait was incorrectly using vanilla windowsarena/winarena (v0.00)
- v0.00 doesn't support VERSION=11e auto-download
- This caused "ISO file not found" errors
2. Wait for apt lock before Docker install
- Fresh Azure VMs run unattended-upgrades
- apt-get install failed with "unable to locate package"
- Added wait loop for /var/lib/apt/lists/lock
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(pool): match working waa command parameters exactly
- Use vanilla windowsarena/winarena:latest with --entrypoint /bin/bash
- Add --prepare-image false --start-client false flags (skips ISO download)
- Use 172.30.0.2 for probe and emulator_ip (matching working waa command)
The pool-wait command was broken because it used waa-auto:latest without
the proper entrypoint and flags. The working 'waa' command (line 5404-5454)
uses these exact parameters successfully.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>1 parent 84fb35a commit 2aeb81c
13 files changed
Lines changed: 3643 additions & 1363 deletions
File tree
- docs
- research
- openadapt_ml/benchmarks
- scripts
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
| 14 | + | |
15 | 15 | | |
| 16 | + | |
| 17 | + | |
16 | 18 | | |
17 | 19 | | |
18 | 20 | | |
| |||
72 | 74 | | |
73 | 75 | | |
74 | 76 | | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
0 commit comments