ZIm/crates/eval/examples/exif_rotation_support/diff_criteria.md
Nathan Sobo bab28560ef
Systematically optimize agentic editing performance (#28961)
Now that we've established a proper eval in tree, this PR is reboots of
our agent loop back to a set of minimal tools and simpler prompts. We
should aim to get this branch feeling subjectively competitive with
what's on main and then merge it, and build from there.

Let's invest in our eval and use it to drive better performance of the
agent loop. How you can help: Pick an example, and then make the outcome
faster or better. It's fine to even use your own subjective judgment, as
our evaluation criteria likely need tuning as well at this point. Focus
on making the agent work better in your own subjective experience first.
Let's focus on simple/practical improvements to make this thing work
better, then determine how we can craft our judgment criteria to lock
those improvements in.

Release Notes:

- N/A

---------

Co-authored-by: Max <max@zed.dev>
Co-authored-by: Antonio <antonio@zed.dev>
Co-authored-by: Agus <agus@zed.dev>
Co-authored-by: Richard <richard@zed.dev>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Michael Sloan <mgsloan@gmail.com>
2025-04-19 02:47:59 +00:00

1.6 KiB

  1. EXIF-based Rotation Handling: Introduces image orientation correction using EXIF metadata by parsing orientation tags and applying corresponding image transformations (e.g., flip, rotate). This improves accuracy for displaying and analyzing images with embedded rotation data.
  2. New Dependencies and Parsing Logic: Adds nom-exif, iso6709parse, and related dependencies for reading EXIF metadata, and implements robust parsing logic using MediaParser, ExifIter, and orientation matching for clean integration.
  3. Expanded common_image.rs Logic: Refactors image loading in get_dynamic_image_from_path to automatically apply EXIF-based orientation corrections, adding new helper methods (get_rotation_from_exif) and an ExifOrientation enum to encapsulate the rotation logic clearly and maintainably.
  4. Versioning and Compatibility Updates: Updates minimum Rust version to 1.80.0 across all packages and workflows, ensuring compatibility with newly introduced crates and language features.
  5. Internal Versioning Sync: Increments CACHE_IMAGE_VERSION to ensure cache invalidation reflects new image processing logic, preventing mismatches due to transformed image data.
  6. Dependency Management and Cargo.toml Additions: Adds new crate dependencies to Cargo.toml files where necessary (czkawka_core, Cargo.lock) and aligns versions to reflect new EXIF parsing functionality.
  7. GUI State Initialization Adjustment: Modifies GUI default tab state from SimilarImages to DuplicateFiles—likely for improved UX or alignment with application focus.