tasks_list and calendar_read clamp their days argument; activity_list and errors_list do not, and calendar_read trusts its from date. Whatever they raise goes up through read_op to the concierge, which logs "the model pass failed" and drops the owner's turn.
Where: taskuary/lookups.py - activity_list, errors_list, calendar_read.
activity_list(store, {'days': -5}) -> cutoff in the future -> "Nothing was recorded"
activity_list(store, {'days': 1e9}) -> OverflowError
activity_list(store, {'days': 'week'}) -> ValueError: could not convert string to float
calendar_read(store, {'from': '2026-02-30'}) -> ValueError: day is out of range for month
Done when days is clamped the way its siblings do it, and a non-number or impossible date comes back as a plain sentence instead of an exception.
Test - tests/test_lookups.py: activity.list with days='week', days=1e9, days=-5, and calendar.read with from='2026-02-30' each return a string.
Getting started: pip install -e ".[dev]", then python -m pytest -q (offline, a few seconds). UI work: cd website && npm ci && npm test. See CONTRIBUTING.md. One small PR with the change and its test is perfect.
tasks_listandcalendar_readclamp theirdaysargument;activity_listanderrors_listdo not, andcalendar_readtrusts itsfromdate. Whatever they raise goes up throughread_opto the concierge, which logs "the model pass failed" and drops the owner's turn.Where:
taskuary/lookups.py-activity_list,errors_list,calendar_read.Done when
daysis clamped the way its siblings do it, and a non-number or impossible date comes back as a plain sentence instead of an exception.Test -
tests/test_lookups.py:activity.listwithdays='week',days=1e9,days=-5, andcalendar.readwithfrom='2026-02-30'each return a string.Getting started:
pip install -e ".[dev]", thenpython -m pytest -q(offline, a few seconds). UI work:cd website && npm ci && npm test. See CONTRIBUTING.md. One small PR with the change and its test is perfect.