Files
WorkClub Automation 271b3c189c
Some checks failed
CI Pipeline / Backend Build & Test (pull_request) Failing after 49s
CI Pipeline / Frontend Lint, Test & Build (pull_request) Successful in 28s
CI Pipeline / Infrastructure Validation (pull_request) Successful in 4s
chore: commit sisyphus evidence and CI/CD artifacts
2026-03-09 15:05:55 +01:00

1.5 KiB

Decisions - Self-Assignment Bug Fix

Architectural Choices

(To be populated as work progresses)

Trade-offs Made

(To be populated as work progresses)

T3: Contract Parity Decision (2026-03-08)

Decision: Task self-assignment will use existing useUpdateTask mutation with assigneeId field.

Rationale:

  1. UpdateTaskRequest Interface already includes assigneeId?: string field (line 45)
  2. useUpdateTask Mutation accepts arbitrary UpdateTaskRequest fields via PATCH /api/tasks/{id}
  3. Shift Pattern uses implicit self-assignment via POST /signup, but tasks require explicit assigneeId
  4. Member Role Assumption: No frontend restrictions observed on member role updating assigneeId

Implementation Pattern (for T7):

// Detection pattern (similar to shift isSignedUp)
const isAssignedToMe = task.assigneeId === session?.user?.id;

// Self-assignment action (via useUpdateTask)
await updateTaskMutation.mutateAsync({
  id: task.id,
  data: { assigneeId: session.user.id }
});

// Unassignment action
await updateTaskMutation.mutateAsync({
  id: task.id,
  data: { assigneeId: null }
});

Backend Verification Required (T8):

  • Confirm PATCH /api/tasks/{id} permits member role to set assigneeId to self
  • Verify no policy restrictions on member role task assignment
  • Document any backend adjustments needed

Evidence Files:

  • .sisyphus/evidence/task-3-contract-parity.txt (contract analysis)
  • .sisyphus/evidence/task-3-contract-mismatch.txt (empty - no mismatches found)