dsh-team-limits 1.3.6 → 1.3.8

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 CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.3.8
4
+
5
+ Documentation only, no behaviour change.
6
+
7
+ - Plain wording in the README: the numbers live in your local DSH configuration rather than "the
8
+ profile patch layer", a raised limit is one more concurrent model call per member instead of
9
+ "more concurrent sessions", and a terminal-only setup is not called a profile.
10
+
11
+ ## 1.3.7
12
+
13
+ - Rewrote the README for users: what the four numbers do, how to reach the page, and the two things
14
+ that surprise people (values survive uninstall; higher limits mean more concurrent sessions).
15
+ `README.en.md` is the English translation.
16
+ - Moved the implementation notes, the settings-page structure and the security notes to
17
+ `docs/implementation.md` and `docs/implementation.en.md`.
18
+
3
19
  ## 1.3.6
4
20
 
5
21
  - Declares `engines` (`node` and `dsh`). The package declared neither, so the installer could not
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
- **English** · [简体中文](#简体中文)
3
+ **在插件页里调整 Agent Team 的人数、任务数、单条消息大小与清理超时。**
4
4
 
5
- Optional companion bundle for [dsh-subagent-control](https://github.com/SpaceRelay/dsh-subagent-control): it adds editable **Team limits** fields to the plugin's own page (Settings → Plugins → Installed → Team limits), so the Agent Team limits are number fields you can change and reset — instead of values frozen in a patch file.
5
+ > [English](README.en.md) | 中文
6
6
 
7
- ## English
7
+ ## 什么时候用得上
8
8
 
9
- ### What it does
9
+ - 默认最多 16 个队友,队伍不够用
10
+ - 任务一多就排队(默认 256 条)
11
+ - 子代理回传的长消息被截断(默认 64 KB)
12
+ - 想回出厂值,但不想去翻配置文件
10
13
 
11
- DeepSeek Harness ships the Agent Team plugin with these limits:
14
+ ## 安装
12
15
 
13
- | Setting | Shipped default | This page starts at |
14
- | --- | --- | --- |
15
- | `maxMembers` | 16 | **32** |
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
- Through the plugin panel / market, or by asking the agent:
20
+ ## 在哪里改
32
21
 
33
- ```
34
- plugin_manager install_bundle target "dsh-team-limits@1.3.2"
35
- ```
22
+ 设置 → 插件 → 已安装 → **团队限额**,四个数字框:
36
23
 
37
- ### License
38
-
39
- MIT — see [LICENSE](./LICENSE). Issues: <https://github.com/SpaceRelay/dsh-subagent-control/issues>
40
-
41
- ---
24
+ | 设置项 | 出厂默认 | 本页初始值 |
25
+ | --- | --- | --- |
26
+ | 最多成员数 | 16 | **32** |
27
+ | 最多任务数 | 256 | **512** |
28
+ | 单条消息上限(字节) | 65536 | **131072** |
29
+ | 清理超时(毫秒) | 5000 | 5000 |
42
30
 
43
- ## 简体中文
31
+ 改动边输边存,没有保存按钮。某个字段一旦偏离出厂值,旁边就会出现「恢复默认」。
44
32
 
45
- 这是 [dsh-subagent-control](https://github.com/SpaceRelay/dsh-subagent-control) 的可选同伴包:在**插件自己的页面**上(设置 → 插件 → 已安装 → 团队限额)加一组可编辑的「团队限额」字段,把 Agent Team 的上限变成能直接填、能恢复默认的数字输入框,而不是写死在补丁文件里的值。
33
+ ## 注意
46
34
 
47
- ### 它做什么
35
+ - **数字存在你本机的 DSH 配置里,不属于这个插件。** 卸载本插件不会把它们变回出厂值,要恢复请先在页面上点「恢复默认」。
36
+ - **提高上限不是免费的。** 多一个队友,就多一路同时在跑的模型调用,每个都在花 token、占一份会话记录,按需要调。
37
+ - 只在命令行里用的 DSH 不显示这个页面,但限额照样生效。
48
38
 
49
- Agent Team 出厂限制如下:
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
- 页面有四个数字输入框。改动边输边写(防抖,没有保存按钮),每个字段一旦偏离出厂值就会出现**恢复默认**。宿主侧的配置编辑器会把这些值写到自带的 `agent-team` 行上,持久化进 profile 的补丁层,并按正常加载流程生效。因此本包自己的补丁里不再存数值:DSH 升级改变了出厂默认,也不会悄悄把旧数字带回来。
43
+ **改了没反应?** 页面上的改动会即时写入,按正常加载流程生效;如果插件是旧版本,重装一次。
59
44
 
60
- ### 安装前要知道
45
+ **想全部回到出厂值?** 每个字段点一次「恢复默认」。
61
46
 
62
- - **安装后重启 DSH**,然后打开 设置 → 插件 → 已安装 → 团队限额;输入框就在插件描述下面。
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)。问题反馈:<https://github.com/SpaceRelay/dsh-subagent-control/issues>
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.6",
3
+ "version": "1.3.8",
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
  ],