mirror of
https://github.com/storytold/photocraft.git
synced 2026-10-17 04:39:54 +02:00
* Make large pixel operations allocation-fallible * Warp: drop the fixed 400 MP cap; fallible reservations already cover large transforms Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Adapt #2530 to main: fallible steep-Distort warp, Result from mask paste in float moves; regenerate scorecard Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Brandon Thomas <echelon@gmail.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
53 lines
2.4 KiB
TOML
53 lines
2.4 KiB
TOML
# Scorecard checklist: reliability (#212, #203, never-crash).
|
|
# Statuses must be true on main. REL-4 verified against 47f9306 on 2026-10-07; the rest
|
|
# against 4b53f62 on 2026-10-05.
|
|
area = "reliability"
|
|
title = "Reliability"
|
|
order = 7
|
|
|
|
[[item]]
|
|
id = "REL-1"
|
|
target = "panic_hunt fuzzes every command with adversarial params"
|
|
status = "done"
|
|
note = "engine/tests/panic_hunt.rs: every command, own thread, 4 s timeout; #[ignore], run in the gate"
|
|
|
|
[[item]]
|
|
id = "REL-2"
|
|
target = "Every workspace crate carries the never-crash deny(clippy::unwrap_used, ...) attribute"
|
|
status = "done"
|
|
note = "Counted automatically above (crate roots under crates/ and apps/); testkit gained it in #221"
|
|
|
|
[[item]]
|
|
id = "REL-3"
|
|
target = "The app catches escaped panics around command dispatch and import/export"
|
|
status = "done"
|
|
note = "a_panic_in_a_command_... runs the test-only `test.panic` spec through Session::execute and asserts Err plus an unchanged document (engine jobs_tests.rs); the worker guard is covered by a_panic_in_the_worker_...; crash_guard.rs guard_turns_a_panic_into_an_error covers import/export (apps/photocraft)"
|
|
|
|
[[item]]
|
|
id = "REL-4"
|
|
target = "Atomic save (temp, fsync, rename) for every document write"
|
|
status = "done"
|
|
issue = 203
|
|
note = "photocraft_format::atomic_write (format/src/atomic.rs, #230): same-dir temp, sync_all, rename with Windows PermissionDenied retry, Unix dir fsync; every document write site routes through it and format/src/atomic/tests.rs failure-injects write, rename and read-only-dir errors"
|
|
|
|
[[item]]
|
|
id = "REL-212-1"
|
|
target = "Fallible allocation for paste/erase/fill/transform/save/import, clear out-of-memory error"
|
|
status = "partial"
|
|
issue = 212
|
|
note = "Raster region/tile buffers, paste/erase/fill/transform and warp output use fallible reservations; save/import boundaries preserve existing state, but encoder/decoder internals still need a broader fallible-allocation audit"
|
|
|
|
[[item]]
|
|
id = "REL-212-2"
|
|
target = "Export switches to PSB when the estimated file size exceeds 2 GB"
|
|
status = "done"
|
|
issue = 212
|
|
note = "PSD export uses checked size estimates for raster, masks, channels, and retained metadata"
|
|
|
|
[[item]]
|
|
id = "REL-212-3"
|
|
target = "Tests: an allocation-limit injection makes each command Err with the document unchanged"
|
|
status = "partial"
|
|
issue = 212
|
|
note = "Engine failpoint tests cover paste, erase, fill, transform, import and save transaction boundaries; codec-level allocator failure coverage remains open"
|