effectcraft/crates
vangel76 3466538d0e #783: Object Matte mattes persist in the disk cache
Problem: computed Object Matte segmentations lived only in the in-memory
cache, so every restart or memory eviction segmented the shot again (After
Effects 26.5 keeps Object Matte results in its disk cache).

Fix: the persistent disk cache gets a third entry kind, Matte (folder
`mattes`, LZ4-compressed FrameSeg bytes, same checksum, atomic writes, LRU
eviction under the one size limit, purged with the rest). Entries are keyed by
the segmentation's chain key and scale; chain keys already hash the Input Key
(the layer's source, timing, masks and effects above), the prompt, the mode and
the model, so any change simply misses. The effects crate gets a SegStore
trait behind its memory cache: Chain::ensure reads from it on a memory miss
and writes what it computes. The engine installs the session's DiskCache as
the store (held weakly, so switching the disk cache off drops it). Roto Brush
segmentations go through the same chain and are persisted too. Frozen mattes
already persist in the project (the Frozen parameter).

Tests: engine tests_roto::object_matte_mattes_persist_in_the_disk_cache (a
second session on the same folder and project gets all tracked frames back
without being able to read a single input frame, renders identically, and a
moved prompt finds nothing); render disk_cache
segmentations_round_trip_and_reopen (round trip, reopen, damaged file is a
miss, size limit evicts).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 14:06:33 +02:00
..
automation MCP: --automation-read-root / --automation-write-root confine the agent's file access (#500) 2026-10-10 22:54:57 +00:00
av1enc G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
color Blend modes: classic modes fade with opacity and HDR modes keep over-range values, as in After Effects (#494) 2026-10-10 20:51:24 +00:00
effects #783: Object Matte mattes persist in the disk cache 2026-10-11 14:06:33 +02:00
engine #783: Object Matte mattes persist in the disk cache 2026-10-11 14:06:33 +02:00
export G3: preserve exported audio sample positions 2026-10-10 17:55:50 +10:00
expr Tests: the near-plane check tests for the flip, and loopOut compares within float tolerance (#572, #456 follow-up) 2026-10-10 21:48:52 +00:00
geom Never crash: deny panic lints in the already-clean crates and apps 2026-10-04 14:52:39 -04:00
gpu Issue fixes: #647 nested frame renders while dragging, #659 CC Smear/Tiler past text bounds, #652 relative footage next to the project, #651 GIF playback test 2026-10-10 23:55:23 +00:00
hevcenc Untrack crates/hevcenc/target (36 MB of build output) and ignore nested target/ 2026-10-06 15:02:20 -04:00
host Import: test that an animated GIF imported from disk plays (#651) 2026-10-10 23:50:08 +00:00
interchange Never crash: reject timeline documents nested too deeply 2026-10-04 14:05:57 -04:00
keyframe Keyframes: a straight auto-Bezier segment interpolates its chord exactly (#650 follow-up) 2026-10-10 22:52:36 +00:00
lottie G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
media Release prep: 0.8.0 and a Linux riscv64 release build (#669) 2026-10-10 21:08:18 -04:00
model G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
opusenc G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
path G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
pdf Lint: clippy's collapsible_match passes on Rust 1.95 2026-10-10 16:54:16 -04:00
plugin G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
project Merge branch 'fix/f4': community issue fixes 2026-10-10 20:00:37 +00:00
psd Lint: clippy's collapsible_match passes on Rust 1.95 2026-10-10 16:54:16 -04:00
raster Effects: EXtractoR picks layers and channels of multi-layer EXRs (#295) 2026-10-09 17:32:09 +07:00
render #783: Object Matte mattes persist in the disk cache 2026-10-11 14:06:33 +02:00
script Merge branch 'fix/f4': community issue fixes 2026-10-10 20:00:37 +00:00
segment Merge pull request #374 from storytold/fix/368-tflite-budgets 2026-10-09 09:25:24 -04:00
svg G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
text Community follow-ups: dedup font files from overlapping folders (#665); empty-Timeline drop also accepts compositions, rustfmt (#662) 2026-10-10 22:29:04 +00:00
time G3: fix frame-rate boundaries and bounded timecode arithmetic 2026-10-10 06:40:02 +10:00
track #783: Object Matte passes its box to the model as a box prompt 2026-10-11 13:38:10 +02:00
ui-egui #783: Object Matte tracks in the background and freezes 2026-10-11 14:02:50 +02:00
vp9enc VP9: frames never end in a byte that reads as a superframe marker (#161) 2026-10-07 14:15:33 +07:00