Errors and skips are collected while the copy loop runs and reported
once it ends. The final import state is exhaustive - success, already
added, invalid name, or nothing supported found - so every import run
reaches a terminal state and the pipeline notification always resolves
instead of lingering as an indeterminate progress bar.
- Blocked swipe-to-delete on dictionary rows while a download, extract,
import or indexing pass is running. Deleting mid-update removed the
dictionary's source from preferences while the pipeline kept its own
snapshot, so the post-update rescan re-created the dictionary with its
update source permanently lost.
- Fixed the dictionary icon leaving the row while swiping to delete: the
item now clips to its bounds and the delete button is a static overlay
instead of a counter-translated child of the sliding row.