Done condition: GET /api/v1/admin/children/{id}/presence-schedule (present/absent shapes, unknown child 404) and GET /api/v1/admin/presence-overrides with optional child/date filters; four auth outcomes.
GET /api/v1/admin/children/{child_id}/presence-schedule returns
{"schedule": ...} (null when unset, 404 for an unknown child) and
GET /api/v1/admin/presence-overrides returns {"overrides": [...]}
with optional child_id/start/end filters. Both are thin adapters over
new core reads in presence_management (get_presence_schedule,
list_presence_overrides) backed by PresenceOverridesDao.list_filtered.
Task 07fde892-ddd0-4d8f-a03f-8775e77660e5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Maestro task: 07fde892-ddd0-4d8f-a03f-8775e77660e5 (Feature 23).
Done condition: GET /api/v1/admin/children/{id}/presence-schedule (present/absent shapes, unknown child 404) and GET /api/v1/admin/presence-overrides with optional child/date filters; four auth outcomes.
Head:
97e3965859Base: feature/fce8c1f9-... @
456e2ecChecks: focused 41 passed; full suite TZ=UTC uv run pytest -q = 1832 passed.
GET /api/v1/admin/children/{child_id}/presence-schedule returns {"schedule": ...} (null when unset, 404 for an unknown child) and GET /api/v1/admin/presence-overrides returns {"overrides": [...]} with optional child_id/start/end filters. Both are thin adapters over new core reads in presence_management (get_presence_schedule, list_presence_overrides) backed by PresenceOverridesDao.list_filtered. Task 07fde892-ddd0-4d8f-a03f-8775e77660e5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>Independent Codex gpt-5.6-terra review completed for this exact commit.