# dsh-first-prompt-bar

[English](README.md) | 中文

此插件方便你一眼查看（并复制）自己在 DSH Agent 会话中发出的第一条提示词，支持展开/折叠面板查看自己发过的所有提示词。以极简为设计目标！适用于所有带 Web 界面的 DSH 客户端。

## 截图

**1 — 折叠态。** 「对话」页签最上方钉着一行，显示本会话第一条提问（图中为 `hello`），前面有序号 `1` 和 `首条提问` 标签，右侧是复制图标和展开图标。它下面的消息气泡（`hello`，05:19 发出）就是 DSH 正常的消息流本身——常驻条在滚动容器外面，往下滚多远它都不会消失。

![折叠态：第一条提问常驻在对话区上方](assets/screenshot-bar-collapsed.jpg)

**2 — 面板展开。** 点展开图标后，常驻条正下方打开面板，标题为 `全部提问 · 共 3 条`、右侧有 × 关闭按钮。它列出用户发出的全部 3 条提问：`hello`（05:19 · 5 字符）、`今天的中东局势如何?`（10 字符）、`今天的石油价格如何?`（10 字符），每行带序号、时间戳和自己的复制图标。**模型回答不进面板**——图里面板下方可见的那段中东停火长回答是正常聊天内容，面板打开时只是把消息流整体下推（面板是内嵌下推、不是浮层，所以永远不会盖住东西）。面板底部三条提示即交互规则：`Esc 收起` / `点击面板外的区域同样收起` / `复制 = 原文写入剪贴板`。

![面板展开：列出用户发过的每一条提问，每行带复制图标](assets/screenshot-panel-expanded.jpg)

**3 — 外观选择器。** 面板头里 × 左边的滑杆图标（图里亮着，因为选择器正开着）在面板头正下方展开一块外观区：十套外观——**前四套是亮色、后六套是深色**，每格都是那一套的迷你常驻条预览，标题 `外观` 右边是**恢复默认**。当前在用的那套——图中是 `亮四 · 藕荷`，淡紫底——带描边、右上角挂一个勾，画面最上面那条常驻条此刻正是这套底色；鼠标此刻停在 `亮二 · 桃腮` 那一格上。下面那行开关只管动效、不动任何颜色，标签也照直写明到底哪些外观带动效（徽标呼吸、复制闪光在 `乙 · 磷光终端`，悬停时光带在 `亮一 · 靛青纸` 与 `亮二 · 桃腮`）；点一格当场换装，不用重启、不用刷新，而且下次打开 DSH 还是这套。

![外观选择器：十套外观（前四套亮色）的迷你预览，在用的那套带勾](assets/screenshot-appearance-picker.jpg)

## 使用说明

| 动作 | 结果 |
| --- | --- |
| 点常驻条右起第二个图标（方框+下箭头） | 展开全部提问；图标点亮表示面板已开 |
| 再点同一个图标 | 收起 |
| 点面板标题栏右侧的 × | 收起 |
| 点面板外的任意区域（DSH 的其他地方、消息区、输入框…） | 收起 |
| 按 `Esc` | 收起 |
| 点常驻条上的复制图标 | 第一条提问原文进剪贴板，图标变勾一下 |
| 悬停面板某一行、点该行右边的小复制图标 | 该条提问原文进剪贴板 |
| 点面板标题栏 × 左边的滑杆图标 | 打开外观选择器；再点同一个图标收起 |
| 在外观选择器里点一格 | 常驻条立刻换成那套外观，不用重启，选中的那套会被记住 |

面板只列**你本人**发的提问（注入上下文、唤醒上下文、时间上下文、compact 检查点都不算），按时间从早到晚；被后来操作覆盖掉的提问不列。所有数据都在本机：按会话 id 存在 `localStorage`，插件不联网、无任何上报。

**十套可切换外观。** 选择器里有十套预设——**前四套是亮色**（靛青纸、桃腮、薄荷纸、藕荷）、后六套是深色（墨玉分层、磷光终端、潮汐、熔金、夜紫、半边色带），每格就是那一套的迷你预览。亮色那几套是浅底深字，放在 DSH 的深色窗口里就是一张浅色卡片；开关本身的配色也跟着当前这套走。切换是即时的、不需要重启——十套的样式都随插件一起装好，选一下只是换个 class——你选的那套和提问记录一样记在 `localStorage` 里，**恢复默认**回到初始的墨玉分层（深色）。选择器底部那个开关只管动效、不影响任何颜色，标签也照直写明只有部分外观带动效（徽标呼吸与复制闪光在磷光终端，悬停光带在靛青纸与桃腮）；系统开了「减少动态效果」时自动不跑动效。所有颜色都是插件自带的 CSS 变量（`--fpb-*`），你自己有用户样式的话可以直接覆盖。

## 安装

- 在插件市场（dshmarket）里一键安装 `dsh-first-prompt-bar`；或运行 `dsh plugin add dsh-first-prompt-bar`。
- 装完**重启整个 DSH 应用**。`Ctrl+R`/`F5` 只重载页面，而客户端模块图是 web 服务启动时定下的，不重启跑的还是旧代码。
- 需要 DSH `>=0.2.1-rc.1`（开发并在 DSH 0.2.1-rc.2 / DSH Desktop 0.12.1 上实测）。

## 已知缺陷

- **老会话（装本插件之前的历史会话）：首条提示词可能拿不回来。** 这是 DSH 端的限制，不是插件 bug：会话很长时，压缩（compaction）会把很老消息的正文从客户端读得到的数据里抹掉。此时常驻条显示还能恢复到的最早一条提问，旁边挂橙色**不完整**牌（悬停看原因）。用户可以手动点击该历史会话中的「加载更早」，不断刷新常驻条的提示词记录，直到刷新到该会话真正的首条提示词——此时记录便真正保存，之后不再变化（此时才是理论上的首条提示词）。

## 许可

MIT
