Skip to content

feat(tasks): stable assignee identity (#7390) - #51

Merged
poisvin merged 1 commit into
mainfrom
feat/task-assignment-7390
Nov 1, 2026
Merged

poisvin merged 1 commit into
mainfrom
feat/task-assignment-7390

Conversation

@poisvin

@poisvin poisvin commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

Summary

Implements Gather #7390: https://app.gatherai.co/tasks/7390

  • Add nullable Task.assigneeUserId and related user summary. Preserve creator/owner links: TaskOwner records ownership, not assignment.
  • Resolve names server-side and validate that a selected user belongs to the organization. Write ID/name atomically. Omission preserves assignment; null clears it.
  • Keep existing legacy name-only records without inferred matches or a backfill. Legacy API/MCP/table name writes clear any conflicting stable ID.
  • Use user IDs in TaskForm, TaskDetail and TasksList selectors, with email labels to distinguish duplicate names. Display current related names after renames.
  • Preserve task permissions and reuse existing UI components.

Migration

Adds nullable assignee_user_id, index and foreign key with ON DELETE SET NULL. No data backfill. Applied and tested only on the isolated local preview database; production migration/deployment is not performed by this PR creation.

Verification

  • Frontend: 353 tests passed across 19 files.
  • Backend: 381 tests passed across 26 files.
  • Sales library: 252 tests passed across 15 files, including real database assignment tests.
  • Web, backend and sales typechecks passed; formatting and whitespace checks passed.
  • Live API checks passed for create/reassign/clear, omitted updates, duplicate names, rename stability, invalid/foreign IDs, legacy compatibility and unchanged ownership.
  • Visible-browser checks passed for form assignment/edit plus Tasks table reassignment and clearing. Temporary local test records removed.

Test output includes existing task-priority query warnings and pg deprecation warnings; all suites above passed on final execution. No independent reviewer approval claimed.

@poisvin
poisvin merged commit 9e038c1 into main Nov 1, 2026
1 check passed
@poisvin
poisvin deleted the feat/task-assignment-7390 branch November 1, 2026 18:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant