Skip to content

feat(benchmarks): add pool viewer and auto-shutdown#20

Merged
abrichr merged 6 commits intomainfrom
feat/pool-viewer-auto-shutdown
Feb 6, 2026
Merged

feat(benchmarks): add pool viewer and auto-shutdown#20
abrichr merged 6 commits intomainfrom
feat/pool-viewer-auto-shutdown

Conversation

@abrichr
Copy link
Member

@abrichr abrichr commented Feb 5, 2026

Summary

  • Add HTML viewer for WAA pool benchmark results (view-pool command)
  • Implement VM auto-shutdown feature to prevent orphaned VMs
  • Update documentation to use correct pool-* CLI commands
  • Add analyze_pool_logs.py script for parsing results

Changes

Pool Results Viewer (pool_viewer.py)

  • Parses waa-pool-*.log files to extract task results
  • Generates interactive HTML with:
    • Summary stats (total tasks, success rate, avg time)
    • Per-worker breakdown
    • Domain breakdown with success rates
    • Filterable task list with pass/fail status

Auto-Shutdown

  • Default 4-hour auto-shutdown via Azure policy
  • --auto-shutdown-hours flag on pool-create
  • try/finally cleanup for test VMs to prevent orphans

Documentation

  • Updated README to use pool-status/pool-vnc/pool-logs (not outdated vm monitor)
  • Updated CLAUDE.md with auto-shutdown documentation

Test plan

  • pool-create --workers 2 sets auto-shutdown policy
  • view-pool generates HTML from benchmark_results/pool_run_20260204/
  • pool-cleanup -y cleans up all resources

🤖 Generated with Claude Code

abrichr and others added 6 commits February 5, 2026 12:48
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>
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>
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>
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>
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>
- 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>
@abrichr abrichr merged commit 2aeb81c into main Feb 6, 2026
0 of 4 checks passed
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.

1 participant