Defederate relies on stacked native dialogs with no impact preview #115
Labels
No labels
bug
duplicate
enhancement
future
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
rbrooks/TeaLeaves#115
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Severity: Low · Confidence: High · Effort: S · Category: ui
Evidence
app/src/pages/Federation/FederationPage.tsx:92-116-handleDefederate:confirm(...)then a secondconfirm(...)for purge, thenalert(...).Problem
One of the most destructive actions in the app (revokes editors, rejects pending contributions, can bulk-soft-delete entries) is driven entirely by native
confirm/alert, with no in-app confirmation panel, no preview of what will be purged, and no undo.Impact
Native dialogs are easy to blast through with muscle-memory "OK," especially on mobile where text truncates. High-consequence action, low-friction guard.
Fix
Replace with an in-app confirmation panel (reuse the type-to-confirm pattern from BulkActionToolbar.tsx:179-188) that first lists the counts of editors/contributions/entries affected.
Acceptance criteria
Filed from the 2026-07-15 codebase audit. Full report:
docs/.internal/report-2026-07-15.md(gitignored).Defederation is now an in-app confirmation dialog that first loads a non-mutating impact preview (new
GET /api/federation/instances/:id/defederate-impactreturning editors revoked / contributions rejected / entries purgeable) and requires a type-to-confirm before arming — replacing the two stacked nativeconfirm()s +alert().Shipped in
59e4fdd(test fix6561f9a), part of the v7.3.0 milestone. Verified on dev (v7.2.1-3-g6561f9a): app suite 65/65 and api suite 268/268 green on the dev server; the one CI red was the known runner flake (iac#159), not this change.