The similarity slider stepped and showed whole hundredths, and egui applies both
to a typed value too, so 0.995 became 1.00 before photo.analyze saw it. It now
steps by a thousandth and shows two or three decimals: dragging still lands on
round values, and a typed 0.995 is kept.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Two catalog additions and one internal change, with nothing calling the new ones yet:
- Catalog::folder_records_located: folder_records_follow for a folder located where it
already is on disk (records of library folders at the destination stay).
- Catalog::local_records_of: the Local records of some files, split into those that can
give way and those that hold something of the person's.
- Find Missing Photos hashes a file in 64 KiB pieces instead of reading it whole (the same
hash).
The burst-gap and similarity sliders still drag over 1 s-10 min and 0.70-0.99, but
their value fields no longer clamp to that: a typed gap of 0 s to a day ("1800",
"30 min", "1 day") and a similarity of 0 to 1.0 are kept and sent to photo.analyze
as typed; values past the API range are held at its limits.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Japanese paper-size test exported only the canonical names and then
checked `print.set` with はがき, so the alias-to-MediaBox path was not
covered. Export はがき through `print.exportPdf` as well and read the
same 283.46 × 419.53 pt page as postcard.
LibraryLock::acquire wrote catalog.lock.owner with std::fs::write,
which follows a symlink at that name. A library folder someone else
prepared (a shared drive, an unpacked archive, a synced folder) could
carry catalog.lock.owner -> ~/.bashrc or any other file the user can
write, and opening the library replaced that file's content with the
owner JSON. The catalog's staging files had the same problem and were
fixed in #1502; the owner note was missed.
The note is now written through store::create_staging (made
pub(crate)): whatever is at the name is removed (a link itself, never
its target) and the file is created with create_new. Drop already
removed the note with remove_file, which never follows a link.
Test (Unix): a link at catalog.lock.owner pointing at a file outside
the library leaves that file's bytes unchanged through acquire and
drop, and the note lands in the library as a regular file naming this
process.
Reported-by: BS.ehlas.cz
Point de couleur (Point Color), courbe à points (Point Curve), Température (Temp), Grouper (Group by / Group into Stack), Ratio de format (Aspect Ratio), Profondeur de couleur (Bit depth), Modifier le panneau (Arrange Panel). Reviewed by @francoisgn (native French speaker).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AbegtYaPuwqZ81pGfELsFK