feat(manager): explain import outcomes - #82
Conversation
|
@codex review |
|
@cursor review |
|
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 |
|
Codex Review: Didn't find any major issues. Breezy! 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 |
|
@cursor review |
|
Codex Review: Didn't find any major issues. Can't wait for the next one! 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". |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit c999d87. Configure here.
Summary
Validation
flutter test— 246 passedflutter analyze— no issuesflutter gen-l10n— generated output cleangit diff --check— cleanNote
Medium Risk
Changes library mutation and FFI error handling for import; race and reload-fail-closed logic affect selection and authority, but behavior is heavily tested and UI-only for most paths.
Overview
Mod import now surfaces Native’s created / updated / unchanged disposition and match reason (source, content, entry ID), with success shown only after an authoritative library reload and selection updated only when the user hasn’t changed selection during the import.
The FFI layer adds
MgrImportOutcome, structuredMgrFfiException.detailsfor duplicate-ambiguous and identity-conflict refusals (bounded candidates), and stricter validation of import responses.LibraryNotifier.importreloads the store after every attempt, returns an authoritative outcome or rethrows without polluting library error banners for import-only failures.Home centralizes pick-and-import (injectable
ImportSourcePicker, no extension filter so Native classifies all files), snackbar success/failure viaimport_feedback, and blocks duplicate imports while a request is active. 12 locales add strings for outcomes, refusals, picker failures, and supported-source guidance.Reviewed by Cursor Bugbot for commit c999d87. Bugbot is set up for automated code reviews on this repo. Configure here.