@dungsil/dsh-plugin-ui-worktree 0.6.0 → 0.6.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.
package/dist/client.js CHANGED
@@ -56,12 +56,13 @@ const ComposerTrigger = /* @__PURE__ */ (0, react.forwardRef)(function ComposerT
56
56
  });
57
57
  });
58
58
  // ../../tools/ui/src/settings.tsx
59
- /** The rc.5 settings shell has no icon slot, so decorate only the matching navigation rows. */
59
+ /** Decorate matching navigation rows in both the rc.5 and 0.2.2 settings shells. */
60
60
  function installSettingsIcon(id, labels, icon) {
61
61
  const attribute = "data-dsh-settings-icon";
62
62
  const selector = `[${attribute}="${id}"]`;
63
63
  const removeStyles = installStyles(`
64
- ${selector} > svg { display: none; }
64
+ ${selector} > svg,
65
+ ${selector} > [aria-hidden="true"]:not([data-dsh-settings-icon-glyph]) { display: none; }
65
66
  ${typeof icon === "string" ? `${selector}::before { content: ''; display: block; flex: none; width: 16px; height: 16px; background: currentColor; mask: url("data:image/svg+xml,${encodeURIComponent(icon)}") center / contain no-repeat; }` : ""}
66
67
  ${selector} > [data-dsh-settings-icon-glyph] { display: inline-flex; flex: none; }
67
68
  `);
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@ import z from "@deepseek-ai/schemastery";
3
3
  import { clientRequestSchema } from "@deepseek-ai/dsh-client-connection";
4
4
  import { BlockAssembler, ReasoningEffortId, createUserMessage } from "@deepseek-ai/dsh-llm";
5
5
  import { Session, SessionId, appendPluginRecord, pluginRecordOf } from "@deepseek-ai/dsh-session";
6
+ import { SessionPersistenceNotFoundError } from "@deepseek-ai/dsh-session-persistence";
6
7
  import { workspaceDomainState } from "@deepseek-ai/dsh-workspace";
7
8
  // ../../tools/async/src/index.ts
8
9
  function createTaskQueue({ concurrency, maxPending }) {
@@ -640,7 +641,7 @@ function apply(ctx, config) {
640
641
  lifetime.signal,
641
642
  AbortSignal.timeout(6e4)
642
643
  ]);
643
- if (!ctx.workspaceRegistry.archivedSessionIds.includes(sessionId)) return;
644
+ if (!archived.has(sessionId)) return;
644
645
  if ((await ctx.waterfall("workspace/session-activity", { sessionId }, () => Promise.resolve([]))).length) return;
645
646
  const owned = agent.session.snapshotEvents().map(pluginRecordOf).findLast((record) => record?.type === ownershipRecord)?.data;
646
647
  if (!owned || owned.sessionId !== sessionId) return;
@@ -678,7 +679,7 @@ function apply(ctx, config) {
678
679
  await handle.close();
679
680
  }
680
681
  }
681
- if (!ctx.workspaceRegistry.archivedSessionIds.includes(sessionId)) return;
682
+ if (!archived.has(sessionId)) return;
682
683
  await run(agent.session, source, [
683
684
  "worktree",
684
685
  "remove",
@@ -776,8 +777,14 @@ function apply(ctx, config) {
776
777
  ok: true,
777
778
  value: await describe(live.session, operationSignal, live)
778
779
  };
779
- const inspection = await ctx.sessionController.inspect(sessionId, operationSignal);
780
- const session = Session.create(sessionId, inspection.events, inspection.meta, inspection.inheritedEventCount);
780
+ const handle = await ctx.sessionPersistence.open(sessionId, "read", { signal: operationSignal });
781
+ let session;
782
+ try {
783
+ const { events } = await handle.read(void 0, void 0, { signal: operationSignal });
784
+ session = Session.create(sessionId, events, handle.header, handle.inheritedEventCount);
785
+ } finally {
786
+ await handle.close();
787
+ }
781
788
  return {
782
789
  ok: true,
783
790
  value: await describe(session, operationSignal)
@@ -836,7 +843,7 @@ function apply(ctx, config) {
836
843
  };
837
844
  });
838
845
  } catch (error) {
839
- if (!mutation && error && typeof error === "object" && "code" in error && error.code === "session/not-found") return failure("session/not-found");
846
+ if (!mutation && error instanceof SessionPersistenceNotFoundError) return failure("session/not-found");
840
847
  return failure(!mutation && error instanceof Error && error.message === "busy" ? "busy" : "operation_failed");
841
848
  } finally {
842
849
  if (mutation) pending.delete(input.sessionId);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dungsil/dsh-plugin-ui-worktree",
3
- "version": "0.6.0",
3
+ "version": "0.6.1",
4
4
  "description": "Automatically name, create, and enter Git worktrees after sending a task, with setup progress in the conversation.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -25,39 +25,39 @@
25
25
  "access": "public"
26
26
  },
