@ran-sh/dsh-crew 2.0.11 → 2.0.12

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": "2.0.11",
3
+ "version": "2.0.12",
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@ran-sh/dsh-crew",
3
- "version": "2.0.11",
3
+ "version": "2.0.12",
4
4
  "type": "module",
5
5
  "main": "./src/hub/entry.mjs",
6
6
  "bin": {
@@ -18,10 +18,13 @@ const MARKETPLACE_NAME = 'dsh-crew';
18
18
  const PLUGIN_KEY = `dsh-crew@${MARKETPLACE_NAME}`;
19
19
  // A Claude Code plugin refresh is a real copy of the plugin tree, and its cost
20
20
  // tracks machine load: 163s measured idle, ~6 minutes measured during an
21
- // activation. The ceiling bounds the shell's patience, and the settle window
22
- // keeps watching afterwards, because a timed-out child on Windows is not in the
23
- // shell's process tree and goes on writing once the shell has given up.
24
- const CLAUDE_PLUGIN_TIMEOUT_MS = 300_000;
21
+ // activation. The install is the step that copies, so it gets the ceiling that
22
+ // has to fit that; `marketplace add` and `uninstall` measure ~3s each and keep a
23
+ // short one. Sizing the install ceiling below the copy is not a slow update, it is
24
+ // a broken integration: the tree is killed and Claude Code is left without the
25
+ // plugin the same run had just removed.
26
+ const CLAUDE_STEP_TIMEOUT_MS = 300_000;
27
+ const CLAUDE_INSTALL_TIMEOUT_MS = 900_000;
25
28
  const CLAUDE_SNAPSHOT_SETTLE_MS = 180_000;
26
29
  const CLAUDE_SNAPSHOT_POLL_MS = 5_000;
27
30
  // The one scope this installer writes, and therefore the only scope whose record
@@ -643,7 +646,7 @@ async function killClaudeProcessTree(pid, { platform = process.platform } = {})
643
646
  * step cannot be raced by the previous one. A timeout is reported in the shape
644
647
  * `execSync` uses, so the settle rule reads it the same way.
645
648
  */
646
- async function runClaudeStep(args, { timeoutMs = CLAUDE_PLUGIN_TIMEOUT_MS } = {}) {
649
+ async function runClaudeStep(args, { timeoutMs = CLAUDE_STEP_TIMEOUT_MS } = {}) {
647
650
  let invocation;
648
651
  try { invocation = claudeCliInvocation(args); }
649
652
  catch (error) { return { ok: false, timedOut: false, status: null, error }; }
@@ -824,10 +827,11 @@ export async function installClaudeCode({ home = homedir(), statusline = false,
824
827
  noteStep(await runClaudeStep(['plugin', 'uninstall', PLUGIN_KEY]));
825
828
 
826
829
  // Newer Claude Code (>= 2.1.x) dropped the -y flag; older builds accepted it.
827
- // Try without it first, fall back to the legacy flag.
828
- let install = await runClaudeStep(['plugin', 'install', PLUGIN_KEY, '--scope', CLAUDE_PLUGIN_SCOPE]);
830
+ // Try without it first, fall back to the legacy flag. This is the step that
831
+ // copies, so it carries the ceiling sized for the copy.
832
+ let install = await runClaudeStep(['plugin', 'install', PLUGIN_KEY, '--scope', CLAUDE_PLUGIN_SCOPE], { timeoutMs: CLAUDE_INSTALL_TIMEOUT_MS });
829
833
  if (!install.ok && !install.timedOut && /unknown option/i.test(String(install.detail ?? ''))) {
830
- install = await runClaudeStep(['plugin', 'install', PLUGIN_KEY, '--scope', CLAUDE_PLUGIN_SCOPE, '-y']);
834
+ install = await runClaudeStep(['plugin', 'install', PLUGIN_KEY, '--scope', CLAUDE_PLUGIN_SCOPE, '-y'], { timeoutMs: CLAUDE_INSTALL_TIMEOUT_MS });
831
835
  }
832
836
  noteStep(install);
833
837
  actions.push(install.ok
@@ -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 = '2.0.11';
39
+ export const RUNTIME_VERSION = '2.0.12';
40
40
  export const HUB_PROTOCOL_VERSION = 1;
41
41
 
42
42
  export const HUB_CAPABILITIES = Object.freeze([