Originally created by: fu351
Landing branch for [#414] by @QY-25123, their commit is preserved and authorship stays theirs, GitHub marks [#414] merged when this lands. I merged origin/main into their branch and resolved what [#477] changed underneath it: CHANGELOG keeps both bullets; README and docs/SETUP.md keep main's rewritten sections, with the PR's exclusion paragraph moved to the uninstall section of docs/RECOVERY.md plus one sentence in SETUP; cli/main.py keeps the --global early return ahead of the PR's Codex import block, and the exclusion wiring stays in the project-scoped path only (uninstall --global already removes the whole device dir, exclusion file included); the uninstall test module keeps both new test groups. Targeted tests, ruff, and lint-imports are green locally.
Ticket changed by: fu351