27
27
  "devDependencies": {
28
- "@deepseek-ai/cordis": "4.0.5",
29
- "@deepseek-ai/dsh-agent": "0.2.1-rc.5",
30
- "@deepseek-ai/dsh-agent-loop-testkit": "0.2.1-rc.5",
31
- "@deepseek-ai/dsh-api-session-controller": "0.2.1-rc.5",
32
- "@deepseek-ai/dsh-app-boot": "0.2.1-rc.5",
33
- "@deepseek-ai/dsh-client-connection": "0.2.1-rc.5",
34
- "@deepseek-ai/dsh-client-locale": "0.2.1-rc.5",
35
- "@deepseek-ai/dsh-client-ui-chat": "0.2.1-rc.5",
36
- "@deepseek-ai/dsh-client-ui-conversation": "0.2.1-rc.5",
37
- "@deepseek-ai/dsh-client-ui-renderer": "0.2.1-rc.5",
38
- "@deepseek-ai/dsh-client-ui-session": "0.2.1-rc.5",
39
- "@deepseek-ai/dsh-client-ui-settings": "0.2.1-rc.5",
40
- "@deepseek-ai/dsh-client-ui-slots": "0.2.1-rc.5",
41
- "@deepseek-ai/dsh-config-editor": "0.2.1-rc.5",
42
- "@deepseek-ai/dsh-credentials-local": "0.2.1-rc.5",
43
- "@deepseek-ai/dsh-fs": "0.2.1-rc.5",
44
- "@deepseek-ai/dsh-llm": "0.2.1-rc.5",
45
- "@deepseek-ai/dsh-sandbox": "0.2.1-rc.5",
46
- "@deepseek-ai/dsh-sandbox-local": "0.2.1-rc.5",
47
- "@deepseek-ai/dsh-sandbox-policy": "0.2.1-rc.5",
48
- "@deepseek-ai/dsh-session": "0.2.1-rc.5",
49
- "@deepseek-ai/dsh-session-persistence": "0.2.1-rc.5",
50
- "@deepseek-ai/dsh-session-persistence-jsonl": "0.2.1-rc.5",
51
- "@deepseek-ai/dsh-storage": "0.2.1-rc.5",
52
- "@deepseek-ai/dsh-storage-domain": "0.2.1-rc.5",
53
- "@deepseek-ai/dsh-storage-json": "0.2.1-rc.5",
54
- "@deepseek-ai/dsh-subprocess": "0.2.1-rc.5",
55
- "@deepseek-ai/dsh-subprocess-local": "0.2.1-rc.5",
56
- "@deepseek-ai/dsh-working-directory": "0.2.1-rc.5",
57
- "@deepseek-ai/dsh-workspace": "0.2.1-rc.5",
58
- "@deepseek-ai/schemastery": "~3.18.5",
28
+ "@deepseek-ai/cordis": "4.1.0",
29
+ "@deepseek-ai/dsh-agent": "0.2.2-rc.1",
30
+ "@deepseek-ai/dsh-agent-loop-testkit": "0.2.2-rc.1",
31
+ "@deepseek-ai/dsh-api-session-controller": "0.2.2-rc.1",
32
+ "@deepseek-ai/dsh-app-boot": "0.2.2-rc.1",
33
+ "@deepseek-ai/dsh-client-connection": "0.2.2-rc.1",
34
+ "@deepseek-ai/dsh-client-locale": "0.2.2-rc.1",
35
+ "@deepseek-ai/dsh-client-ui-chat": "0.2.2-rc.1",
36
+ "@deepseek-ai/dsh-client-ui-conversation": "0.2.2-rc.1",
37
+ "@deepseek-ai/dsh-client-ui-renderer": "0.2.2-rc.1",
38
+ "@deepseek-ai/dsh-client-ui-session": "0.2.2-rc.1",
39
+ "@deepseek-ai/dsh-client-ui-settings": "0.2.2-rc.1",
40
+ "@deepseek-ai/dsh-client-ui-slots": "0.2.2-rc.1",
41
+ "@deepseek-ai/dsh-config-editor": "0.2.2-rc.1",
42
+ "@deepseek-ai/dsh-credentials-local": "0.2.2-rc.1",
43
+ "@deepseek-ai/dsh-fs": "0.2.2-rc.1",
44
+ "@deepseek-ai/dsh-llm": "0.2.2-rc.1",
45
+ "@deepseek-ai/dsh-sandbox": "0.2.2-rc.1",
46
+ "@deepseek-ai/dsh-sandbox-local": "0.2.2-rc.1",
47
+ "@deepseek-ai/dsh-sandbox-policy": "0.2.2-rc.1",
48
+ "@deepseek-ai/dsh-session": "0.2.2-rc.1",
49
+ "@deepseek-ai/dsh-session-persistence": "0.2.2-rc.1",
50
+ "@deepseek-ai/dsh-session-persistence-jsonl": "0.2.2-rc.1",
51
+ "@deepseek-ai/dsh-storage": "0.2.2-rc.1",
52
+ "@deepseek-ai/dsh-storage-domain": "0.2.2-rc.1",
53
+ "@deepseek-ai/dsh-storage-json": "0.2.2-rc.1",
54
+ "@deepseek-ai/dsh-subprocess": "0.2.2-rc.1",
55
+ "@deepseek-ai/dsh-subprocess-local": "0.2.2-rc.1",
56
+ "@deepseek-ai/dsh-working-directory": "0.2.2-rc.1",
57
+ "@deepseek-ai/dsh-workspace": "0.2.2-rc.1",
58
+ "@deepseek-ai/schemastery": "3.19.0",
59
59
  "@dungsil/dsh-async": "0.0.0",
60
- "@dungsil/dsh-plugin-model-settings": "0.6.0",
60
+ "@dungsil/dsh-plugin-model-settings": "0.6.1",
61
61
  "@dungsil/dsh-task-prompts": "0.0.0",
62
62
  "@dungsil/dsh-tsconfig": "0.0.0",
63
63
  "@dungsil/dsh-tsdown": "0.0.0",
@@ -68,16 +68,17 @@
68
68
  },
