effectcraft/crates/engine/src
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
..
commands #783: Object Matte tracks in the background and freezes 2026-10-11 14:02:50 +02:00
menus M3.13: menu bar: Group/Ungroup Shapes in the Layer menu, Window ▸ Learn, flowchart shortcuts, Center In View shortcut, Reveal in Explorer on Windows 2026-10-04 23:58:00 +07:00
autosave.rs M3.14: project files name the version that wrote them, never save unreadable, keep their format 2026-10-05 00:08:07 +07:00
camera_track.rs Effects: effect points on shape layers start at the layer centre (#227) 2026-10-08 20:33:03 +07:00
config.rs UI.9: share docking transactions and preserve viewer lifecycle 2026-10-10 17:14:12 -06:00
demo.rs M9.12: effect parameter fidelity – all categories 2026-10-03 00:15:06 -04:00
footage_check.rs Project: footage saved with a relative path is found next to the project file (#652) 2026-10-10 23:41:43 +00:00
footage_reload.rs Merge pull request #578 from KattKnight/footage-reload 2026-10-10 16:28:05 +00:00
guard.rs Never crash: last-resort guard around command execution, and a logging panic hook 2026-10-04 13:27:33 -04:00
history.rs G3: preserve reachable history during trimming 2026-10-11 01:23:47 +10:00
jobs.rs Import: dropped and picked files show an Importing card (#270) 2026-10-08 20:05:07 +07:00
learn.rs M13.5: Home ▸ Learn tab with interactive tutorials (learn.list/start/step/stop/state, coach card, target highlight) 2026-10-03 05:25:45 -04:00
lib.rs Merge branch 'fix/f4': community issue fixes 2026-10-10 20:00:37 +00:00
links.rs Rename PrintCraft to PdfCraft (storytold/pdfcraft) (#207) 2026-10-07 15:37:26 -04:00
logging.rs Logging: RUST_LOG prints to stderr, and start-up logs its milestones (#234) 2026-10-08 13:32:16 +07:00
mask_track.rs M13.36: face tracking trained model — MediaPipe Face Landmarker on a pure-Rust TFLite interpreter 2026-10-05 20:39:45 +07:00
media_browser.rs Import: Interpret Footage ▸ Preserve RGB keeps the file's values (#411) 2026-10-09 23:57:12 +07:00
media_cache.rs G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
menus.rs Relink missing footage by scanning a folder for compatible files. 2026-10-10 04:37:44 +11:00
models.rs M13.36: face tracking trained model — MediaPipe Face Landmarker on a pure-Rust TFLite interpreter 2026-10-05 20:39:45 +07:00
offload.rs #783: Object Matte tracks in the background and freezes 2026-10-11 14:02:50 +02:00
perf.rs Never crash: engine without expect() (job polling, commands, menus) 2026-10-04 13:40:46 -04:00
prefs.rs Merge branch 'fix/f2': community issue fixes 2026-10-10 19:48:18 +00:00
preview.rs M13.8: Preview panel shortcuts and Align panel commands 2026-10-03 07:38:46 -04:00
psd_import.rs M13.6: PSD smart objects apply perspective quads and placed-layer warps 2026-10-03 07:21:00 -04:00
remote.rs M13.30: web depth and polish 2026-10-04 02:57:17 -04:00
render_queue.rs Render queue: unsaved project outputs go to ~/Movies or home, not the working directory (#446) 2026-10-10 19:28:44 +02:00
roto.rs #783: Object Matte tracks in the background and freezes 2026-10-11 14:02:50 +02:00
rq_tests.rs Format the merged community fixes (#561-#566 follow-up) 2026-10-10 12:49:52 +00:00
scriptui.rs Plug-ins: ScriptUI Panels folder scripts dock as panels and reopen, as in After Effects 2026-10-09 21:03:12 +07:00
sequence.rs Import: only dropped files default to stills; scripts and agents naming a frame still get its run (#431) 2026-10-10 20:15:24 +00:00
session_settings.rs #783: Object Matte mattes persist in the disk cache 2026-10-11 14:06:33 +02:00
shortcuts.rs M14.3: keyboard shortcut editor 2026-10-02 09:14:54 -04:00
storage.rs M13.24: web app depth (WEB-1) — GPU effects in frame workers, OPFS disk cache, storage manager 2026-10-03 18:35:03 -04:00
sysinfo.rs FreeBSD: system info reports memory, CPU model and OS version 2026-10-05 11:33:06 -04:00
templates.rs G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
tests.rs Merge pull request #299 from DWAA1660/fix/property-group-diagnostic-263 2026-10-10 12:50:18 +00:00
tests_3d.rs 3D: layer.newLight lists the Environment light and how to set its source; parity notes reflections (#261) 2026-10-08 11:57:55 +00:00
tests_anim_tools.rs ANM-6, CMP-5, CMP-3: Wiggler/Smoother/Motion Sketch, marker dialog + timeline markers, pre-compose options + comp navigator 2026-10-02 10:47:02 -04:00
tests_camera_track.rs M12.6: 3D Camera Tracker effect + UI 2026-10-02 23:02:47 -04:00
tests_codec_options.rs Render Queue: output files end in their format's extension once (#293) 2026-10-09 16:51:12 +07:00
tests_color_view.rs M13.30: web depth and polish 2026-10-04 02:57:17 -04:00
tests_disk_cache.rs Preview: Audio, Lock and Shy keep the cache; playback with audio waits for frames (#103) 2026-10-07 01:46:35 +07:00
tests_effects.rs Effect reset: restore parameters inside twirl-down groups 2026-10-10 13:57:45 +02:00
tests_essential.rs M13.11: essential graphics mirrored and linked properties 2026-10-03 09:38:19 -04:00
tests_essential_more.rs Merge main into M13.11 (bokeh kernel_spans/blur_levels, Essential Graphics as_type controls with mirrors and links) 2026-10-03 09:54:37 -04:00
tests_face.rs M13.36: face tracking trained model — MediaPipe Face Landmarker on a pure-Rust TFLite interpreter 2026-10-05 20:39:45 +07:00
tests_fidelity.rs M4.4: collapse transformations + slip 2026-10-02 10:14:53 -04:00
tests_frame_export.rs fix(export): keep values above 1.0 in EXR output (#339) 2026-10-08 20:22:49 -07:00
tests_history.rs G3: preserve reachable history during trimming 2026-10-11 01:23:47 +10:00
tests_key_metadata_order.rs G2: preserve keyframe selection during attribute edits 2026-10-10 13:22:32 +10:00
tests_key_time.rs Issue 257: support explicit keyframe time bases 2026-10-10 11:12:14 +10:00
tests_keylight.rs M5.16: Key Light: keyer eyedroppers pick from the effect input (effect.pickColor); "keylight" search 2026-10-05 11:04:10 +07:00
tests_lottie.rs M11.4: Lottie export/import 2026-10-02 08:56:03 -04:00
tests_m137.rs M13.7: Save Frame As Photoshop Layers / ProEXR, Watch Folder, Vanishing Point (disabled), Create Nulls From Paths, VR Comp Editor, Help tutorials 2026-10-03 07:55:04 -04:00
tests_m145.rs Merge branch 'fix/f4': community issue fixes 2026-10-10 20:00:37 +00:00
tests_markers.rs M13.33: nested comp markers on the precomp layer bar 2026-10-05 15:12:06 +07:00
tests_mask_warp.rs M13.32: web main-thread stall: Warp Stabilizer plans solved in job workers 2026-10-04 03:40:46 -04:00
tests_menu_cmds.rs Edit: Copy with a property selected copies that property, and Paste sets it on the selected layers (#493) 2026-10-10 19:48:25 +00:00
tests_model3d.rs Import: a 3D model doesn't ask how to interpret its alpha (#264) 2026-10-08 21:18:52 +07:00
tests_models.rs G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
tests_motion_blur_depth.rs M4.13: motion blur of collapsed precomps and of animated shape / text content 2026-10-05 12:35:30 +07:00
tests_paint.rs Puppet: a pin added to a bent mesh holds it where it is; nothing jumps (#318) 2026-10-10 19:48:25 +00:00
tests_panels.rs M13.30: Content-Aware Fill in a job worker on its GPU 2026-10-04 03:15:54 -04:00
tests_project_items.rs Edit: Delete removes selected animators, masks and shape groups (#151) 2026-10-07 13:32:40 +07:00
tests_proxy.rs Import: Interpret Footage ▸ Preserve RGB keeps the file's values (#411) 2026-10-09 23:57:12 +07:00
tests_rig3d.rs M7.7: camera/light rigs and Advanced 3D motion blur, blend modes, track mattes 2026-10-03 00:27:47 -04:00
tests_roto.rs #783: Object Matte mattes persist in the disk cache 2026-10-11 14:06:33 +02:00
tests_sequence.rs Import: only dropped files default to stills; scripts and agents naming a frame still get its run (#431) 2026-10-10 20:15:24 +00:00
tests_settings.rs Merge pull request #217 from RicSchonfelder/i18n-pt-br 2026-10-10 12:57:01 +00:00
tests_stubs.rs G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
tests_styles.rs M9.4: layer styles render + commands 2026-10-02 00:00:00 -04:00
tests_tail.rs Fix variable-font animator test axis and endpoint selection 2026-10-07 21:38:19 -07:00
tests_text.rs Merge main (engine menu tree) into M9.6; wire text animation menus 2026-10-02 00:44:20 -04:00
tests_text_edit.rs Text: layer.setText's schema accepts discretionaryLigatures and ss01–ss20 under checked execution (#521 follow-up) 2026-10-10 12:58:15 +00:00
tests_timeline.rs Merge pull request #650 from KattKnight/auto-bezier-spatial-tangents 2026-10-10 22:28:40 +00:00
tests_timeline_interchange.rs Merge branch 'main' into worktree-agent-a9fea98fe9839069d (filmcraft rev 2c5ba7a: AAF and OMF interchange) 2026-10-04 00:45:00 -04:00
tests_track.rs CMP-7: Essential Graphics controls, master properties, .ectemplate templates, Responsive Design — Time 2026-10-02 22:44:06 -04:00
tests_vector_import.rs IO-2/SHP-5/PRV-2: PSD import, SVG import + vector/text conversions, persistent disk cache 2026-10-02 22:10:48 -04:00
tests_viewer.rs Viewer: the Snapping menu has After Effects' two options 2026-10-09 21:03:12 +07:00
tracking.rs Effects: effect points on shape layers start at the layer centre (#227) 2026-10-08 20:33:03 +07:00
vector.rs M13.12: Create Shapes from Vector Layer keeps images as parented footage layers in paint order 2026-10-03 09:23:29 -04:00
viewer.rs Viewer: the Snapping menu has After Effects' two options 2026-10-09 21:03:12 +07:00
warp.rs Effects: effect points on shape layers start at the layer centre (#227) 2026-10-08 20:33:03 +07:00
xml_project.rs M14.5: wire the remaining settings; keyframe assistants and labels; AE menu entries 2026-10-03 02:45:44 -04:00