Claude/tool polish features 7ttuok - #1
Open
lucafluri wants to merge 2 commits into
Open
Conversation
… filmstrip Bugs - Baked exports lost EXIF. The stack's numpy stages and ImageOps.expand return a fresh PIL image with an empty `info`, and _bake_to_jpeg read the metadata off *that* — so any photo exported with a vignette, grain, a colour move or a border came out with no camera, lens or capture date. Read it off the source instead, orientation cleared because the pixels are already rotated. - remapSpots still spoke the pre-brush spot schema, so on a current stroke every mapped field came out NaN and the filter then dropped it: the first re-crop silently deleted the whole retouch stack, the one thing a re-crop was supposed to preserve. Both shapes are mapped now, and a stroke that still has any of its length on the picture is kept. - A RAW+JPEG group whose members disagreed (a folder culled before grouping was switched on) showed one reconciled mark but stored two. "Delete rejected" then expanded the group, found half of it flagged, and refused the batch. The reconciled mark is written back, primary included. - An undecodable negative raised a 500 out of libraw. It now reports 422 and the loupe drops back to the camera JPEG saying why; the export lists it as an error rather than writing the preview in place of the negative. - Grain was generated per output pixel, so the preview's grain read several times coarser than the file the export wrote. It is now sized against the frame, from an 8-bit noise plane so a 45MP export costs 45 MB, not 180. - RAW capture time was never read. Most RAWs are TIFF containers, so a RAW-only shoot now sorts and date-splits by when it was shot; the ISO-BMFF ones are skipped on the magic number rather than handed to a decoder once per scan. - The shortcut sheet was taller than the screen with no way to scroll, and V was swallowed in the loupe so it could not be opened from where it is most wanted. - Also: the ✎ badge was drawn on top of the flag dot; a no-op edit pushed an undo step that did nothing; the histogram's "before" curve was cached by path alone and so survived the JPEG/RAW switch; retouch mode outlived the viewer; right-dragging a pane started a pan that never ended; a clicked button kept focus so the next Space re-pressed it; the render cache prune counter raced. Navigation and UI - The compare set is now a general selection: shift-click takes a range, ctrl-click toggles one, A takes everything the filter shows, and Shift+a flag or rating key marks the lot in one request that undoes as one. - Filename filter in the top bar, / to focus, Esc to clear. - Loupe: Z (or double-click) flips fit ⇄ 100% centred on the pointer, a filmstrip shows where in the shoot you are and jumps to any frame, and the edges of the picture are prev/next buttons. - The folder tree takes the arrow keys and Esc closes it; PgUp/PgDn move a screenful; 0 is an alias for no stars. - Sort, direction, filter, search and a new fit/fill thumbnail mode persist. - Export can be pointed at the selection, groups expanded so a picked RAW+JPEG pair goes out whole. Hardening - The render endpoints only serve files that are in the open library: any page the browser visits can point an <img> at them, which made them a read primitive for the rest of the disk. - Stroke coordinates are rounded to five decimals — a twentieth of a pixel at 45MP — which keeps a heavily retouched photo's edit stack inside the 64 KB the live-preview query string gets. Tests cover the EXIF carry-over, grain at two render sizes, RAW capture time, the path scoping, bulk marking, the selection export and the 422. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EhFtz5P5ajfGiQsmGCh6GH
Plainer wording, no em dashes, and about a quarter shorter. Same facts, less explaining of why each thing works the way it does. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EhFtz5P5ajfGiQsmGCh6GH
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.