# 更新日志 / Changelog

`dsh-conversation-toc` — DeepSeek Harness 对话大纲插件（Conversation outline / TOC plugin）。
本文档按版本记录每次更新的详细内容。每次发布到 GitHub 时，请据此填写「版本发布」（GitHub Releases）的更新说明。

> 版本规范：本插件按「语义化版本」递增，形如 `x.y.z`（主.次.补丁）。功能新增 / 界面变化 → 升次版本（x.y.z → x.y+1.0）；纯 bug 修复 → 升补丁。

---

## v0.1.1 (2026-08-20)

### 新增
- **胶囊条悬停展开**：鼠标靠近右侧胶囊指示条时，自动在胶囊条左侧展开「对话大纲」主题气泡面板（显示全部历史对话主题，含三级小标题），鼠标移开后自动收回；胶囊条悬停时高亮描边提示。点击气泡内的主题同样可快捷跳转。

### 界面微调（贴近 DeepSeek 网页版）
- **主题行配色**：仅当前定位主题显示蓝色字体 + 蓝色指示条；非当前主题统一显示浅灰色字体；鼠标悬停到想要跳转的主题时，字体加深为近黑色、指示条加深为深灰（展开面板与悬停气泡同步生效）。

### 修复
- **修复全部主题同时显示蓝色的 bug**：高亮判断漏掉了与当前定位 `activeKey` 的比较，导致只要存在任意定位，所有 user/steering 主题（及各节点最后的 heading）都被判为激活。现改为 `activeKey` 命中该主题所在节点且为主题在该节点的最后一项时才高亮；新增 `isTopicActive` 回归测试覆盖该场景。
- **滚动高亮改为「主题区间」判定**：原算法取阅读线上方最后一个聊天节点，翻到助手回答时定位键变成回答节点，导致当前主题蓝色消失。现只统计主题锚点行（`user` / `steering`），阅读线落在某主题锚点之后、下一个主题锚点之前，该主题即持续高亮——只要还在当前主题的内容范围内，蓝色就不会消失。

### 文档
- **README 改为 npm 一行命令安装**：`dsh plugin --profile web add dsh-conversation-toc` 为主安装方式（已发布到 npm），GitHub 仓库与本地 tarball 作为备选；手动安装章节同步更新（`pnpm add dsh-conversation-toc`）。

---

## v0.1.0 (2026-08-20)

首个版本：在 DeepSeek Harness Web 会话页右侧显示对话大纲（类似 DeepSeek 网页版右边栏）。

### 新增
- **对话主题大纲（展开面板）**：用户提问为一级主题，steering 追问为缩进的二级主题，助手回答中的 `##` / `###` 小标题为三级主题；每行右侧带胶囊形指示条，当前主题蓝色高亮，长文本自动省略号截断。
- **滚动高亮（scroll-spy）**：随会话滚动自动定位当前阅读位置，高亮跟随视口。
- **快捷跳转**：点击任意主题平滑滚动到对应消息位置（复用核心 `[data-chat-anchor-key]` 锚点）。
- **折叠胶囊条（minimap）**：窗口留白不足或手动折叠时只保留右侧胶囊指示条，点击胶囊同样可跳转，悬停显示主题文字。
- **顶栏开关**：会话标题栏右侧新增「大纲」按钮，循环切换 展开 → 胶囊条 → 隐藏，选择记忆到 `localStorage`。
- **主题适配**：深色 / 浅色主题自适应（使用 DSH 主题 token）；字号随应用「显示大小」设置缩放。
- **工程配套**：README（中英双语）、MIT LICENSE、CHANGELOG、发布前校验脚本（`npm run check`）、冒烟测试（`npm run test`）。
