@deepseek-ai/dsh-client-test-runtime 0.2.0-rc.2 → 0.2.1-alpha.2

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/README.i18n.yaml CHANGED
@@ -18,8 +18,8 @@
18
18
  en: 12afbb217bc06678
19
19
  zh: c07f001ed8bb3300
20
20
  /deepseek-ai-dsh-client-test-runtime/use-this-package/setting-up-a-feature-spec:
21
- en: db486a54e1ff92ca
22
- zh: b7cbb4078eedce4e
21
+ en: e78bc5e3adf2ff44
22
+ zh: 480cd66637d92047
23
23
  /deepseek-ai-dsh-client-test-runtime/use-this-package/local-dom-snapshots:
24
24
  en: 1abbbed6cc4cf57b
25
25
  zh: ab3975178b589653
@@ -45,8 +45,8 @@
45
45
  en: 3264640018c1a0e8
46
46
  zh: d777e0b8ad8b602f
47
47
  /deepseek-ai-dsh-client-test-runtime/understand-the-implementation/source-map:
48
- en: 1c38acf76aef7251
49
- zh: 6c104a965263f443
48
+ en: b77fd15bc12265db
49
+ zh: 1a14b6999978b72a
50
50
  /deepseek-ai-dsh-client-test-runtime/understand-the-implementation/lifecycle:
51
51
  en: b42779f364504719
52
52
  zh: a10bad7ea1161388
package/README.md CHANGED
@@ -46,7 +46,7 @@ await runtime.dispose()
46
46
 
47
47
  The optional render options select a keyed entry with `entryKey` or a list item with `only`; `view.update(owner)` retains that selection. `runtime.panelInfo` supplies the default `usePanelInfo` source with no global panel selected. Release it with `releasePanelInfoSource()` before mounting the production Layout owner. `dispose()` releases both default Workspace and panel-info root sources; early release is idempotent and does not remove replacement owners.
48
48
 
49
- The Session fixture resolves subagent addresses from explicitly supplied addresses or loaded parent projections without retaining a Session generation.
49
+ The Session fixture resolves subagent addresses from explicitly supplied addresses or loaded parent projections without retaining a Session generation. External catalog entries have no local browsing address.
50
50
 
51
51
  ### Local DOM snapshots
52
52
 
@@ -135,7 +135,6 @@ The bench copies no production logic: it mounts the production `SlotRegistry`, p
135
135
  | [`src/assembly/remote-default-responses.ts`](src/assembly/remote-default-responses.ts) | `remoteDefaultResponses`: default responses of the Remote endpoints the roster calls at boot |
136
136
  | [`src/assembly/remote-proxies.ts`](src/assembly/remote-proxies.ts) | Contract-free `remote.<ns>` proxies over the Connection: `remoteNamespacesOf`, `remoteProxiesPlugin` |
137
137
  | [`src/assembly/bundle-roster.ts`](src/assembly/bundle-roster.ts) | `bundleRoster` and `webApp`: the browser roster read from bundle patch files with the include plugin's own schema and patch application |
138
- | — | No runtime invariant companion is published; this test-support package owns no production event stream or mutable data — it assembles the runtime SlotRegistry and renderer (whose packages own their invariants) around test doubles; its own behavior is exercised by its package tests. |
139
138
 
140
139
  ### Lifecycle
141
140
 
package/README.zh.md CHANGED
@@ -46,7 +46,7 @@ await runtime.dispose()
46
46
 
47
47
  可选渲染参数通过 `entryKey` 选择 keyed 条目,或通过 `only` 选择 list 条目;`view.update(owner)` 保留该选择。`runtime.panelInfo` 提供默认的 `usePanelInfo` 数据源,初始不选中全局面板。挂载生产 Layout 所有者之前,先调用 `releasePanelInfoSource()` 释放该数据源。`dispose()` 同时释放默认的工作区与面板信息根数据源;提前释放是幂等的,不会移除替代它们的所有者。
48
48
 
49
- Session fixture 从显式提供的地址或已加载的父级投影解析子代理地址,不会保留 Session generation。
49
+ Session fixture 从显式提供的地址或已加载的父级投影解析子代理地址,不会保留 Session generation。外部目录项没有本地浏览地址。
50
50
 
