Skip to content

Releases: zangxx66/dsh-prompt-setting

v0.2.5

Choose a tag to compare

@zangxx66 zangxx66 released this 23 Oct 19:54

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

Choose a tag to compare

@zangxx66 zangxx66 released this 17 Oct 18:58

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

Choose a tag to compare

@zangxx66 zangxx66 released this 13 Oct 14:51

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

Choose a tag to compare

@zangxx66 zangxx66 released this 10 Oct 17:38

Added 新增

  • 保留段「覆盖 / 叠加」模式:「我的 Prompt」现在可选本层文本和另一层的关系——覆盖
    (本层盖掉另一层,即原来的行为)或叠加(本层接在另一层之后:用户层在前、工作区层在后,两层都有
    内容时中间空一行,只有一层有内容时不留孤立空行)。导出、导入与回滚都会带上这个模式,任何一次写入
    都只动当前这一层
    。

Changed 变更

  • 保留段空值=该层不声明:把「我的 Prompt」在某一层写空,不再等于「用空文本
    盖掉另一层」——空值只表示这一层没表态,另一层已写好的文本照常生效;两层都空则该段什么都不施加。此前
    工作区层的一个空条目会让用户层写好的文本永远不生效,而且没有任何提示。

  • 「查看范围」收成「我的 Prompt」块的头部:这两者在功能上是一个块,现在也用同一条视觉
    带子收在一起。

Fixed 修复

  • 分层编辑框读错了来源:在某一层保存过「我的 Prompt」之后,切到另一层,编辑框却显示为空
    (「版本历史」里那条记录明明在,回滚也提示成功)。现在每层的编辑框只读该层自己的内容:另一层
    有同名条目、甚至另一层存的是空文本,都不会再顶替本层显示。

  • 切换「查看范围」会静默把草稿写空:未保存的草稿现在按写入目标保管(用户层是整份,
    工作区层按工作区)——在同一个写入目标里切会话、切范围,草稿都留在框里;草稿属于别的写入目标时,
    「保存」会被明确阻断并说明原因,另给一个「放弃那份草稿」的按钮(纯本地,不写任何数据)。
    此前切换范围会让编辑框静默回落到空文本,再保存就是一次成功提示背后的空写入。

  • 冻结状态「未知」的文案不再指错人、也不再乱归因:状态条不再原样引用宿主的英文实现
    术语,也不再暗示「未在运行 / 未打开 / 已结束」这类未经证实的原因;指代统一为**「所选会话」**,并
    补两行说明——无法探测的是该会话自己的装配,而「未知」不等于未冻结(仍可编辑保存,只是不保证
    生效)。

Full Changelog: 0.2.0...0.2.1

v0.2.0

Choose a tag to compare

@zangxx66 zangxx66 released this 09 Oct 15:30

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

Choose a tag to compare

@zangxx66 zangxx66 released this 07 Oct 19:34

[feature] 「历史与备份」拆成两个 tab
[feature] 历史作用域与「查看范围」解耦
[feature] 添加一键回滚指定记录功能

Full Changelog: 0.1.4...0.1.5

v0.1.4

Choose a tag to compare

@zangxx66 zangxx66 released this 06 Oct 11:27

[chroe] 更新后的重启提示按启动形态分区

Full Changelog: 0.1.3...0.1.4

v0.1.3

Choose a tag to compare

@zangxx66 zangxx66 released this 06 Oct 10:18

[feature] 时间戳按读者时区呈现

Full Changelog: 0.1.2...0.1.3

v0.1.2

Choose a tag to compare

@zangxx66 zangxx66 released this 04 Oct 02:45

[feature] 新增版本号展示
[feature] 新增检查更新开关
[fix] 未配置状态误报「该作用域已被冻结」(#1 )

详见CHANGELOG.md

Full Changelog: 0.1.1...0.1.2

v0.1.1

Choose a tag to compare

@zangxx66 zangxx66 released this 03 Oct 14:55

[feature] 添加插值
[feature] 添加取消按钮恢复已编辑的prompt
[feature] 支持0.2.0-rc.2