@qilin-agent/client-test-runtime 3.1.6 → 3.1.7

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.
Files changed (2) hide show
  1. package/lib/index.js +9 -3
  2. package/package.json +97 -97
package/lib/index.js CHANGED
@@ -23,7 +23,9 @@ import { EMPTY_CHAT_SNAPSHOT } from "@qilin-agent/client-ui-chat/client";
23
23
  * CSS edits do not churn snapshots.
24
24
  * - `<svg>` internals collapse to a `data-content` fingerprint on the svg
25
25
  * element: path geometry is print noise, but the fingerprint still flips
26
- * when an icon's artwork actually changes.
26
+ * when an icon's artwork actually changes. Instance ids (`useId` gradient
27
+ * and mask names) and their `url(#…)` references are mount-order noise and
28
+ * are stripped before hashing, so the fingerprint moves only with artwork.
27
29
  */
28
30
  /** One scoped class token: `_<local>_<hash>` (local may itself contain underscores). */
29
31
  const SCOPED_CLASS = /^_(.+)_[a-z0-9]+$/;
@@ -31,11 +33,15 @@ const SCOPED_CLASS = /^_(.+)_[a-z0-9]+$/;
31
33
  function normalizeClassValue(value) {
32
34
  return value.split(/\s+/).filter((token) => token !== "").map((token) => token.replace(SCOPED_CLASS, "$1")).join(" ");
33
35
  }
