# 2026-10-27 导航、恢复与密集环拖动验证 本轮在 `D:\Project\dsh-workspace-graph` 的 `codex/navigation-recovery` 分支实施,保留开始前 README、界面状态类、CSS 和构建产物的改动。未提交、推送、发布或改动真实用户 DSH 配置。 ## 交付行为 - 常驻备份导出/导入入口;最多 5 MB,先校验、预览、确认,再原子写入。保留原文冲突保护和存储失败保护;导入修订号从当前持久版本递增,防止旧窗口覆盖。导入前先完成本窗口待保存的搜索筛选,避免误报冲突。 - 顶部重置仅重排布局;存储异常中的全量清除明确列出概括、置顶、主题、使用记录、筛选与布局,并要求确认。 - 搜索支持会话路径和手动概括,结果不受图谱折叠/分页限制。定位临时显示真实来源链,返回恢复原视角。清除筛选显示全部时间,恢复默认视图回到近期并折叠。 - 全局等待/运行/新结果使用互斥状态计数,可点击查看并定位;标注筛选外活动。提供图谱/列表切换,每批最多 50 条列表结果,窄屏详情与列表上下分区。缩小到 0.55 以下隐藏次要节点信息。 - 树默认位置按原生不可变 catalog 快照缓存,运行时坐标独立。支持 1,000/5,000 条会话的性能夹具。 - 快速拖动中心气泡后立即松手:保留普通 80/20 恢复;极端变形限制为原边长的 20%,避免尚未跟上的整组位移变成永久偏斜。保留自由拖动、碰撞和落点。 - 首次进入将当前对话的实际圆心置于画布中央。无当前对话时适应画布;保存的运行视角优先;后续状态与当前集合变动不自动移镜。 ## 验证 - 单元测试 81/81;类型检查、构建及 diff 空白检查通过。 - 主浏览器回归 10 组通过。专项脚本共 13 个:首次同步/异步居中、导航与导入、千级目录、真实环形指针拖动、圆周端点、Ctrl 拖动、柔性拖动、快速松手 hook、运行布局、隐藏布局、层级、视角稳定、生命周期。首次居中改变旧测试的初始视角,因此后两项和性能测试显式点击“适应画布”后开始量测。 - 密集环单元覆盖 12/24 个子节点与 30/60/120Hz;真实 hook 覆盖 20 子节点和延迟位置回写。断言继续运动、中心距子节点平均位置小于半径 35%、落点保持、碰撞分离、最终休眠与 RAF 清理。另以真实鼠标跨过 5px 启动阈值,快速移动约 600px 后立即松手复核;不是慢拖测试。 - 生命周期卸载后 RAF/timeout/interval 回到 0/0/0。 - 独立 DSH_HOME 原生集成在本机已安装的 DSH 0.2.1-rc.2 和 rc.4 上通过:动态加载、两个真实 mainView 引用、嵌套工作区、重命名、新建导航、空白当前会话保留、Ctrl 拖动和重启恢复默认位置。rc.2 首次冷启动 60 秒无输出超时;同一隔离测试使用 `DSH_BOOT_TIMEOUT_MS=180000` 重试通过,不把初次失败计为通过。 - 浏览器使用系统 Edge,无头、独立临时配置;沙箱中的 Edge 管道启动失败,因此使用沙箱外的隔离浏览器。不访问真实用户数据,不运行模型。 ## 性能样本 本机 i7-13650HX、Node 24.21.0;以下是单机样本,无旧版同条件对照。 | 场景 | 结果 | | --- | --- | | 1,000 条会话投影 | 热态 P95 约 3.2ms;折叠 1 节点,默认展开 21 节点 | | 5,000 条会话投影 | 热态 P95 约 17.1ms;折叠 1 节点,默认展开 21 节点 | | 4,999 条会话浏览器搜索 | 重复样本约 60–179ms,列表首批 50 条,定位只渲染 3 个必要节点 | | 可见 10/50/100 节点拖动 | 帧间隔 P95 约 6.2/12.2/18.4ms;最终可见圆形重叠 0px,页面错误 0 | 数值与截图保存在本地忽略目录:`artifacts/catalog-performance.json`、`artifacts/large-catalog-browser.json`、`artifacts/browser-performance.json`、`artifacts/layout-interaction/drag-release-results.json`、`artifacts/navigation-recovery.png`、`artifacts/dense-ring-release.png`、`artifacts/initial-current-center.png`。 ## 审查与边界 独立审查发现导入版本号复用和窄屏遮挡两项重要问题,均先加入失败回归再修复。后续针对用户新增的物理恢复和首次居中做独立审查,无重要问题。恢复默认视图的折叠行为和异步进入居中覆盖也已补齐。 新增 CI 配置会执行主浏览器、专项交互与目录性能测试;版本标签/手动触发固定 rc.2 原生验证。本轮没有推送,GitHub Actions 云端执行尚未验证。没有运行真实模型的并行、取消、失败或断线重连;合成状态和 mainView 保留测试不能替代这些端到端场景。