Skip to content

[1.5.2 Patch] 首次启动强制安全声明弹窗:阅读确认后才允许进入主界面 #68

Description

@weidonglang

用户反馈 / 新需求

当前安全声明文案显示在“环境”页面内:

使用前请阅读,DevEnv Manager 是个人维护的 Windows 开发环境诊断与安全操作面板。默认诊断不会修改系统;执行环境变量、服务、清理、空间搬家、Junction、数据库修复或分区扩容等操作前,请自行确认影响范围并备份重要数据。如果你不理解某项操作的影响,建议只使用只读诊断、报告导出和安全建议。

用户希望该提示不要只放在环境页面,而是在下载安装后第一次打开软件时强制弹出。只有用户点击“我已阅读”或“我已知晓风险并继续”之后,弹窗才消失,并允许正常使用软件。

问题判断

安全声明属于全局使用前告知,不应该只绑定在“环境”页面。因为软件中存在环境变量、服务、清理、空间搬家、Junction、数据库修复、分区扩容等可能影响用户环境或数据的操作,首次启动时应先完成基本风险告知。

该功能属于 安全门禁 / 首次启动免责声明确认,不是新增业务功能。

修复目标

实现首次启动强制安全声明弹窗:

启动软件 → 检查是否已确认安全声明 → 未确认则显示强制弹窗 → 用户点击确认 → 保存确认状态 → 进入主界面

确认前不允许正常使用主界面,不应自动执行诊断、扫描、修复、安装、清理或任何可能修改系统/用户环境的操作。

一、弹窗展示规则

1. 首次启动必须显示

以下情况必须显示:

  • 新安装后第一次启动。
  • 本地确认状态不存在。
  • 本地确认状态损坏或无法读取。
  • 安全声明版本号升级后,需要重新确认。

2. 已确认后不再打扰

用户确认后:

  • 本地保存确认状态。
  • 后续启动不再强制弹出。
  • 仍然可以在“关于 / 安全说明 / 设置”中重新查看。

3. 安全声明版本机制

建议增加:

safety_disclaimer_version: 1
accepted_safety_disclaimer_version: 1
accepted_at: timestamp

如果后续安全声明内容发生重大变化,可提升版本号并要求用户重新确认。

二、弹窗文案要求

弹窗标题:

使用前请阅读

弹窗正文建议:

DevEnv Manager 是个人维护的 Windows 开发环境诊断与安全操作面板。

默认诊断不会修改系统。执行环境变量、服务、清理、空间搬家、Junction、数据库修复或分区扩容等操作前,请自行确认影响范围,并提前备份重要数据。

本软件会通过只读诊断、计划预览、用户确认、备份和报告机制降低风险,但不能替代专业系统维护、数据库运维、磁盘分区或数据恢复工具。

如果你不理解某项操作的影响,建议只使用只读诊断、报告导出和安全建议。

确认按钮:

我已阅读并知晓风险

可选次要按钮:

退出软件

不建议提供“稍后再说”。

三、交互要求

  • 弹窗必须为阻塞式 modal。
  • 背景主界面不可点击。
  • Esc 不应直接关闭弹窗并进入软件。
  • 点击窗口关闭按钮时,应退出软件或停留在弹窗,不允许绕过确认进入主界面。
  • 确认按钮点击后才进入主界面。
  • 弹窗内容不应过长,应可滚动。
  • 按钮文案必须明确,不使用“知道了”这种过轻表达。

四、主界面加载要求

确认前:

  • 不自动启动扫描。
  • 不自动读取敏感路径。
  • 不自动检查 Docker/WSL。
  • 不自动执行环境诊断。
  • 不自动安装、修复、清理。
  • 允许加载最基础的壳层 UI,但必须被 modal 阻塞。

确认后:

  • 正常进入总览。
  • 根据原有逻辑刷新只读状态。

五、存储要求

确认状态保存到本地配置,不上传任何数据。

需要记录:

{
  "safetyDisclaimerAccepted": true,
  "safetyDisclaimerVersion": 1,
  "acceptedAt": "2026-xx-xxTxx:xx:xxZ"
}

如果配置损坏,视为未确认并重新显示。

六、设置 / 关于页重新查看

必须提供入口让用户重新查看安全声明,例如:

设置 / 关于 / 安全说明

入口可以显示:

  • 当前安全声明版本。
  • 首次确认时间。
  • 查看完整声明。

不要求提供“撤销确认”,但如果提供撤销,则下次启动应重新弹出。

七、与现有功能说明的关系

  • “环境”页面内可以保留简短安全提示,但不再作为唯一的使用前声明入口。
  • 各高风险功能仍然必须保留二次/三次确认。
  • 首次启动声明不能替代 MySQL 修复、C 盘扩容、Junction、环境变量写入等具体操作前的风险确认。

八、测试要求

新增测试或手动验证:

  1. 新安装 / 无配置首次启动,必须显示安全声明弹窗。
  2. 未点击确认时无法操作主界面。
  3. 按 Esc 不能绕过确认。
  4. 关闭窗口不会进入主界面。
  5. 点击“我已阅读并知晓风险”后进入主界面。
  6. 再次启动不再强制弹出。
  7. 配置损坏时重新弹出。
  8. 安全声明版本升级后重新弹出。
  9. 设置 / 关于页可以重新查看声明。
  10. 确认前不会自动执行扫描、修复、清理、安装等动作。

九、文档更新

更新:

  • docs/user-guide.md
  • docs/troubleshooting.md
  • docs/release-v1.5.2.md
  • docs/issues-57-68.md
  • 如有必要,更新 docs/software-copyright/04_用户操作手册.md

说明:

  • 首次启动会显示安全声明。
  • 为什么必须确认后才能使用。
  • 安全声明不替代具体高风险操作的二次/三次确认。

十、验收标准

  • 首次启动必须强制显示安全声明。
  • 点击确认前不能正常使用软件。
  • 确认状态能本地持久化。
  • 安全声明版本升级后能重新要求确认。
  • 设置 / 关于页可重新查看声明。
  • 高风险功能仍保留各自确认流程。
  • npm run build 通过。
  • cargo test --all-targets 通过。
  • release notes 记录该安全门禁改动。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions