# Changelog

本文件记录已发布到 npm 的版本。格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/)，版本号遵循 [SemVer](https://semver.org/lang/zh-CN/)。

## [Unreleased]

## [0.1.21] - 2026-10-14

### 修复

- 为锚点样式标记正确的插件归属，避免 DSH 将其归入其他插件并在热重载或停用时误删，导致锚点退化为页面底部的普通按钮。
- 创建样式节点时先设置 `data-plugin` 再挂入 DOM，降低并发 claim/remove 的窗口。

## [0.1.20] - 2026-10-08

### 兼容

- 在 `package.json` 的 `dsh.compatibility.dshReleases` 中显式声明官方最新三版（`0.2.0-rc.1` / `0.2.0-rc.2` / `0.2.1-alpha.1`）为 `compatible`，解除 DSH STORE 的 latest-three 兼容性暂挂。

## [0.1.19] - 2026-10-04

### 兼容

- **适配 DSH 0.2.x**，同时保留对 0.1.x 的兼容：
  - Host：导出 `Config`（volatile 字段）+ `settings.configure({ auto: false })`（0.2.x）；仍走 `settings.register`（0.1.x）
  - Client settings：优先 `ctx.configForms.get(ns)`（0.2.x），回退 `ctx.settingsScope.bind`（0.1.x）；静态 inject 不再声明 `settingsScope`（避免 0.2 上永久 pending）
  - Client 当前会话：0.2.x 的 `sessions.list` 快照不再有 `current`，改为 `byId[].retainedBy.mainView` / 可选 `uiSession` / DOM `data-conversation-session`；`turnOutline` 兼容 `{ turns }` 状态形
  - peerDeps 去掉已移除的 `dsh-client-runtime`，其余改为 `>=0.1.0-rc.6` 以覆盖 0.1 / 0.2

## [0.1.18] - 2026-09-08

### 变更

- **DSH STORE 目录合规**：host 半部分不再用 HOME 环境变量探测 peer，只从当前工作目录、运行中的 `dsh` CLI（`createRequire`）和 `import.meta.url` 解析；声明无 files / network / commands / credentials 权限。发版检查脚本移到 `test/`，避免被商城静态扫描当成运行时源码。

## [0.1.17] - 2026-09-02

### 修复

- **DeepSeek 槽位上限**：由对话区高度 10% 调整为 **30%**，轮次多时卡片更实用。

## [0.1.16] - 2026-09-02

### 修复

- **DeepSeek 第一个 tick / 标题偏淡**：与 Codex 同源——首轮误标 `unloaded`；DeepSeek 改为 tick 同宽仅降透明度，未加载标题用 tertiary 色；并增强 chat 索引回退与首帧后 reconcile。
- **流式回复时 active 闪烁**：贴底或会话 `running` 时锁定最后一轮 active（对齐官方）；`syncActive` 去重；chat 更新改为增量 patch 轨，不再每个 token 重建 DOM。
- **轨高按比例自适应**：DeepSeek 槽位上限为对话区高度的 **30%**；Codex 为 **70%** 并垂直居中（不再写死 300px，也不随内容铺满整列）。
- **Codex 悬停箭头**：tick 超出槽位时，鼠标悬停在轨上才在顶部/底部显示箭头；点击选中上一/下一条横条并跳转（不是翻页滚动）。
- **Codex tick 被压扁**：槽位变矮时 flex 子项默认收缩，导致十几轮挤在一小块且不出箭头；tick 改为 `flex: none`，超出后滚动并出现箭头。
- **Codex 箭头样式**：箭头移到轨外约 28px（远离 tick 列）；悬停箭头时显示浅灰圆形背景。
- **Codex 箭头体验**：圆形悬停底更圆（26px / `border-radius:50%`）；休息态 tick 中心与箭头对齐、只向右拉长；箭头离轨约 48px；气泡收窄为内容宽度，去掉原生 title，仅悬停自定义气泡。
- **Codex 悬停 wave / 箭头气泡**：轨加宽避免拉长短线被裁切；箭头上 mousemove 不再清掉气泡。

## [0.1.15] - 2026-09-02

### 修复

- **Codex 悬停卡片**：点击锚点跳转后，再次悬停同一 tick 时鼠标移开轨区，预览卡片会正常消失（不再因 tick 仍持有焦点而残留）。
- **Codex 第一个 tick 偏短**：合并 `turnOutline` 时若第 1 轮已在 Chat 窗口内，不再误标为 `unloaded`；会话打开过程中也暂不画 outline-only 的短 tick。
- **DeepSeek 轨垂直居中**：按实际 tick 列高度（而非 300px 上限槽位）在对话可视区内居中，避免轮次少时偏上。
- **单轮会话隐藏轨**：Codex / DeepSeek 风格下仅 1 轮对话时不显示锚点列表（官方风格不受影响）。

### 兼容

- 已对照 DSH **0.1.2-alpha.3 / alpha.4** 验证：插件未使用 alpha.4 移除的 `Session.events`，`turnOutline` / `loadThrough` / `uiConversation` 接口无变更。

## [0.1.14] - 2026-09-01

### 新增

- 锚点风格第三项 **DSH 官方（右侧）**：隐藏插件自绘轨，改用 DSH 0.1.2+ 内置紧凑回合导航；选 Codex / DeepSeek 时会自动隐藏官方轨，避免双轨重叠。
- **全会话大纲对齐 DSH 0.1.2-alpha.3+**：检测到 `turnOutline` 时，Codex / DeepSeek 轨合并 Host 大纲（含未加载轮次）；点击未加载刻度调用 `session.loadThrough(seq)` 按需分页并跳转。

### 变更

- **思考过程折叠**：检测 DSH 0.1.2+ 官方 Compact（`ui-chat.transcriptView === 'compact'`）或 DOM 中的 `[data-turn-process]` 后，自动跳过插件折叠，避免与官方双重披露；旧版 DSH 或 Normal 对话显示仍使用插件折叠。
- **历史拉齐**：有 `turnOutline` 或风格为「DSH 官方」时**不再**自动 drain；无大纲的旧版仍走 `loadOlder` 循环。

### 修复

- 锚点风格切换后立即生效，不再被 Host 设置回写悄悄改回 `codex`（写入失败或未重启 `dsh web` 时仍保留本地选择）。
- 从「DSH 官方」切回 Codex / DeepSeek 时插件轨不再卡在 `hidden`（设置页打开时 host 未就绪也会立刻显示并重排）。
- 插件锚点改从 `uiConversation.target('chat')` 读取（DSH 0.1.2+ 不再把 chat 挂在 SessionSnapshot 上），Codex / DeepSeek 轨可正常出 tick；`uiConversation` inject 改为可选，避免旧版 DSH 因缺服务而无法挂载。

## [0.1.13] - 2026-08-27

### 变更

- DeepSeek 右侧轨改为固定高度卡片（最多 300px），轮次多了在卡片内滚动，不再铺满整列。当前选中项会自动滚进可视区。
- 悬停展开标题面板：圆角加大；短线改为胶囊圆角；未悬停不画滚动条，悬停时在短线右侧显示 6px 浅色细滑块（不用系统滚动条，避免挤走短线）。卡片与页面右缘留出间距。
- 点击锚点后鼠标离开列表即收起面板，不必再点别处。

### 修复

- 滚到会话末尾且最后一轮撑不满一屏时，选中最后一条锚点。此前 scroll-spy 只认视口顶部，点最后一条也会被立刻改回去。

## [0.1.12] - 2026-08-27

### 修复

- 点击横线改为滚动对话列自己的 `[data-conversation-scroll]`。此前 `scrollIntoView` 在外层 `overflow: hidden` 下经常滚不到，看起来像没跳转。

## [0.1.11] - 2026-08-27

### 新增

- 锚点风格可在 **设置 → 通用** 里选择，默认仍是 Codex 左侧轨。DeepSeek 右侧等长蓝横线是可选项，改完立刻换轨，不用重启（[#3](https://github.com/biggerboy/dsh-conversation-anchors/issues/3)）。

### 变更

- DeepSeek 右侧轨：悬停某一行时标题和短线加深；浏览器原生 title 提示去掉。标题被截断时，停约 0.8 秒才弹出完整标题（黑底白字），未截断的不弹。
- 设置里的锚点风格下拉改为与「语言 / 权限」相同的弹出层：打开后触发器仍是浅色圆角，菜单白底圆角阴影，不再用系统原生 select 的黑框灰底。

### 修复

- DeepSeek 右侧轨在刷新、刚加载、或悬停展开标题时，当前轮次会标成蓝色。此前 scroll-spy 常打到助手回复节点（轨上只有用户提问），或在轨挂上之前就跑过一遍，结果所有横线都保持灰色。
- 标当前条时不再在 MutationObserver 里反复写 `aria-selected`。该属性本来就在观察名单里，会把自己再次叫醒，把标签页卡死。
- host 半边不再静态 import `@deepseek-ai/dsh-settings` / `schemastery`。`link:` 检出在 DSH 的 `node_modules` 树外，静态 import 会让 `dsh web` 直接起不来；改为从当前 profile / 正在跑的 `dsh` CLI 解析。

## [0.1.10] - 2026-08-26

### 新增

- 发版前校验 `package.json` 的 `name`、`cordis.patch.yml` 的 `name`、`__ModuleLoader__.load` 的 `id` 三者一致，并核对 `PLUGIN_VERSION` 与包版本。`npm publish` 会走 `prepublishOnly`，对不上直接失败。
- 键盘跳转：焦点在横线轨或鼠标停在轨上时，方向键 / `j` `k` 跳到相邻轮次，`Home` / `End` 到两端；输入框内不响应。
- 拉齐历史时在轨旁显示进度（`正在拉齐历史… n/80`）；达到 80 页上限时提示后自动消失。

### 修复

- 自动拉齐历史若中途停住，不再把「加载更早」藏死。否则窗口从半截回合开始，第一条用户消息和对应横线都会消失。滚到顶部时若还有更早分页会继续拉取。
- 思考过程折叠不再把工具循环中间的 `assistant-step` 正文留在折叠条外。那些「去核实… / Let me check…」和最终回复同一种节点，只是还没到收尾；现在只露出最后一个有正文的回复，Think 与工具调用仍收进「思考过程」。
- 深色模式下横线轨与悬停卡片不再混用浅色回退色：悬停横线改为白色，卡片用略亮于页面的深灰底（对齐 Codex），标题/正文用浅色，避免白字配白底看不清（[#2](https://github.com/biggerboy/dsh-conversation-anchors/issues/2)）。

### 变更

- 思考过程折叠箭头改为与 DSH 自带 Think 披露相同的 14px 线框 chevron（收起朝下，展开旋转朝上），紧跟「思考过程 · N 步」排布，不再右对齐。

## [0.1.9] - 2026-08-25

### 修复

- `lib/client.js` 的 `__ModuleLoader__.load` 注册 id 改为完整 npm 包名 `@biggerboy123/dsh-conversation-anchors`，与 `cordis.patch.yml` 的 `name` 对齐。0.1.8 只改了 YAML，浏览器半边仍注册无 scope 的 `dsh-conversation-anchors`，启动 Web 会报 `loaded without registering "@biggerboy123/dsh-conversation-anchors"`。

## [0.1.8] - 2026-08-25

### 修复

- `cordis.patch.yml` 的 loader `name` 改为完整 npm 包名 `@biggerboy123/dsh-conversation-anchors`。此前写成无 scope 的 `dsh-conversation-anchors`，DSH 会以 profile 目录为基址 `import()`，导致 `Cannot find package`，Web 无法启动。

## [0.1.7] - 2026-08-25

### 变更

- 左侧导航改为 Codex 风格短横线轨：每轮用户提问一条浅灰短横线，当前滚动位置那条更长、更深。
- 悬停时指针处最长最深，邻近短线按距离缩短，形成菱形起伏；悬停预览改为 `position: fixed` 浮动卡片（问题 + 回复摘要）。
- 打开会话后循环调用 `session.loadOlder()`，直到没有更早分页（最多 80 页），锚点一次出齐；同时隐藏对话区「加载更早」按钮。
- 轨迹标签、首页 hero、空会话下隐藏横线轨；思考过程折叠在轨迹页同样不显示。

### 文档

- 安装说明改为 scoped npm 包名 `@biggerboy123/dsh-conversation-anchors`，并补充 Git 源安装路径。

## [0.1.1] - 2026-08-25

相对 npm `0.1.0` 同步本地已有能力。

### 新增

- 滚动联动（scroll-spy）：高亮当前视口附近那一轮。
- 点击跳转后短横线闪光提示。
- 悬停预览补充该轮助手回复摘要（正文或工具名）。
- 界面文案中英切换（跟随 `document.documentElement.lang`）。

## [0.1.0] - 2026-08-17

首个公开发布。

### 新增

- 对话内容区左侧锚点导航：每轮用户提问一条入口，悬停预览、点击平滑滚动到对应消息。
- **思考过程折叠**：回合结束后把 Think 与工具调用收成一行披露；正在生成的回合保持展开，点击可展开/收起。
- 跟随当前会话快照实时刷新；切换会话即切换锚点列表。
- 仅 Web GUI（`platform: "web"`），host 半边无操作占位，行为全部在浏览器半边。

[Unreleased]: https://github.com/biggerboy/dsh-conversation-anchors/compare/v0.1.21...HEAD
[0.1.21]: https://github.com/biggerboy/dsh-conversation-anchors/releases/tag/v0.1.21
[0.1.20]: https://github.com/biggerboy/dsh-conversation-anchors/releases/tag/v0.1.20
[0.1.19]: https://github.com/biggerboy/dsh-conversation-anchors/releases/tag/v0.1.19
[0.1.18]: https://github.com/biggerboy/dsh-conversation-anchors/releases/tag/v0.1.18
[0.1.17]: https://github.com/biggerboy/dsh-conversation-anchors/releases/tag/v0.1.17
[0.1.16]: https://github.com/biggerboy/dsh-conversation-anchors/releases/tag/v0.1.16
[0.1.15]: https://github.com/biggerboy/dsh-conversation-anchors/releases/tag/v0.1.15
[0.1.13]: https://github.com/biggerboy/dsh-conversation-anchors/releases/tag/v0.1.13
[0.1.12]: https://github.com/biggerboy/dsh-conversation-anchors/releases/tag/v0.1.12
[0.1.11]: https://github.com/biggerboy/dsh-conversation-anchors/releases/tag/v0.1.11
[0.1.10]: https://github.com/biggerboy/dsh-conversation-anchors/releases/tag/v0.1.10
[0.1.9]: https://github.com/biggerboy/dsh-conversation-anchors/releases/tag/v0.1.9
[0.1.8]: https://github.com/biggerboy/dsh-conversation-anchors/releases/tag/v0.1.8
[0.1.7]: https://github.com/biggerboy/dsh-conversation-anchors/releases/tag/v0.1.7
[0.1.1]: https://github.com/biggerboy/dsh-conversation-anchors/releases/tag/v0.1.1
[0.1.0]: https://github.com/biggerboy/dsh-conversation-anchors/releases/tag/v0.1.0
