mirror of
https://github.com/morluto/rea
synced 2026-10-27 22:45:19 -04:00
6b27d8f4e3
* fix(electron): retain fuse descriptor ownership through failed final close Static Electron fuse inspection admitted a file descriptor and closed it in a bare finally: a rejecting final close() replaced the in-flight read error, was classified by errno (e.g. EACCES) as a read permission failure, and silently dropped ownership of the still-live descriptor. Route the read through withOwnedRegularFile so a failed close keeps its exact owner, preserves the primary error in the outcome, and surfaces as RegularFileCleanupFailure. The provider now maps that to a primary error with its own classification plus a ProviderCleanupError reporting incomplete cleanup, instead of an access-denied read failure. Regression tests fault close() (EACCES) with and without a primary read error (EIO): both fail on the pre-fix revision and pass with the fix. Fixes #4658 * fix(electron): keep cleanup report and partial evidence through cancel and successful reads Address automated review on #4668: - Handle RegularFileCleanupFailure before the cancellation check in failureFor: a cancelled operation whose final close rejects now reports a typed cancellation composed with the incomplete-cleanup error, instead of a bare AnalysisCancelledError that silently dropped the descriptor owner. - Attach the completed fuse image as an explicitly partial Evidence observation when only the final close fails, instead of discarding the successful read. The abort-after-completion path keeps the same evidence on the composed cancellation error. - Add provider-level regression tests: combined read+close faults, abort synchronized with the faulted close boundary, and partial-observation retention. Abort-during-close and partial-evidence tests fail pre-fix. 29/29 electron tests green; npm run check:fast clean. --------- Co-authored-by: nosmile99 <nosmile99@users.noreply.github.com> Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>