89c5279f52338a51176826f521c5ab28135951ed
app.rs holds everything and runs the loop: keys become commands, the screen turns them into actions, and App::apply is the only place data changes. Journal edits happen on a copy, are undoable, saved atomically and rolled back if saving fails. It also runs the reminders and picks up outside edits of shifts.toml every second. main.rs loads the settings, takes the lock, makes the daily backup and starts the UI; --config, --paths, --help and --version. The tests drive the whole app with fake key presses and draw every screen and popup at several sizes in an in-memory terminal. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Languages
Rust
100%