---
name: windows-uac-binary-name-740
description: Windows UAC installer-detection forces elevation on any exe whose name contains update/setup/install/patch — breaks test binaries with os error 740.
metadata: 
  node_type: memory
  type: project
  originSessionId: 3a001700-4a6a-4279-b688-454943c596f6
---

Windows' installer-detection heuristic (UAC) auto-requests elevation for any
executable whose **filename** contains `update`, `setup`, `install`, or `patch`.
An un-elevated process launching such a binary fails with **`os error 740`
(The requested operation requires elevation.)** before the program runs.

Hit during M3c-C0: a cargo integration test `tests/update.rs` produces
`update-<hash>.exe`, which would not launch under `cargo test`. Fix: renamed to
`tests/brain_swap.rs`.

**Why:** the spt-core self-update engine ([[ — see M3c]]) is the one area where
binary names naturally gravitate to these tokens. The real `spt.exe` daemon swap
is fine (name unchanged), but any helper binary / test / staged-download filename
must dodge these substrings.

**How to apply:** never name a Rust bin target, integration-test file, or any
staged update artifact with `update`/`setup`/`install`/`patch` in it. For
self-update staging, write the downloaded binary under a neutral name (e.g.
`spt.new`) and atomic-rename to `spt.exe` (KNOWN-HAZARDS 5.2 EBUSY-retry rename),
not an `*update*.exe` temp name.
