Detach card assignments atomically when a user deactivates - #3078
Conversation
…tion Reuse the existing cleanup service for active and archived cards, persist audit with account state, and publish only after commit. Add application and SQLite API regressions plus architecture/qualification notes for #3000.
|
@codex review Please review the transaction/save/commit/notification boundary, self-scoped actor provenance, required service dependency and the failure-after-SQL-save test. No local .NET pass is claimed; exact-head hosted application/API qualification is required. The documented direct-deactivation commit-to-webhook gap is intentionally not conflated with the separate proposal outbox work. |
|
Codex Review: Didn't find any major issues. Chef's kiss. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Deactivating a user previously left that user assigned to cards. Self-deactivation now stages assignment removal and audit entries inside the account-state transaction, including archived cards and boards. Other assignees and board ownership/membership stay intact. Cache invalidation and card-assignment notifications happen only after commit; reactivation does not recreate assignments.
Validation:
The original author's missing SDK limitation is superseded by these local executable results. This direct notification path still has a commit-to-notification window; the separate proposal webhook change does not make deactivation a durable outbox path. No process-kill, live SignalR, external HTTP or real concurrent-writer acceptance is claimed. OUTSTANDING_TASKS.md retains all 41 open human actions.
Closes #3000