v0.8.2
Before you double-click
This build is not signed or notarized, so macOS blocks the first launch. Allow it once:
- macOS 15 Sequoia and later β double-click, dismiss the warning, then open
System Settings βΈ Privacy & Security and click Open Anyway. Apple removed the
Control-click shortcut for unsigned apps in macOS 15, so right-clicking does not help.- macOS 13β14 β right-click the app βΈ Open, then confirm.
Only the first launch asks.
A file inside an archive can be previewed and opened β and, because working out why it could not led
straight into it, the app stopped reading things nobody asked it to read.
The first half is what was reported: in a ZIP the quick preview showed nothing and a double-click on a
spreadsheet did nothing at all. The second half is what that turned up on the way. Three parts of the
window read a file simply because the cursor landed on it, and none of them had ever asked what that
costs β only whether the path existed. That is the wrong question on a network share (which looks
exactly like an ordinary folder), on a file the cloud has not downloaded yet (which sits on your own
disk with none of its contents), and inside an archive. Switching a panel on a network share to gallery
view read every file in the folder over the wire, one thumbnail at a time. It asks first now, and
answers in seconds rather than megabytes: after a few reads it knows how fast that connection actually
is.
Underneath both, reading a file out of an archive no longer needs it to fit in memory. A 400 MB file
opened from a ZIP cost 588 MB before and costs 151 MB now.
Added
- A file inside an archive can be previewed and opened. Space and Cmd+Y showed nothing there, and a
double-click on a spreadsheet inside a zip did nothing at all: the panel's paths are not files inside a
mount, so Quick Look refused outright, the info page and Quick View fell back to the file's icon, and
Enter handed/xl/sheet.xlsxto macOS, which has no such file. All of them now go through one place
that unpacks the member to a temporary copy and hands that over β the same for FTP, SFTP, S3 and
plugin mounts, where the same gestures were equally dead. "Open With" lists the applications for the
file's kind now, so the submenu is there for a member too. The copy an application is given is
read-only and Peach Commander says so once, with a "don't show this again" box: it is a copy, and
saving into it does not change the archive. Copies are shared between the previews rather than made
again per surface, are thrown away when the panel leaves the archive, and any left behind by a crash
are recognised by the process that made them and cleared at the next launch rather than a day later. - A budget for everything the cursor reads by itself. The side panel, Quick View and the gallery's
thumbnails follow the cursor, and none of them had ever asked what a file costs β only whether its path
existed. That is the wrong question three times over: a mounted network share looks like an ordinary
local folder, a file iCloud has evicted sits on the startup disk with none of its contents on this
machine, and a member of an archive costs a decompression. Switching a panel on a network share to
gallery view read every file in the folder over the wire, one thumbnail at a time, and in iCloud it
downloaded what had been evicted. Now each of them asks first, and the answer is in seconds rather than
megabytes: after a few reads Peach Commander knows how fast that mount actually is, and allows whatever
fits in about a second and a half β so a fast share shows large files and a slow one declines small
ones. Until it has measured, network files are previewed up to 4 MB and archive members up to 32 MB;
local disks are unrestricted, exactly as before. A file that is declined is not a blank panel: it shows
its icon, its name, size and date from the listing, and one line saying why β and Cmd+Y always previews
it whatever the limits say. All of it is under Configuration βΈ Edit/View, and there is a new help
topic β "Previews of files that are not on this Mac" β in all nineteen languages. - The measurement behind that now actually runs on a mounted share. A share looks like an ordinary
local folder, so nothing Peach Commander does on one was ever timed, and the promise above β "after
that it allows whatever fits in about a second and a half" β could never come true there: only the
cautious 4 MB fallback ever applied. One bounded read per folder measures the connection now (never
for a file the cloud has not downloaded, since reading one is what downloads it), and a read too
fast to time counts as fast instead of being thrown away.
Changed
- A file inside an archive no longer has to fit in memory. Reading one β to view it, to preview
it, to search it or to unpack it β used to decompress the whole thing first and then hold it two or
three times over, so a 4 GB file inside a ZIP needed several gigabytes of memory before a single
byte reached the disk. It is now read and written in pieces from end to end. Measured on a 400 MB
file opened with Cmd+Y from inside a ZIP: 588 MB of memory before, 151 MB after, with identical
contents. Encrypted archive members are the deliberate exception and are unchanged. An unpack of
more than 20 MB announces itself above the file list while it runs.
Fixed
-
Opening or previewing a file larger than 256 MB from inside an archive said "nothing here could
be unpacked". It had been unpacked; the housekeeping that keeps temporary copies within a memory
budget then deleted it again, because one file that size is the whole budget by itself. -
A double-click on an .xlsx opened the spreadsheet's zip instead of the spreadsheet. An Office or
OpenDocument file is a zip, which is why its extension is deliberately absent from what the built-in
reader claims β a text search that descends into one drowns inword/document.xml, and anyone who
wants it can add the extension under Settings βΈ Extra archive extensions. Enter and a double-click
undid that decision by a side door. When a content-detecting packer plugin is enabled β the
"Linux Filesystem Images" reader is one β a file whose name matched nothing was offered to the
whole archive registry rather than to the plugins that had asked for the look, and the built-in
reader does not re-check the name before trying to parse: it simply opened the zip. So the panel
descended intoxl/and[Content_Types].xml, and the same held for .docx, .pptx and every
OpenDocument file. The speculative Enter now asks only the content-detecting plugins, which is what
it was written to do. Ctrl+PageDown is unchanged and is still the gesture that means "open this as an
archive whatever it is", so the zip inside a spreadsheet is one keystroke away rather than in the way.
Proved in both directions with the defect put back: the same file, the same configuration, mounted
without the fix and stayed put with it. -
A new folder left the cursor where it was. F7 reloaded the listing the way a refresh does, which
preserves the old cursor β right for a refresh and wrong here, since somebody who has just named a
folder is about to enter it or drop something into it and had to find it in the listing first. The
cursor now lands on it. A nested name (a/b/c) and several at once (x|y|z) both focus the part the
panel is actually showing, and on a server or plugin mount it is the first folder that was really
created rather than the first one asked for.
Changed
-
The editor's "Save changes?" prompt now puts its buttons where macOS puts them. They were Save,
Discard, Cancel, whichNSAlertlays out right to left β so Cancel sat at the far left, where every
other Mac document window has "Don't Save", and Discard sat next to Save, where the hand goes for
Cancel. Reaching for either by habit did the opposite of what was intended, and one of those two
throws away work. It is now Save, Cancel, Don't Save, with Escape on Cancel and βD on Don't Save set
explicitly rather than left to AppKit's match on the localised button title, which cannot be relied
on across nineteen languages. Same prompt in the hex editor. -
An unsaved document marks itself the way macOS marks one. The dot now appears in the window's
close button (isDocumentEdited), instead of a bullet glued to the front of the title β where it
also showed up in the Window menu, in Mission Control and in every screenshot, reading as part of
the file's name. Text and hex editor both.