51
51
  ### 局部 DOM 快照
52
52
 
@@ -135,7 +135,6 @@ test('registers into the sidebar', async ({ remote, start }) => {
135
135
  | [`src/assembly/remote-default-responses.ts`](src/assembly/remote-default-responses.ts) | `remoteDefaultResponses`:roster 启动期 Remote 端点的默认响应 |
136
136
  | [`src/assembly/remote-proxies.ts`](src/assembly/remote-proxies.ts) | 经 Connection 的无契约 `remote.<ns>` 代理:`remoteNamespacesOf`、`remoteProxiesPlugin` |
137
137
  | [`src/assembly/bundle-roster.ts`](src/assembly/bundle-roster.ts) | `bundleRoster` 与 `webApp`:用 include 插件自己的 schema 与补丁应用从 bundle 补丁文件读出浏览器 roster |
138
- | — | 不发布运行时不变式伴生入口;本测试支持包不拥有生产事件流或可变数据,而是围绕测试替身组装生产 SlotRegistry 与渲染器。所挂载的生产包拥有各自的不变式,本包行为由本包测试检验。 |
139
138
 
140
139
  ### 生命周期
141
140
 
package/lib/index.js CHANGED
@@ -745,7 +745,7 @@ var TestSessions = class {
745
745
  if (retained !== void 0) return retained;
746
746
  for (const [parentSessionId, projections] of Object.entries(this.list.getSnapshot().projectionsBySession)) {
747
747
  const child = projections.values.subagentCatalog?.find((entry) => entry.id === id);
748
- if (child !== void 0) return {
748
+ if (child !== void 0 && child.mode !== "external") return {
749
749
  parentSessionId,
750
750
  childSessionId: id,
751
751
  mode: child.mode
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-client-test-runtime",
3
3
  "description": "Browser test runtimes: a jsdom slot bench with test-owned Session and Workspace doubles, and a whole-client tier that boots the web roster through the production bootClient over an endpoint-named Remote mock",
4
- "version": "0.2.0-rc.2",
4
+ "version": "0.2.1-alpha.2",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -24,70 +24,70 @@
24
24
  "license": "MIT",
25
25
  "dependencies": {
26
26
  "@testing-library/dom": "^10.4.1",
27
- "@testing-library/react": "^16.3.2",
28
- "js-yaml": "^4.2.0",
29
- "vitest": "^4.1.8"
27
+ "@testing-library/react": "^16.3.3",
28
+ "js-yaml": "^4.3.2",
29
+ "vitest": "^4.1.11"
30
30
  },
31
31
  "peerDependencies": {
32
+ "@deepseek-ai/cordis": "~4.0.5-alpha.1",
33
+ "@deepseek-ai/cordis-plugin-include": "~1.0.10-alpha.1",
34
+ "@deepseek-ai/cordis-plugin-loader": "~1.0.6-alpha.1",
35
+ "@deepseek-ai/dsh-api-gateway": "0.2.1-alpha.2",
36
+ "@deepseek-ai/dsh-api-session-controller": "0.2.1-alpha.2",
37
+ "@deepseek-ai/dsh-api-workspace-controller": "0.2.1-alpha.2",
38
+ "@deepseek-ai/dsh-attachment": "0.2.1-alpha.2",
39
+ "@deepseek-ai/dsh-client-connection": "0.2.1-alpha.2",
40
+ "@deepseek-ai/dsh-client-hmr": "0.2.1-alpha.2",
41
+ "@deepseek-ai/dsh-client-modules": "0.2.1-alpha.2",
42
+ "@deepseek-ai/dsh-client-store": "0.2.1-alpha.2",
43
+ "@deepseek-ai/dsh-client-ui-chat": "0.2.1-alpha.2",
44
+ "@deepseek-ai/dsh-client-ui-conversation": "0.2.1-alpha.2",
45
+ "@deepseek-ai/dsh-client-ui-renderer": "0.2.1-alpha.2",
46
+ "@deepseek-ai/dsh-client-ui-session": "0.2.1-alpha.2",
47
+ "@deepseek-ai/dsh-client-ui-settings": "0.2.1-alpha.2",
48
+ "@deepseek-ai/dsh-client-ui-slots": "0.2.1-alpha.2",
49
+ "@deepseek-ai/dsh-client-web": "0.2.1-alpha.2",
50
+ "@deepseek-ai/dsh-remote-mock": "0.2.1-alpha.2",
51
+ "@deepseek-ai/dsh-session": "0.2.1-alpha.2",
52
+ "@deepseek-ai/dsh-subagent": "0.2.1-alpha.2",
53
+ "@deepseek-ai/dsh-typert-protocol": "0.2.1-alpha.2",
32
54
  "react": "^18.2.0",
33
- "react-dom": "^18.2.0",
34
- "@deepseek-ai/cordis": "~4.0.4",
35
- "@deepseek-ai/cordis-plugin-include": "~1.0.9",
36
- "@deepseek-ai/cordis-plugin-loader": "~1.0.5",
37
- "@deepseek-ai/dsh-api-gateway": "0.2.0-rc.2",
38
- "@deepseek-ai/dsh-api-session-controller": "0.2.0-rc.2",
39
- "@deepseek-ai/dsh-api-workspace-controller": "0.2.0-rc.2",
40
- "@deepseek-ai/dsh-attachment": "0.2.0-rc.2",
41
- "@deepseek-ai/dsh-client-connection": "0.2.0-rc.2",
42
- "@deepseek-ai/dsh-client-modules": "0.2.0-rc.2",
43
- "@deepseek-ai/dsh-client-hmr": "0.2.0-rc.2",
44
- "@deepseek-ai/dsh-client-store": "0.2.0-rc.2",
45
- "@deepseek-ai/dsh-client-ui-chat": "0.2.0-rc.2",
46
- "@deepseek-ai/dsh-client-ui-conversation": "0.2.0-rc.2",
47
- "@deepseek-ai/dsh-client-ui-renderer": "0.2.0-rc.2",
48
- "@deepseek-ai/dsh-client-ui-slots": "0.2.0-rc.2",
49
- "@deepseek-ai/dsh-client-web": "0.2.0-rc.2",
50
- "@deepseek-ai/dsh-remote-mock": "0.2.0-rc.2",
51
- "@deepseek-ai/dsh-session": "0.2.0-rc.2",
52
- "@deepseek-ai/dsh-subagent": "0.2.0-rc.2",
53
- "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.2",
54
- "@deepseek-ai/dsh-client-ui-settings": "0.2.0-rc.2",
55
- "@deepseek-ai/dsh-client-ui-session": "0.2.0-rc.2"
55
+ "react-dom": "^18.2.0"
56
56
  },
57
57
  "devDependencies": {
58
+ "@deepseek-ai/cordis": "~4.0.5-alpha.1",
59
+ "@deepseek-ai/cordis-plugin-include": "~1.0.10-alpha.1",
60
+ "@deepseek-ai/cordis-plugin-loader": "~1.0.6-alpha.1",
61
+ "@deepseek-ai/dsh-api-gateway": "0.2.1-alpha.2",
62
+ "@deepseek-ai/dsh-api-remotes": "0.2.1-alpha.2",
63
+ "@deepseek-ai/dsh-api-session-controller": "0.2.1-alpha.2",
64
+ "@deepseek-ai/dsh-api-workspace-controller": "0.2.1-alpha.2",
65
+ "@deepseek-ai/dsh-attachment": "0.2.1-alpha.2",
66
+ "@deepseek-ai/dsh-base": "0.2.1-alpha.2",
67
+ "@deepseek-ai/dsh-client-connection": "0.2.1-alpha.2",
68
+ "@deepseek-ai/dsh-client-hmr": "0.2.1-alpha.2",
69
+ "@deepseek-ai/dsh-client-locale": "0.2.1-alpha.2",
70
+ "@deepseek-ai/dsh-client-modules": "0.2.1-alpha.2",
71
+ "@deepseek-ai/dsh-client-store": "0.2.1-alpha.2",
72
+ "@deepseek-ai/dsh-client-ui-chat": "0.2.1-alpha.2",
73
+ "@deepseek-ai/dsh-client-ui-conversation": "0.2.1-alpha.2",
74
+ "@deepseek-ai/dsh-client-ui-layout": "0.2.1-alpha.2",
75
+ "@deepseek-ai/dsh-client-ui-renderer": "0.2.1-alpha.2",
76
+ "@deepseek-ai/dsh-client-ui-session": "0.2.1-alpha.2",
77
+ "@deepseek-ai/dsh-client-ui-settings": "0.2.1-alpha.2",
78
+ "@deepseek-ai/dsh-client-ui-slots": "0.2.1-alpha.2",
79
+ "@deepseek-ai/dsh-client-web": "0.2.1-alpha.2",
80
+ "@deepseek-ai/dsh-remote-mock": "0.2.1-alpha.2",
81
+ "@deepseek-ai/dsh-session": "0.2.1-alpha.2",
82
+ "@deepseek-ai/dsh-settings": "0.2.1-alpha.2",
83
+ "@deepseek-ai/dsh-subagent": "0.2.1-alpha.2",
84
+ "@deepseek-ai/dsh-typert-protocol": "0.2.1-alpha.2",
85
+ "@deepseek-ai/dsh-web-app": "0.2.1-alpha.2",
58
86
  "@types/js-yaml": "^4.0.9",
59
87
  "@types/react": "~18.3.1",
60
88
  "@types/react-dom": "~18.3.0",
61
89
  "react": "^18.2.0",
62
- "react-dom": "^18.2.0",
63
- "@deepseek-ai/cordis": "~4.0.4",
64
- "@deepseek-ai/cordis-plugin-include": "~1.0.9",
65
- "@deepseek-ai/cordis-plugin-loader": "~1.0.5",
66
- "@deepseek-ai/dsh-api-gateway": "0.2.0-rc.2",
67
- "@deepseek-ai/dsh-api-remotes": "0.2.0-rc.2",
68
- "@deepseek-ai/dsh-api-session-controller": "0.2.0-rc.2",
69
- "@deepseek-ai/dsh-api-workspace-controller": "0.2.0-rc.2",
70
- "@deepseek-ai/dsh-base": "0.2.0-rc.2",
71
- "@deepseek-ai/dsh-client-connection": "0.2.0-rc.2",
72
- "@deepseek-ai/dsh-attachment": "0.2.0-rc.2",
73
- "@deepseek-ai/dsh-client-hmr": "0.2.0-rc.2",
74
- "@deepseek-ai/dsh-client-locale": "0.2.0-rc.2",
75
- "@deepseek-ai/dsh-client-modules": "0.2.0-rc.2",
76
- "@deepseek-ai/dsh-client-store": "0.2.0-rc.2",
77
- "@deepseek-ai/dsh-client-ui-chat": "0.2.0-rc.2",
78
- "@deepseek-ai/dsh-client-ui-conversation": "0.2.0-rc.2",
79
- "@deepseek-ai/dsh-client-ui-layout": "0.2.0-rc.2",
80
- "@deepseek-ai/dsh-client-ui-renderer": "0.2.0-rc.2",
81
- "@deepseek-ai/dsh-client-ui-session": "0.2.0-rc.2",
82
- "@deepseek-ai/dsh-client-ui-settings": "0.2.0-rc.2",
83
- "@deepseek-ai/dsh-client-web": "0.2.0-rc.2",
84
- "@deepseek-ai/dsh-remote-mock": "0.2.0-rc.2",
85
- "@deepseek-ai/dsh-client-ui-slots": "0.2.0-rc.2",
86
- "@deepseek-ai/dsh-session": "0.2.0-rc.2",
87
- "@deepseek-ai/dsh-settings": "0.2.0-rc.2",
88
- "@deepseek-ai/dsh-subagent": "0.2.0-rc.2",
89
- "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.2",
90
- "@deepseek-ai/dsh-web-app": "0.2.0-rc.2"
90
+ "react-dom": "^18.2.0"
91
91
  },
92
92
  "files": [
93
93
  "lib/index.js",