@microi.net/cli 5.8.7 → 5.8.8

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.
@@ -5,13 +5,13 @@
5
5
  "url": "https://microi.net"
6
6
  },
7
7
  "description": "Microi吾码官方 AI 插件市场",
8
- "version": "5.8.7",
8
+ "version": "5.8.8",
9
9
  "plugins": [
10
10
  {
11
11
  "name": "microi",
12
12
  "source": ".",
13
13
  "description": "Microi吾码 AI 开发插件:服务器连接、Skills、MCP、V8 全量同步与低代码交付",
14
- "version": "5.8.7",
14
+ "version": "5.8.8",
15
15
  "strict": true
16
16
  }
17
17
  ]
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "microi",
3
- "version": "5.8.7",
3
+ "version": "5.8.8",
4
4
  "description": "Microi吾码 AI 开发插件:服务器连接、Skills、MCP、V8 全量同步与低代码交付",
5
5
  "author": {
6
6
  "name": "Microi.Net",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "microi",
3
- "version": "5.8.7",
3
+ "version": "5.8.8",
4
4
  "description": "Microi吾码低代码平台的 Codex 开发插件,共享 VS Code/CLI 的连接、同步、MCP、V8 与交付能力。",
5
5
  "author": {
6
6
  "name": "Microi.Net",
@@ -5,13 +5,13 @@
5
5
  "url": "https://microi.net"
6
6
  },
7
7
  "description": "Microi吾码官方 AI 插件市场",
8
- "version": "5.8.7",
8
+ "version": "5.8.8",
9
9
  "plugins": [
10
10
  {
11
11
  "name": "microi",
12
12
  "source": ".",
13
13
  "description": "Microi吾码 AI 开发插件:服务器连接、Skills、MCP、V8 全量同步与低代码交付",
14
- "version": "5.8.7",
14
+ "version": "5.8.8",
15
15
  "strict": true
16
16
  }
17
17
  ]
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "microi",
3
- "version": "5.8.7",
3
+ "version": "5.8.8",
4
4
  "description": "Microi吾码 AI 开发插件:服务器连接、Skills、MCP、V8 全量同步与低代码交付",
5
5
  "author": {
6
6
  "name": "Microi.Net",
@@ -1,6 +1,6 @@
1
1
  {
2
- "builtAt": "2026-10-09T09:19:55.359Z",
3
- "version": "5.8.7",
2
+ "builtAt": "2026-10-09T17:52:05.032Z",
3
+ "version": "5.8.8",
4
4
  "sourceProducts": [
5
5
  "vscode-extension",
6
6
  "microi-cli",
@@ -14,6 +14,6 @@
14
14
  "cli": "622493d51fe81db1aae5e823384c79b663b889b3dd7028f5753a43d3f02d68f1",
15
15
  "router": "761b54007451348da5f6491245635c15c33663cae6c1811005839bc2312886e2",
16
16
  "broker": "fffe3a7bbbc0c842d69c2eda09a0490ce0055a060f56d6a6d6230046e8952749",
17
- "dshBundle": "38bf1546e29a3623b368428803cd94060bbfccfff3062a032946e6919fee58bc"
17
+ "dshBundle": "6dd03a134e1c1963629e4c157c46e00b6ce04e4bfaf8db295b3e8a8b7f37ef0e"
18
18
  }
19
19
  }
package/cordis.patch.yml CHANGED
@@ -7,7 +7,7 @@
7
7
  serverName: microi
8
8
  transport: stdio
9
9
  command: !!js process.execPath
10
- args: ["-e","/*\n * DeepSeek Harness 通过 profile bundle 加载此 `node -e` 引导脚本。\n * DSH 不保证 MCP 子进程 cwd 位于 npm 包根,因此按 DSH_HOME/profile 定位\n * 当前版本的 @microi.net/cli,再复用 Codex 同源适配器与多连接路由器。\n */\nconst fs = require('node:fs');\nconst os = require('node:os');\nconst path = require('node:path');\nconst packageName = '@microi.net/cli';\nconst expectedVersion = '5.8.7';\n\nfunction readJson(filePath) {\n try { return JSON.parse(fs.readFileSync(filePath, 'utf8')); }\n catch { return undefined; }\n}\n\nfunction expandHome(value) {\n if (value === '~') return os.homedir();\n if (value.startsWith('~/') || value.startsWith('~\\\\')) return path.join(os.homedir(), value.slice(2));\n return value;\n}\n\nfunction validRoot(value) {\n const root = path.resolve(value);\n const pkg = readJson(path.join(root, 'package.json'));\n const patch = path.join(root, 'cordis.patch.yml');\n const adapter = path.join(root, 'scripts', 'mcp-codex-stdio-adapter.js');\n const router = path.join(root, 'scripts', 'microi-codex-router.js');\n if (pkg?.name !== packageName || pkg?.version !== expectedVersion) return undefined;\n if (pkg?.dsh?.bundle?.patch !== './cordis.patch.yml') return undefined;\n if (![patch, adapter, router].every(filePath => fs.existsSync(filePath))) return undefined;\n return { root: fs.realpathSync(root), adapter, router, modifiedAt: fs.statSync(router).mtimeMs };\n}\n\nfunction findPlugin() {\n const explicit = String(process.env.MICROI_DSH_PLUGIN_ROOT || '').trim();\n if (explicit) {\n const plugin = validRoot(explicit);\n if (!plugin) throw new Error(`MICROI_DSH_PLUGIN_ROOT 不是版本 ${expectedVersion} 的有效 Microi DSH bundle:${explicit}`);\n return plugin;\n }\n const configuredHome = String(process.env.DSH_HOME || '').trim();\n const dshHome = path.resolve(expandHome(configuredHome || path.join(os.homedir(), '.dsh')));\n const profilesRoot = path.join(dshHome, 'profiles');\n const candidates = [];\n if (fs.existsSync(profilesRoot)) {\n for (const entry of fs.readdirSync(profilesRoot, { withFileTypes: true })) {\n if (!entry.isDirectory() || entry.name === 'node_modules') continue;\n const root = path.join(profilesRoot, entry.name, 'node_modules', '@microi.net', 'cli');\n const plugin = validRoot(root);\n if (plugin) candidates.push(plugin);\n }\n }\n candidates.sort((left, right) => right.modifiedAt - left.modifiedAt);\n if (!candidates[0]) throw new Error(`未在 ${profilesRoot} 找到版本 ${expectedVersion} 的 ${packageName}`);\n return candidates[0];\n}\n\ntry {\n const plugin = findPlugin();\n process.env.MICROI_DSH_PLUGIN_ROOT = plugin.root;\n process.env.MICROI_CODEX_PLUGIN_ROOT = plugin.root;\n process.env.MICROI_TOOL_SOURCE = 'dsh';\n process.env.MICROI_TOOL_VERSION = expectedVersion;\n process.env.MICROI_WORKSPACE_ROOT = process.env.MICROI_WORKSPACE_ROOT || process.cwd();\n process.argv[2] = plugin.router;\n require(plugin.adapter);\n} catch (error) {\n console.error(`[microi-dsh-bootstrap] ${error instanceof Error ? error.message : String(error)}`);\n process.exit(1);\n}\n"]
10
+ args: ["-e","/*\n * DeepSeek Harness 通过 profile bundle 加载此 `node -e` 引导脚本。\n * DSH 不保证 MCP 子进程 cwd 位于 npm 包根,因此按 DSH_HOME/profile 定位\n * 当前版本的 @microi.net/cli,再复用 Codex 同源适配器与多连接路由器。\n */\nconst fs = require('node:fs');\nconst os = require('node:os');\nconst path = require('node:path');\nconst packageName = '@microi.net/cli';\nconst expectedVersion = '5.8.8';\n\nfunction readJson(filePath) {\n try { return JSON.parse(fs.readFileSync(filePath, 'utf8')); }\n catch { return undefined; }\n}\n\nfunction expandHome(value) {\n if (value === '~') return os.homedir();\n if (value.startsWith('~/') || value.startsWith('~\\\\')) return path.join(os.homedir(), value.slice(2));\n return value;\n}\n\nfunction validRoot(value) {\n const root = path.resolve(value);\n const pkg = readJson(path.join(root, 'package.json'));\n const patch = path.join(root, 'cordis.patch.yml');\n const adapter = path.join(root, 'scripts', 'mcp-codex-stdio-adapter.js');\n const router = path.join(root, 'scripts', 'microi-codex-router.js');\n if (pkg?.name !== packageName || pkg?.version !== expectedVersion) return undefined;\n if (pkg?.dsh?.bundle?.patch !== './cordis.patch.yml') return undefined;\n if (![patch, adapter, router].every(filePath => fs.existsSync(filePath))) return undefined;\n return { root: fs.realpathSync(root), adapter, router, modifiedAt: fs.statSync(router).mtimeMs };\n}\n\nfunction findPlugin() {\n const explicit = String(process.env.MICROI_DSH_PLUGIN_ROOT || '').trim();\n if (explicit) {\n const plugin = validRoot(explicit);\n if (!plugin) throw new Error(`MICROI_DSH_PLUGIN_ROOT 不是版本 ${expectedVersion} 的有效 Microi DSH bundle:${explicit}`);\n return plugin;\n }\n const configuredHome = String(process.env.DSH_HOME || '').trim();\n const dshHome = path.resolve(expandHome(configuredHome || path.join(os.homedir(), '.dsh')));\n const profilesRoot = path.join(dshHome, 'profiles');\n const candidates = [];\n if (fs.existsSync(profilesRoot)) {\n for (const entry of fs.readdirSync(profilesRoot, { withFileTypes: true })) {\n if (!entry.isDirectory() || entry.name === 'node_modules') continue;\n const root = path.join(profilesRoot, entry.name, 'node_modules', '@microi.net', 'cli');\n const plugin = validRoot(root);\n if (plugin) candidates.push(plugin);\n }\n }\n candidates.sort((left, right) => right.modifiedAt - left.modifiedAt);\n if (!candidates[0]) throw new Error(`未在 ${profilesRoot} 找到版本 ${expectedVersion} 的 ${packageName}`);\n return candidates[0];\n}\n\ntry {\n const plugin = findPlugin();\n process.env.MICROI_DSH_PLUGIN_ROOT = plugin.root;\n process.env.MICROI_CODEX_PLUGIN_ROOT = plugin.root;\n process.env.MICROI_TOOL_SOURCE = 'dsh';\n process.env.MICROI_TOOL_VERSION = expectedVersion;\n process.env.MICROI_WORKSPACE_ROOT = process.env.MICROI_WORKSPACE_ROOT || process.cwd();\n process.argv[2] = plugin.router;\n require(plugin.adapter);\n} catch (error) {\n console.error(`[microi-dsh-bootstrap] ${error instanceof Error ? error.message : String(error)}`);\n process.exit(1);\n}\n"]
11
11
  env:
12
12
  MICROI_TOOL_SOURCE: dsh
13
13
  cwd: !!js process.cwd()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microi.net/cli",
3
- "version": "5.8.7",
3
+ "version": "5.8.8",
4
4
  "description": "Microi吾码 AI 开发 CLI 与多宿主 Plugin:服务器连接、Skills、MCP、V8 同步和低代码交付",
5
5
  "license": "MIT",
6
6
  "homepage": "https://microi.net/doc/v8-engine/vs-code-plugin.html",
@@ -1,13 +1,13 @@
1
1
  {
2
- "builtAt": "2026-10-09T09:19:53.864Z",
2
+ "builtAt": "2026-10-09T17:52:04.328Z",
3
3
  "source": "../microi.skills",
4
4
  "extension": {
5
5
  "name": "v8-engine",
6
- "version": "5.8.7",
6
+ "version": "5.8.8",
7
7
  "publisher": "Microi"
8
8
  },
9
9
  "skills": {
10
- "version": "5.8.7",
10
+ "version": "5.8.8",
11
11
  "versionRule": "Microi version uses three numeric parts. Each publish increments the last part; when a part exceeds 9 it carries to the previous part: 1.0.9 -> 1.1.0, 1.9.9 -> 2.0.0.",
12
12
  "managedBy": "Microi.Agent/bump-version.js"
13
13
  },
@@ -15,11 +15,11 @@
15
15
  "dir": "dist/microi.skills",
16
16
  "files": 190,
17
17
  "skills": 68,
18
- "bytes": 2731383
18
+ "bytes": 2732150
19
19
  },
20
20
  "fileHashes": {
21
- ".microi-skills-version.json": "6995d715d2309a399cb899745aa2d8fccf0a6d652da573e97eecd9b64fbc747e",
22
- ".progressive-disclosure-manifest.json": "8f025984fcfa9afd589a44e59df375cea0df004a8103d7c13bb5d02ba23d7138",
21
+ ".microi-skills-version.json": "5923d3025e3f78c03a7bd1d96833fd2654fc419fec389fb31778003bba992019",
22
+ ".progressive-disclosure-manifest.json": "e6d5f93c46d7164705c270867bddb2bb792eb7c9fa608ab4f555ed49c14e0de3",
23
23
  "README.md": "6ce107cd7d640b485df2ac4c0dd64b8f3280138ec25091a68d2524f4de07a6dc",
24
24
  "ai-engine/SKILL.md": "b09ccf9e1dc08d2ca3cbf9e7d091d07bc4794b8d60ebfe959ba61aaefdc8d34b",
25
25
  "ai-engine/agents/openai.yaml": "40deb07801006a46b9a7f0020d13251955eeadd04c8e591160210479936f8b5b",
@@ -45,7 +45,7 @@
45
45
  "microi-ai-application/SKILL.md": "90f722c0133f1cb85172c670a01d9268c85c129cfe7231d26d306d63b5b5b075",
46
46
  "microi-ai-application/agents/openai.yaml": "8cfacaa0f628d645d3c66166cdd8a3028451d2bc638d3fddf3578df07cfaa9ed",
47
47
  "microi-ai-application/references/frontend-baseline.md": "7b376f95167325cda0d865f72e9a5c8184a916bb020bc5eea307a21289ee9609",
48
- "microi-client-frontend/SKILL.md": "bdf929ca8afe146f36dc9ea7722e8a5232f44e25e6ff85555794d0482e0be55b",
48
+ "microi-client-frontend/SKILL.md": "6a3567a02a1c4394b5d5328dc7d691757a241f5662e662cfc148f41ab282d92b",
49
49
  "microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "0178136c6675568a7423cd4eb936975a8a917a0d9faddbdcfede1611d61d3805",
50
50
  "microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "34146739fc4b58ad9b9015ed84fd7fb2a56f2fb8206c912ab69e17b894a2db70",
51
51
  "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "06671fa6c8b1b1b488031fc0b3eea13895e87ff6b5137538f850ee9b676c9d83",
@@ -210,196 +210,196 @@
210
210
  "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "0198aa10b45031b8b5092f2602cb4802f89919c81f16756a05e4a3ccad3d3d30"
211
211
  },
212
212
  "fileVersions": {
213
- ".microi-skills-version.json": "5.8.7",
214
- ".progressive-disclosure-manifest.json": "5.8.7",
215
- "README.md": "5.8.7",
216
- "ai-engine/SKILL.md": "5.8.7",
217
- "ai-engine/agents/openai.yaml": "5.8.7",
218
- "ai-engine/references/ai-employees.md": "5.8.7",
219
- "ai-engine/references/self-hosted-digital-human.md": "5.8.7",
220
- "ai-platform-governance/SKILL.md": "5.8.7",
221
- "ai-platform-governance/references/progressive-01-功能开关.md": "5.8.7",
222
- "app-store/SKILL.md": "5.8.7",
223
- "app-store/agents/openai.yaml": "5.8.7",
224
- "business-blueprint/SKILL.md": "5.8.7",
225
- "datasource-engine/SKILL.md": "5.8.7",
226
- "datasource-engine/agents/openai.yaml": "5.8.7",
227
- "dos-orm/SKILL.md": "5.8.7",
228
- "dos-orm/references/api-reference.md": "5.8.7",
229
- "email-engine/SKILL.md": "5.8.7",
230
- "email-engine/references/v8-email.md": "5.8.7",
231
- "job-engine/SKILL.md": "5.8.7",
232
- "job-engine/agents/openai.yaml": "5.8.7",
233
- "message-notification/SKILL.md": "5.8.7",
234
- "message-notification/agents/openai.yaml": "5.8.7",
235
- "message-notification/references/contracts.md": "5.8.7",
236
- "microi-ai-app-auth.js": "5.8.7",
237
- "microi-ai-application/SKILL.md": "5.8.7",
238
- "microi-ai-application/agents/openai.yaml": "5.8.7",
239
- "microi-ai-application/references/frontend-baseline.md": "5.8.7",
240
- "microi-client-frontend/SKILL.md": "5.8.7",
241
- "microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "5.8.7",
242
- "microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "5.8.7",
243
- "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "5.8.7",
244
- "microi-codex-installer/SKILL.md": "5.8.7",
245
- "microi-codex-installer/agents/openai.yaml": "5.8.7",
246
- "microi-codex/SKILL.md": "5.8.7",
247
- "microi-datasource-mapping/SKILL.md": "5.8.7",
248
- "microi-db-schema/SKILL.md": "5.8.7",
249
- "microi-db-schema/agents/openai.yaml": "5.8.7",
250
- "microi-db-schema/references/core-tables.md": "5.8.7",
251
- "microi-db-schema/references/form-component-options.md": "5.8.7",
252
- "microi-db-schema/references/schema-overview.md": "5.8.7",
253
- "microi-db-schema/references/schema.md": "5.8.7",
254
- "microi-db-schema/references/table-catalog.md": "5.8.7",
255
- "microi-deployment/SKILL.md": "5.8.7",
256
- "microi-deployment/references/deployment-matrix.md": "5.8.7",
257
- "microi-docs-coverage/SKILL.md": "5.8.7",
258
- "microi-docs-coverage/references/capability-map.md": "5.8.7",
259
- "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "5.8.7",
260
- "microi-form-engine/SKILL.md": "5.8.7",
261
- "microi-form-engine/references/component-catalog.md": "5.8.7",
262
- "microi-form-engine/references/data-source-events.md": "5.8.7",
263
- "microi-form-layout/SKILL.md": "5.8.7",
264
- "microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "5.8.7",
265
- "microi-frontend-sdk/SKILL.md": "5.8.7",
266
- "microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "5.8.7",
267
- "microi-left-right-layout/SKILL.md": "5.8.7",
268
- "microi-microservice/SKILL.md": "5.8.7",
269
- "microi-microservice/references/runtime-delivery.md": "5.8.7",
270
- "microi-mobile-app-quality/SKILL.md": "5.8.7",
271
- "microi-mobile-app-quality/references/progressive-01-4-重要按钮必须带图标.md": "5.8.7",
272
- "microi-mobile-app-quality/references/progressive-02-9-主题切换必须真实且全局生效.md": "5.8.7",
273
- "microi-solution-quotation/SKILL.md": "5.8.7",
274
- "microi-solution-quotation/agents/openai.yaml": "5.8.7",
275
- "microi-solution-quotation/scripts/build_solution_quote.py": "5.8.7",
276
- "microi-sso/SKILL.md": "5.8.7",
277
- "microi-sso/references/acceptance.md": "5.8.7",
278
- "microi-sso/references/configuration-and-security.md": "5.8.7",
279
- "microi-sso/references/inbound.md": "5.8.7",
280
- "microi-sso/references/outbound.md": "5.8.7",
281
- "microi-system-delivery/SKILL.md": "5.8.7",
282
- "microi-system-delivery/references/progressive-01-标准工作流.md": "5.8.7",
283
- "microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md": "5.8.7",
284
- "microi-ui/SKILL.md": "5.8.7",
285
- "microi-ui/references/progressive-01-移动端场景蓝图.md": "5.8.7",
286
- "microi-uniapp-frontend/SKILL.md": "5.8.7",
287
- "microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "5.8.7",
288
- "microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "5.8.7",
289
- "microi.v8.js": "5.8.7",
290
- "microi/SKILL.md": "5.8.7",
291
- "module-engine/SKILL.md": "5.8.7",
292
- "module-engine/references/module-config.md": "5.8.7",
293
- "ocr-engine/SKILL.md": "5.8.7",
294
- "ocr-engine/agents/openai.yaml": "5.8.7",
295
- "page-engine/SKILL.md": "5.8.7",
296
- "page-engine/examples/compact-dashboard.json": "5.8.7",
297
- "page-engine/references/progressive-01-所有组件类型.md": "5.8.7",
298
- "page-engine/references/progressive-02-版本历史-并发保存与回滚.md": "5.8.7",
299
- "performance-testing/SKILL.md": "5.8.7",
300
- "playwright-e2e/SKILL.md": "5.8.7",
301
- "playwright-e2e/references/progressive-01-全自动登录-免验证码-但不免密码-必读.md": "5.8.7",
302
- "playwright-e2e/references/progressive-02-文字对比度与可读性自动化检查-必做.md": "5.8.7",
303
- "playwright-e2e/references/progressive-03-microi-helper-模板.md": "5.8.7",
304
- "playwright-e2e/references/progressive-04-ci-建议.md": "5.8.7",
305
- "print-engine/SKILL.md": "5.8.7",
306
- "production-readonly-audit/SKILL.md": "5.8.7",
307
- "report-engine/SKILL.md": "5.8.7",
308
- "report-engine/agents/openai.yaml": "5.8.7",
309
- "scripts/optimize-progressive-disclosure.mjs": "5.8.7",
310
- "scripts/refresh-progressive-disclosure.mjs": "5.8.7",
311
- "scripts/sync-embedded-skills.mjs": "5.8.7",
312
- "scripts/validate-progressive-disclosure.mjs": "5.8.7",
313
- "search-engine/SKILL.md": "5.8.7",
314
- "search-engine/agents/openai.yaml": "5.8.7",
315
- "spider-engine/SKILL.md": "5.8.7",
316
- "system-observability/SKILL.md": "5.8.7",
317
- "system-observability/references/memory-incident-triage.md": "5.8.7",
318
- "translate-engine/SKILL.md": "5.8.7",
319
- "translate-engine/agents/openai.yaml": "5.8.7",
320
- "ui-design/SKILL.md": "5.8.7",
321
- "ui-design/assets/pattern-showcase/app.js": "5.8.7",
322
- "ui-design/assets/pattern-showcase/index.html": "5.8.7",
323
- "ui-design/assets/pattern-showcase/styles.css": "5.8.7",
324
- "ui-design/assets/templates/MCI-DESIGN.md": "5.8.7",
325
- "ui-design/references/design-pattern-library.md": "5.8.7",
326
- "ui-design/references/mci-design-contract.md": "5.8.7",
327
- "ui-design/references/motion-and-media.md": "5.8.7",
328
- "ui-design/references/product-flow-recipes.md": "5.8.7",
329
- "ui-design/references/progressive-01-颜色体系-css-variables-支持主题切换.md": "5.8.7",
330
- "ui-design/references/progressive-02-字体.md": "5.8.7",
331
- "ui-design/references/progressive-03-动效规范-丰富但不卡.md": "5.8.7",
332
- "ui-design/references/progressive-04-组件风格速查.md": "5.8.7",
333
- "ui-design/references/progressive-05-移动端专用规范.md": "5.8.7",
334
- "ui-design/references/progressive-06-主题切换实现.md": "5.8.7",
335
- "ui-design/references/progressive-07-速查-从头搭建一个移动端页面.md": "5.8.7",
336
- "ui-design/references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md": "5.8.7",
337
- "uniapp-mall-assets/SKILL.md": "5.8.7",
338
- "unity-integration/SKILL.md": "5.8.7",
339
- "unity-integration/agents/openai.yaml": "5.8.7",
340
- "unity-integration/references/ai-app-delivery.md": "5.8.7",
341
- "unity-integration/references/sdk-api.md": "5.8.7",
342
- "unity-integration/references/toolbox-migration.md": "5.8.7",
343
- "unity-integration/references/webgl-hosting.md": "5.8.7",
344
- "v8-api-config/SKILL.md": "5.8.7",
345
- "v8-cache-pattern/SKILL.md": "5.8.7",
346
- "v8-crud-api/SKILL.md": "5.8.7",
347
- "v8-crud-api/references/progressive-01-查询列表-分页.md": "5.8.7",
348
- "v8-crud-api/references/progressive-02-where-条件语法速查.md": "5.8.7",
349
- "v8-debugging/SKILL.md": "5.8.7",
350
- "v8-explorer-tree/SKILL.md": "5.8.7",
351
- "v8-export-import/SKILL.md": "5.8.7",
352
- "v8-export-import/references/progressive-01-excellayout-高级自由布局.md": "5.8.7",
353
- "v8-export-import/references/progressive-02-powerpoint-导出.md": "5.8.7",
354
- "v8-export-import/references/progressive-03-安全-性能注意.md": "5.8.7",
355
- "v8-file-upload/SKILL.md": "5.8.7",
356
- "v8-file-upload/references/progressive-01-公有桶-vs-私有桶.md": "5.8.7",
357
- "v8-file-upload/references/progressive-02-office-文件在线编辑版本号规则.md": "5.8.7",
358
- "v8-formengine-http/SKILL.md": "5.8.7",
359
- "v8-frontend-events/SKILL.md": "5.8.7",
360
- "v8-frontend-events/references/bluetooth-print-api.md": "5.8.7",
361
- "v8-frontend-events/references/bluetooth-print.md": "5.8.7",
362
- "v8-frontend-events/references/progressive-01-列表事件.md": "5.8.7",
363
- "v8-http-integration/SKILL.md": "5.8.7",
364
- "v8-http-integration/references/progressive-01-get-请求.md": "5.8.7",
365
- "v8-http-integration/references/progressive-02-错误处理模式.md": "5.8.7",
366
- "v8-image-processing/SKILL.md": "5.8.7",
367
- "v8-image-processing/agents/openai.yaml": "5.8.7",
368
- "v8-image-processing/references/api-reference.md": "5.8.7",
369
- "v8-menu-buttons/SKILL.md": "5.8.7",
370
- "v8-menu-buttons/references/progressive-01-2-按钮对象-schema.md": "5.8.7",
371
- "v8-menu-buttons/references/progressive-02-8-模式-f-后台任务按钮-长任务.md": "5.8.7",
372
- "v8-menu-buttons/references/progressive-03-10-反模式-避免.md": "5.8.7",
373
- "v8-mongodb/SKILL.md": "5.8.7",
374
- "v8-mq-mqtt/SKILL.md": "5.8.7",
375
- "v8-mq-mqtt/references/mqtt-production.md": "5.8.7",
376
- "v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "5.8.7",
377
- "v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "5.8.7",
378
- "v8-saas-multi-tenant/SKILL.md": "5.8.7",
379
- "v8-security/SKILL.md": "5.8.7",
380
- "v8-security/references/progressive-01-2-权限校验.md": "5.8.7",
381
- "v8-security/references/progressive-02-7-日志记录.md": "5.8.7",
382
- "v8-sql-query/SKILL.md": "5.8.7",
383
- "v8-table-event/SKILL.md": "5.8.7",
384
- "v8-table-event/references/progressive-01-informv8-js-表单打开事件.md": "5.8.7",
385
- "v8-table-event/references/progressive-02-前端事件名-v8-eventname-可能的值.md": "5.8.7",
386
- "v8-tcp-integration/SKILL.md": "5.8.7",
387
- "v8-tcp-integration/agents/openai.yaml": "5.8.7",
388
- "v8-template-engine/SKILL.md": "5.8.7",
389
- "v8-utilities/SKILL.md": "5.8.7",
390
- "v8-utilities/references/client-api-index.md": "5.8.7",
391
- "v8-utilities/references/platform-http-routes.md": "5.8.7",
392
- "v8-utilities/references/server-api-index.md": "5.8.7",
393
- "v8-workflow/SKILL.md": "5.8.7",
394
- "v8-workflow/references/progressive-01-节点开始-v8-事件.md": "5.8.7",
395
- "v8-workflow/references/workflow-configuration.md": "5.8.7",
396
- "vision-engine/SKILL.md": "5.8.7",
397
- "vision-engine/agents/openai.yaml": "5.8.7",
398
- "vision-engine/references/architecture-and-acceptance.md": "5.8.7",
399
- "workspace-conventions/SKILL.md": "5.8.7",
400
- "workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "5.8.7",
401
- "workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md": "5.8.7",
402
- "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "5.8.7"
213
+ ".microi-skills-version.json": "5.8.8",
214
+ ".progressive-disclosure-manifest.json": "5.8.8",
215
+ "README.md": "5.8.8",
216
+ "ai-engine/SKILL.md": "5.8.8",
217
+ "ai-engine/agents/openai.yaml": "5.8.8",
218
+ "ai-engine/references/ai-employees.md": "5.8.8",
219
+ "ai-engine/references/self-hosted-digital-human.md": "5.8.8",
220
+ "ai-platform-governance/SKILL.md": "5.8.8",
221
+ "ai-platform-governance/references/progressive-01-功能开关.md": "5.8.8",
222
+ "app-store/SKILL.md": "5.8.8",
223
+ "app-store/agents/openai.yaml": "5.8.8",
224
+ "business-blueprint/SKILL.md": "5.8.8",
225
+ "datasource-engine/SKILL.md": "5.8.8",
226
+ "datasource-engine/agents/openai.yaml": "5.8.8",
227
+ "dos-orm/SKILL.md": "5.8.8",
228
+ "dos-orm/references/api-reference.md": "5.8.8",
229
+ "email-engine/SKILL.md": "5.8.8",
230
+ "email-engine/references/v8-email.md": "5.8.8",
231
+ "job-engine/SKILL.md": "5.8.8",
232
+ "job-engine/agents/openai.yaml": "5.8.8",
233
+ "message-notification/SKILL.md": "5.8.8",
234
+ "message-notification/agents/openai.yaml": "5.8.8",
235
+ "message-notification/references/contracts.md": "5.8.8",
236
+ "microi-ai-app-auth.js": "5.8.8",
237
+ "microi-ai-application/SKILL.md": "5.8.8",
238
+ "microi-ai-application/agents/openai.yaml": "5.8.8",
239
+ "microi-ai-application/references/frontend-baseline.md": "5.8.8",
240
+ "microi-client-frontend/SKILL.md": "5.8.8",
241
+ "microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "5.8.8",
242
+ "microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "5.8.8",
243
+ "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "5.8.8",
244
+ "microi-codex-installer/SKILL.md": "5.8.8",
245
+ "microi-codex-installer/agents/openai.yaml": "5.8.8",
246
+ "microi-codex/SKILL.md": "5.8.8",
247
+ "microi-datasource-mapping/SKILL.md": "5.8.8",
248
+ "microi-db-schema/SKILL.md": "5.8.8",
249
+ "microi-db-schema/agents/openai.yaml": "5.8.8",
250
+ "microi-db-schema/references/core-tables.md": "5.8.8",
251
+ "microi-db-schema/references/form-component-options.md": "5.8.8",
252
+ "microi-db-schema/references/schema-overview.md": "5.8.8",
253
+ "microi-db-schema/references/schema.md": "5.8.8",
254
+ "microi-db-schema/references/table-catalog.md": "5.8.8",
255
+ "microi-deployment/SKILL.md": "5.8.8",
256
+ "microi-deployment/references/deployment-matrix.md": "5.8.8",
257
+ "microi-docs-coverage/SKILL.md": "5.8.8",
258
+ "microi-docs-coverage/references/capability-map.md": "5.8.8",
259
+ "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "5.8.8",
260
+ "microi-form-engine/SKILL.md": "5.8.8",
261
+ "microi-form-engine/references/component-catalog.md": "5.8.8",
262
+ "microi-form-engine/references/data-source-events.md": "5.8.8",
263
+ "microi-form-layout/SKILL.md": "5.8.8",
264
+ "microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "5.8.8",
265
+ "microi-frontend-sdk/SKILL.md": "5.8.8",
266
+ "microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "5.8.8",
267
+ "microi-left-right-layout/SKILL.md": "5.8.8",
268
+ "microi-microservice/SKILL.md": "5.8.8",
269
+ "microi-microservice/references/runtime-delivery.md": "5.8.8",
270
+ "microi-mobile-app-quality/SKILL.md": "5.8.8",
271
+ "microi-mobile-app-quality/references/progressive-01-4-重要按钮必须带图标.md": "5.8.8",
272
+ "microi-mobile-app-quality/references/progressive-02-9-主题切换必须真实且全局生效.md": "5.8.8",
273
+ "microi-solution-quotation/SKILL.md": "5.8.8",
274
+ "microi-solution-quotation/agents/openai.yaml": "5.8.8",
275
+ "microi-solution-quotation/scripts/build_solution_quote.py": "5.8.8",
276
+ "microi-sso/SKILL.md": "5.8.8",
277
+ "microi-sso/references/acceptance.md": "5.8.8",
278
+ "microi-sso/references/configuration-and-security.md": "5.8.8",
279
+ "microi-sso/references/inbound.md": "5.8.8",
280
+ "microi-sso/references/outbound.md": "5.8.8",
281
+ "microi-system-delivery/SKILL.md": "5.8.8",
282
+ "microi-system-delivery/references/progressive-01-标准工作流.md": "5.8.8",
283
+ "microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md": "5.8.8",
284
+ "microi-ui/SKILL.md": "5.8.8",
285
+ "microi-ui/references/progressive-01-移动端场景蓝图.md": "5.8.8",
286
+ "microi-uniapp-frontend/SKILL.md": "5.8.8",
287
+ "microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "5.8.8",
288
+ "microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "5.8.8",
289
+ "microi.v8.js": "5.8.8",
290
+ "microi/SKILL.md": "5.8.8",
291
+ "module-engine/SKILL.md": "5.8.8",
292
+ "module-engine/references/module-config.md": "5.8.8",
293
+ "ocr-engine/SKILL.md": "5.8.8",
294
+ "ocr-engine/agents/openai.yaml": "5.8.8",
295
+ "page-engine/SKILL.md": "5.8.8",
296
+ "page-engine/examples/compact-dashboard.json": "5.8.8",
297
+ "page-engine/references/progressive-01-所有组件类型.md": "5.8.8",
298
+ "page-engine/references/progressive-02-版本历史-并发保存与回滚.md": "5.8.8",
299
+ "performance-testing/SKILL.md": "5.8.8",
300
+ "playwright-e2e/SKILL.md": "5.8.8",
301
+ "playwright-e2e/references/progressive-01-全自动登录-免验证码-但不免密码-必读.md": "5.8.8",
302
+ "playwright-e2e/references/progressive-02-文字对比度与可读性自动化检查-必做.md": "5.8.8",
303
+ "playwright-e2e/references/progressive-03-microi-helper-模板.md": "5.8.8",
304
+ "playwright-e2e/references/progressive-04-ci-建议.md": "5.8.8",
305
+ "print-engine/SKILL.md": "5.8.8",
306
+ "production-readonly-audit/SKILL.md": "5.8.8",
307
+ "report-engine/SKILL.md": "5.8.8",
308
+ "report-engine/agents/openai.yaml": "5.8.8",
309
+ "scripts/optimize-progressive-disclosure.mjs": "5.8.8",
310
+ "scripts/refresh-progressive-disclosure.mjs": "5.8.8",
311
+ "scripts/sync-embedded-skills.mjs": "5.8.8",
312
+ "scripts/validate-progressive-disclosure.mjs": "5.8.8",
313
+ "search-engine/SKILL.md": "5.8.8",
314
+ "search-engine/agents/openai.yaml": "5.8.8",
315
+ "spider-engine/SKILL.md": "5.8.8",
316
+ "system-observability/SKILL.md": "5.8.8",
317
+ "system-observability/references/memory-incident-triage.md": "5.8.8",
318
+ "translate-engine/SKILL.md": "5.8.8",
319
+ "translate-engine/agents/openai.yaml": "5.8.8",
320
+ "ui-design/SKILL.md": "5.8.8",
321
+ "ui-design/assets/pattern-showcase/app.js": "5.8.8",
322
+ "ui-design/assets/pattern-showcase/index.html": "5.8.8",
323
+ "ui-design/assets/pattern-showcase/styles.css": "5.8.8",
324
+ "ui-design/assets/templates/MCI-DESIGN.md": "5.8.8",
325
+ "ui-design/references/design-pattern-library.md": "5.8.8",
326
+ "ui-design/references/mci-design-contract.md": "5.8.8",
327
+ "ui-design/references/motion-and-media.md": "5.8.8",
328
+ "ui-design/references/product-flow-recipes.md": "5.8.8",
329
+ "ui-design/references/progressive-01-颜色体系-css-variables-支持主题切换.md": "5.8.8",
330
+ "ui-design/references/progressive-02-字体.md": "5.8.8",
331
+ "ui-design/references/progressive-03-动效规范-丰富但不卡.md": "5.8.8",
332
+ "ui-design/references/progressive-04-组件风格速查.md": "5.8.8",
333
+ "ui-design/references/progressive-05-移动端专用规范.md": "5.8.8",
334
+ "ui-design/references/progressive-06-主题切换实现.md": "5.8.8",
335
+ "ui-design/references/progressive-07-速查-从头搭建一个移动端页面.md": "5.8.8",
336
+ "ui-design/references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md": "5.8.8",
337
+ "uniapp-mall-assets/SKILL.md": "5.8.8",
338
+ "unity-integration/SKILL.md": "5.8.8",
339
+ "unity-integration/agents/openai.yaml": "5.8.8",
340
+ "unity-integration/references/ai-app-delivery.md": "5.8.8",
341
+ "unity-integration/references/sdk-api.md": "5.8.8",
342
+ "unity-integration/references/toolbox-migration.md": "5.8.8",
343
+ "unity-integration/references/webgl-hosting.md": "5.8.8",
344
+ "v8-api-config/SKILL.md": "5.8.8",
345
+ "v8-cache-pattern/SKILL.md": "5.8.8",
346
+ "v8-crud-api/SKILL.md": "5.8.8",
347
+ "v8-crud-api/references/progressive-01-查询列表-分页.md": "5.8.8",
348
+ "v8-crud-api/references/progressive-02-where-条件语法速查.md": "5.8.8",
349
+ "v8-debugging/SKILL.md": "5.8.8",
350
+ "v8-explorer-tree/SKILL.md": "5.8.8",
351
+ "v8-export-import/SKILL.md": "5.8.8",
352
+ "v8-export-import/references/progressive-01-excellayout-高级自由布局.md": "5.8.8",
353
+ "v8-export-import/references/progressive-02-powerpoint-导出.md": "5.8.8",
354
+ "v8-export-import/references/progressive-03-安全-性能注意.md": "5.8.8",
355
+ "v8-file-upload/SKILL.md": "5.8.8",
356
+ "v8-file-upload/references/progressive-01-公有桶-vs-私有桶.md": "5.8.8",
357
+ "v8-file-upload/references/progressive-02-office-文件在线编辑版本号规则.md": "5.8.8",
358
+ "v8-formengine-http/SKILL.md": "5.8.8",
359
+ "v8-frontend-events/SKILL.md": "5.8.8",
360
+ "v8-frontend-events/references/bluetooth-print-api.md": "5.8.8",
361
+ "v8-frontend-events/references/bluetooth-print.md": "5.8.8",
362
+ "v8-frontend-events/references/progressive-01-列表事件.md": "5.8.8",
363
+ "v8-http-integration/SKILL.md": "5.8.8",
364
+ "v8-http-integration/references/progressive-01-get-请求.md": "5.8.8",
365
+ "v8-http-integration/references/progressive-02-错误处理模式.md": "5.8.8",
366
+ "v8-image-processing/SKILL.md": "5.8.8",
367
+ "v8-image-processing/agents/openai.yaml": "5.8.8",
368
+ "v8-image-processing/references/api-reference.md": "5.8.8",
369
+ "v8-menu-buttons/SKILL.md": "5.8.8",
370
+ "v8-menu-buttons/references/progressive-01-2-按钮对象-schema.md": "5.8.8",
371
+ "v8-menu-buttons/references/progressive-02-8-模式-f-后台任务按钮-长任务.md": "5.8.8",
372
+ "v8-menu-buttons/references/progressive-03-10-反模式-避免.md": "5.8.8",
373
+ "v8-mongodb/SKILL.md": "5.8.8",
374
+ "v8-mq-mqtt/SKILL.md": "5.8.8",
375
+ "v8-mq-mqtt/references/mqtt-production.md": "5.8.8",
376
+ "v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "5.8.8",
377
+ "v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "5.8.8",
378
+ "v8-saas-multi-tenant/SKILL.md": "5.8.8",
379
+ "v8-security/SKILL.md": "5.8.8",
380
+ "v8-security/references/progressive-01-2-权限校验.md": "5.8.8",
381
+ "v8-security/references/progressive-02-7-日志记录.md": "5.8.8",
382
+ "v8-sql-query/SKILL.md": "5.8.8",
383
+ "v8-table-event/SKILL.md": "5.8.8",
384
+ "v8-table-event/references/progressive-01-informv8-js-表单打开事件.md": "5.8.8",
385
+ "v8-table-event/references/progressive-02-前端事件名-v8-eventname-可能的值.md": "5.8.8",
386
+ "v8-tcp-integration/SKILL.md": "5.8.8",
387
+ "v8-tcp-integration/agents/openai.yaml": "5.8.8",
388
+ "v8-template-engine/SKILL.md": "5.8.8",
389
+ "v8-utilities/SKILL.md": "5.8.8",
390
+ "v8-utilities/references/client-api-index.md": "5.8.8",
391
+ "v8-utilities/references/platform-http-routes.md": "5.8.8",
392
+ "v8-utilities/references/server-api-index.md": "5.8.8",
393
+ "v8-workflow/SKILL.md": "5.8.8",
394
+ "v8-workflow/references/progressive-01-节点开始-v8-事件.md": "5.8.8",
395
+ "v8-workflow/references/workflow-configuration.md": "5.8.8",
396
+ "vision-engine/SKILL.md": "5.8.8",
397
+ "vision-engine/agents/openai.yaml": "5.8.8",
398
+ "vision-engine/references/architecture-and-acceptance.md": "5.8.8",
399
+ "workspace-conventions/SKILL.md": "5.8.8",
400
+ "workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "5.8.8",
401
+ "workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md": "5.8.8",
402
+ "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "5.8.8"
403
403
  },
404
404
  "files": [
405
405
  ".microi-skills-version.json",
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "5.8.7",
2
+ "version": "5.8.8",
3
3
  "versionRule": "Microi version uses three numeric parts. Each publish increments the last part; when a part exceeds 9 it carries to the previous part: 1.0.9 -> 1.1.0, 1.9.9 -> 2.0.0.",
4
4
  "managedBy": "Microi.Agent/bump-version.js",
5
- "updatedAt": "2026-10-09T09:03:46.132Z"
5
+ "updatedAt": "2026-10-09T17:50:10.621Z"
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 1,
3
- "generatedAt": "2026-10-09T08:51:18.683Z",
3
+ "generatedAt": "2026-10-09T17:35:16.591Z",
4
4
  "policy": {
5
5
  "maxEntryLines": 285,
6
6
  "referenceBudgetLines": 245,
@@ -169,11 +169,11 @@
169
169
  ]
170
170
  },
171
171
  "microi-client-frontend": {
172
- "originalSha256": "1f3a51de28c43b0467e23c3a4edc003a9cef10943699a0a1b61a7d81ada355a7",
173
- "originalLines": 705,
172
+ "originalSha256": "6196ee7f5b4530ce410d8e7c3f349b6ccf265331d59e83de0f7cb24863604d61",
173
+ "originalLines": 706,
174
174
  "prefixSha256": "9c59063f7561713a30d5433fcaba7d9976b790758634f2a95bf827f251d7da4a",
175
175
  "prefixBytes": 1415,
176
- "entryLines": 247,
176
+ "entryLines": 248,
177
177
  "chunks": [
178
178
  {
179
179
  "id": "microi-client-frontend-000",
@@ -195,8 +195,8 @@
195
195
  "id": "microi-client-frontend-002",
196
196
  "ordinal": 2,
197
197
  "destination": "microi-client-frontend/SKILL.md",
198
- "sha256": "a8b2f0a24201e9ae8312e3b7b48f53f826c4bc56e6be4d00a3fc5992d89235c5",
199
- "lines": 111,
198
+ "sha256": "bcb1222e9884f134d9902ed4937e6cb2753e5d3ed37096229efd99646320a4bc",
199
+ "lines": 112,
200
200
  "heading": "2. 表单引擎三层结构"
201
201
  },
202
202
  {
@@ -58,7 +58,7 @@ description: Microi.Client 源码架构指南。用于修改 Microi.Client Vue
58
58
  ---
59
59
 
60
60
  <!-- /microi-progressive:chunk -->
61
- <!-- microi-progressive:chunk id=microi-client-frontend-002 sha256=a8b2f0a24201e9ae8312e3b7b48f53f826c4bc56e6be4d00a3fc5992d89235c5 -->
61
+ <!-- microi-progressive:chunk id=microi-client-frontend-002 sha256=bcb1222e9884f134d9902ed4937e6cb2753e5d3ed37096229efd99646320a4bc -->
62
62
  ## 2. 表单引擎三层结构
63
63
 
64
64
  ### 模块级跨端视图
@@ -165,7 +165,8 @@ description: Microi.Client 源码架构指南。用于修改 Microi.Client Vue
165
165
  - 主题色、浅色/深色、菜单子级展开方式等需要“换设备仍生效”的选择必须保存到当前 DiyToken 用户的 `sys_user` 白名单字段;`localStorage` 只作为未安装新字段租户和匿名启动阶段的兼容回退,不能作为跨设备事实源。
166
166
  - 已安装用户偏好字段时优先级固定为“当前用户显式值 → 租户 `sys_config` → 平台安全默认”;个人菜单值 `System` 表示继承租户配置。不得让上一位用户的浏览器本地主题覆盖下一位已登录用户。
167
167
  - 自助保存优先使用官方 `Managed` 接口引擎,由 `V8.CurrentUser.Id` 与 `V8.OsClient` 推导用户和租户,并在服务端构造固定白名单更新对象;接口参数禁止决定目标 Id/OsClient,也禁止写入 Account、Phone、Tenant、Dept、Role、Level、State、Pwd、认证因子和登录审计字段。只有缺少可复用可信原子能力时才新增 C# DTO/端点。保存成功后调用 `V8.Method.RefreshLoginUser` 刷新登录缓存,并让微服务宿主重新同步 `CurrentUser`。
168
- - 右上角即时切换可以乐观应用并短防抖保存;远端保存失败时保留当前设备效果并明确提示。个人中心和右上角必须调用同一个应用包交付的白名单接口引擎(当前为 `platform-user-update-preferences`),不能分别形成两套字段、枚举或优先级。
168
+ - 右上角即时切换可以乐观应用并短防抖保存;远端保存失败时保留当前设备效果并明确提示。个人中心和右上角必须调用同一个应用包交付的白名单接口引擎(当前为 `platform-user-update-preferences`),不能分别形成两套字段、枚举或优先级。
169
+ - 导航切入或退出 `TopSide` 会重建顶栏组件;卸载前必须发送尚未保存的偏好,在途请求与后续选择共用按 store、API 地址、租户、账号和登录会话隔离的运行时队列。新顶栏继承失败状态和重试数据,旧响应不能覆盖更新的选择或跨账号合并队列;标准续签保留 `MicroiSessionId` 时也保留最终待保存选择,计算属性显式依赖 Pinia.Token。JWT 解码仅用于本地队列归属,服务端仍通过标准 DiyToken 验证授权;不得将会话凭据写入偏好存储、日志或响应。使用真实 Vue computed 和组件生命周期回归 `theme-select-autosave-lifecycle.spec.mjs` 验证卸载、在途合并、失败重试、续签及账号/租户/会话切换。
169
170
 
170
171
  ---
171
172