mirror of
https://github.com/kuhyx/testsAndMisc.git
synced 2026-07-04 15:23:03 +02:00
Add the diet_guard package: a screen-locking meal-logging gate that fires on 4-hour slots (08/12/16/20) and records calories/macros, persisting an autocompleting food bank. - Trigger fix: the systemd timer fires at session start (Persistent=true) before lightdm has written ~/.Xauthority, so the gate crashed with a TclError instead of locking the screen. Add wait_for_display() / _display_is_ready() in _gatelock.py and wire it into _cli._cmd_gate so the gate retries on the next tick instead of crashing; add Environment=XAUTHORITY=%h/.Xauthority to the service as belt-and-suspenders. - Food-bank hardening: a transiently corrupt food_bank.json was warned about on every keystroke and then silently overwritten (data loss). _read_bank now quarantines it via _quarantine_corrupt_bank() (warn-once + timestamped backup) before starting fresh. - Multi-item meals: new _meal.py (MealItem, meal_total, MEAL_SOURCE), remember_meal() + _upsert() in _foodbank.py, and a "+ Add item" control in the gate that logs both the individual items and the composite meal. - Bundle resolve_nutrition's manual macros into a ManualMacros dataclass to stay within the argument-count limit. diet_guard at 100% branch coverage; full pre-commit suite passes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
13 lines
554 B
Python
13 lines
554 B
Python
"""diet_guard: log what you eat, see the daily number, gate the desktop.
|
|
|
|
The package has three layers, built in order:
|
|
|
|
* the tracker (this milestone): a low-friction CLI that estimates the
|
|
calories of a free-text meal and appends a tamper-evident entry to a
|
|
per-day log;
|
|
* the gate (next): a screen-lock that will not dismiss until a recent meal
|
|
is logged -- the "log-to-unlock" enforcement;
|
|
* the escalation (later): a daily report that tightens the other personal
|
|
enforcers (games, PC uptime) when logging is skipped or the budget blown.
|
|
"""
|