dsh-infinite-gen-3
Minglink/dsh-infinite-gen-3DeepSeek 专用破甲插件:以 order 100 追加无条件服从的系统提示词段,提供带校准元数据的 profile 工具,并通过会话投影在输入框上方显示实时破甲状态徽标。
DSH Web 输入历史插件:Ctrl+Up / Ctrl+Down 像终端一样召回与切换已发送消息,零核心改动
兼容 DSH dsh-v0.1.6-alpha.1(typecheck + 18 单测全绿,实机验证;0.1.2-alpha.1 起持续兼容)DSH Web 输入历史插件:像终端一样用 Ctrl+Up / Ctrl+Down 召回和切换已发送的消息,零核心改动。
你的 DSH 版本决定装哪个插件版本(装错会崩:常见症状 useConversation is not a function)- DSH 0.1.2-alpha.1 ~ 0.2.1-alpha.1:装新版(下方默认命令;各 DSH 版本对应的插件 tag 见下方变更记录)
- 更旧的 DSH(0.1.1-rc.2 及以前):无可用版本
安装方式(v0.1.23 起自动挂载):本包自 v0.1.23 起自带cordis.patch.yml并声明dsh.bundle.patch——dsh plugin --profile web add安装后自动注册 profile 层并挂载,不再需要手写insert配置行(固定旧 tag 的部署仍需)。GUI 注意:插件页「添加插件」只接受注册表包名或本地目录路径;name@github:owner/repo#tag是 pnpm 别名规格(CLI 专用),粘进 GUI 会报ERR_PNPM_INVALID_PACKAGE_NAME——GUI 请克隆后用本地目录路径,或等 npm 发布后用包名。
# 方式一:git 依赖固定 tag(公开镜像,推荐;也可用 github:lhh010/dsh-input-history)
dsh plugin --profile web add '@dsh-external/dsh-input-history@github:lhh010/dsh-input-history#v0.1.27'
# 方式二:本地 link(开发)
git clone https://github.com/lhh010/dsh-input-history.git
cd dsh-input-history && pnpm install && pnpm run build
dsh plugin --profile web add link:/path/to/dsh-input-history配置行($DSH_HOME/profiles/web/cordis.patch.yml,热重载,无需重启):
- insert:
- id: dsh-input-history
name: '@dsh-external/dsh-input-history'安装提示:pnpm 11 首次安装可能拦截 node-pty 等构建脚本——在~/.dsh/profiles/web下执行pnpm approve-builds --all放行后重跑安装命令即可;装完硬刷新浏览器(Ctrl/Cmd+Shift+R)。
更新浮标会结合当前运行的 DSH 版本(宿主端从 dsh 安装清单读取)与仓库根的 compatibility.json(版本→支持的 DSH 列表,精确匹配)判定提示形态:
兼容数据拉取失败或无该版本条目时,自动回退为旧的普通升级提示(离线安全)。发版时需同步维护 `compatibility.json`(与版本表/变更记录同一步骤新增一行)。
把下面这段提示词发给任意一个 DSH 会话,模型会替你完成安装:
帮我安装 dsh-input-history 插件(DSH 输入历史召回插件(Ctrl+Up/Ctrl+Down 终端式输入历史)),步骤:
1. 执行 dsh plugin --profile web add '@dsh-external/dsh-input-history@github:lhh010/dsh-input-history#v0.1.27'(首次可能被 pnpm 11 拦截 node-pty 构建脚本而失败)2. 在~/.dsh/profiles/web下执行pnpm approve-builds --all(放行构建脚本)
3. 再执行一次第 1 步的安装命令
4. 完成后提醒我硬刷新浏览器(Ctrl/Cmd+Shift+R)
遇到报错先查 https://github.com/lhh010/dsh-input-history README 的常见问题/已知限制。
(npm 发版不再发布 cordis 名义的 vendored 包),本插件已迁移(peer 声明 @deepseek-ai/cordis: ^4.0.1-rc.1,npm rc.5 基线上为 4.0.1-rc.4),纯 npm install 不再报 ERESOLVE。
--dump-config 全插件行加载零错误;运行时只读探测 file-trace mermaid/katex 路由 200、better-sidebar fence 活;宿主保留 webStartup 服务、无 alpha.5 之外的插件面破坏性变更;零适配改动);双 bundle node --check 通过--dump-config 全插件行加载零错误;运行时只读探测 file-trace mermaid/katex 路由 200、better-sidebar fence 活;宿主保留 webStartup 服务、无插件面破坏性变更——新增的 conversation.input.model.label Slot 为并列新增键,与本插件既有注入面(conversation.input.for / conversation.input.dock 等)无冲突;零适配改动);双 bundle node --check 通过--dump-config 全插件行加载零错误;宿主保留 webStartup 服务、无插件面破坏性变更——新引入的 engines.dsh 兼容判定仅对声明者生效,本插件未声明故沿用原有规则;六插件零适配改动);双 bundle node --check 通过--dump-config 全插件行加载零错误;运行时只读探测 file-trace mermaid/katex 路由 200、better-sidebar fence 活;宿主保留 webStartup 服务,六插件零适配改动);双 bundle node --check 通过cordis.patch.yml 并声明 dsh.bundle.patch——dsh plugin --profile web add 装完自动注册并挂载 profile 层,不再需要手写 insert 行(社区反馈「GUI 安装后不生效」的根因);双 bundle node --check 通过适配 dsh 0.1.6-alpha.2 多实例重构:主会话改由 uiSession.current({ key, ctx })解析(alpha.1 的 sessions.list.current 字段已移除,此前导致 Ctrl+↑/↓ 静默失效);chat 视图链路全程可选 + console 诊断。typecheck/18 单测/构建全绿,alpha.2 实机验证恢复。
声明支持 dsh-v0.1.6-alpha.1(npm 已发布,钉版本实机验证;client 插件面零代码差异,typecheck/18 单测全绿,实机加载正常)。安装命令统一更新为 #v0.1.27。
fs-ext 安装修复,client 插件面零代码差异;npm 已发布,钉版本实机验证;typecheck/build/18 单测全绿,启动清单确认加载ctx.agent 移除 / 宿主 client bundle 服务路由改 /plugins/?? 组合路由,client 插件面零代码差异;npm 已发布,钉版本实机验证;typecheck/build/单测全绿,启动清单确认加载@deepseek-ai/dsh-client-runtime/client 包已删除。本插件类型迁移到 @deepseek-ai/cordis(Context)、@deepseek-ai/dsh-api-session-controller/client(ISessions)与 @deepseek-ai/dsh-client-ui-conversation/client(IConversation/SessionInput/ConversationNode),并通过 @deepseek-ai/dsh-client-ui-chat/client 的声明合并读取 chat 视图快照类型。ctx.uiConversation.binding(sessionId).snapshot.getSnapshot().views.get('chat')?.legacy.nodes(chat 视图的 legacy 兼容投影,user 节点结构不变,kind === 'user' 过滤与文本块拼接逻辑无需改动)。conversation.input.for(actx).setDraft() 与 input.state.getSnapshot().draft 契约在 ui-conversation 的 Lexical 输入外壳(SessionInputShell)上保留;setDraft 自身把光标置于末尾,插件不再手动搬运 caret。data-composer-input,仍位于 data-input-scroll 内)。目标判定放宽为"位于 data-input-scroll 内的元素";草稿读取一律取输入机 published 的 clipboard 投影(contenteditable 的 DOM 文本无法还原 reference chip)。inject = ['sessions', 'uiConversation', 'conversation'],apply 内直接读 ctx.sessions / ctx.uiConversation,不再使用 ctx.inject([...], scope => ...) 包装;dsh.client.inject 同步为 api-session-controller / ui-chat / ui-conversation 三个包名边。本插件 v0.1.4 起内置兼容性自诊断:apply 时探测所需服务面(sessions/uiConversation),不满足时不再崩溃,而是在页面右下角渲染修复指引横幅(点击可关闭)。
dsh.plugin.json 清单 + resolveClientPath(packages/plugin/plugin)已删除,改为 package.json 的 `dshClient` 声明(platform: 'web',可选 inject/immediately)+ exports["./client"] 指向构建产物;宿主扫描 loader 条目组成 boot 图,Web 端从 /plugins//client.js 拉取。本插件 package.json 已满足该声明,无需改动。conversation.input.for(actx).setDraft() 与 ConversationSnapshot.nodes 会话快照在 0809 上保留,契约未变;键盘 capture 拦截不依赖任何槽位。dshClient 包的构建产物,缺失会抛 ClientPackageCompositionError 并拒绝启动 `dsh web`——升级快照或改源码后必须重新 pnpm run build 再启动,否则浏览器拉到的是旧 lib/client.js。packages/client/modules/src/index.ts 的 resolveMeta,pkg.dsh.client);顶层 dshClient 字段读不到会静默丢出 boot 图——无日志、无报错,"启动顺利但插件全没"。本插件已从顶层 dshClient 迁移为嵌套 dsh.client(inject 原样保留);lib/client.js 构建产物不变(package.json 不参与编译),symlink 安装改源仓库即生效,无需重装。cordis@4.0.0-rc.7 更名为 `@deepseek-ai/cordis@4.0.1-rc.1`(官方 client 包随之全部改从 @deepseek-ai/cordis 导入)。本插件对 cordis 只有 type-only 导入(src/index.ts、src/invariant.ts 的 import type { Context } from 'cordis'),**构建产物(lib/*.js)零 cordis 运行时导入——更名不影响已构建 bundle 的运行时加载;但源码对 npm rc.2 基线 typecheck 时 `cordis` 裸导入报 TS2307(仅此一处),将类型导入迁移为 from '@deepseek-ai/cordis' 后全绿**。建议同步把 peerDependencies.cordis 迁移为 @deepseek-ai/cordis: ^4.0.1-rc.1。snapshots/20260811T152241Z)web 启动后 window.__DSH_BOOT__ 清单包含 @dsh-external/dsh-input-history(inject: dsh-client-runtime/dsh-client-ui-conversation),/plugins/@dsh-external/dsh-input-history/client.js 返回 200;typecheck(含 tests)对 0811 基线通过。依赖的输入门面 conversation.input.for(actx).setDraft() 与 ConversationSnapshot.nodes 契约在 0811 上保持不变(0811 会话快照仅新增 views 字段,不影响 nodes 读取)。@deepseek-ai/dsh@0.1.1-rc.1,v0.1.2)dsh --profile web(npm 0.1.1-rc.1)启动后 window.__DSH_BOOT__ 清单包含 @dsh-external/dsh-input-history(inject: dsh-client-runtime/dsh-client-ui-conversation),/plugins/@dsh-external/dsh-input-history/client.js 返回 200;依赖的输入门面 conversation.input.for(actx).setDraft() 与 ConversationSnapshot.nodes 契约在 0.1.1-rc.1 上保持不变,Ctrl+Up / Ctrl+Down 行为无回归src/index.ts、src/invariant.ts 的 import type { Context } from '@deepseek-ai/cordis')与 peerDependencies 迁移至 @deepseek-ai/cordis(^4.0.1-rc.1;npm rc.5 基线上为 @deepseek-ai/cordis@4.0.1-rc.4)——构建产物(lib/*.js)依旧零 cordis 运行时导入,npm rc.5 消费者 typecheck 全绿,npm install 无需 --legacy-peer-deps。@deepseek-ai/dsh-invariants 源码包由 packages/support/invariants 移至 packages/runtime-diagnostics/invariants,devDependencies 路径已同步更新;服务名 invariants 与注册协议未变,运行不受影响。snapshots/20260812T172954Z-final)web 启动后 window.__DSH_BOOT__ 清单包含 @dsh-external/dsh-input-history,/plugins/@dsh-external/dsh-input-history/client.js 返回 200;npm rc.5 consumer dsh web 启动后 boot 清单同样包含本插件。依赖的输入门面 conversation.input.for(actx).setDraft() 与 ConversationSnapshot.nodes 契约在最终快照与 rc.5 上保持不变(0811 新增的 views 与 InputState.imageIds 均不影响本插件读取的 nodes/draft 契约)。typecheck、build 与 18 个单测对最终快照基线通过。