Skip to content

[1.5.2 Patch 总控] 基于真实用户反馈修复路径展示、端口误判、外部运行时安全、桌面急救与白屏兜底 #57

Description

@weidonglang

背景

有用户基于 DevEnv Manager 1.3.0 进行了真实试用反馈。虽然当前仓库已经发布到 1.5.1 Final Stable,很多能力已经被增强,但反馈中暴露出的现象仍然具有代表性,尤其是:路径展示不友好、端口识别误判、外部运行时可能被误当作受管运行时、错误提示霸屏、桌面急救打开目录不够精确、页面说明不够有用,以及偶发启动白屏。

本 issue 作为 1.5.2 Patch 总控任务,目标不是新增大功能,而是根据真实用户反馈修复可用性、安全性和可信度问题。

用户反馈原始现象摘要

用户使用的是 1.3.0,反馈包括:

  1. 默认根目录显示 \\?\C:\Dev\DevEnvs,用户不确定路径是否合法,也担心反斜杠处理是否有影响。
  2. 端口管理有用,但识别不准:Steam 日常占用 8080、QQ 占用 8082,却被识别为 Spring / Tomcat / Spring Boot。
  3. 环境医生能发现当前 Java 版本,但用户感觉不能直接管理或跳转处理。
  4. 本机环境发现中的 Go 被用户点击“系统卸载”后像是被当成便携运行时删除,回收站操作失败,且错误提示长时间显示不消失。
  5. JDK 管理中,用户希望 Java 不一致时能统一到某个本机版本;外部 JDK 虽然不应卸载,但仍应能作为候选进行验证、设为 JAVA_HOME 或纳入稳定修复计划。
  6. 桌面急救中,“打开目录”直接打开桌面根目录,用户希望打开具体大文件或分类文件所在目录。
  7. “这个页面怎么用?”提示太浅,尤其命令面板提示像口号,不知道的人看了仍不知道怎么用。
  8. 偶发打开后空白,疑似 WebView / 前端初始化异常。

总目标

完成 1.5.2 Patch,修复以下方向:

  • UI 路径展示去除 \\?\ 等 Windows 内部前缀,保存路径前做合法性校验。
  • 端口识别改为 process-first + evidence-first,降低 Steam/QQ/浏览器等误判为 Spring/Tomcat 的概率。
  • 外部运行时安全收紧:非 DevEnv Manager 受管运行时不得显示删除/卸载目录类危险操作。
  • Java/JDK 候选项分清受管、外部、IDE 内置,外部 JDK 可验证和设为 JAVA_HOME,但不可删除。
  • Toast 和错误提示改为可关闭、自动消失、长错误折叠详情。
  • 桌面急救和大文件/重复文件等“打开目录”打开具体所在目录,而不是总目录。
  • 页面帮助从口号式说明改成“用途、第一步、示例、风险、不做什么”。
  • 增加前端启动白屏兜底、错误页、日志入口和重置 UI 配置入口。

本 patch 不做什么

  • 不新增系统管家功能。
  • 不新增注册表清理。
  • 不新增杀毒、驱动、隐私清理。
  • 不新增自动删除外部运行时。
  • 不自动关闭 Store Alias。
  • 不自动修改系统级环境变量。
  • 不扩大 C 盘清理范围。
  • 不把命令面板变成通用 Shell。

子 issue

请按以下专项 issue 完成:

  1. UI 路径展示与 rootDir 合法性校验。
  2. 端口识别误判修复。
  3. 外部运行时卸载/删除安全收紧。
  4. Java/JDK 候选管理与环境修复入口联动。
  5. 桌面急救 / 大文件 / 重复文件打开目录精确化。
  6. 页面帮助说明增强。
  7. 前端白屏兜底与错误恢复。

最终验收

  • cargo test --all-targets 通过。
  • npm run build 通过。
  • npm run tauri:build 通过。
  • 新增或更新 docs/issues-57-64.md 记录用户反馈与修复结果。
  • 新增 docs/release-v1.5.2.md
  • README 更新 1.5.2 Patch 说明。
  • 所有子 issue 回填完成说明后关闭。
  • 本总控 issue 在所有子 issue 关闭后再关闭。

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