mirror of
https://github.com/storytold/lightcraft.git
synced 2026-10-26 19:17:02 -06:00
Photos dragged from the grid onto a Folders row move there on disk and in the library (`photo.moveToFolder`: files and XMP sidecars, virtual copies follow, never overwrites, one undo step), as Move Selected Photos Here in the row's menu does. - The row lights up, and the label following the pointer says where they go: "Move 2 photos to “Porto”" (onto an album the same gesture only adds them, so the two read apart). - A closed folder held under the pointer for 0.7 s opens, so a folder inside it can be reached. - Refused, with the reason on release and a not-allowed pointer: a row that covers several disks, and Local photos (not in the library). Photos already there say "Already in “Porto”". - A drop asks first, as Lightroom Classic does: "Move 2 photos to “Porto”?" (their files and XMP sidecars move on disk; Edit → Undo moves them back), with Don't ask again, kept in Settings as "Confirm before moving photos to another folder on disk" (on by default). The menu's Move Selected Photos Here, chosen by name, goes at once. A question left open while another library opens (the menu bar and agents reach past a dialog) moves nothing: photo ids are per library. - The toast says how many moved and that Edit → Undo moves them back; the menu item says the same. - Photos that leave the view leave the selection, so a Delete or edit next can't reach them unseen. For NAS and network shares: the copy across volumes now streams (it read the whole file into memory, a problem for a large raw or video) into a free hidden name that takes the photo's name only once complete (a share dropping mid-copy left a truncated file under the photo's name, which a retry reported as the photo already there). New engine tests cover a share going away: Undo with the share offline or read-only is refused with the reason and kept until it can run, nothing is deleted and the library stays linked; a connection lost partway through a move puts back what moved; a file the share can't give back rolls the whole Undo back; and a real move across devices where the machine has a second file system (`/dev/shm`). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>