# 排障 ## 侧边栏菜单里没有「删除会话」 1. 确认宿主半已加载:重启 DSH Desktop 后,日志(`%APPDATA%\DSH Desktop\logs\dsh-<日期>.log`)不应出现本插件相关报错。 2. 打开任意会话行的「⋯」菜单;注入项在**菜单打开时**追加,重开一次菜单再看。 3. 卡片里的状态行会写「左侧会话菜单注入待命中」或「已注入 N 次」: - 「待命中」= 还没观察到会话菜单(打开菜单即可); - 「已注入 N 次」= 注入生效过。 4. 若平台改了菜单 DOM(升级 DSH 后),注入可能失效:对照 `docs/architecture.md` 的选择器表检查 `div[role="menu"]` / `button[role="menuitem"]` / `[class*="menuOpen"]` 是否仍在。 ## 卡片里提示「宿主桥未就绪」 - 插件未加载:确认 profile 的 `package.json` 里有 `@local/dsh-session-dustbin` 依赖与 bundle 条目,且已 `pnpm install` + 重启。 - 非本机浏览器访问:桥是 loopback-only,远程访问会被 403 拒绝。 - 可用浏览器 DevTools 打开 `http://127.0.0.1:43120/api/dsh-session-dustbin/ping` 自查(Electron 窗口内访问才带 renderer 凭据;普通浏览器可能被桌面访问围栏拦在 403,属正常)。 ## 删除后列表/侧边栏还有条目 - 侧边栏:删除会先归档,正常情况下该行**立即**消失。若没有,说明 `workspaceRegistry.archiveSession()` 抛错(返回体里的 `archiveError`),此时数据已删但内存标记还在 —— 重启 DSH 后干净。 - 卡片:卡片按目录存在性过滤,已删会话不会显示;只会在底部提示「N 条归档标记已无对应数据」。 - `workspace.json` 里的残留标记会在下次重启时随注册表重建而清掉。 ## 删除失败(无法定位该会话) 会话 id 靠**标题**反查。如果: - 两条会话标题完全相同 → 只会命中第一条(重命名其中一条即可); - 会话行标题被平台改写(例如首条消息回退标题与列表显示不一致)→ 请到「设置 → 插件 → 会话纸篓」里直接删除(卡片用的是 id,不依赖标题)。 ## 重复注入 / 注入项重复出现 每个菜单里用 `data-dsh-session-dustbin` 标记去重;如果看到重复,说明平台重建了菜单节点而旧节点被保留,重开菜单即可。 ## 测试失败 ```bash node test-host.mjs # 纯逻辑,不需要网络 node test-mount.mjs # 需要 pnpm install(导入 @deepseek-ai/dsh-settings) node smoke-client.mjs # 需要先 node build-client.mjs ``` - `test-mount` 报 `Cannot find package '@deepseek-ai/dsh-settings'` → 在项目目录执行 `pnpm install`。 - `smoke-client` 报 bundle 缺失 → 执行 `node build-client.mjs`。