dsh-model-retry-settings
Configurable model-request retry limit for DeepSeek Harness (Settings → General).
y2zyyr
@y2zyyr
⬇ 1
★ 0
main
安装
dsh plugin --profile web add github:y2zyyr/dsh-model-retry-settings
需要可复现安装时,可在仓库后追加 #commit 固定提交。
Configurable model-request retry limit for DeepSeek Harness (Settings → General).
该插件未提供要点说明,请参考仓库 README。
- 安装并启动 DeepSeek Harness:
npx @deepseek-ai/dsh web - 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
- 用 dsh plugins list 确认已安装,必要时重启 Harness 生效
插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。
| 代码仓库 | github.com/y2zyyr/dsh-model-retry-settings |
| 许可证 | MIT |
| 主要语言 | main |
| 下载量 | 1 |
| GitHub 星标 | 0 |
| 最近推送 | 2026-08-17 |
| 收录日期 | 2026-09-19 |
| 分类 | 工具与能力 |
事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。
以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。
# dsh-model-retry-settings
Configure the **maximum number of automatic model-request retries** directly from DSH Desktop.
[中文说明 (README.zh-CN.md)](README.zh-CN.md)
## Features
- **Native DSH Desktop Settings integration** — a preference row in **Settings → General**.
- **Global retry limit** — one value applies to every model provider that uses DSH's normal retry policy.
- **Values:** `0 / 1 / 2 / 3 / 5 / 10`
- **Default:** `2` (identical to DSH's built-in default — installing the plugin changes nothing until you configure it)
- **Persistent configuration** — survives closing/reopening Settings and app restarts.
- **Live configuration updates** — changes apply to the next failed model request without restarting.
- **Preserves DSH's existing behavior**: retryable-error classification, exponential backoff / jitter / provider Retry-After handling, request cancellation, and conversation retry rendering.
- **No DSH core patch required** — a pure plugin.
## Where the setting appears
```
DSH Desktop
→ Settings
→ General
→ Maximum model request retries [ 2 ▼ ]
```
Chinese:
```
DSH Desktop
→ 设置
→ 通用设置
→ 模型请求最大重试次数 [ 2 ▼ ]
```
Installing the plugin **without changing the setting** preserves DSH's existing default behavior: **`2`**.
## Retry semantics
> The configured value is the number of **retries after** the initial model request. It does **not** count the initial request.
- `0` = initial request only (no automatic retry)
- `1` = initial request + up to 1 retry
- `2` = initial request + up to 2 retries
- `5` = initial request + up to 5 retries
Example: with `2`, a retryable failure is retried automatically up to 2 more times — **at most 3 model requests** in total. With `0`, automatic model-request retry is disabled.
## What it does NOT change
This plugin only changes the **maximum retry count** for model requests that DSH **already considers retryable**. It does **not** make every error retryable, and authentication/credential errors are never turned into retries.
Examples of error categories DSH already treats as retryable (when present): `EMPTY_RESPONSE`, `RATE_LIMIT`, `SERVER`, `TIMEOUT`, `TRANSPORT`. These internal categories are not a stable public API and may change between DSH versions; what matters is that this plugin leaves that classification untouched.
Also untouched: model selection, agent presets, token accounting, context window, temperature/reasoning, provider authentication/keys, timeouts, rate-limit classification, session persistence, and tool-calling behavior.
## Installation
This package is published to the npm registry. Install it into your DSH web profile.
**Using the DSH CLI (verified):**
```bash
# Profile names: 'web', 'standard', 'code', 'desktop', ... (use your active profile)
dsh plugin --profile web add @y2zyyr/dsh-model-retry-settings
```
**Or with npm/pnpm directly** (equivalent to the above; add it to your profile's `dsh.profile.bundles` as well):
```bash
npm install @y2zyyr/dsh-model-retry-settings
# then add "@y2zyyr/dsh-model-retry-settings" to dsh.profile.bundles in the profile's package.json
```
After installation **restart DSH Desktop** so the new plugin bundle is loaded.
## Update / Uninstall
**Update** to a newer version:
```bash
dsh plugin --profile web update @y2zyyr/dsh-model-retry-settings
```
**Uninstall / disable:**
```bash
dsh plugin --profile web remove @y2zyyr/dsh-model-retry-settings
```
After the plugin is disabled or removed, DSH returns to its native retry behavior (the built-in default). If a `model-retry:` section remains in `~/.dsh/settings.yaml`, it is inert; you may delete it by hand if you wish. The plugin does not automatically clean up a previously saved value.
## Compatibility
Tested against **DeepSeek Harness / DSH Desktop** with:
- cordis `4.0.1`
- `@deepseek-ai/dsh-settings` / `dsh-settings-file` `0.1.0-rc.6`
- `@deepseek-ai/dsh-llm-retry` `0.1.0-rc.6`
- schemastery `3.18.1`
This plugin relies on DSH internal/RC interfaces (`agent/request-error` retry policy, the settings seam, and the `settings.general.item` slot) that could change across DSH releases. If you upgrade DSH and the setting stops working, verify the plugin version matches the DSH version.
## How it works
```
Settings row
→ plugin configuration (browser → host API)
→ normal retry policy maxRetries
→ native @deepseek-ai/dsh-llm-retry
→ native llm/retry event
→ native conversation retry indicator ("已重试模型请求 (n/max)")
```
The plugin hosts a small, browser-local API that reads/writes its own maxRetries value; the host writes it through the DSH settings seam, so it lands in `~/.dsh/settings.yaml`. A prepend listener on DSH's `agent/request-error` waterfall overrides only `retryPolicy.maxRetries` for `mode === "normal"` policies before the native retry engine runs.
### Security note
The current DSH version does not expose arbitrary plugin settings namespaces through its generic Settings API. This plugin therefore uses a narrowly scoped local host route for its own `maxRetries` setting. That route:
- exposes **only** the retry-limit value (and accepts only that value),
- validates the supported range (`0 ≤ maxRetries ≤ 10`, integer),
- is restricted to the local/trusted DSH browser context,
- does **not** provide arbitrary access to DSH settings.
## Development
```bash
npm install
npm run test # unit + integration
npm run typecheck
npm run build # src → lib/index.js (host) + lib/client.js (browser)
```
## License
MIT
数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。