Version 4.0 [Legacy]
[4.0-beta] - 2026-06-07
Changed
Split the code into a clean core (tf2_core.py) and interface (tf2_swap.py) so future frontends (TUI/GUI) can sit on top without a rewrite. The core is interface-free — no print() or input() calls. All user interaction stays in the interface layer.
Errors in core are now raised as typed exceptions (SwapError, TF2NotFound, ModelNotFound, BuildError) and caught by the interface layer.
Added
Error logging and build history written to ~/tf2_swaps/tf2autoswap.log.
Author Notes
The architectural refactor that made everything after it possible. Separating the core logic from the interface meant any future frontend — TUI, GUI, web app — could sit on top without touching the engine. This is the version that turned a script into a proper project.