69
69
  "peerDependencies": {
70
70
  "@deepseek-ai/cordis": "^4.0.5",
71
- "@deepseek-ai/dsh-client-connection": "^0.2.1-rc.5",
72
- "@deepseek-ai/dsh-client-ui-primitives": "^0.2.1-rc.5",
73
- "@deepseek-ai/dsh-config-editor": "0.2.1-rc.5",
74
- "@deepseek-ai/dsh-llm": "^0.2.1-rc.5",
75
- "@deepseek-ai/dsh-session": "^0.2.1-rc.5",
76
- "@deepseek-ai/dsh-workspace": "^0.2.1-rc.5",
77
- "@deepseek-ai/schemastery": "~3.18.5"
71
+ "@deepseek-ai/dsh-client-connection": "^0.2.1-rc.5 || ^0.2.2-rc.1",
72
+ "@deepseek-ai/dsh-client-ui-primitives": "^0.2.1-rc.5 || ^0.2.2-rc.1",
73
+ "@deepseek-ai/dsh-config-editor": "0.2.1-rc.5 || ^0.2.2-rc.1",
74
+ "@deepseek-ai/dsh-llm": "^0.2.1-rc.5 || ^0.2.2-rc.1",
75
+ "@deepseek-ai/dsh-session": "^0.2.1-rc.5 || ^0.2.2-rc.1",
76
+ "@deepseek-ai/dsh-session-persistence": "^0.2.1-rc.5 || ^0.2.2-rc.1",
77
+ "@deepseek-ai/dsh-workspace": "^0.2.1-rc.5 || ^0.2.2-rc.1",
78
+ "@deepseek-ai/schemastery": "~3.18.5 || ~3.19.0"
78
79
  },
79
80
  "engines": {
80
- "dsh": "^0.2.1-rc.5",
81
+ "dsh": "^0.2.1-rc.5 || ^0.2.2-rc.1",
81
82
  "node": ">=24.9.0"
82
83
  },
83
84
  "dsh": {