Done condition: POST /api/v1/admin/presence-overrides/consequence computes the number of upcoming instances a proposed override would remove, from the same materialiser logic, excluding instances with a completion event (D-005); count matches a direct materialise comparison; four auth outcomes.
Checks: focused 59 passed; full suite TZ=UTC uv run pytest -q = 1850 passed.
Maestro task: 7616e3eb-da8b-42cc-8fc7-bbfac2074662 (Feature 23).
Done condition: POST /api/v1/admin/presence-overrides/consequence computes the number of upcoming instances a proposed override would remove, from the same materialiser logic, excluding instances with a completion event (D-005); count matches a direct materialise comparison; four auth outcomes.
Head: b51310eb74c1fcdd450bb966697f67bced196756
Base: feature/fce8c1f9-... @ a6b3153
Checks: focused 59 passed; full suite TZ=UTC uv run pytest -q = 1850 passed.
POST /api/v1/admin/presence-overrides/consequence answers {removed: N},
the number of a child's upcoming open quest instances saving a presence
override would remove, computed before anything is saved.
The materialize walk's generation is extracted into a pure
_generation_preview helper that materialize() now writes through, and
count_removed_by_override runs that same preview with and without the
proposed override, excluding instances that already have a completion
event (D-005). The route is a thin adapter over the new
presence_management.preview_presence_override_consequence.
Task 7616e3eb-da8b-42cc-8fc7-bbfac2074662
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Declare child_id as StrictInt and is_present as StrictBool on the
consequence request model so a JSON true is not accepted as child id 1
and a numeric or string status is not coerced to a bool (NQ-201-1).
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: 7616e3eb-da8b-42cc-8fc7-bbfac2074662 (Feature 23).
Done condition: POST /api/v1/admin/presence-overrides/consequence computes the number of upcoming instances a proposed override would remove, from the same materialiser logic, excluding instances with a completion event (D-005); count matches a direct materialise comparison; four auth outcomes.
Head:
b51310eb74Base: feature/fce8c1f9-... @
a6b3153Checks: focused 59 passed; full suite TZ=UTC uv run pytest -q = 1850 passed.
POST /api/v1/admin/presence-overrides/consequence answers {removed: N}, the number of a child's upcoming open quest instances saving a presence override would remove, computed before anything is saved. The materialize walk's generation is extracted into a pure _generation_preview helper that materialize() now writes through, and count_removed_by_override runs that same preview with and without the proposed override, excluding instances that already have a completion event (D-005). The route is a thin adapter over the new presence_management.preview_presence_override_consequence. Task 7616e3eb-da8b-42cc-8fc7-bbfac2074662 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>Independent Codex gpt-5.6-terra review completed for this exact commit.