You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: eager VSS helper launch with attended UAC window and decline-only memoisation
The live smoke of the wired helper (#112) failed: the lazy at-first-locked-file
launch gave the human only the ~5s pipe-connect budget to approve UAC, and one
timed-out shot memoised failure until restart -> every locked file skipped as
local.file_locked. This hardens the launch UX (Refs #25).
- SEE_MASK_NOASYNC on ShellExecuteExW so the runas call WAITS for the user to
approve/decline even on a no-message-loop worker thread (the likely root cause
of the early-return spurious failure).
- Eager launch on enable-toggle: flipping windows.vssHelper ON fires the attended
UAC prompt immediately (the user is at Settings), on a background thread so the
IPC returns at once; the UI polls status Pending -> Ready/Declined. Boot stays
LAZY (no UAC at silent startup); the first locked file triggers it.
- Manager now built at boot whenever un-elevated (setting-independent) with an
enabled flag, shared into every provider, so a runtime toggle works without an
app restart.
- Decline-only memoisation: ERROR_CANCELLED (decline OR ignored prompt) memoises
for the session; an approved-but-pipe-never-came-up launch is transient and
retried on the next enable/start; an off->on re-toggle clears a prior decline.
- Attended 90s window for the post-approval pipe handshake (only the one-shot
launch; steady-state reconnects stay tight).
- Transient classification: a locked file hit WHILE the helper is launching is
skipped-and-requeued as the new local.vss_helper_pending (SnapshotOutcome::
Pending -> FallbackDecision::SkipRetryLater -> SkipReason::VssHelperPending),
never misreported as a permanent local.file_locked.
- Truthful status: launchPending / launchDeclined added; Rules tab shows a
"waiting for elevation approval" hint (polled) and a "declined" hint.
Refs #25
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LQMbCLUj5JT2e35qQMvsyA
0 commit comments