mirror of
https://github.com/storytold/lightcraft.git
synced 2026-11-01 14:07:34 -06:00
A sidecar's lc:settings became the photo's settings through plain from_json, without the keep_in_range that #1960 gave merged settings, and keep_in_range itself leaves a turned crop unbounded. A crop rect of 0..1000 at any angle made the native size of a 6000 x 4000 photo 6,000,000 x 4,000,000 px, which a full-size export passes its memory check with and allocates. - DevelopSettings::from_untrusted_json (from_json + keep_in_range), used for lc:settings. - keep_in_range keeps the crop angle within +-45 degrees (not finite: 0). - CropGeometry::bounded clips the crop to the bounding box of the photo turned by its angle, which holds every crop that stays on the photo (kept bit for bit); Frame applies it, so every source of settings is covered. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K93HTyCiwYvbRGaAkjPvXn