effectcraft/crates
bflatastic a12d4ae1fa M3.9: a browser session restored with unsaved changes stays modified
The web app reopens the last visit's project and, when it had unsaved changes, marked it
modified with `bump()`. Since M3.9 the modified mark follows the saved snapshot, and a bump on
the very project just opened counts as "back at the saved state", so restored changes looked
saved (no `*`, no unsaved-changes prompt). `Session::mark_unsaved` forgets the saved snapshot
instead: the project stays modified until saved, whatever is undone. Regression test included.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 06:33:40 +07:00
..
automation Never crash: deny panic lints in the already-clean crates and apps 2026-10-04 14:52:39 -04:00
av1enc Never crash: AV1 encoder without expect()/unreachable!() 2026-10-04 13:22:59 -04:00
color Never crash: deny panic lints in the already-clean crates and apps 2026-10-04 14:52:39 -04:00
effects Never crash: effects crate without expect() 2026-10-04 14:14:16 -04:00
engine M3.9: a browser session restored with unsaved changes stays modified 2026-10-05 06:33:40 +07:00
export Never crash: deny panic lints in the already-clean crates and apps 2026-10-04 14:52:39 -04:00
expr Never crash: reject deeply nested expressions instead of overflowing the stack 2026-10-04 13:22:36 -04:00
geom Never crash: deny panic lints in the already-clean crates and apps 2026-10-04 14:52:39 -04:00
gpu Never crash: render and gpu crates without panic!() 2026-10-04 14:20:37 -04:00
hevcenc Never crash: HEVC encoder without expect()/unreachable!() 2026-10-04 13:23:03 -04:00
host Never crash: deny panic lints in the already-clean crates and apps 2026-10-04 14:52:39 -04:00
interchange Never crash: reject timeline documents nested too deeply 2026-10-04 14:05:57 -04:00
keyframe M13.15: qa scenarios 1-4 (kinetic type, shape logo, compositing, tracking) and fixes 2026-10-03 12:09:41 -04:00
lottie Never crash: Lottie enum values can't overflow 2026-10-04 13:24:14 -04:00
media Merge pull request #17 from storytold/pr/never-crash-media 2026-10-04 15:29:59 -04:00
model Never crash: deny panic lints in the already-clean crates and apps 2026-10-04 14:52:39 -04:00
opusenc Never crash: Opus and VP9 encoders without expect() 2026-10-04 13:23:06 -04:00
path Never crash: raster and path crates without expect()/unwrap()/unreachable!() 2026-10-04 13:41:09 -04:00
pdf Never crash: PostScript radix numbers outside 2..=36 2026-10-04 14:21:14 -04:00
plugin Never crash: deny panic lints in the already-clean crates and apps 2026-10-04 14:52:39 -04:00
project Merge pull request #19 from storytold/pr/never-crash-project 2026-10-04 15:30:22 -04:00
psd Never crash: bound PSD descriptor nesting 2026-10-04 14:05:55 -04:00
raster Never crash: raster and path crates without expect()/unwrap()/unreachable!() 2026-10-04 13:41:09 -04:00
render Merge pull request #35 from storytold/pr/never-crash-render-gpu 2026-10-04 15:33:18 -04:00
script Merge pull request #27 from storytold/pr/never-crash-script 2026-10-04 15:31:21 -04:00
svg Never crash: reject SVGs nested too deeply 2026-10-04 14:05:58 -04:00
text Never crash: text layout and font resolution without expect() 2026-10-04 13:27:38 -04:00
time Never crash: Tick and timecode arithmetic can't overflow or divide by zero 2026-10-04 14:20:33 -04:00
track Never crash: trackers and camera solver without expect() 2026-10-04 13:24:17 -04:00
ui-egui M4.12: never crash: hostile input in New Comp from Selection, an empty work area in Cache Frames When Idle 2026-10-05 06:30:46 +07:00
vp9enc Never crash: Opus and VP9 encoders without expect() 2026-10-04 13:23:06 -04:00