Queued embedded grid-preview requests now change priority without restarting their work. Undo to an embedded preview retires obsolete thumbnail requests so a late edited render cannot replace the restored preview.
Partially addresses #348.
Co-authored-by: Codex <codex@openai.com>
Wait for the registered Edit title before the existing one-click test. Reveal the Sync folder row only when needed, click its visible intersection, and keep geometry in failing assertions. Preserve the original scenarios and pointer interactions.
Co-authored-by: Codex <codex@openai.com>
Restore the original UI tests so this PR contains only the camera local-tone Auto Sync fix and its two engine regressions. Keep the independently prepared fixture correction in its separate review scope.
Co-authored-by: Codex <codex@openai.com>
Compare the typed camera-local-tone flag on both sides of the Auto Sync delta so selected peers receive Off while retaining their own profile id, amount, and unrelated settings. Add regressions for propagation, unchanged values, selection boundaries, and history/serialization behavior.
Co-authored-by: Codex <codex@openai.com>
Turning HDR off with Auto Sync active now turns it off for the other selected photos. Enabling HDR preserves existing per-photo HDR tuning.
Co-authored-by: Codex <codex@openai.com>
Manual metadata reread now finds standard embedded JPEG XMP when no sidecar exists. Existing sidecars remain authoritative, metadata updates remain undoable, and rereading does not write a sidecar. The reader retains its bounded header policy; Extended XMP assembly is unsupported.
Co-authored-by: Codex <codex@openai.com>
Preserve model setup and retry behavior alongside the upstream folder
opening callback. Keep the Linux opener asynchronous.
Co-authored-by: Codex <codex@openai.com>
Open the configured SAM directory itself and preserve the pending mask
action and existing files when folder creation or the opener fails.
Run the Linux desktop opener in a background task and deliver failures
to the UI for retry. Directory creation remains synchronous.
Cover configured paths, creation and opener failures, retry state and
worker completion.
Partially addresses #366; model download hosting remains unresolved.
Credit: sanyamsingh001
Co-authored-by: Codex <codex@openai.com>
Document polling of selection/settings/control ranges and shared edit
interactions. Clarify explicit-photo reads, empty selection and navigation,
and correct photo-tool ID descriptions and MCP initialization guidance.
Partial documentation work for issue 251;
hardware feedback remains outside this change.
Co-authored-by: Codex <codex@openai.com>
Finish the initial UI layout and assert font readiness before timing the existing views. Preserve the 300 ms limit and final probe assertions.
Co-authored-by: Codex <codex@openai.com>
Honor Enter/Escape on the completed opening release, release focus for a
cancelled opening click, and keep a numeric Escape batch out of app shortcuts.
Defer the Edit panel's clicked Reset until after its controls so the normal
click-away commit precedes the explicit reset. Retain the original Numeric
regressions and the single active-draft Reset regression.
Co-authored-by: Codex <codex@openai.com>