DropAssignmentDialog with required reason (10-1000 chars) calls mentor.dropAssignment, redirects to /mentor on success. Button surfaces in the project header only when the viewer is the assigned mentor and the assignment is neither dropped nor completed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>