|
- daemon(): key the rescan on signature(cfg) and the current hour, not
just signature, so a quiet calendar keeps advancing its notification
window instead of going stale after ~1 day.
- load_overrides(): validate each value is a list of parseable durations,
raising ValueError(f"override {uid!r}: ...") otherwise; the daemon's
existing reload try/except keeps the previous config on failure.
- load_config(): validate the say/say_now voice templates format cleanly
against a stub summary/in, catching bad placeholders at load time.
- notify(): pass "--" to notify-send so a summary starting with "-" is
not parsed as an option.
- daemon(): rebuild voice_ready() on config reload so voice changes
(enabled, model path) apply without a restart.
- parse_choice(): lowercase input so "Reset"/"NONE" work from rofi -i.
- notify(): note the overlapping-say-children limitation with a
ponytail comment naming the upgrade path.
- README/spec: document the hourly rebuild and its effect on in-place
.ics edits.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|