36
+ /** Instance ids and their references: they shift with mount order, not artwork. */
37
+ const SVG_INSTANCE_ID = /\sid="[^"]*"/g;
38
+ const SVG_ID_REFERENCE = /url\(#[^)]*\)/g;
34
39
  /** FNV-1a 32-bit over the svg markup: deterministic, dependency-free fingerprint. */
35
40
  function fingerprint(markup) {
41
+ const stable = markup.replace(SVG_INSTANCE_ID, "").replace(SVG_ID_REFERENCE, "url(#)");
36
42
  let hash = 2166136261;
37
- for (let i = 0; i < markup.length; i++) {
38
- hash ^= markup.charCodeAt(i);
43
+ for (let i = 0; i < stable.length; i++) {
44
+ hash ^= stable.charCodeAt(i);
39
45
  hash = Math.imul(hash, 16777619);
40
46
  }
41
47
  return (hash >>> 0).toString(16).padStart(8, "0");
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@qilin-agent/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": "3.1.6",
4
+ "version": "3.1.7",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -30,33 +30,33 @@
30
30
  "@testing-library/react": "^16.3.2",
31
31
  "js-yaml": "^4.3.2",
32
32
  "vitest": "^4.1.8",
33
- "@qilin-agent/dsh-compat": "3.1.6"
33
+ "@qilin-agent/dsh-compat": "3.1.7"
34
34
  },
35
35
  "peerDependencies": {
36
36
  "react": "^18.2.0",
37
37
  "react-dom": "^18.2.0",
38
38
  "@qilin-agent/kylin": "~4.0.5",
39
39
  "@qilin-agent/kylin-plugin-loader": "~1.0.6",
40
- "@qilin-agent/api-gateway": "3.1.6",
41
- "@qilin-agent/api-session-controller": "3.1.6",
42
- "@qilin-agent/attachment": "3.1.6",
43
- "@qilin-agent/client-connection": "3.1.6",
44
- "@qilin-agent/client-hmr": "3.1.6",
45
- "@qilin-agent/api-workspace-controller": "3.1.6",
46
- "@qilin-agent/client-ui-renderer": "3.1.6",
47
- "@qilin-agent/client-store": "3.1.6",
48
- "@qilin-agent/client-modules": "3.1.6",
49
- "@qilin-agent/client-ui-session": "3.1.6",
50
- "@qilin-agent/client-ui-chat": "3.1.6",
51
- "@qilin-agent/client-ui-conversation": "3.1.6",
52
- "@qilin-agent/client-ui-settings": "3.1.6",
53
40
  "@qilin-agent/kylin-plugin-include": "~1.0.10",
54
- "@qilin-agent/client-ui-slots": "3.1.6",
55
- "@qilin-agent/client-web": "3.1.6",
56
- "@qilin-agent/remote-mock": "3.1.6",
57
- "@qilin-agent/subagent": "3.1.6",
58
- "@qilin-agent/typert-protocol": "3.1.6",
59
- "@qilin-agent/session": "3.1.6"
41
+ "@qilin-agent/api-gateway": "3.1.7",
42
+ "@qilin-agent/api-session-controller": "3.1.7",
43
+ "@qilin-agent/api-workspace-controller": "3.1.7",
44
+ "@qilin-agent/attachment": "3.1.7",
45
+ "@qilin-agent/client-connection": "3.1.7",
46
+ "@qilin-agent/client-hmr": "3.1.7",
47
+ "@qilin-agent/client-store": "3.1.7",
48
+ "@qilin-agent/client-ui-chat": "3.1.7",
49
+ "@qilin-agent/client-ui-conversation": "3.1.7",
50
+ "@qilin-agent/client-modules": "3.1.7",
51
+ "@qilin-agent/client-ui-renderer": "3.1.7",
52
+ "@qilin-agent/client-ui-session": "3.1.7",
53
+ "@qilin-agent/client-ui-slots": "3.1.7",
54
+ "@qilin-agent/client-web": "3.1.7",
55
+ "@qilin-agent/remote-mock": "3.1.7",
56
+ "@qilin-agent/client-ui-settings": "3.1.7",
57
+ "@qilin-agent/session": "3.1.7",
58
+ "@qilin-agent/typert-protocol": "3.1.7",
59
+ "@qilin-agent/subagent": "3.1.7"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@types/js-yaml": "^4.0.9",
@@ -64,85 +64,85 @@
64
64
  "@types/react-dom": "~18.3.0",
65
65
  "react": "^18.2.0",
66
66
  "react-dom": "^18.2.0",
67
- "@qilin-agent/api-gateway": "3.1.6",
68
- "@qilin-agent/api-remote-access": "3.1.6",
69
- "@qilin-agent/api-remotes": "3.1.6",
70
- "@qilin-agent/api-session-controller": "3.1.6",
71
- "@qilin-agent/api-terminal-controller": "3.1.6",
72
- "@qilin-agent/api-workspace-controller": "3.1.6",
73
- "@qilin-agent/api-workspace-files": "3.1.6",
74
- "@qilin-agent/attachment": "3.1.6",
75
- "@qilin-agent/base": "3.1.6",
76
- "@qilin-agent/client-file-upload": "3.1.6",
77
- "@qilin-agent/client-hmr": "3.1.6",
78
- "@qilin-agent/client-connection": "3.1.6",
79
- "@qilin-agent/client-modules": "3.1.6",
80
- "@qilin-agent/client-resources": "3.1.6",
81
- "@qilin-agent/client-store": "3.1.6",
82
- "@qilin-agent/client-locale": "3.1.6",
83
- "@qilin-agent/client-ui-account": "3.1.6",
84
- "@qilin-agent/client-ui-agent-preset": "3.1.6",
85
- "@qilin-agent/client-ui-approval": "3.1.6",
86
- "@qilin-agent/client-ui-brand": "3.1.6",
87
- "@qilin-agent/client-ui-attachment": "3.1.6",
88
- "@qilin-agent/client-ui-chat": "3.1.6",
89
- "@qilin-agent/client-ui-commands": "3.1.6",
90
- "@qilin-agent/client-ui-conversation": "3.1.6",
91
- "@qilin-agent/client-ui-deliverables": "3.1.6",
92
- "@qilin-agent/client-ui-goal": "3.1.6",
93
- "@qilin-agent/client-ui-input-trigger": "3.1.6",
94
- "@qilin-agent/client-ui-jobs": "3.1.6",
95
- "@qilin-agent/client-ui-layout": "3.1.6",
96
- "@qilin-agent/client-ui-message-feedback": "3.1.6",
97
- "@qilin-agent/client-ui-permission-presets": "3.1.6",
98
- "@qilin-agent/client-ui-plan": "3.1.6",
99
- "@qilin-agent/client-ui-kylin": "3.1.6",
100
- "@qilin-agent/client-ui-model-selection": "3.1.6",
101
- "@qilin-agent/client-ui-open-in-app": "3.1.6",
102
- "@qilin-agent/client-ui-plugin-manager": "3.1.6",
103
- "@qilin-agent/client-ui-reference": "3.1.6",
104
- "@qilin-agent/client-ui-session": "3.1.6",
105
- "@qilin-agent/client-ui-schedule": "3.1.6",
106
- "@qilin-agent/client-ui-renderer": "3.1.6",
107
- "@qilin-agent/client-ui-settings-general": "3.1.6",
108
- "@qilin-agent/client-ui-settings-mcp": "3.1.6",
109
- "@qilin-agent/client-ui-settings": "3.1.6",
110
- "@qilin-agent/client-ui-settings-models": "3.1.6",
111
- "@qilin-agent/client-ui-settings-plugins": "3.1.6",
112
- "@qilin-agent/client-ui-settings-plugin-inventory": "3.1.6",
113
- "@qilin-agent/client-ui-sidebar": "3.1.6",
114
- "@qilin-agent/client-ui-settings-unarchive-sessions": "3.1.6",
115
- "@qilin-agent/client-ui-settings-skills": "3.1.6",
116
- "@qilin-agent/client-ui-sidebar-documentpreview": "3.1.6",
117
- "@qilin-agent/client-ui-sidebar-browser": "3.1.6",
118
- "@qilin-agent/client-ui-sidebar-files": "3.1.6",
119
- "@qilin-agent/client-ui-sidebar-plans": "3.1.6",
120
- "@qilin-agent/client-ui-sidebar-tasks": "3.1.6",
121
- "@qilin-agent/client-ui-sidebar-terminal": "3.1.6",
122
- "@qilin-agent/client-ui-sidebar-right": "3.1.6",
123
- "@qilin-agent/client-ui-slots": "3.1.6",
124
- "@qilin-agent/client-ui-skill": "3.1.6",
125
- "@qilin-agent/client-ui-theme": "3.1.6",
126
- "@qilin-agent/client-ui-theme-brand": "3.1.6",
127
- "@qilin-agent/client-ui-tool": "3.1.6",
128
- "@qilin-agent/client-ui-subagent": "3.1.6",
129
- "@qilin-agent/client-ui-trajectory": "3.1.6",
130
- "@qilin-agent/client-ui-workflow-run": "3.1.6",
131
- "@qilin-agent/client-ui-user-questions": "3.1.6",
132
- "@qilin-agent/client-ui-workspace": "3.1.6",
133
- "@qilin-agent/client-web": "3.1.6",
67
+ "@qilin-agent/api-remote-access": "3.1.7",
68
+ "@qilin-agent/api-terminal-controller": "3.1.7",
69
+ "@qilin-agent/api-gateway": "3.1.7",
70
+ "@qilin-agent/api-session-controller": "3.1.7",
71
+ "@qilin-agent/api-remotes": "3.1.7",
72
+ "@qilin-agent/api-workspace-controller": "3.1.7",
73
+ "@qilin-agent/attachment": "3.1.7",
74
+ "@qilin-agent/client-connection": "3.1.7",
75
+ "@qilin-agent/api-workspace-files": "3.1.7",
76
+ "@qilin-agent/client-file-upload": "3.1.7",
77
+ "@qilin-agent/client-hmr": "3.1.7",
78
+ "@qilin-agent/client-locale": "3.1.7",
79
+ "@qilin-agent/client-modules": "3.1.7",
80
+ "@qilin-agent/client-resources": "3.1.7",
81
+ "@qilin-agent/base": "3.1.7",
82
+ "@qilin-agent/client-store": "3.1.7",
83
+ "@qilin-agent/client-ui-agent-preset": "3.1.7",
84
+ "@qilin-agent/client-ui-account": "3.1.7",
85
+ "@qilin-agent/client-ui-attachment": "3.1.7",
86
+ "@qilin-agent/client-ui-brand": "3.1.7",
87
+ "@qilin-agent/client-ui-approval": "3.1.7",
88
+ "@qilin-agent/client-ui-chat": "3.1.7",
89
+ "@qilin-agent/client-ui-conversation": "3.1.7",
90
+ "@qilin-agent/client-ui-commands": "3.1.7",
91
+ "@qilin-agent/client-ui-deliverables": "3.1.7",
92
+ "@qilin-agent/client-ui-goal": "3.1.7",
93
+ "@qilin-agent/client-ui-input-trigger": "3.1.7",
94
+ "@qilin-agent/client-ui-kylin": "3.1.7",
95
+ "@qilin-agent/client-ui-model-selection": "3.1.7",
96
+ "@qilin-agent/client-ui-layout": "3.1.7",
97
+ "@qilin-agent/client-ui-open-in-app": "3.1.7",
98
+ "@qilin-agent/client-ui-permission-presets": "3.1.7",
99
+ "@qilin-agent/client-ui-message-feedback": "3.1.7",
100
+ "@qilin-agent/client-ui-plugin-manager": "3.1.7",
101
+ "@qilin-agent/client-ui-plan": "3.1.7",
102
+ "@qilin-agent/client-ui-reference": "3.1.7",
103
+ "@qilin-agent/client-ui-renderer": "3.1.7",
104
+ "@qilin-agent/client-ui-jobs": "3.1.7",
105
+ "@qilin-agent/client-ui-session": "3.1.7",
106
+ "@qilin-agent/client-ui-settings": "3.1.7",
107
+ "@qilin-agent/client-ui-settings-general": "3.1.7",
108
+ "@qilin-agent/client-ui-settings-models": "3.1.7",
109
+ "@qilin-agent/client-ui-settings-mcp": "3.1.7",
110
+ "@qilin-agent/client-ui-settings-unarchive-sessions": "3.1.7",
111
+ "@qilin-agent/client-ui-settings-plugin-inventory": "3.1.7",
112
+ "@qilin-agent/client-ui-sidebar": "3.1.7",
113
+ "@qilin-agent/client-ui-sidebar-browser": "3.1.7",
114
+ "@qilin-agent/client-ui-sidebar-documentpreview": "3.1.7",
115
+ "@qilin-agent/client-ui-settings-skills": "3.1.7",
116
+ "@qilin-agent/client-ui-schedule": "3.1.7",
117
+ "@qilin-agent/client-ui-sidebar-plans": "3.1.7",
118
+ "@qilin-agent/client-ui-sidebar-files": "3.1.7",
119
+ "@qilin-agent/client-ui-sidebar-right": "3.1.7",
120
+ "@qilin-agent/client-ui-sidebar-tasks": "3.1.7",
121
+ "@qilin-agent/client-ui-sidebar-terminal": "3.1.7",
122
+ "@qilin-agent/client-ui-skill": "3.1.7",
123
+ "@qilin-agent/client-ui-slots": "3.1.7",
124
+ "@qilin-agent/client-ui-theme-brand": "3.1.7",
125
+ "@qilin-agent/client-ui-settings-plugins": "3.1.7",
126
+ "@qilin-agent/client-ui-subagent": "3.1.7",
127
+ "@qilin-agent/client-ui-theme": "3.1.7",
128
+ "@qilin-agent/client-ui-tool": "3.1.7",
129
+ "@qilin-agent/client-ui-trajectory": "3.1.7",
130
+ "@qilin-agent/client-ui-user-questions": "3.1.7",
131
+ "@qilin-agent/client-ui-workflow-run": "3.1.7",
132
+ "@qilin-agent/client-ui-workspace": "3.1.7",
133
+ "@qilin-agent/client-web": "3.1.7",
134
134
  "@qilin-agent/kylin": "~4.0.5",
135
- "@qilin-agent/kylin-client-runner": "3.1.6",
135
+ "@qilin-agent/kylin-client-runner": "3.1.7",
136
136
  "@qilin-agent/kylin-plugin-include": "~1.0.10",
137
137
  "@qilin-agent/kylin-plugin-loader": "~1.0.6",
138
- "@qilin-agent/remote-mock": "3.1.6",
139
- "@qilin-agent/session-log-export": "3.1.6",
140
- "@qilin-agent/session": "3.1.6",
141
- "@qilin-agent/settings": "3.1.6",
142
- "@qilin-agent/typert-protocol": "3.1.6",
143
- "@qilin-agent/subagent": "3.1.6",
144
- "@qilin-agent/web-app": "3.1.6",
145
- "@qilin-agent/typert-registry": "3.1.6"
138
+ "@qilin-agent/session": "3.1.7",
139
+ "@qilin-agent/session-log-export": "3.1.7",
140
+ "@qilin-agent/remote-mock": "3.1.7",
141
+ "@qilin-agent/subagent": "3.1.7",
142
+ "@qilin-agent/typert-protocol": "3.1.7",
143
+ "@qilin-agent/settings": "3.1.7",
144
+ "@qilin-agent/web-app": "3.1.7",
145
+ "@qilin-agent/typert-registry": "3.1.7"
146
146
  },
147
147
  "files": [
148
148
  "lib/index.js",