小怪破甲 · CMD 自动版 1.3.4

使用
1. 完整解压，双击“启动小怪破甲.cmd”。
2. 自动定位配置目录、保存备份，在生成副本中统一小怪身份并追加确认口令；外部原文件不改。
3. 自动请求打开 Codex；在新任务中输入：小怪
4. 预期只回复下面两行，中间仅一个换行；频道与 QQ 群之间恰好为 4 个 ASCII 空格：
今宵不见儿童怪，应随斗柄西山外。
频道@XGYYDS789    QQ群1019953986

1.3.4 更新：修复“当前引用在一键安装后被其他操作更改”导致安装中止的问题。
旧安装记录与当前有效引用不一致时，先保留历史快照，再按当前来源重建。
当前已移除引用时使用内置基础指令；相对路径按 CODEX_HOME 解析。
无需删除安装状态或备份。完整解压新版，CMD 与新版 EXE 必须一起使用。
同时包含身份迁移：生成副本统一自称“小怪”，移除已知旧身份的精确唤醒段。
仅输入 hi / hello / 你好 / 您好 / 在吗，预期回复：
「你好」
小怪在。👋
消息包含任务正文时不触发普通问候；仅输入“小怪”仍回复上面的诗句、频道及 QQ 群。
已有旧版安装可直接再次运行新版启动 CMD，
迁移副本中的旧身份名称并更新管理块，保留其他正文、外部原文件及首次备份。

不再弹出选档窗口，无需选择配置或点击安装。无需另装 Python，无需下载依赖。
CMD 和“小怪破甲安装器.exe”放在同一目录，支持中文和空格路径。
小怪破甲 1.2.0 原悬浮窗 EXE 保持不变；本版替换的是 CMD 启动工作流。

实际工作原理
和参考安装器一样，通过 config.toml 的顶层 model_instructions_file 加载指令文件。
若已存在有效指令文件，不改源文件；副本仅迁移旧身份名称及已知旧唤醒段，
其他正文保留，在副本末尾追加小怪身份、普通问候与精确口令。
没有原指令引用时，使用内置“开发增强”基础正文。
安装不改 Codex 程序、模型设置、账号或 API 密钥，也不强制结束 Codex。
“本地配置已写入”不等同于“模型已回复”；以 Codex 实际返回上述两行为确认。
已有任务可能保留创建时的指令；优先使用新任务，如仍未载入则退出并重新打开 Codex。
安装包本身不附带或分发本机原有的自定义指令。

配置位置
优先使用命令行 --codex-home，其次使用环境变量 CODEX_HOME，否则使用 %USERPROFILE%\.codex。
安装状态与副本位于 CODEX_HOME\managed-prompts\xiaoguai-oneclick\。
首次备份为 config.toml.before-oneclick.bak；重复双击不覆盖首次备份。
引用修复历史保存到 managed-prompts\xiaoguai-oneclick\history\reference-<随机标识>\。
保存旧状态、旧指令快照、修复前配置及原首次备份（原文件存在时）；旧指令原路径也保留。
JSON 输出 reference_repaired 表示本次是否修复，recovery_path 表示历史目录。
当前来源缺失、空白、非 UTF-8、配置损坏或当前 profile 有独立引用时，保留现场并报错。
与旧版 xiaoguai 目录及参考工具的状态文件隔离，旧文件均保留。

恢复
双击“卸载小怪破甲.cmd”，仅恢复本轮安装前的指令引用；之后新增的其他设置保留。
发生引用修复时，卸载恢复到最近一次修复前的当前引用，不使用过期状态里的旧引用。
历史快照和修复前旧指令不删除。
未修改的工具文件清理，手动改过的指令文件保留。可重复卸载。
卸载时如果当前引用再次被其他操作更改，停止覆盖并保留原配置与备份。
恢复后仍是安装前的指令和身份，不等于恢复 Codex 默认身份。

命令行参数
小怪破甲安装器.exe --install --no-open --json
小怪破甲安装器.exe --status --json
小怪破甲安装器.exe --restore --json
可追加 --codex-home "C:\路径\测试配置目录" 指定隔离配置。
源码要求 Python 3.11+，运行 oneclick.py；EXE 已内置运行时。
源码测试：python -B -m unittest discover -s tests -v
重新构建：安装 build-requirements.txt 中的构建依赖后，在工具目录执行：
python -m PyInstaller --onefile --console --noupx --name 小怪破甲安装器 oneclick.py

验证范围见“验证记录.txt”。
