You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"Compare copies" works on files, not just folders. A file group's copies each carried a 40pt
thumbnail and that was the whole comparison; folder groups got a side-by-side review. Any two
copies now open in one surface: a strip across the top giving name, location, size, date and — for
two PDFs — page count for both, with whatever differs picked out, and two live previews under
it. Choose which copy to
keep with ←/→ or the button over either pane; the card underneath follows.
The verdict is one copy, not the whole group. Trashing from here removes the copy you were
looking at and leaves a third copy of the same file alone. It goes through the same last-moment
re-check every other removal does: if either copy changed since the scan — or a rescan landed
while the surface was open — it refuses and says which one and why, rather than trashing on a
verdict that has expired.
Two copies the group is not keeping get no verdict at all. Open the second and third copies
of a three-copy group against each other and neither of them is the keeper — so neither is
marked as one, the trash button is withheld, and a line names the copy that IS being kept. The
facts on screen are current, so it does not send you off to rescan.
⏎ and esc both mean Done. Trashing a copy is always a deliberate click.
A byte-identical pair can be re-checked on the spot. "Verify now" hashes both files as they
are on disk right now, and reports three outcomes rather than two: they match, they no longer
match (so the scan is stale — rescan before removing either), or one of them could not be read,
naming which side and why.
A copy that has not been downloaded says so and offers to fetch it, instead of showing an
empty pane. Previewing it would pull the whole file down, which on a cloud folder is the normal
case rather than the exception.
The surface resizes and remembers it. Drag any edge or corner; it opens at that size next
time, held to what the window can actually show — so moving to a smaller display cannot leave
its verdict bar off screen.
Two PDFs, or two images, move together
Synchronised panes for PDFs and images. Scroll or zoom one side and the other follows, and
⌥ held breaks the sync while you move one alone. Zoom survives a trip out to an overlay mode and
back, so reading a table closely, checking the pixel difference and returning does not drop you
at fit-to-page. Quick Look has no scroll or zoom to synchronise at all, which is why this arrives
with per-type viewers rather than earlier.
Paging is the PDF half — two images have no pages to turn. ⇞/⇟ move both sides at once, and
scrolling onto another page walks the page strip along with you, so 1–4 open on the page you
were actually reading rather than on the one you started at; ⌥ breaks that too. A
strip under the panes marks each page once it has been compared — green where nothing changed,
amber where something did, with the figure in the tooltip; blue where only one document has that
page, red where a side could not be rendered. A page carries no mark until its comparison has
actually run, so nothing on the strip stands for a page that has not been looked at. Where one
document is longer, the strip runs to the longer one and the shorter side stops at its last page
rather than hiding the pages only one file has.
Three ways to overlay the two sides, picked with 2–4 or the segments — 1 is the plain
side-by-side you start on: swipe a divider
across them, blend one into the other, or see the pixel difference on black — where identical is
black and anything that changed glows. The difference view says outright that it compares pixels
with no alignment, so two scans of one sheet of paper glowing all over reads as scanner noise
rather than as content.
Two text files, line by line
A read-only side-by-side diff for text, source, CSV, JSON and the like. An edited line shows
as one row with both versions on it and the changed WORDS picked out, rather than as a deleted
line above an added one. ↑/↓ step between changes, not between lines.
Files that are not quite text still open. A log truncated mid-character decodes with the
unreadable bytes marked and says so, and a file that announces its encoding with a byte-order
mark is read in that encoding rather than sniffed as binary. Files over 4 MB, files that are not
downloaded, and files that turn out to be binary each say which of those they are.
A diff it cannot afford is declined, not started. Two large files with almost nothing in
common would take minutes to line up, and a single line long enough to be a whole minified file
would take as long again to compare word by word. Both are now refused up front and said out
loud — the other modes still work, and a line marked whole says it was marked whole — rather
than spinning over a pane that is never going to answer.
CRLF against LF is reported as a line-ending difference, not as a thousand changed lines, and
two files holding the same words in different encodings show no changed rows at all — the
comparison is over decoded text, not raw bytes, and a note above the diff is what tells you the
bytes differ.
The same surface in Compare
"Compare…" on a changed row in the Differences list opens the identical viewer — facts,
previews, modes, the text diff — with a Done-only bar. Differences already owns copying, moving
and ignoring a row, so the viewer adds no second way to do them.
Deleting
A move between volumes spends a retry before it destroys anything. Such a move copies to the
destination and then clears the source to the Trash — and if that step failed, the cleanup fell
straight through to a permanent delete. The refusal macOS raises on files you own, in folders you
own, is exactly such a failure, so under it a move could quietly become a deletion of the
original. That refusal is now retried first, which is what rescues it. The unrecoverable fallback
is still there for a volume with no Trash at all, and the log names it when it is taken.
A Trash refusal is retried before it is reported. The app asks the system's own Trash
service, and failing that re-registers the item with a move in place and tries again. Whether
that clears any particular refusal is not promised — the failure comes and goes on its own — but
one that survives both attempts now says what was tried and what was observed, rather than
naming a cause it cannot know.
Elsewhere
The Activity Log survives a log file it cannot fully decode. One byte of invalid UTF-8 — an
append cut short by a crash, or a path written by another process — took the entire
previous-session history with it and put an error note where the history should have been. The
unreadable bytes are now marked and everything around them loads.
Known limitations
Folder groups keep the existing Compare-workspace review; this surface is for pairs of files.
The pixel modes align pages by their frames only. Two scans of the same page will not line up,
and there is no de-skew or registration pass.
Formats with no typed viewer — Word documents, presentations, video — get two independent Quick
Look panes and a caption saying they do not scroll together.