@ran-sh/dsh-crew 1.7.0 → 1.7.1

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-crew",
3
- "version": "1.7.0",
3
+ "version": "1.7.1",
4
4
  "description": "Dispatch subtasks to DeepSeek Harness (DSH) agents as native subagents with live progress",
5
5
  "author": {
6
6
  "name": "ZSeven-W"
package/package.json CHANGED
@@ -1,232 +1,233 @@
1
- {
2
- "name": "@ran-sh/dsh-crew",
3
- "version": "1.7.0",
4
- "type": "module",
5
- "main": "./src/hub/entry.mjs",
6
- "bin": {
7
- "dsh-crew": "bin/dsh-crew.mjs"
8
- },
9
- "description": "DeepSeek Harness plugin: dispatch work to DSH agents from Claude Code / Codex, as native subagents with live progress",
10
- "dshCrew": {
11
- "payloadSchema": 2,
12
- "windowsSupervisorHandoff": 1
13
- },
14
- "dsh": {
15
- "bundle": {
16
- "patch": "./cordis.patch.yml"
17
- },
18
- "client": {
19
- "inject": [
20
- "@deepseek-ai/dsh-client-ui-renderer",
21
- "@deepseek-ai/dsh-client-locale",
22
- "@deepseek-ai/dsh-client-ui-settings"
23
- ],
24
- "platform": "web"
25
- }
26
- },
27
- "scripts": {
28
- "mcp": "node src/server.mjs",
29
- "build:client": "tsdown src/client/entry.tsx --format cjs --platform browser --target es2022 --tsconfig tsconfig.client.json --deps.never-bundle react --deps.never-bundle react/jsx-runtime --deps.never-bundle react-dom --deps.never-bundle react-dom/client --out-dir .client-build --clean --logLevel warn && tsdown src/client/quick-entry.tsx --format cjs --platform browser --target es2022 --tsconfig tsconfig.client.json --deps.never-bundle react --deps.never-bundle react/jsx-runtime --deps.never-bundle react-dom --deps.never-bundle react-dom/client --out-dir .client-build --no-clean --logLevel warn && node scripts/build-client.mjs",
30
- "verify:npm-install": "node scripts/verify-npm-install.mjs",
31
- "verify:npm-install:official": "node scripts/verify-npm-install.mjs --with-official-dsh",
32
- "verify:official-bridge": "node scripts/verify-official-bridge-e2e.mjs --diagnostic-only"
33
- },
34
- "dependencies": {
35
- "@modelcontextprotocol/sdk": "^1.25.4",
36
- "zod": "^3.24.0"
37
- },
38
- "exports": {
39
- ".": "./src/hub/entry.mjs",
40
- "./client": "./lib/client.js",
41
- "./package.json": "./package.json"
42
- },
43
- "peerDependencies": {
44
- "@deepseek-ai/dsh": "0.1.5-rc.2",
45
- "@deepseek-ai/dsh-agent": "0.1.5-rc.2",
46
- "@deepseek-ai/dsh-agent-loop": "0.1.5-rc.2",
47
- "@deepseek-ai/dsh-agent-presets": "0.1.5-rc.2",
48
- "@deepseek-ai/dsh-bash-local": "0.1.5-rc.2",
49
- "@deepseek-ai/dsh-client-locale": "0.1.5-rc.2",
50
- "@deepseek-ai/dsh-client-ui-renderer": "0.1.5-rc.2",
51
- "@deepseek-ai/dsh-client-ui-settings": "0.1.5-rc.2",
52
- "@deepseek-ai/dsh-compaction-basic": "0.1.5-rc.2",
53
- "@deepseek-ai/dsh-fs-local": "0.1.5-rc.2",
54
- "@deepseek-ai/dsh-fs-observation-policy": "0.1.5-rc.2",
55
- "@deepseek-ai/dsh-llm": "0.1.5-rc.2",
56
- "@deepseek-ai/dsh-llm-deepseek": "0.1.5-rc.2",
57
- "@deepseek-ai/dsh-sandbox-local": "0.1.5-rc.2",
58
- "@deepseek-ai/dsh-sandbox-policy": "0.1.5-rc.2",
59
- "@deepseek-ai/dsh-sdk-client": "0.1.5-rc.2",
60
- "@deepseek-ai/dsh-sdk-jsonrpc-server": "0.1.5-rc.2",
61
- "@deepseek-ai/dsh-sdk-minimal": "0.1.5-rc.2",
62
- "@deepseek-ai/dsh-session": "0.1.5-rc.2",
63
- "@deepseek-ai/dsh-session-persistence-jsonl": "0.1.5-rc.2",
64
- "@deepseek-ai/dsh-subprocess-local": "0.1.5-rc.2",
65
- "@deepseek-ai/dsh-token-meter": "0.1.5-rc.2",
66
- "@deepseek-ai/dsh-tool-fs": "0.1.5-rc.2",
67
- "@deepseek-ai/dsh-tool-todo": "0.1.5-rc.2",
68
- "react": "^18.0.0",
69
- "react-dom": "^18.0.0"
70
- },
71
- "peerDependenciesMeta": {
72
- "@deepseek-ai/dsh": {
73
- "optional": true
74
- },
75
- "@deepseek-ai/dsh-agent": {
76
- "optional": true
77
- },
78
- "@deepseek-ai/dsh-agent-loop": {
79
- "optional": true
80
- },
81
- "@deepseek-ai/dsh-agent-presets": {
82
- "optional": true
83
- },
84
- "@deepseek-ai/dsh-bash-local": {
85
- "optional": true
86
- },
87
- "@deepseek-ai/dsh-client-locale": {
88
- "optional": true
89
- },
90
- "@deepseek-ai/dsh-client-ui-renderer": {
91
- "optional": true
92
- },
93
- "@deepseek-ai/dsh-client-ui-settings": {
94
- "optional": true
95
- },
96
- "@deepseek-ai/dsh-compaction-basic": {
97
- "optional": true
98
- },
99
- "@deepseek-ai/dsh-fs-local": {
100
- "optional": true
101
- },
102
- "@deepseek-ai/dsh-fs-observation-policy": {
103
- "optional": true
104
- },
105
- "@deepseek-ai/dsh-llm": {
106
- "optional": true
107
- },
108
- "@deepseek-ai/dsh-llm-deepseek": {
109
- "optional": true
110
- },
111
- "@deepseek-ai/dsh-sandbox-local": {
112
- "optional": true
113
- },
114
- "@deepseek-ai/dsh-sandbox-policy": {
115
- "optional": true
116
- },
117
- "@deepseek-ai/dsh-sdk-client": {
118
- "optional": true
119
- },
120
- "@deepseek-ai/dsh-sdk-jsonrpc-server": {
121
- "optional": true
122
- },
123
- "@deepseek-ai/dsh-sdk-minimal": {
124
- "optional": true
125
- },
126
- "@deepseek-ai/dsh-session": {
127
- "optional": true
128
- },
129
- "@deepseek-ai/dsh-session-persistence-jsonl": {
130
- "optional": true
131
- },
132
- "@deepseek-ai/dsh-subprocess-local": {
133
- "optional": true
134
- },
135
- "@deepseek-ai/dsh-token-meter": {
136
- "optional": true
137
- },
138
- "@deepseek-ai/dsh-tool-fs": {
139
- "optional": true
140
- },
141
- "@deepseek-ai/dsh-tool-todo": {
142
- "optional": true
143
- },
144
- "react": {
145
- "optional": true
146
- },
147
- "react-dom": {
148
- "optional": true
149
- }
150
- },
151
- "devDependencies": {
152
- "@deepseek-ai/dsh": "0.1.5-rc.2",
153
- "@deepseek-ai/dsh-agent": "0.1.5-rc.2",
154
- "@deepseek-ai/dsh-agent-loop": "0.1.5-rc.2",
155
- "@deepseek-ai/dsh-agent-presets": "0.1.5-rc.2",
156
- "@deepseek-ai/dsh-bash-local": "0.1.5-rc.2",
157
- "@deepseek-ai/dsh-client-locale": "0.1.5-rc.2",
158
- "@deepseek-ai/dsh-client-ui-renderer": "0.1.5-rc.2",
159
- "@deepseek-ai/dsh-client-ui-settings": "0.1.5-rc.2",
160
- "@deepseek-ai/dsh-compaction-basic": "0.1.5-rc.2",
161
- "@deepseek-ai/dsh-fs-local": "0.1.5-rc.2",
162
- "@deepseek-ai/dsh-fs-observation-policy": "0.1.5-rc.2",
163
- "@deepseek-ai/dsh-llm": "0.1.5-rc.2",
164
- "@deepseek-ai/dsh-llm-deepseek": "0.1.5-rc.2",
165
- "@deepseek-ai/dsh-sandbox-local": "0.1.5-rc.2",
166
- "@deepseek-ai/dsh-sandbox-policy": "0.1.5-rc.2",
167
- "@deepseek-ai/dsh-sdk-client": "0.1.5-rc.2",
168
- "@deepseek-ai/dsh-sdk-jsonrpc-server": "0.1.5-rc.2",
169
- "@deepseek-ai/dsh-sdk-minimal": "0.1.5-rc.2",
170
- "@deepseek-ai/dsh-session": "0.1.5-rc.2",
171
- "@deepseek-ai/dsh-session-persistence-jsonl": "0.1.5-rc.2",
172
- "@deepseek-ai/dsh-subprocess-local": "0.1.5-rc.2",
173
- "@deepseek-ai/dsh-token-meter": "0.1.5-rc.2",
174
- "@deepseek-ai/dsh-tool-fs": "0.1.5-rc.2",
175
- "@deepseek-ai/dsh-tool-todo": "0.1.5-rc.2",
176
- "@types/react": "^18.3.0",
177
- "react": "^18.3.1",
178
- "react-dom": "^18.3.1",
179
- "tsdown": "0.22.14",
180
- "typescript": "^5.6.0"
181
- },
182
- "license": "MIT",
183
- "repository": {
184
- "type": "git",
185
- "url": "git+https://github.com/Ran-sh/dsh-crew.git"
186
- },
187
- "homepage": "https://github.com/Ran-sh/dsh-crew",
188
- "bugs": {
189
- "url": "https://github.com/Ran-sh/dsh-crew/issues"
190
- },
191
- "keywords": [
192
- "dsh",
193
- "deepseek",
194
- "claude-code",
195
- "codex",
196
- "zcode",
197
- "windows",
198
- "subagent",
199
- "worker",
200
- "multimodal",
201
- "plugin",
202
- "agent"
203
- ],
204
- "files": [
205
- "bin",
206
- "lib",
207
- "src",
208
- "scripts",
209
- "agents",
210
- "commands",
211
- "codex",
212
- "zcode",
213
- "statusline",
214
- "official-web-bridge",
215
- "windows",
216
- "cordis.patch.yml",
217
- "worker.cordis.yml",
218
- ".claude-plugin",
219
- "README.md",
220
- "README.*.md",
221
- "docs/job-contracts.md",
222
- "docs/readiness-matrix.md",
223
- "docs/gpt-relay-extension.md",
224
- "docs/ui-surfaces.md",
225
- "docs/installation.md",
226
- "docs/images/dsh-crew-logo.png",
227
- "docs/images/dsh-crew-overview.png",
228
- "docs/images/dsh-crew-host.png",
229
- "docs/images/dsh-crew-jobs.png",
230
- "LICENSE"
231
- ]
232
- }
1
+ {
2
+ "name": "@ran-sh/dsh-crew",
3
+ "version": "1.7.1",
4
+ "type": "module",
5
+ "main": "./src/hub/entry.mjs",
6
+ "bin": {
7
+ "dsh-crew": "bin/dsh-crew.mjs"
8
+ },
9
+ "description": "DeepSeek Harness plugin: dispatch work to DSH agents from Claude Code / Codex, as native subagents with live progress",
10
+ "dshCrew": {
11
+ "payloadSchema": 2,
12
+ "windowsSupervisorHandoff": 1
13
+ },
14
+ "dsh": {
15
+ "bundle": {
16
+ "patch": "./cordis.patch.yml"
17
+ },
18
+ "client": {
19
+ "inject": [
20
+ "@deepseek-ai/dsh-client-ui-renderer",
21
+ "@deepseek-ai/dsh-client-locale",
22
+ "@deepseek-ai/dsh-client-ui-settings"
23
+ ],
24
+ "platform": "web"
25
+ }
26
+ },
27
+ "scripts": {
28
+ "mcp": "node src/server.mjs",
29
+ "build:client": "tsdown src/client/entry.tsx --format cjs --platform browser --target es2022 --tsconfig tsconfig.client.json --deps.never-bundle react --deps.never-bundle react/jsx-runtime --deps.never-bundle react-dom --deps.never-bundle react-dom/client --out-dir .client-build --clean --logLevel warn && tsdown src/client/quick-entry.tsx --format cjs --platform browser --target es2022 --tsconfig tsconfig.client.json --deps.never-bundle react --deps.never-bundle react/jsx-runtime --deps.never-bundle react-dom --deps.never-bundle react-dom/client --out-dir .client-build --no-clean --logLevel warn && node scripts/build-client.mjs",
30
+ "verify:npm-install": "node scripts/verify-npm-install.mjs",
31
+ "verify:npm-install:official": "node scripts/verify-npm-install.mjs --with-official-dsh",
32
+ "verify:official-bridge": "node scripts/verify-official-bridge-e2e.mjs --diagnostic-only"
33
+ },
34
+ "dependencies": {
35
+ "@modelcontextprotocol/sdk": "^1.25.4",
36
+ "zod": "^3.24.0"
37
+ },
38
+ "exports": {
39
+ ".": "./src/hub/entry.mjs",
40
+ "./client": "./lib/client.js",
41
+ "./package.json": "./package.json"
42
+ },
43
+ "peerDependencies": {
44
+ "@deepseek-ai/dsh": "0.1.5-rc.2",
45
+ "@deepseek-ai/dsh-agent": "0.1.5-rc.2",
46
+ "@deepseek-ai/dsh-agent-loop": "0.1.5-rc.2",
47
+ "@deepseek-ai/dsh-agent-presets": "0.1.5-rc.2",
48
+ "@deepseek-ai/dsh-bash-local": "0.1.5-rc.2",
49
+ "@deepseek-ai/dsh-client-locale": "0.1.5-rc.2",
50
+ "@deepseek-ai/dsh-client-ui-renderer": "0.1.5-rc.2",
51
+ "@deepseek-ai/dsh-client-ui-settings": "0.1.5-rc.2",
52
+ "@deepseek-ai/dsh-compaction-basic": "0.1.5-rc.2",
53
+ "@deepseek-ai/dsh-fs-local": "0.1.5-rc.2",
54
+ "@deepseek-ai/dsh-fs-observation-policy": "0.1.5-rc.2",
55
+ "@deepseek-ai/dsh-llm": "0.1.5-rc.2",
56
+ "@deepseek-ai/dsh-llm-deepseek": "0.1.5-rc.2",
57
+ "@deepseek-ai/dsh-sandbox-local": "0.1.5-rc.2",
58
+ "@deepseek-ai/dsh-sandbox-policy": "0.1.5-rc.2",
59
+ "@deepseek-ai/dsh-sdk-client": "0.1.5-rc.2",
60
+ "@deepseek-ai/dsh-sdk-jsonrpc-server": "0.1.5-rc.2",
61
+ "@deepseek-ai/dsh-sdk-minimal": "0.1.5-rc.2",
62
+ "@deepseek-ai/dsh-session": "0.1.5-rc.2",
63
+ "@deepseek-ai/dsh-session-persistence-jsonl": "0.1.5-rc.2",
64
+ "@deepseek-ai/dsh-subprocess-local": "0.1.5-rc.2",
65
+ "@deepseek-ai/dsh-token-meter": "0.1.5-rc.2",
66
+ "@deepseek-ai/dsh-tool-fs": "0.1.5-rc.2",
67
+ "@deepseek-ai/dsh-tool-todo": "0.1.5-rc.2",
68
+ "react": "^18.0.0",
69
+ "react-dom": "^18.0.0"
70
+ },
71
+ "peerDependenciesMeta": {
72
+ "@deepseek-ai/dsh": {
73
+ "optional": true
74
+ },
75
+ "@deepseek-ai/dsh-agent": {
76
+ "optional": true
77
+ },
78
+ "@deepseek-ai/dsh-agent-loop": {
79
+ "optional": true
80
+ },
81
+ "@deepseek-ai/dsh-agent-presets": {
82
+ "optional": true
83
+ },
84
+ "@deepseek-ai/dsh-bash-local": {
85
+ "optional": true
86
+ },
87
+ "@deepseek-ai/dsh-client-locale": {
88
+ "optional": true
89
+ },
90
+ "@deepseek-ai/dsh-client-ui-renderer": {
91
+ "optional": true
92
+ },
93
+ "@deepseek-ai/dsh-client-ui-settings": {
94
+ "optional": true
95
+ },
96
+ "@deepseek-ai/dsh-compaction-basic": {
97
+ "optional": true
98
+ },
99
+ "@deepseek-ai/dsh-fs-local": {
100
+ "optional": true
101
+ },
102
+ "@deepseek-ai/dsh-fs-observation-policy": {
103
+ "optional": true
104
+ },
105
+ "@deepseek-ai/dsh-llm": {
106
+ "optional": true
107
+ },
108
+ "@deepseek-ai/dsh-llm-deepseek": {
109
+ "optional": true
110
+ },
111
+ "@deepseek-ai/dsh-sandbox-local": {
112
+ "optional": true
113
+ },
114
+ "@deepseek-ai/dsh-sandbox-policy": {
115
+ "optional": true
116
+ },
117
+ "@deepseek-ai/dsh-sdk-client": {
118
+ "optional": true
119
+ },
120
+ "@deepseek-ai/dsh-sdk-jsonrpc-server": {
121
+ "optional": true
122
+ },
123
+ "@deepseek-ai/dsh-sdk-minimal": {
124
+ "optional": true
125
+ },
126
+ "@deepseek-ai/dsh-session": {
127
+ "optional": true
128
+ },
129
+ "@deepseek-ai/dsh-session-persistence-jsonl": {
130
+ "optional": true
131
+ },
132
+ "@deepseek-ai/dsh-subprocess-local": {
133
+ "optional": true
134
+ },
135
+ "@deepseek-ai/dsh-token-meter": {
136
+ "optional": true
137
+ },
138
+ "@deepseek-ai/dsh-tool-fs": {
139
+ "optional": true
140
+ },
141
+ "@deepseek-ai/dsh-tool-todo": {
142
+ "optional": true
143
+ },
144
+ "react": {
145
+ "optional": true
146
+ },
147
+ "react-dom": {
148
+ "optional": true
149
+ }
150
+ },
151
+ "devDependencies": {
152
+ "@deepseek-ai/dsh": "0.1.5-rc.2",
153
+ "@deepseek-ai/dsh-agent": "0.1.5-rc.2",
154
+ "@deepseek-ai/dsh-agent-loop": "0.1.5-rc.2",
155
+ "@deepseek-ai/dsh-agent-presets": "0.1.5-rc.2",
156
+ "@deepseek-ai/dsh-bash-local": "0.1.5-rc.2",
157
+ "@deepseek-ai/dsh-client-locale": "0.1.5-rc.2",
158
+ "@deepseek-ai/dsh-client-ui-renderer": "0.1.5-rc.2",
159
+ "@deepseek-ai/dsh-client-ui-settings": "0.1.5-rc.2",
160
+ "@deepseek-ai/dsh-compaction-basic": "0.1.5-rc.2",
161
+ "@deepseek-ai/dsh-fs-local": "0.1.5-rc.2",
162
+ "@deepseek-ai/dsh-fs-observation-policy": "0.1.5-rc.2",
163
+ "@deepseek-ai/dsh-llm": "0.1.5-rc.2",
164
+ "@deepseek-ai/dsh-llm-deepseek": "0.1.5-rc.2",
165
+ "@deepseek-ai/dsh-sandbox-local": "0.1.5-rc.2",
166
+ "@deepseek-ai/dsh-sandbox-policy": "0.1.5-rc.2",
167
+ "@deepseek-ai/dsh-sdk-client": "0.1.5-rc.2",
168
+ "@deepseek-ai/dsh-sdk-jsonrpc-server": "0.1.5-rc.2",
169
+ "@deepseek-ai/dsh-sdk-minimal": "0.1.5-rc.2",
170
+ "@deepseek-ai/dsh-session": "0.1.5-rc.2",
171
+ "@deepseek-ai/dsh-session-persistence-jsonl": "0.1.5-rc.2",
172
+ "@deepseek-ai/dsh-subprocess-local": "0.1.5-rc.2",
173
+ "@deepseek-ai/dsh-token-meter": "0.1.5-rc.2",
174
+ "@deepseek-ai/dsh-tool-fs": "0.1.5-rc.2",
175
+ "@deepseek-ai/dsh-tool-todo": "0.1.5-rc.2",
176
+ "@types/react": "^18.3.0",
177
+ "react": "^18.3.1",
178
+ "react-dom": "^18.3.1",
179
+ "tsdown": "0.22.14",
180
+ "typescript": "^5.6.0"
181
+ },
182
+ "license": "MIT",
183
+ "repository": {
184
+ "type": "git",
185
+ "url": "git+https://github.com/Ran-sh/dsh-crew.git"
186
+ },
187
+ "homepage": "https://github.com/Ran-sh/dsh-crew",
188
+ "bugs": {
189
+ "url": "https://github.com/Ran-sh/dsh-crew/issues"
190
+ },
191
+ "keywords": [
192
+ "dsh",
193
+ "deepseek",
194
+ "claude-code",
195
+ "codex",
196
+ "zcode",
197
+ "windows",
198
+ "subagent",
199
+ "worker",
200
+ "multimodal",
201
+ "plugin",
202
+ "agent"
203
+ ],
204
+ "files": [
205
+ "bin",
206
+ "lib",
207
+ "src",
208
+ "scripts",
209
+ "agents",
210
+ "commands",
211
+ "codex",
212
+ "zcode",
213
+ "skills",
214
+ "statusline",
215
+ "official-web-bridge",
216
+ "windows",
217
+ "cordis.patch.yml",
218
+ "worker.cordis.yml",
219
+ ".claude-plugin",
220
+ "README.md",
221
+ "README.*.md",
222
+ "docs/job-contracts.md",
223
+ "docs/readiness-matrix.md",
224
+ "docs/gpt-relay-extension.md",
225
+ "docs/ui-surfaces.md",
226
+ "docs/installation.md",
227
+ "docs/images/dsh-crew-logo.png",
228
+ "docs/images/dsh-crew-overview.png",
229
+ "docs/images/dsh-crew-host.png",
230
+ "docs/images/dsh-crew-jobs.png",
231
+ "LICENSE"
232
+ ]
233
+ }
@@ -0,0 +1,118 @@
1
+ ---
2
+ name: dsh-crew
3
+ description: "DSH Crew worker/reviewer dispatch (dsh-crew MCP tools): dispatch coding work, configure models and review gates, and maintain session history. Load only when the operator asks to use dsh-crew."
4
+ ---
5
+
6
+ # DSH Crew
7
+
8
+ **On demand only.** Do not dispatch Crew work because it might help — dispatch
9
+ because the operator asked for it in this turn ("use dsh-crew", "call dsh-crew",
10
+ "派给 crew", and the like). Crew is a capability the operator chooses, not a
11
+ standing policy, so nothing here should shape how you work until it is invoked.
12
+ That is the whole point of it living in a skill rather than in a global
13
+ instruction file: the host's own way of working stays untouched.
14
+
15
+ Once invoked, this is the operating guide.
16
+
17
+ ## What it is
18
+
19
+ A plugin on the official DeepSeek Harness. A hub on 3210 dispatches jobs to
20
+ worker/reviewer models, optionally in an isolated git worktree, and returns a
21
+ compact structured result. Codex, ZCode and Claude Code all reach it through the
22
+ same `dsh-crew` MCP server, so the behaviour below is identical from any host.
23
+
24
+ ## Tools
25
+
26
+ | Tool | Use |
27
+ |---|---|
28
+ | `dsh_run_worker` | dispatch one unit and wait for the result |
29
+ | `dsh_spawn_worker` | dispatch and return a workflow id immediately |
30
+ | `dsh_worker_status` | list workflows with phase, role, model, tokens |
31
+ | `dsh_worker_result` | fetch or wait for one workflow (`wait_seconds`) |
32
+ | `dsh_worker_cancel` | cancel a workflow |
33
+ | `dsh_worker_config` | read/update session settings: enable dispatch, tier, effort, timeout, presets, policy |
34
+
35
+ `dsh_worker_config` with no arguments is the cheapest way to answer "what is
36
+ Crew set to right now". Its settings last for the session only; persisted
37
+ changes belong in the 3210 panel.
38
+
39
+ ## Choosing what to dispatch
40
+
41
+ Delegate a bounded, independently verifiable unit when isolation,
42
+ specialization, parallel work or independent review earns its cost. Give each
43
+ unit its objective, owned files, workspace, constraints and acceptance
44
+ evidence. Keep ambiguity, integration, external effects and final communication
45
+ yourself. Trivial work stays local.
46
+
47
+ Continue authorized work after a successful subtask; a returned workflow is a
48
+ checkpoint, not the end of the task. If a worker's result is incomplete or its
49
+ review asks for changes, that is a task result to act on — not approval.
50
+
51
+ ## Configuration
52
+
53
+ Two surfaces, and they are not equivalent:
54
+
55
+ - **3210** — the full control plane: workflow, model priority, routing, provider
56
+ lifecycle, history, and the peak/off-peak schedule.
57
+ - **3080** — the quick surface (sub-agent switch, model priority order). It
58
+ writes through the same config via a restricted key allowlist.
59
+
60
+ Everything lands in `~/.config/dsh-crew/config.json`. Prefer the panel over hand
61
+ editing: the write path validates, and a hand edit can be silently dropped by
62
+ the loader.
63
+
64
+ ## Model routing
65
+
66
+ Worker and reviewer each walk an ordered `{provider, model}` priority list and
67
+ take the first admissible candidate; an empty list falls through to Harness
68
+ Default. Candidates are skipped when the provider is unhealthy, tombstoned, or
69
+ inside a peak window it is blocked for. A `warn` rule keeps the model selectable
70
+ and records the advisory in the selection trace.
71
+
72
+ The **peak/off-peak schedule** (panel → 波峰波谷调度) restricts chosen models by
73
+ local wall clock: `block` skips the model during peak so the next candidate
74
+ serves the job, `warn` uses it and flags the choice, and an unlisted model is
75
+ unrestricted. Defaults mirror DeepSeek's published peak hours.
76
+
77
+ ## Work
78
+
79
+ `isolation: worktree` is the default: a coding worker runs in a per-job git
80
+ worktree and the primary tree is untouched. Non-git workspaces fail with
81
+ `NOT_GIT_REPOSITORY` rather than silently sharing the tree; use `shared`
82
+ explicitly if that is what you want. Concurrent jobs are capped by
83
+ `max_parallel`.
84
+
85
+ The reviewer gate is `required` by default: an unreviewed change fails. Review
86
+ findings and failing tests are results to address, never a reason to bypass the
87
+ gate.
88
+
89
+ ## History
90
+
91
+ Session storage is shared between 3080 and 3210 — clearing one clears both.
92
+ Cleanup is scoped by provenance, and the default scope is **Crew-created only**,
93
+ so the operator's own conversations survive. `all` removes theirs too; use it
94
+ deliberately. Archived batches are restorable from the panel.
95
+
96
+ ## When Crew is unavailable
97
+
98
+ If a capability needed by a work unit you already dispatched becomes unavailable
99
+ or non-callable, **stop and ask**. Do not implement further on that unit, do not
100
+ repair or reconfigure Crew, do not silently fall back to doing it yourself.
101
+ Perform bounded read-only diagnosis, report the evidence and what already
102
+ completed, and wait for the operator to choose: repair Crew and continue through
103
+ it, or leave Crew alone and continue with the host agent.
104
+
105
+ A nonterminal wait is not an outage — keep polling the same workflow rather than
106
+ dispatching a duplicate. This gate applies only once Crew has been selected for
107
+ a work unit; it does not apply when planning chose local work.
108
+
109
+ ## Host boundaries
110
+
111
+ - Never install, update, register, unlink, repair or mutate anything under
112
+ `~/.dsh`. Crew's runtime lives in its own `DSH_HOME`.
113
+ - Runtime upgrades go through the Crew-owned installer (`dsh-crew update`), never
114
+ through direct pnpm/npm/dsh plugin operations.
115
+ - Preparing an upgrade must not restart 3080 or 3210.
116
+ - The legacy 3080 bridge must never be used for 3210 lifecycle or rollback.
117
+ - Delegation grants no new authority: pushing, publishing, messaging, changing
118
+ credentials or deleting data still need their own authorization.
@@ -36,7 +36,7 @@ export {
36
36
  // included in the identity contract.
37
37
  const RUNTIME_ID = randomUUID();
38
38
 
39
- export const RUNTIME_VERSION = '1.7.0';
39
+ export const RUNTIME_VERSION = '1.7.1';
40
40
  export const HUB_PROTOCOL_VERSION = 1;
41
41
 
42
42
  export const HUB_CAPABILITIES = Object.freeze([