From a29ba6e4d2f58f33d8e47c96a541398a74ebba70 Mon Sep 17 00:00:00 2001 From: Acrux Development Date: Thu, 29 Oct 2026 01:02:06 -0300 Subject: [PATCH] Status system reworked --- README.md | 57 +++---- examples/example.c | 9 +- include/Database.h | 2 - include/Models.h | 1 - include/Status.h | 16 +- include/Tracker.h | 28 ++-- include/Views.h | 22 +-- include/lls_api.h | 31 ++-- python/__pycache__/lls.cpython-312.pyc | Bin 26436 -> 26519 bytes python/lls.py | 18 +-- python/test_lls.py | 216 ++++++++++--------------- src/Database.cpp | 45 ++---- src/Display.cpp | 8 +- src/Repl.cpp | 6 +- src/Status.cpp | 29 ++-- src/Tracker.cpp | 158 ++++++++++-------- src/Views.cpp | 17 +- src/capi.cpp | 8 +- 18 files changed, 326 insertions(+), 345 deletions(-) diff --git a/README.md b/README.md index 0df3604..6e18ab1 100644 --- a/README.md +++ b/README.md @@ -75,8 +75,8 @@ goes back to `$VISUAL` / `$EDITOR` / nano / vim / vi. The choice is stored in `db backup` writes a copy, `db restore` loads a file. On `quit` you are asked to save if there are unsaved changes (`y` save, `n` discard, `c` cancel the exit); any other answer asks again, so a mistyped key never loses data. -* The stored status is never shown directly: a `wait` task displays as - `Wait HH:MM` until that time passes, then as `Limit reset`. Tasks are sorted +* The stored status is not always what is shown: a `wait` task displays as + `Wait HH:MM` until its account's wait ends, then as `Limit reset`. Tasks are sorted by computed status (Limit reset, Testing, Prompt, Wait, Uploading, Frozen, Done); Wait and Limit reset tasks then sort by time (earliest first: when the wait ends / ended), then account A-Z (unassigned last), then name. The panels are cleared and redrawn after changes. @@ -88,29 +88,22 @@ goes back to `$VISUAL` / `$EDITOR` / nano / vim / vi. The choice is stored in Done tasks (`-` if it has none). Rows are sorted most free first: Free, Taken, Busy; within Taken and Busy fewer tasks first, ties by name (see `levelOf` in `Display.cpp` and `StatusUtil::isBusy` / `isTaken` to change the rules). -* Waits belong to the account: `acc wait