Add user notification for background child transfer failures - #1272
Conversation
…rejects (#656) Extends the existing ConflictNotificationStore with a 'child-transfer-failure' type and calls conflictNotifications.add() in the catch block of createNode's background child transfer, replacing the TODO(#656) comment. No new toast infrastructure introduced. Co-Authored-By: Claude <noreply@anthropic.com>
Code Review SummaryThis is a clean, minimal change that correctly closes #656. The implementation reuses the existing FindingsSuggested Improvements
The The message is instead passed directly at the Two options:
Option 1 is strongly preferred because it respects the Single Responsibility of each boundary: NitpicksNit: The test uses two sequential Nit: The warning icon Acceptance Criteria Review
Retry action: Issue #656 lists "Consider adding a retry action" as a criterion with "consider" language. The implementation omits it. Given the rollback already restores in-memory state (children are moved back to Verdict: Approve pending the |
malibio
left a comment
There was a problem hiding this comment.
Review status: APPROVED (self-review limitation prevents formal approval). Clean, minimal implementation that correctly reuses existing infrastructure. One improvement recommended: decouple CONFLICT_MESSAGE from the full ConflictNotification union type to eliminate the unreachable 'child-transfer-failure' entry. All 3867 tests pass. Full findings posted above.
…update-protocol The map is only consumed by SharedNodeStore's conflict resolution path, which is fed by Conflict objects from update-protocol.ts — not by notification-only types like 'child-transfer-failure'. Narrowing the key type removes the dead entry and respects single responsibility. Co-Authored-By: Claude <noreply@anthropic.com>
* feat(ux): emit child-transfer-failure toast when background moveNode rejects (#656) Extends the existing ConflictNotificationStore with a 'child-transfer-failure' type and calls conflictNotifications.add() in the catch block of createNode's background child transfer, replacing the TODO(#656) comment. No new toast infrastructure introduced. Co-Authored-By: Claude <noreply@anthropic.com> * fix(types): narrow CONFLICT_MESSAGE to Conflict['conflictType'] from update-protocol The map is only consumed by SharedNodeStore's conflict resolution path, which is fed by Conflict objects from update-protocol.ts — not by notification-only types like 'child-transfer-failure'. Narrowing the key type removes the dead entry and respects single responsibility. Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Michael Libio <malibio@Michaels-Mac-mini.local> Co-authored-by: Claude <noreply@anthropic.com>
Closes #656