Skip to content
dsh.fish
Bundle

openharness-reply-in-cn

DSH plugin that shows a '中文回复' label in the web sidebar and forces the model to reply in simplified Chinese.

Source
zuoguyoupan2023
License
MIT
Updated
Updated 7 days ago

Readme

# openharness-reply-in-cn

一个 DeepSeek Harness(dsh)插件:往**系统提示词**注入「必须用简体中文回复」的高优先级指令,
并在 dsh **设置页侧边栏**显示「中文回复」一项。

- host 半:`ctx.systemPrompt.section({ name, order: 45, text })` 注入指令(真实逻辑);
- client 半:注册 `settings.section` 槽,显示侧边栏项(与 `openharness-rule-for-dsh-plugin` / `adhdgofly-dsh-ext` 完全同构)。

---

## 注入逻辑(host half,`src/host/index.ts`)

```ts
export const inject = ['systemPrompt']              // 申报依赖,否则 boot 崩
export const name = 'openharness-reply-in-cn'
export function apply(ctx, config) {
  if (config?.enabled === false) return             // 可通过 patch 关闭
  const disposer = ctx.systemPrompt.section({
    name: 'openharness:reply-in-cn',
    order: 45,                                      // persona(0) 之后、工具引导(100+)之前
    text: (context) => (context.agent === undefined ? '' : <中文回复要求>),
  })
  return () => disposer?.()   // apply 返回 disposer,卸载时清理
}
```

- 只 `order:45`,指令文本含「【回复语言 · 最高优先级】…必须用简体中文回复…代码/命令/标识符保持原文」。
- 只有真实 agent 装配(`context.agent` 存在)才渲染。

**遵循程度**:软约束。**注入一定发生**,但「模型是否严格遵守」无法 100% 保证——靠 order 靠前 + 「最高优先级」措辞稳住。
**验证**:对话里问「系统提示里有没有『必须用简体中文回复』这条」;或发「请用英文回复」看它是否仍用中文。

---

## ⚠️ 必读:为什么代码对了却不显示(缓存/进程坑,2026-08 真实教训)

排查记录与同作者插件 [`openharness-rule-for-dsh-plugin`](https://www.npmjs.com/package/openharness-rule-for-dsh-plugin) 一致(改 client 后 `rev` 已变但 webview 不拉新的问题)。

**一句话**:Tauri 壳的「重启DSH」只杀后端 node 进程、不重建前端 webview;dsh 的 client bundle 按 `rev` 缓存在 webview 内存里,`rev` 变了 webview 也不拉新的。**所以改 client 或加新 client 插件后,要彻底退出 OpenHarness(⌘Q)再重开**,才确定看到新 bundle / 新侧边栏项。

---

## 安装

```sh
# 当前依赖目录(开发):
dsh plugin --profile web add ./openharness-reply-in-cn
# 或发布后按名装:
dsh plugin --profile web add openharness-reply-in-cn
```

装完**彻底退出 app 重开**(见缓存坑)。

---

## 依赖与构建

```sh
pnpm install   # 生成 node_modules(含 esbuild / typescript)
pnpm build     # 产出 lib/index.js(host)+ lib/client.js(client)
```

`package.json`:`dsh.bundle.patch`、`dsh.client.platform: "web"`、`exports["./client"]`、`main → lib/index.js`。

---

## 文件结构

```
openharness-reply-in-cn/
├── src/host/index.ts      # 注入「中文回复」system-prompt section(order 45)
├── src/client/index.ts    # 注册 settings.section 侧边栏项「中文回复」
├── build.mjs / package.json / cordis.patch.yml / tsconfig.json
└── lib/                   # 已构建 bundle
```

---

## 我开发的 DSH 插件

我(zuoguyoupan2023)开发维护的一系列 DeepSeek Harness(dsh)插件,均可按需通过 `dsh plugin --profile web add <name>` 安装:

| 插件 | 作用 | GitHub 仓库 | 安装 |
|---|---|---|---|
| **adhdgofly-dsh-ext** | DSH Web 界面词性高亮(名绿/动红/形紫/其他灰) | [zuoguyoupan2023/adhdgofly-dsh-ext](https://github.com/zuoguyoupan2023/adhdgofly-dsh-ext) | `dsh plugin --profile web add adhdgofly-dsh-ext` |
| **openharness-reader** | 工作区文件浏览/编辑 + Markdown 预览 | [zuoguyoupan2023/openharness-reader](https://github.com/zuoguyoupan2023/openharness-reader) | `dsh plugin --profile web add openharness-reader` |
| **openharness-reply-in-cn** | 强制模型用简体中文回复,侧边栏「中文回复」项 | [zuoguyoupan2023/openharness-reply-in-cn](https://github.com/zuoguyoupan2023/openharness-reply-in-cn) | `dsh plugin --profile web add openharness-reply-in-cn` |
| **openharness-rule-for-dsh-plugin** | 注入 DSH 插件开发的 CAN/SHOULD/MUST NOT 规范,侧边栏「插件开发规范」项 | [zuoguyoupan2023/openharness-rule-for-dsh-plugin](https://github.com/zuoguyoupan2023/openharness-rule-for-dsh-plugin) | `dsh plugin --profile web add openharness-rule-for-dsh-plugin` |

Install

dsh plugin --profile web add github:zuoguyoupan2023/openharness-reply-in-cn

Profile: web

  • This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source