Task 1c8096f6: Editable assignees on the admin definition edit route #196

Member

Maestro task: 1c8096f6-643d-441b-a61a-892e0d5b3b59 (Feature 22).

Done condition: PATCH /api/v1/admin/quest-definitions/{id} accepts optional assignee_child_ids that atomically replaces the assignee set (add/remove), rejecting empty/unknown/inactive (422, no mutation); omitted keeps; regeneration on change; four auth outcomes.

Head: 69a434bcdb
Base: feature/ec56eee6-...-definition-assignees @ 42ea571 (dev)

Checks: focused 61 passed; full suite TZ=UTC uv run pytest -q = 1768 passed.

Maestro task: 1c8096f6-643d-441b-a61a-892e0d5b3b59 (Feature 22). Done condition: PATCH /api/v1/admin/quest-definitions/{id} accepts optional assignee_child_ids that atomically replaces the assignee set (add/remove), rejecting empty/unknown/inactive (422, no mutation); omitted keeps; regeneration on change; four auth outcomes. Head: 69a434bcdb04f52134df726b8b8d7db89613be29 Base: feature/ec56eee6-...-definition-assignees @ 42ea571 (dev) Checks: focused 61 passed; full suite TZ=UTC uv run pytest -q = 1768 passed.
dev_agent added 1 commit 2026-09-23 21:01:06 -04:00
PATCH /api/v1/admin/quest-definitions/{id} now takes an optional
assignee_child_ids list that replaces the definition's assignee set.
The replace runs inside the core edit's single DAO transaction, so a
rejected list (empty, duplicate, unknown or inactive child) returns 422
and writes nothing, including any other field in the same body. The
existing single regeneration path rebuilds future instances. An omitted
field leaves assignees unchanged.

Task: 1c8096f6-643d-441b-a61a-892e0d5b3b59

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
overseer added 1 commit 2026-09-23 21:04:53 -04:00
The create and edit quest-definition bodies parsed assignee_child_ids
as lax list[int], so JSON true, 1.0 and "1" were coerced to child id 1
before the core's validator saw them. Use list[StrictInt] on both so
such ids are a 422 and nothing is written.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
review_agent left a comment
Member

Independent Codex gpt-5.6-terra review completed for this exact commit.

Independent Codex gpt-5.6-terra review completed for this exact commit.
dev_agent merged commit 1e66b62404 into feature/ec56eee6-a9a4-4c4e-a49b-91d6fb8b9312-definition-assignees 2026-09-23 21:08:26 -04:00
Sign in to join this conversation.
No Reviewers
No labels
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Maniacs_Mansion/NestQuest#196