Repository navigation
feat: optionally extract archives opened from Finder - #291
athousanddetails wants to merge 1 commit into
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. 🧰 Additional context used📚 Code guidelines (1)No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
⛔ Files ignored due to path filters (3)
📒 Files selected for processing (10)
Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 2 remain after this review. 📝 WalkthroughWalkthroughMacPacker adds a preference for extracting archives opened from Finder. Eligible archives enter a sequential extraction queue, which handles password prompts and open errors. The app continues to browse archives opened through File → Open and defers termination while extraction remains active. ChangesFinder Archive Extraction
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Feature Sequence Diagram(s)sequenceDiagram
participant AppDelegate
participant ArchiveOpenExtractor
participant ArchiveState
participant ArchiveOpenPasswordPrompt
AppDelegate->>ArchiveOpenExtractor: Enqueue eligible Finder URL
ArchiveOpenExtractor->>ArchiveState: Open archive with password provider
ArchiveState->>ArchiveOpenPasswordPrompt: Request archive password
ArchiveOpenPasswordPrompt-->>ArchiveState: Return password or cancellation
ArchiveOpenExtractor->>ArchiveState: Extract archive to containing folder
Merge Risk: ⚪ Minimal · up to The Finder extraction feature is mergeable after normal checks. Cancelling a password prompt for certain damaged archives may hide an error message, but it does not prevent the user from trying another way to open the archive. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to Immediate extraction makes opening an archive write files without a separate extraction action. The behavior is explicitly opt-in, preserves default browsing, and retains folder authorization and password prompts. No authorization bypass was established, but interruption and partial-output handling remain incompletely verified. Retained concerns Security review detailsSecurity Blast Radius
Security Findings and Attack Paths
Trust Boundaries and Controls
Resilience and Maintainability Implications
Hardening Proposals
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 22.22% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 18 functions across 7 files. (3 skipped: 3 unsupported.)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Adds an opt-in General → When opening an archive → Extract immediately setting. Opening an archive through Finder/Open With then extracts beside the source using the existing smart-extraction rules, without first opening a browser, launcher, or welcome window. Open in MacPacker remains the default, and File → Open / Open Archive still browses archives regardless of the setting.
Closes #280.
File-open extractions run sequentially, with standalone password retry/cancellation and the existing folder-access and progress UI. Each archive uses its own parent folder. The app stays alive while an access/password prompt is pending and respects Quit on Last Window Closed after the queue finishes. Explicit app launch remains available through AppKit's untitled-document/reopen events.
Verification:
Detailed verification:
docs/verification/issue-280/README.md. Screenshots are genuine crops excluding the cursor. Testing used a separate local review identity; the installed app was not replaced, and the temporary app/files were removed afterward.Scope: existing extraction/overwrite semantics are unchanged. This PR does not depend on #285; its standalone password-panel pattern is reused here. No additional application/helper, Finder extension, default-format association changes, or version changes.
AI disclosure: implementation, tests, and documentation were authored with Codex under this human-owned account. Manual app interaction and verification are described above.
Summary by CodeRabbit