Skip to content

Releases: wjf1/dsh-prompt-enhance

v0.2.1: 差异卡可读性修复(对比度/字号/行距/浮层定位)

Choose a tag to compare

@wjf1 wjf1 released this 19 Oct 16:14

首个公开发布:对标 WorkBuddy「增强提示词」的 DSH 插件,输入框模型选择器左侧一个 ✨,一键把草稿改写成可执行的提示词,支持多层撤销与逐字差异对比。

新增

  • ✨ 一键增强:把草稿原地改写成更具体、更可执行的提示词(提示词逐字复刻 WorkBuddy 的增强功能,见 lib/prompt.mjs)。
  • 跟随会话当前模型:客户端把模型选择器里的 provider/model/reasoningEffort 带进请求;宿主按标识符白名单校验后透传给 ctx.llm.stream,读不到时回落插件配置的默认模型。
  • 多层撤销:增强结果进撤销栈(最多 8 层),↺ 一次退一层,退空回原文。
  • 差异对比卡:增强后自动弹出,词级 LCS 标出新增/删除,展示「N 处改动 · X 字新增 / Y 字替换 · 净 ±Z 字」,Escape 关闭,卡内可直接撤销。
  • 宿主侧调用模型 + 浏览器会话 Cookie 认证栅栏:密钥不进浏览器,公网隧道端口无法把本端点当免费模型代理用。
  • 安装即用:dsh plugin add github:wjf1/dsh-prompt-enhance,无需构建、无第三方运行时依赖。

修复

  • 差异卡在浅色主题下「浅色字压白底」:新增/删除文字色改为跟随主题推导(color: inherit + color-mix),实测浅色 14.0:1 / 13.1:1、深色 10.5:1 / 7.9:1,均达到 WCAG AA。
  • 差异卡不只靠颜色区分:新增带下划线色块、删除带删除线,并补「新增 / 删除」图例。
  • 差异卡字号行距与层级:正文 12px/18px → 13px/1.6,差异段按换行切行渲染,标题与统计行分层。
  • 差异卡遮挡草稿:浮层锚点从 ✨ 按钮改为整张输入卡,宽度 min(560px, 100vw − 24px) 并随窗口变化重新定位,超长时正文内部滚动。

安全加固

  • /enhance 端点先过 connection.requestRejection(request):没有浏览器会话 Cookie 一律 401/403。
  • provider / model / reasoningEffort 只接受 [A-Za-z0-9][A-Za-z0-9._:/@+-]{0,199},非法即整组忽略,请求体无法把调用导向任意上游。
  • 请求体上限 256 KiB、输入上限 20000 字符、超时 120 s,响应统一 cache-control: no-store。

测试

node --test "tests/*.test.mjs" → 33 个用例全绿(宿主路由与认证栅栏、提示词模板完整性、客户端状态机)。