The install history was only surfaced as a « ~5m avg (3) » suffix next to a distro. Entry [12] now shows what that history actually contains: totals and success rate, period covered, median/min/max and cumulated duration, then a breakdown by distribution, version and architecture, plus the current VMs and the disk they occupy. « [r] » erases the history after confirmation. record_duration() was only called on success, so no success rate could ever be computed. Failures are now recorded with ok=False. They are counted separately and EXCLUDED from the averages and the ETA: how long a failed install ran says nothing about how long a successful one takes. Entries written before the flag existed have no « ok » key and are read as successes, which they were. Aggregation lives in qemu_install_monitor.py as pure functions (stats_summary, stats_by, all_runs, reset_stats), display in todo.py — the split the file already follows. Disk presets extended to 400G, 600G, 800G, 1T, 1.5T and 2T. The parser only understood G, so « 1T » would have been rejected: sizes are now normalised through _qemu_parse_disk (1 T = 1024 G, decimal comma accepted), since the rest of the chain reasons in gigabytes. Verified with a synthetic history of 9 runs including 2 failures: the rate, the per-group failure counts and the reset all behave; a group with no success shows « — » rather than a misleading « ~0s ». Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| database_manager.py | ||
| kdbx_manager.py | ||
| logo_ascii.txt | ||
| qemu_install_monitor.py | ||
| README.base.md | ||
| README.fr.md | ||
| README.md | ||
| source_todo.sh | ||
| todo.json | ||
| todo.py | ||
| todo_example.json | ||
| todo_file_browser.py | ||
| todo_i18n.py | ||
| todo_telemetry.py | ||
| todo_upgrade.py | ||
| version_manager.py | ||
TODO is an assistant robot to use ERPLibre
Execute it with ./script/todo/todo.py or make todo.
For a new project, copy todo_example.json to private/todo/todo_override.json | private/todo/todo_override_private.json and edit it.