Situation
On Windows, path_identity::replace_regular_file_atomic / atomic_replace_existing (src-tauri/src/path_identity.rs:1361-1394) passes both raw paths to ReplaceFileW, which is limited to MAX_PATH. The temp file is created next to the marker (:1426-1431), so a long outbox root pushes it past the limit.
Impact
Replacing a host request with its marker (src-tauri/src/phone/mailbox.rs:4773) fails beyond MAX_PATH, and the error is mapped to store_transient. Host PTY requests in long outbox roots never get marker-replaced.
Evidence
Found while planning #2923: the forced-long fixture failed at this step (mailbox.rs:16198) before reaching the #2923 defect. Confirmed from source by the adversarial reviewer. #2923 deliberately leaves this out of scope.
Why / how
It is the same class of defect as #2923, in a second helper. It needs long-path handling for both ReplaceFileW arguments in path_identity.rs, plus a regression test. The design is decided in that issue's plan.
Situation
On Windows,
path_identity::replace_regular_file_atomic/atomic_replace_existing(src-tauri/src/path_identity.rs:1361-1394) passes both raw paths toReplaceFileW, which is limited to MAX_PATH. The temp file is created next to the marker (:1426-1431), so a long outbox root pushes it past the limit.Impact
Replacing a host request with its marker (
src-tauri/src/phone/mailbox.rs:4773) fails beyond MAX_PATH, and the error is mapped tostore_transient. Host PTY requests in long outbox roots never get marker-replaced.Evidence
Found while planning #2923: the forced-long fixture failed at this step (
mailbox.rs:16198) before reaching the #2923 defect. Confirmed from source by the adversarial reviewer. #2923 deliberately leaves this out of scope.Why / how
It is the same class of defect as #2923, in a second helper. It needs long-path handling for both
ReplaceFileWarguments inpath_identity.rs, plus a regression test. The design is decided in that issue's plan.