Conversation
Quarantined files were stored on disk but there was no way to view, restore, or permanently delete them from the app. This adds a Quarantine tab to the Malware Scanner page with full management. - Add quarantine manifest (JSON sidecar) to track original file paths - Add MALWARE_QUARANTINE_LIST IPC channel and listQuarantinedFiles() - Update quarantine/delete/restore to maintain manifest consistency - Add Quarantine tab with item list, select-all, restore, and delete - Extend malware store with quarantine state management Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix filename parsing to skip full 36-char UUID instead of stopping at second underscore (broke filenames containing underscores) - Fix operator precedence: add parens around `??` / `||` mix (build error) - Add per-item error detail to restore toast (shows which files failed) - Fix loading spinner text falling back to scan-related string - Load quarantine items on mount so badge count is accurate immediately - Log warning on corrupt manifest JSON instead of silently swallowing Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9602148bfe
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
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".
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2ff9fa22b7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
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".
Both handleQuarantineRestore and handleQuarantineDelete could leave quarantineStatus stuck in a busy state if the IPC call rejected. Wrap in try/finally so status always resets to idle. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4fad6d8823
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
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".
| } | ||
| } | ||
|
|
||
| await writeManifest(manifest) |
There was a problem hiding this comment.
Keep quarantine result accurate when manifest write fails
This await writeManifest(manifest) runs after files may already have been moved by rename, and it is not handled as a partial failure. If persisting the manifest fails (for example due to disk-full or permission issues), the IPC call rejects and the renderer treats the whole action as failed even though some files were successfully quarantined, leaving UI state and on-disk state inconsistent.
Useful? React with 👍 / 👎.
| useEffect(() => { | ||
| if (viewMode === 'quarantine') loadQuarantineItems() | ||
| }, [viewMode, loadQuarantineItems]) |
There was a problem hiding this comment.
Refresh quarantine badge after scanner-side quarantine
Quarantine items are only reloaded on mount and when viewMode changes to quarantine, so a successful quarantine action from the scanner tab does not refresh quarantineItems immediately. This leaves the tab badge count stale until the user switches tabs or reloads, which makes the new quarantine count inaccurate in normal scanner workflow.
Useful? React with 👍 / 👎.
Summary
quarantine-manifest.json) to track original file paths, enabling reliable restoreMALWARE_QUARANTINE_LISTIPC channel withlistQuarantinedFiles()backend, preload bridge, and store stateTest plan
🤖 Generated with Claude Code