Repository navigation
Releases: zangxx66/dsh-prompt-setting
Release list
v0.2.5
Added 新增
-
「我的预设」标签:预设库文档升到
version: 2,顶层新增独立的标签集合
tags: [{id, name, createdAt, updatedAt}],每个预设新增tagIds: [](去重、保序、只允许现存标签);
旧文档(无tags)读出空标签集,不需要迁移。设置页新增标签筛选条(「全部」+ 各标签 chip、单选、
点已选取消)、行内标签 chip、编辑器里的多选标签 picker,以及标签管理对话框(新增 / 改名 / 删除);
删除走页面统一的二次确认,正文说明「{count} 个预设会去掉这个标签」。GET /presets与PUT /presets
携带tags[]/tagIds[],新增PUT /prompt-setting/presets/tags与
DELETE /prompt-setting/presets/tags?id=;删除是原子的,并在同一次返回里把该tagId从所有预设剥掉
(删除后不存在悬空tagId),不碰任何工作区层、不写历史。导入导出自然携带标签,导入按整份替换
严格校验(悬空tagId、重复 id/名、超限一律拒绝)。 -
「我的 Prompt」就地状态摘要:在「我的 Prompt」标题区下方插入两行只读摘要——①最近
关键节点的装配结论 + 送达结论(沿用页面既有的assemblyVerdictOf/deliveryVerdictOf与既有文案
键,不复制第二套口径),②本层覆盖计数「本层覆盖 {total} 条 · {ineffective} 条未生效」。摘要不展开
逐条原因、不含装配开关、不渲染覆盖列表;「详情」会把「高级」钉到同一个 session 再切换,全局范围
不发请求。同时澄清清理入口文案:只删本层「我的 Prompt」段 / 整层清空(含它)/ 「清除全部覆盖」三者
的区别。路由、按钮结构与确认流程一律未动。 -
会话输入框上方的装配状态栏:在宿主
conversation.input.dock追加一条常驻只读栏,
五个分区:装配段数、用户级层、工作区级层、装配状态摘要、插件设置入口。口径全部复用页面已有函数
(effective.sections.length/mineCoverageOf/assemblyVerdictOf/deliveryVerdictOf),只发
GET(带?session=),刷新按钮只重读;无 session 时零请求(effect 直接短路,return null
在全部 hook 之后)。视觉是胶囊仪表条:品牌区 + 五个内联 SVG 图标 + 语义色值,永不折行(窄宽收缩并
省略号),< 640px进紧凑态隐藏标签、只留图标与值。设置入口依次尝试 entry props 的 opener →
公开的catalog快捷键(构造真实KeyboardEvent派发)→ 私有registry.invoke兜底 → 都不可用时
才显示降级提示;点击后 800ms 内面板未出现同样提示。「高级」装配卡新增开关
(data-action="composer-bar-toggle",偏好只写localStorage['dsh-prompt-setting:composer-bar']
一个键,关闭态零请求),设置页与状态栏通过模块级总线同帧联动。
Changed 变更
- DSH peer 范围收敛为
>=0.2.1-0 <0.3.0-0
Full Changelog: 0.2.4...0.2.5
v0.2.4
Added 新增
- 文案真源迁出 bundle:
locale/*.json+scripts/locale-pack.mjs
Changed 变更
- 内部工程:客户端生成期分段与发布前门禁
cwd变量弃用的探测:按真实变量表适配,不按版本号猜:上游
dsh-agent-loop不再注册cwd,shipped preset 也不再发Your working directory is {{cwd}}.。插件把
GET /prompt-setting/interpolate早已返回的variables(一次真实assemble()的键集,已按 mount
缓存)接到「我的 Prompt」面板:注记里的变量列表按当前实际注册名渲染——旧版 DSH 仍列出
{{cwd}},0.2.1-rc.1 及以后不列并在同一段文案里点名其弃用与「保持字面量 / 保存被拒」两个后果;
探测失败(variables: null)显示?,不编造可用集合。写入/开启校验在拒绝未注册的{{cwd}}
时追加一句迁移提示(表里仍有cwd时一字不加),状态码、错误码与零字节保证均不变。旧版 DSH 的
行为、文案与判定方向逐字不变;已有文本照常进入 prompt(保留段永不插值、插件展开宽松,绝不抛错)。
零新增路由/字段;每页加载/重载多一次已缓存的GET /interpolate(不触发新的assemble())。
client.js保持 12382 行(行数中性改写),docs/refactor-plan.md的段表与引用行号零漂移。- 作用域模型收敛:页面「查看范围」只服务「我的 Prompt」
- 跨机备份恢复改为「跳过」语义 + 导入预览提示「整份替换」
- 「查看范围」移入「我的 Prompt」
- 「一级 tab」换成纯文字 + 选中下划线,并加计数与更新红点
- 删除预设=对每个已应用的工作区取消应用
- 「装配状态提示」移到「高级」面板顶部
- 「备份与恢复」变成真正的全量备份,并同步解除导入写锁
Fixed 修复
- 备份/恢复的路径安全绕过:
presets.applied[].workspaceRoot过去只检查「非空字符串」,
而DELETE /prompt-setting/presets?id=会用记录里的 root 直接写<root>/.dsh-prompt-setting/overrides.json。
于是一份导入的备份可以命名任意磁盘路径(/etc也行),删除预设就成了任意路径写入原语——评审 PoC 实测未注册
目录下的层文件被真实改写。修复:形状规则抽到core/workspace-root.js,由workspaces[].root与
presets.applied[].workspaceRoot共用同一个函数;导入与删除两条路径都对 root 过注册表白名单(未注册即
整体拒绝、零写入);导出不再携带无法在本机还原的applied记录(条数由exportScope.omittedApplied声明),
使插件自己产出的备份一定能被自己的导入读回。
Full Changelog: 0.2.2...0.2.4
v0.2.2
Added 新增
-
「预设」库:设置面板新增「我的预设」tab,可以把一整套 Prompt 存成命名
预设,随时编辑或删除;一次「应用」把预设写进所选工作区,再点一次即取消应用。预设按粒度
独立记账:要取消的是哪一次应用就还原哪一次,后一次应用不会吞掉前一次,重复应用同一预设是幂等的
(不会叠加成双份),多个预设叠加时按应用顺序回放。编辑与覆盖已应用的预设、以及所有破坏性动作
(删除、取消应用)都走二次确认,未保存的草稿在关闭弹窗时受保护,不会被静默丢弃。 -
会话内「装配状态提示」:DSH 每个 model step 都会重新装配 system prompt,
但「装配到」不等于「送达到模型」。改动 Prompt 后的下一个 run 会主动弹一次 toast,说明本次装配是否
读到了新文本、以及它是否进入本次请求;设置页保留同一份详情与开关。提示只落界面——不进上下文、
不占 token、不改模型收到的 prompt,且只在关键节点提示一次(新会话首次装配、每次变更后的下一个 run),
因此不会变成刷屏。
Changed 变更
- 客户端半代码复用收口
Fixed 修复
- 官方组件探测恒为假:判定「宿主是否提供官方组件」的条件是
typeof Button === 'function',
但React.forwardRef的产物是对象,typeof永远是'object'⇒ 该判定自诞生起恒为 false,设置页
一直退回自绘控件,从未真正启用宿主官方组件。现在新增isComponentExport:函数组件,或带 React
组件 brand(forwardRef→render、memo→type)且结构字段合法者;未知 brand、字段缺失或
getter 抛错一律判不可用(保持 fail-open)。同一判据统一用于图标、差异块、UI.Input/Tag、分段
tab 与 toast。
Full Changelog: 0.2.1...0.2.2
v0.2.1
Added 新增
- 保留段「覆盖 / 叠加」模式:「我的 Prompt」现在可选本层文本和另一层的关系——覆盖
(本层盖掉另一层,即原来的行为)或叠加(本层接在另一层之后:用户层在前、工作区层在后,两层都有
内容时中间空一行,只有一层有内容时不留孤立空行)。导出、导入与回滚都会带上这个模式,任何一次写入
都只动当前这一层。
Changed 变更
-
保留段空值=该层不声明:把「我的 Prompt」在某一层写空,不再等于「用空文本
盖掉另一层」——空值只表示这一层没表态,另一层已写好的文本照常生效;两层都空则该段什么都不施加。此前
工作区层的一个空条目会让用户层写好的文本永远不生效,而且没有任何提示。 -
「查看范围」收成「我的 Prompt」块的头部:这两者在功能上是一个块,现在也用同一条视觉
带子收在一起。
Fixed 修复
-
分层编辑框读错了来源:在某一层保存过「我的 Prompt」之后,切到另一层,编辑框却显示为空
(「版本历史」里那条记录明明在,回滚也提示成功)。现在每层的编辑框只读该层自己的内容:另一层
有同名条目、甚至另一层存的是空文本,都不会再顶替本层显示。 -
切换「查看范围」会静默把草稿写空:未保存的草稿现在按写入目标保管(用户层是整份,
工作区层按工作区)——在同一个写入目标里切会话、切范围,草稿都留在框里;草稿属于别的写入目标时,
「保存」会被明确阻断并说明原因,另给一个「放弃那份草稿」的按钮(纯本地,不写任何数据)。
此前切换范围会让编辑框静默回落到空文本,再保存就是一次成功提示背后的空写入。 -
冻结状态「未知」的文案不再指错人、也不再乱归因:状态条不再原样引用宿主的英文实现
术语,也不再暗示「未在运行 / 未打开 / 已结束」这类未经证实的原因;指代统一为**「所选会话」**,并
补两行说明——无法探测的是该会话自己的装配,而「未知」不等于未冻结(仍可编辑保存,只是不保证
生效)。
Full Changelog: 0.2.0...0.2.1
v0.2.0
Added 新增
- 更新检查改从 npm registry 读取
- 「下载区域」选择:「检查更新」卡片新增下载区域——默认、中国大陆(npmmirror 镜像)、
自定义。默认值由能否真正取到本包这一连通性探测决定(按延迟取最快,不使用第三方 IP 地理定位,
因此不受代理影响);自定义地址经严格校验(必须是 http(s)、主机非空,且不带账号密码、查询串或片段),
非法时给出红字说明且不落盘。
Changed 变更
- 客户端按需分块
- 适配DSH 0.2.1-alpha.2
Fixed 修复
- 「版本历史」列表高度过低
- 列表不再展示由插件注册(而非用户覆盖)的段,只保留用户自己写下的记录
- 搜索会话」输入框被会话标题占用
- 回滚 / 重置 / 导入之后编辑器仍显示旧文本
Full Changelog: 0.1.5...0.2.0
v0.1.5
[feature] 「历史与备份」拆成两个 tab
[feature] 历史作用域与「查看范围」解耦
[feature] 添加一键回滚指定记录功能
Full Changelog: 0.1.4...0.1.5
v0.1.4
[chroe] 更新后的重启提示按启动形态分区
Full Changelog: 0.1.3...0.1.4
v0.1.3
[feature] 时间戳按读者时区呈现
Full Changelog: 0.1.2...0.1.3
v0.1.2
[feature] 新增版本号展示
[feature] 新增检查更新开关
[fix] 未配置状态误报「该作用域已被冻结」(#1 )
Full Changelog: 0.1.1...0.1.2