What's Changed
- File ▸ Import: drop or pick After Effects projects to import them; name the project imports alike (#3103) by @arnav-hiwarkar in #3392
- Timeline: keep marquee selection anchored while scrolling by @arnav-hiwarkar in #3393
- Build: take craft-libs at e11f9d9a so its workspace loads with current Cargo by @nanox333 in #3351
- Build: drop the unused egui patches and fail CI on [[patch.unused]] by @nanox333 in #3404
- Viewer: a click selects the topmost layer over a selected one (#3389) by @arnav-hiwarkar in #3405
- Fix launch guard ownership during concurrent startup by @FredApps in #1459
- Capture observed process and GPU failure evidence by @FredApps in #3409
- Make the audio preview follow mute changes made during playback (#2104) by @MarekSpodBiedry in #2162
- feat(xtask): ci --affected, a fast CI profile and replayable crash repros by @eliasx45 in #1224
- Preview: play audio at the selected frame rate (#945) by @FredApps in #3416
- Timeline: Shift-dragging a layer bar snaps to layer ends, the current time, markers and keys (#1828) by @arnav-hiwarkar in #3412
- xtask: skip the non-UTF-8 changed-file test on macOS, where APFS can't hold such names by @arnav-hiwarkar in #3421
- Preview: smoother first playback of uncached comps by @nazar-gavrylyk in #3401
- sonar: leave out the AEP corpus generators and document the expression eval wrappers by @FredApps in #3407
- WebM export: encode audio packets in place instead of draining each from the front by @dylanmtaylor in #2982
- Lottie export: embed only files that are PNG, JPEG, GIF or WebP images by @dylanmtaylor in #3008
- Segment checkpoints: charge memo copies and string bytes; refuse impossible zip sizes; bounded inflate errors by @dylanmtaylor in #3006
- PDF fonts and fax: bound charstring work, ToUnicode ranges and reference search by @dylanmtaylor in #2964
- Render Queue: keep Output Module crop padding within the largest output frame by @dylanmtaylor in #2984
- ICC: interpolate only the CLUT axes that need it by @dylanmtaylor in #2985
- Box blur: count repeated edge pixels instead of visiting them, and bound the radius by @dylanmtaylor in #2944
- Auto-trace: bound the nesting, simplification and fitting work by @dylanmtaylor in #2945
- Text: merge variable font axes by tag and cap their number by @dylanmtaylor in #2949
- Gradients: bound the stops sampled per pixel by @dylanmtaylor in #2950
- Timewarp: Block Size held to its 4-64 range, matching window capped by @dylanmtaylor in #3024
- Text: caret and line lookups by bisection (range-selector hit testing) by @dylanmtaylor in #3029
- Sonar: [[ in the plugin-catalog check, Number.* in the boa runtimes, no Invoke-Expression (S7688, S7773, S8659) by @dylanmtaylor in https://github.com//pull/3427
- GPU: Fast Box Blur and Gaussian Blur rows round like the CPU by @MatejKozlovsky in #3394
- #1615: document EFFECTCRAFT_CPU_INFLIGHT in docs/preferences.md by @JonRC in #3423
- Docs: scope EFFECTCRAFT_CPU_INFLIGHT to exports, document EFFECTCRAFT_RQ_RENDERER by @arnav-hiwarkar in #3433
- Effects: re-pin the macOS golden hashes #2944 changed by rounding by @arnav-hiwarkar in #3434
- Settings: option to fit new layers to the work area by @nazar-gavrylyk in #3435
- AEP import: name every unmapped effect in the report, with its instance count (#3365) by @nanox333 in #3420
- Viewer: clicking the current-time display opens Go to Time (#3373) by @nanox333 in #3419
- test(ui-egui): split the crypto-pick viewer matrix into one test per window size by @FredApps in #3446
- Time entry: a negative displayed timecode goes to the frame it shows (#3373) by @arnav-hiwarkar in #3445
- .aep import: recognize French names for Levels' Channel and Clip popups by @sunkidda in #3432
- .aep: popup items match ignoring case outside ASCII too by @arnav-hiwarkar in #3447
- Scripting: setValue stores string effect parameters, such as Apply Color LUT's LUT (#3395) by @JonRC in #3397
- Preserve frozen Object Mattes with pre-0.23 footage keys by @lisn0 in #3431
- Scripting: export commands a script runs directly respect Allow Scripts to Write Files by @dylanmtaylor in #2921
- Export: Auto caps CPU frames in flight from free memory after a job switches to the CPU (#1615) by @FredApps in #3458
- Cylinder Wrap: Radius goes up to 30000 % (#3368) by @nanox333 in #3418
- Apply Color LUT loads files whose path contains LUT_ (#3454) by @arnav-hiwarkar in #3455
- Release: EffectCraft v0.24.0 by @FredApps in #3494
New Contributors
Full Changelog: v0.23.1...v0.24.0