diff --git a/docs/reviews/263-1.2.1-audit-cleanup.md b/docs/reviews/263-1.2.1-audit-cleanup.md index 8ffc7218..97013c09 100644 --- a/docs/reviews/263-1.2.1-audit-cleanup.md +++ b/docs/reviews/263-1.2.1-audit-cleanup.md @@ -8,7 +8,7 @@ | 项 | 改动 | 证据 | |---|---|---| -| 覆盖安装后旧宿主仍在跑备份 inode | `install.sh` 检测到后:交互式询问是否重启;`LAMPYRIS_RESTART_HOST=1` 自动重启;非交互只提示命令 | 本轮复现两次(进程执行路径落在 `install-backup-…`) | +| 覆盖安装后旧宿主仍在跑备份 inode | `install.sh` 检测到后:交互式询问是否重启;`LAMPYRIS_RESTART_HOST=1` 自动重启;非交互只提示命令。另加 `LAMPYRIS_FORCE_INSTALL=1` 以便在"版本相同"时复验安装路径 | 本轮复现两次(进程执行路径落在 `install-backup-…`);停止宿主后实跑安装器,尾部输出"已注册到输入源" | | 输入源被移出启用列表 | 安装尾部 `LampyrisTIS` 回读失败时给出恢复步骤;交互式或 `LAMPYRIS_OPEN_SETTINGS=1` 时打开「键盘 → 文字输入」设置页。**不写系统偏好**(TIS 后台启用不持久化) | `docs/故障恢复.md` §4.1/§4.3 | | 练习页无障碍 | 作答格:`textField` 角色 + 实时值 + 帮助文本;进度条:数值;判分结果用 `announcementRequested` 播报;键位图补 help | 代码内 `setAccessibility*` | | 回归假超时 | 离线回归默认并发 `min(4, cpu)`;受影响测试的编译上限 45/90s → 180s | 6 并发实测曾连续 5 个文件超时 | diff --git a/platforms/macos/install.sh b/platforms/macos/install.sh index 3a00598b..cc8c6991 100755 --- a/platforms/macos/install.sh +++ b/platforms/macos/install.sh @@ -29,7 +29,7 @@ spctl --assess --type execute --verbose=2 "${APP}" DEST="${DOMAIN}/Lampyris.app" [ ! -L "${DOMAIN}" ] && [ ! -L "${DEST}" ] || { echo "拒绝通过符号链接安装" >&2; exit 1; } if [ -e "${DEST}" ]; then - if [ -x "${DEST}/Contents/MacOS/Lampyris" ] && [ ! -L "${DEST}/Contents/MacOS/Lampyris" ] && diff -qr "${APP}" "${DEST}" >/dev/null; then echo "已安装相同版本"; exit 0; fi + if [ "${LAMPYRIS_FORCE_INSTALL:-0}" != "1" ] && [ -x "${DEST}/Contents/MacOS/Lampyris" ] && [ ! -L "${DEST}/Contents/MacOS/Lampyris" ] && diff -qr "${APP}" "${DEST}" >/dev/null; then echo "已安装相同版本(LAMPYRIS_FORCE_INSTALL=1 可强制覆盖)"; exit 0; fi # ADR-295:与 DMG 安装器/更新器同一语义——允许覆盖,先备份,失败回滚。 if pgrep -x Lampyris >/dev/null; then echo "宿主仍在运行;请切到 ABC、注销后再试,或用更新程序升级(不热替换)" >&2