## ADDED Requirements ### Requirement: My Tasks View displays all tasks assigned to the current user across projects The system SHALL provide a My Tasks page that displays a unified list of all tasks assigned to the currently logged-in user, aggregated from all projects where the user has access. #### Scenario: User accesses My Tasks page - **WHEN** the user navigates to the My Tasks page (e.g., /my-tasks) - **THEN** the system SHALL display a list of all tasks assigned to the user across all accessible projects #### Scenario: My Tasks page shows task details - **WHEN** the My Tasks list is displayed - **THEN** each task item SHALL display at minimum: task name, project name, status, due date, and assignee #### Scenario: User can filter tasks by project - **WHEN** the user selects a specific project from the project filter dropdown - **THEN** the list SHALL display only tasks from the selected project #### Scenario: User can filter tasks by status - **WHEN** the user selects a specific status from the status filter dropdown - **THEN** the list SHALL display only tasks with the selected status #### Scenario: User can sort tasks - **WHEN** the user clicks a column header to sort - **THEN** the list SHALL be sorted by that column in ascending/descending order ### Requirement: My Tasks View uses project task page layout and data table The system SHALL reuse the existing project task page layout and data table components for rendering the My Tasks list to ensure visual and behavioral consistency. #### Scenario: My Tasks uses consistent layout - **WHEN** the My Tasks page is rendered - **THEN** it SHALL use the same layout structure as the project task page (header, filters, data table, pagination) #### Scenario: My Tasks uses data table component - **WHEN** the task list is rendered - **THEN** it SHALL use the same DataTable component used in project task pages #### Scenario: Task columns match project task page - **WHEN** the My Tasks data table is displayed - **THEN** it SHALL display columns consistent with the project task page (e.g., Name, Project, Status, Priority, Due Date, Assignee) ### Requirement: User can navigate to task details from My Tasks The system SHALL allow users to click on a task in the My Tasks list to navigate directly to that task's detail page within its project context. #### Scenario: User clicks on a task - **WHEN** the user clicks on a task row in the My Tasks list - **THEN** the system SHALL navigate to the task detail page in its project (e.g., /projects/{project_id}/tasks/{task_id}) ### Requirement: My Tasks only shows accessible projects The system SHALL only include tasks from projects where the current user has at least read access. #### Scenario: User sees only accessible tasks - **WHEN** the My Tasks list is loaded - **THEN** tasks from projects where the user lacks access SHALL NOT be displayed ### Requirement: API endpoint returns user's tasks across projects The system SHALL provide an API endpoint that returns all tasks assigned to the current user, with optional filtering parameters. #### Scenario: API returns user's tasks - **WHEN** a authenticated user requests GET /api/tasks/my-tasks - **THEN** the system SHALL return a list of tasks assigned to that user #### Scenario: API supports project filter - **WHEN** the user requests GET /api/tasks/my-tasks?project_id={id} - **THEN** the system SHALL return only tasks from the specified project #### Scenario: API supports status filter - **WHEN** the user requests GET /api/tasks/my-tasks?status={status} - **THEN** the system SHALL return only tasks with the specified status