dsh-team-limits 1.3.5 → 1.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.en.md +57 -0
- package/README.md +34 -54
- package/docs/implementation.en.md +42 -0
- package/docs/implementation.md +42 -0
- package/package.json +7 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.3.7
|
|
4
|
+
|
|
5
|
+
- Rewrote the README for users: what the four numbers do, how to reach the page, and the two things
|
|
6
|
+
that surprise people (values survive uninstall; higher limits mean more concurrent sessions).
|
|
7
|
+
`README.en.md` is the English translation.
|
|
8
|
+
- Moved the implementation notes, the settings-page structure and the security notes to
|
|
9
|
+
`docs/implementation.md` and `docs/implementation.en.md`.
|
|
10
|
+
|
|
11
|
+
## 1.3.6
|
|
12
|
+
|
|
13
|
+
- Declares `engines` (`node` and `dsh`). The package declared neither, so the installer could not
|
|
14
|
+
check it against the running harness.
|
|
15
|
+
|
|
3
16
|
## 1.3.5
|
|
4
17
|
|
|
5
18
|
- Removed the leftover debugging path and the trace calls that appended to it on every load. The
|
package/README.en.md
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# dsh-team-limits
|
|
2
|
+
|
|
3
|
+
**Adjust Agent Team's member count, task count, message size and teardown timeout from the plugin page.**
|
|
4
|
+
|
|
5
|
+
> English | [中文](README.md)
|
|
6
|
+
|
|
7
|
+
## When you need it
|
|
8
|
+
|
|
9
|
+
- 16 team members by default, and that is not enough
|
|
10
|
+
- Tasks start queueing (256 by default)
|
|
11
|
+
- Long messages from subagents get truncated (64 KB by default)
|
|
12
|
+
- You want the shipped values back without digging through config files
|
|
13
|
+
|
|
14
|
+
## Install
|
|
15
|
+
|
|
16
|
+
1. Open **Settings → Plugins → Market** and search for `dsh-team-limits`
|
|
17
|
+
2. Install it
|
|
18
|
+
3. **Quit DSH completely, then start it again**
|
|
19
|
+
|
|
20
|
+
## Where to change it
|
|
21
|
+
|
|
22
|
+
**Settings → Plugins → Installed → Team limits** — four number fields:
|
|
23
|
+
|
|
24
|
+
| Setting | Shipped default | This page starts at |
|
|
25
|
+
| --- | --- | --- |
|
|
26
|
+
| Members | 16 | **32** |
|
|
27
|
+
| Tasks | 256 | **512** |
|
|
28
|
+
| Message size (bytes) | 65536 | **131072** |
|
|
29
|
+
| Teardown timeout (ms) | 5000 | 5000 |
|
|
30
|
+
|
|
31
|
+
Edits are saved as you type — there is no Save button. As soon as a field differs from the shipped value, **Restore default** appears next to it.
|
|
32
|
+
|
|
33
|
+
## Good to know
|
|
34
|
+
|
|
35
|
+
- **The values live in the profile's patch layer.** Uninstalling the bundle does not roll them back; use **Restore default** first if you want the stock numbers.
|
|
36
|
+
- **Raising limits is not free.** More members means more concurrent model sessions, each costing tokens and a session directory. Raise only what you need.
|
|
37
|
+
- A terminal-only profile does not render the page, but the limits still apply.
|
|
38
|
+
|
|
39
|
+
## FAQ
|
|
40
|
+
|
|
41
|
+
**Installed it and there is no page?** DSH was not fully quit. Quit from the tray and start it again.
|
|
42
|
+
|
|
43
|
+
**Changed a number and nothing happened?** Edits are written immediately and applied through the normal load path; if the plugin is an old version, reinstall it.
|
|
44
|
+
|
|
45
|
+
**How do I get the stock numbers back?** Press **Restore default** on each field.
|
|
46
|
+
|
|
47
|
+
## Uninstall
|
|
48
|
+
|
|
49
|
+
Disable or remove it in the plugin panel. To restore the numbers as well, use **Restore default** first.
|
|
50
|
+
|
|
51
|
+
## Technical notes
|
|
52
|
+
|
|
53
|
+
How it works, where the four fields come from and how the values are written: [docs/implementation.en.md](https://github.com/SpaceRelay/dsh-subagent-control/blob/main/team-limits/docs/implementation.en.md)
|
|
54
|
+
|
|
55
|
+
## License
|
|
56
|
+
|
|
57
|
+
MIT — see [LICENSE](./LICENSE). Issues: [github.com/SpaceRelay/dsh-subagent-control/issues](https://github.com/SpaceRelay/dsh-subagent-control/issues)
|
package/README.md
CHANGED
|
@@ -1,77 +1,57 @@
|
|
|
1
1
|
# dsh-team-limits
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**在插件页里调整 Agent Team 的人数、任务数、单条消息大小与清理超时。**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
> [English](README.en.md) | 中文
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## 什么时候用得上
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
- 默认最多 16 个队友,队伍不够用
|
|
10
|
+
- 任务一多就排队(默认 256 条)
|
|
11
|
+
- 子代理回传的长消息被截断(默认 64 KB)
|
|
12
|
+
- 想回出厂值,但不想去翻配置文件
|
|
10
13
|
|
|
11
|
-
|
|
14
|
+
## 安装
|
|
12
15
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
| `maxTasks` | 256 | **512** |
|
|
17
|
-
| `maxMessageBytes` | 65536 | **131072** |
|
|
18
|
-
| `disposalTimeoutMs` | 5000 | 5000 |
|
|
19
|
-
|
|
20
|
-
The page has four number fields. Edits are written onto the shipped `agent-team` row through the host's config editor as you type (debounced, no Save button), and each field offers **Restore default** once it differs from the shipped value. The config editor persists the values in the profile patch layer and applies them on the normal Loader path. The bundle's own patch therefore holds no numbers, so a DSH upgrade that changes the shipped defaults does not silently resurrect old values.
|
|
21
|
-
|
|
22
|
-
### Before you install
|
|
23
|
-
|
|
24
|
-
- **Restart DSH after installing**, then open Settings → Plugins → Installed → Team limits; the fields sit right below the bundle description.
|
|
25
|
-
- **Values live in the profile patch layer.** Uninstalling the bundle does not roll them back; set the fields back to the shipped defaults (or remove the `agent-team` override in the profile patch) if you want the stock numbers again.
|
|
26
|
-
- **Raising limits is not free.** More members means more concurrent model sessions; each one costs tokens and a session directory. Raise only what you need.
|
|
27
|
-
- The client page needs the harness browser bundle; nothing is rendered in terminal-only profiles, but the limits still apply.
|
|
28
|
-
|
|
29
|
-
### Install
|
|
16
|
+
1. 打开 设置 → 插件 → 市场,搜索 `dsh-team-limits`
|
|
17
|
+
2. 点安装
|
|
18
|
+
3. **完全退出 DSH,再重新打开**
|
|
30
19
|
|
|
31
|
-
|
|
20
|
+
## 在哪里改
|
|
32
21
|
|
|
33
|
-
|
|
34
|
-
plugin_manager install_bundle target "dsh-team-limits@1.3.2"
|
|
35
|
-
```
|
|
22
|
+
设置 → 插件 → 已安装 → **团队限额**,四个数字框:
|
|
36
23
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
24
|
+
| 设置项 | 出厂默认 | 本页初始值 |
|
|
25
|
+
| --- | --- | --- |
|
|
26
|
+
| 最多成员数 | 16 | **32** |
|
|
27
|
+
| 最多任务数 | 256 | **512** |
|
|
28
|
+
| 单条消息上限(字节) | 65536 | **131072** |
|
|
29
|
+
| 清理超时(毫秒) | 5000 | 5000 |
|
|
42
30
|
|
|
43
|
-
|
|
31
|
+
改动边输边存,没有保存按钮。某个字段一旦偏离出厂值,旁边就会出现「恢复默认」。
|
|
44
32
|
|
|
45
|
-
|
|
33
|
+
## 注意
|
|
46
34
|
|
|
47
|
-
|
|
35
|
+
- **数值存在 profile 的补丁层里。** 卸载本插件不会把它们变回出厂值,要恢复请先在页面上点「恢复默认」。
|
|
36
|
+
- **提高上限不是免费的。** 队友更多意味着更多并发的模型会话,每个都消耗 token 和一个会话目录,按需要调。
|
|
37
|
+
- 纯终端的 profile 不显示这个页面,但限额照样生效。
|
|
48
38
|
|
|
49
|
-
|
|
39
|
+
## 常见问题
|
|
50
40
|
|
|
51
|
-
|
|
52
|
-
| --- | --- | --- |
|
|
53
|
-
| `maxMembers` | 16 | **32** |
|
|
54
|
-
| `maxTasks` | 256 | **512** |
|
|
55
|
-
| `maxMessageBytes` | 65536 | **131072** |
|
|
56
|
-
| `disposalTimeoutMs` | 5000 | 5000 |
|
|
41
|
+
**装完没看到页面?** 没有完全退出 DSH。从托盘退出再打开。
|
|
57
42
|
|
|
58
|
-
|
|
43
|
+
**改了没反应?** 页面上的改动会即时写入,按正常加载流程生效;如果插件是旧版本,重装一次。
|
|
59
44
|
|
|
60
|
-
|
|
45
|
+
**想全部回到出厂值?** 每个字段点一次「恢复默认」。
|
|
61
46
|
|
|
62
|
-
|
|
63
|
-
- **数值存在 profile 的补丁层里。** 卸载本包不会把它们撤回;要恢复出厂值,请在页面上点「恢复默认」,或删除 profile 补丁里 `agent-team` 那条覆盖。
|
|
64
|
-
- **提高上限不是免费的。** 队友更多意味着更多并发的模型会话,每个都消耗 token 与一个会话目录;按实际需要调。
|
|
65
|
-
- 这个页面依赖 Harness 的浏览器端;纯终端 profile 不渲染页面,但限额照样生效。
|
|
47
|
+
## 卸载
|
|
66
48
|
|
|
67
|
-
|
|
49
|
+
在插件面板里停用或卸载。想把数字也恢复,请先在页面上点「恢复默认」。
|
|
68
50
|
|
|
69
|
-
|
|
51
|
+
## 技术细节
|
|
70
52
|
|
|
71
|
-
|
|
72
|
-
plugin_manager install_bundle target "dsh-team-limits@1.3.2"
|
|
73
|
-
```
|
|
53
|
+
实现方式、四个字段的来源与写入路径:[docs/implementation.md](https://github.com/SpaceRelay/dsh-subagent-control/blob/main/team-limits/docs/implementation.md)
|
|
74
54
|
|
|
75
|
-
|
|
55
|
+
## 许可
|
|
76
56
|
|
|
77
|
-
MIT,见 [LICENSE](./LICENSE)
|
|
57
|
+
MIT,见 [LICENSE](./LICENSE)。问题反馈:[github.com/SpaceRelay/dsh-subagent-control/issues](https://github.com/SpaceRelay/dsh-subagent-control/issues)
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# dsh-team-limits — implementation notes
|
|
2
|
+
|
|
3
|
+
For maintainers. User-facing docs live in [../README.en.md](../README.en.md).
|
|
4
|
+
|
|
5
|
+
## What it changes
|
|
6
|
+
|
|
7
|
+
The bundle attaches to the shipped `agent-team` row and turns four limit fields into editable values. Shipped defaults:
|
|
8
|
+
|
|
9
|
+
| Field | Shipped default | This bundle |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| `maxMembers` | 16 | 32 |
|
|
12
|
+
| `maxTasks` | 256 | 512 |
|
|
13
|
+
| `maxMessageBytes` | 65536 | 131072 |
|
|
14
|
+
| `disposalTimeoutMs` | 5000 | 5000 |
|
|
15
|
+
|
|
16
|
+
## Structure
|
|
17
|
+
|
|
18
|
+
- `index.js` — the host half. Declares a `Config` (all four fields `.volatile()`) and, in `apply`, pushes the current values onto the `agent-team` row through `ctx.configEditor`: `configuration()` finds the row, `edit(entry, current => ({ ...current, ...values }))` writes it. `edit()` runs inside `hmr.runExclusive(...)`, and a plugin's `apply` already runs inside an HMR transaction, so calling it directly throws `HMR transactions cannot be nested`; the push is therefore wrapped in `ctx.get('hmr').executing.exit(...)`.
|
|
19
|
+
- `client.js` — the browser half, hand-written with no build step, registered on the `plugins.bundle.config` slot with key `dsh-team-limits`. The page reads and writes values through `ctx.configForms`, and each field carries an "overridden" marker plus "restore default".
|
|
20
|
+
- `cordis.patch.yml` — inserts one `team-limits` row (a placeholder component so the package has a mountable entry and a listed component) and **holds no numbers**.
|
|
21
|
+
|
|
22
|
+
## Why the patch has no numbers
|
|
23
|
+
|
|
24
|
+
Before 1.2.0 the numbers were written straight into the patch as an `agent-team` override. Two problems: a DSH upgrade that changed the shipped defaults would silently resurrect old numbers, and users could not change anything from the UI. Now the values live only in the profile's patch layer (written by `configEditor`), and this package's own patch stays empty.
|
|
25
|
+
|
|
26
|
+
## How a change takes effect
|
|
27
|
+
|
|
28
|
+
1. The user edits a field → the client writes it back to `Config` → `apply` pushes it with `configEditor.edit()` into the profile patch layer
|
|
29
|
+
2. The Loader's normal reconciliation re-applies the `agent-team` row
|
|
30
|
+
3. All four fields are volatile: a change does not remount the plugin, and the plugin polls every 1.5 s to notice it and push again
|
|
31
|
+
|
|
32
|
+
## Uninstall behaviour
|
|
33
|
+
|
|
34
|
+
Uninstalling does not roll the values back — they belong to the profile's patch layer, not to this bundle. To restore the shipped values, press **Restore default**, or delete the `config` under the `agent-team` row in the profile patch.
|
|
35
|
+
|
|
36
|
+
## Tests
|
|
37
|
+
|
|
38
|
+
```powershell
|
|
39
|
+
node test/smoke.mjs
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Coverage: registry shape, the four defaults, the parameters of the push, and degradation when `configEditor` is absent.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# dsh-team-limits 实现说明
|
|
2
|
+
|
|
3
|
+
面向维护者。用户向说明见 [../README.md](../README.md)。
|
|
4
|
+
|
|
5
|
+
## 它改的是什么
|
|
6
|
+
|
|
7
|
+
本包把自己挂到宿主自带的 `agent-team` 行上,把四个限额字段变成可编辑项。宿主出厂值:
|
|
8
|
+
|
|
9
|
+
| 字段 | 出厂默认 | 本包默认 |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| `maxMembers` | 16 | 32 |
|
|
12
|
+
| `maxTasks` | 256 | 512 |
|
|
13
|
+
| `maxMessageBytes` | 65536 | 131072 |
|
|
14
|
+
| `disposalTimeoutMs` | 5000 | 5000 |
|
|
15
|
+
|
|
16
|
+
## 结构
|
|
17
|
+
|
|
18
|
+
- `index.js`:宿主半边。声明一个 `Config`(四个字段各自 `.volatile()`),并在 `apply` 里把当前值推到 `agent-team` 行。写入走 `ctx.configEditor`:先 `configuration()` 找到 `agent-team` 行,再 `edit(entry, current => ({...current, ...values}))`。`edit()` 内部是 `hmr.runExclusive(...)`,而插件 `apply` 本身跑在 HMR 事务里,直接用会报 `HMR transactions cannot be nested`,所以推送被包进 `ctx.get('hmr').executing.exit(...)`。
|
|
19
|
+
- `client.js`:浏览器半边,手写无构建,注册在 `plugins.bundle.config` 槽、key 为 `dsh-team-limits`。页面用 `ctx.configForms` 读当前值并回写,字段带「已覆盖」标记与「恢复默认」。
|
|
20
|
+
- `cordis.patch.yml`:插入一行 `team-limits`(占位组件,让包有可挂载的入口与可列出的组件),**不含任何数字**。
|
|
21
|
+
|
|
22
|
+
## 为什么补丁里不写数字
|
|
23
|
+
|
|
24
|
+
1.2.0 之前,数值是直接写在补丁里覆盖 `agent-team` 的。那样有两个问题:DSH 升级改了出厂默认,旧数字会悄悄复活;用户也没法在界面上改。现在数值只存在 profile 的补丁层(由 `configEditor` 写入),本包的补丁保持空。
|
|
25
|
+
|
|
26
|
+
## 生效路径
|
|
27
|
+
|
|
28
|
+
1. 用户改字段 → 客户端把值写回 `Config` → 插件 `apply` 用 `configEditor.edit()` 写进 profile 补丁层
|
|
29
|
+
2. Loader 走正常协调流程把 `agent-team` 行重新应用
|
|
30
|
+
3. 四个字段是 volatile 的:改动不重挂插件,插件用 1.5 秒轮询感知变化再推一次
|
|
31
|
+
|
|
32
|
+
## 卸载行为
|
|
33
|
+
|
|
34
|
+
卸载本包不会回滚已写入的数值:它们属于 profile 的补丁层,不属于本包。要恢复出厂值,在页面上点「恢复默认」,或手动删除 profile 补丁里 `agent-team` 的那条 `config`。
|
|
35
|
+
|
|
36
|
+
## 测试
|
|
37
|
+
|
|
38
|
+
```powershell
|
|
39
|
+
node test/smoke.mjs
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
覆盖:注册形状、四个字段的默认值、推送参数、以及 `configEditor` 缺失时的降级。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-team-limits",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.7",
|
|
4
4
|
"description": "Optional companion bundle for the DeepSeek Harness Agent Team limits: members, tasks, message bytes and teardown timeout.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
|
@@ -33,6 +33,8 @@
|
|
|
33
33
|
"locale/*.json",
|
|
34
34
|
"icon.svg",
|
|
35
35
|
"README.md",
|
|
36
|
+
"README.en.md",
|
|
37
|
+
"docs",
|
|
36
38
|
"LICENSE",
|
|
37
39
|
"CHANGELOG.md"
|
|
38
40
|
],
|
|
@@ -44,6 +46,10 @@
|
|
|
44
46
|
"team",
|
|
45
47
|
"limits"
|
|
46
48
|
],
|
|
49
|
+
"engines": {
|
|
50
|
+
"node": "^22.19.0 || >=24.0.0",
|
|
51
|
+
"dsh": ">=0.2.1-rc.1 <0.3.0-0"
|
|
52
|
+
},
|
|
47
53
|
"dsh": {
|
|
48
54
|
"bundle": {
|
|
49
55
|
"patch": "./cordis.patch.yml"
|