feat: just dyn = auto-plot newest full-length log per arm

--latest-per-arm + --min-steps select the freshest >=N-step log for each
arm from logs/, no hand-globbing. Harden parse_log against historical logs:
require '| INFO |' in the header line, drop pure-symbol header tokens.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
This commit is contained in:
wassname
2026-06-01 09:03:37 +00:00
parent ff82fbb940
commit 3e7b8ecfc0
2 changed files with 31 additions and 3 deletions
+5
View File
@@ -181,6 +181,11 @@ plot-deploy GLOB='out/runs/*sub4*/per_mode_deploy.json' OUT='out/figs/deploy_ove
regen-dynamics GLOB='logs/*_cell_*.log':
uv run python scripts/plot_dynamics.py {{ GLOB }} --out out/figs/dynamics.png
# Auto dynamics plot: newest full-length (>=MIN steps) log PER ARM, no hand-globbing.
# Run after any sweep finishes -> always plots the freshest 60-step run of each arm.
dyn MIN='60' OUT='out/figs/dyn_sub4.png':
uv run python scripts/plot_dynamics.py logs/ --latest-per-arm --min-steps {{ MIN }} --out {{ OUT }}
# Phase-1 emergence overlay: one line per env_mode (hack=exploited, solve=gt_correct).
regen-emergence GLOB='logs/*_emerge_*.log':
uv run python scripts/plot_emergence.py {{ GLOB }} --out out/figs/emergence.png