This note captures follow-up items identified during the February 16, 2026 review. Each entry calls out the relevant module to help prioritize fixes.
-
SaveManager::load_by_tagguard duplication
gitsave/src/manager/mod.rscurrently repeats the samehas_uncommitted_changes && !forcecheck three times (lines ~67–77). Collapse it into a single guard so future readers do not assume there are missing branches in the logic. -
History entries lose real route context
Git2Core::get_history(gitsave/src/git/mod.rs) attributes every entry to the active branch at query time. When users play multiple “routes,” the history listing becomes misleading. Track the branch (or ref) that owns each commit while building entries, or store that metadata on save so UI can render accurate route information. -
Diff stats are coarse
Git2Core::compare_savescounts “additions/deletions” as the number of files touched instead of line or hunk deltas. Consider usingdiff.stats()(withStatsFormat::FULL) or iterating patches to report actual added/deleted lines so players understand how large a change is. -
Config file location mismatches README/tests
handle_initwritesgitsave.tomlunder.git/, but README andtest_gitsave.shexpect it beside the save files. Decide on a single location, update code/tests/docs together, and consider keeping.gitignorein sync. -
Auto-save lacks trigger mechanics
Although the CLI exposesgitsave autosave ...andSaveManager::should_auto_save, nothing drives periodic saves. Define a cron/systemd helper, a background thread, or an API for games to pollshould_auto_saveand auto-triggersave, and mention the workflow in docs. -
Temporary auto-save tags accumulate
Git2Core::checkoutcreates_autosave_<timestamp>tags on every load without cleanup. Move them under a dedicated namespace (e.g.,refs/tags/_gitsave/autosave/*) or prune older tags to avoid polluting the tag list and preventing name reuse. -
Testing follow-up
Run./test_gitsave.shafter implementing the above to verify the 60+ scenarios still pass, and add targeted unit tests where new behaviors (route metadata, diff stats, autosave triggers) are introduced.
Feel free to promote any of these into tracked GitHub issues if more visibility or discussion is needed.