Skip to content

Feature: Open files from archives and read-only archive UX - #79

Merged
MemerGamer merged 4 commits into
mainfrom
linux/archive-ux
Oct 5, 2026
Merged

MemerGamer merged 4 commits into
mainfrom
linux/archive-ux

Conversation

@MemerGamer

Copy link
Copy Markdown
Owner

Review follow-ups from P4-E/P4-Z.

  • Opening a file inside an archive extracts only that entry through IArchiveService (size/ratio limits apply) into a private 0700 temp dir ($XDG_RUNTIME_DIR/linuxfiles/archive-open or ~/.cache/linuxfiles/archive-open, sanitized name, per-process dir), then opens it via the existing launcher so confirmation gates apply. Cleaned on exit and stale dirs removed at start.
  • Inside an archive: Delete, Cut, Paste (incl. to selection / as shortcut) are disabled; drops onto archive folders/files, the sidebar and path bar are refused. Rename/New were already disabled.
  • Tab headers split on both \ and /.
  • New "Open as folder" context-menu action for archive files; double-click still opens in the default app.

Verified: app and tests build (864 pass), headless start smoke test. Not exercised interactively: extraction-and-open and menu flows. Extracted files are 0600, so executable members open by content/MIME rather than as runnable binaries.

🤖 Generated with Claude Code

https://claude.ai/code/session_01LeKXJc3DnK3PzAqwgA72NY

MemerGamer and others added 4 commits October 6, 2026 00:03
- Open archive members by extracting the single entry into a private 0700
  temp dir and opening it through the existing launcher gates; clean up on
  exit and at next start.
- Disable Delete, Cut, Paste and drop targets while inside an archive.
- Tab headers split on both separators.
- Add "Open as folder" to the context menu of archive files.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LeKXJc3DnK3PzAqwgA72NY
…indows guards, long names)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LeKXJc3DnK3PzAqwgA72NY
An entry in a directory others can write to could be swapped for a symlink after
it is checked, so the parent of archive-open now gets the same 0700/no-symlink check.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LeKXJc3DnK3PzAqwgA72NY
@MemerGamer
MemerGamer merged commit f4554ad into main Oct 5, 2026
2 checks passed
@MemerGamer
MemerGamer deleted the linux/archive-ux branch October 5, 2026 22:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant