What / Why
Before starting the jobs-data input feature (changing FastSim's input from raw SLURM dumps to a jobs-data format), clean up known landmines and establish the regression safety net the refactor depends on. All items below were verified against the code on feature/jobs-data-input (see dev/202607062252-determinism-check.md for the determinism verification this builds on).
Subtasks
Regression safety net (do first)
Bugs / landmines
Hygiene
Deferred (fold into jobs-data input feature design)
Notes
- Determinism of the simulator was verified 2026-07-06: two identical 3-day Kestrel runs produce identical job histories after canonicalization (
dev/202607062252-determinism-check.md).
- Work happens on a branch off
feature/jobs-data-input, PR'd back into that branch, one commit per subtask where practical.
What / Why
Before starting the jobs-data input feature (changing FastSim's input from raw SLURM dumps to a jobs-data format), clean up known landmines and establish the regression safety net the refactor depends on. All items below were verified against the code on
feature/jobs-data-input(seedev/202607062252-determinism-check.mdfor the determinism verification this builds on).Subtasks
Regression safety net (do first)
scripts/compare_results.py(canonicalizes set order, comparesJobs byjid, handles enums/MappingProxyType, depth-capped recursion — see dev note for rationale)Bugs / landmines
save_interval_stepsinscheduler/config.py—controller.py:750reads it unconditionally and a YAML that omits it crashes mid-run"NOT-ENOUGH-NODES‐NOW"(controller.py:1212) — lands inwait_historyoutput and breaks ASCII matchingexcept:blocks incontroller.py(lines 771, 888, 937, 1417, 1488, 1530, 1711) with specific exceptions or at least logged failuresHygiene
'../'inmain.py:246— with repo-root CWD convention, logs scatter into the repo's parent; derive from output path or default to./logscontroller.py:752-775vs final savemain.py:257-278) into one functioncontroller.py:2185+)re_fpkey inconfigs/kestrel_conf.yaml(lines 40-41; YAML silently keeps the second,"")*.zipto.gitignore(power_data.zip/slurm_dump.zip, ~108 MB, currently onegit add .from being committed)Deferred (fold into jobs-data input feature design)
Dependency,JobState,Jobrefs) — results pickles currently requirescheduler/importable to loadNotes
dev/202607062252-determinism-check.md).feature/jobs-data-input, PR'd back into that branch, one commit per subtask where practical.