@microi.net/cli 5.0.0 → 5.0.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.
@@ -1,13 +1,13 @@
1
1
  {
2
- "builtAt": "2026-08-13T11:59:59.992Z",
2
+ "builtAt": "2026-08-13T12:51:19.721Z",
3
3
  "source": "../microi.skills",
4
4
  "extension": {
5
5
  "name": "v8-engine",
6
- "version": "5.0.0",
6
+ "version": "5.0.1",
7
7
  "publisher": "Microi"
8
8
  },
9
9
  "skills": {
10
- "version": "5.0.0",
10
+ "version": "5.0.1",
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.VSCode/bump-version.js"
13
13
  },
@@ -15,11 +15,11 @@
15
15
  "dir": "dist/microi.skills",
16
16
  "files": 170,
17
17
  "skills": 62,
18
- "bytes": 2049800
18
+ "bytes": 2056310
19
19
  },
20
20
  "fileHashes": {
21
- ".microi-skills-version.json": "d5eb75c7244d68ee245645c5c28762906f947ca83518ea21c00d69ef17d5de08",
22
- ".progressive-disclosure-manifest.json": "c0b3640cb5837e3123dc46caae6dd8e73dc2155defbb0dd71f3a332672088f4a",
21
+ ".microi-skills-version.json": "d6ad94a2fb1b8289cbccc768567dc071ad994d4d1c59fccf88e2bd9c94b67d23",
22
+ ".progressive-disclosure-manifest.json": "b9ab810503f1a107708dd6e238665f1d1fae9a8fd355a8ec6cb21d3cd4843338",
23
23
  "README.md": "168697be6864bbb12befa9a6723d93ea9d1c8b5a615006038c31b09e1171860c",
24
24
  "ai-engine/SKILL.md": "8cfb43bcc18335ba5dcc0ef5f0604ac32a74ae6ea13dbc07bce9fe8bd2df551c",
25
25
  "ai-engine/agents/openai.yaml": "40deb07801006a46b9a7f0020d13251955eeadd04c8e591160210479936f8b5b",
@@ -41,10 +41,10 @@
41
41
  "microi-ai-application/SKILL.md": "f7b2970872763c7d2c17f336490e7851c648cd4f716c05c26ee6e2d1ba9ae21e",
42
42
  "microi-ai-application/agents/openai.yaml": "d3dfc4d0f2fda3391e90e661ca9d8d051cb43824b011d1a88e99db135870454f",
43
43
  "microi-ai-application/references/frontend-baseline.md": "c21a2d38292fd8d445a7538afb45d609881f624f32d39c0fc4bbbb3c2fa64a74",
44
- "microi-client-frontend/SKILL.md": "3071624b2926738163bb5f3cbb45b8e15113924a94eb6be720c3a5c1507efbc0",
44
+ "microi-client-frontend/SKILL.md": "93bffc4ff8f2a32631d59b3bdfc79f9bab7319906eeee4ae4af016e868e49f27",
45
45
  "microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "ca6771d303c3fb08f647b62b247bd5b14545e317fb6643500319bdffca74a178",
46
46
  "microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "6f456eb61a8f2dcd23d299b94e9dcf35bd5f453a35bf4a6680f304ed725ddf5d",
47
- "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "e882344dbd36233898fb513c74c1e2270060b7a213c0a2d9f2b6d54c735372fd",
47
+ "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "8f14849068eb2efac2d174d54fb775f616a4a83cfd245da4b955c585d88ad816",
48
48
  "microi-codex-installer/SKILL.md": "d501a250d1541bae726272c9188d8a6846b310c5399e24d59ae8c242cfbc057e",
49
49
  "microi-codex-installer/agents/openai.yaml": "e531219b74a70204893a156b1c22c69013a4c9d24b132ead912746b1b312cf80",
50
50
  "microi-codex/SKILL.md": "83ae8fde45e04c9ec61310e668e45417fcaac70a88b008f3bfc227b91947d928",
@@ -69,8 +69,8 @@
69
69
  "microi-frontend-sdk/SKILL.md": "010e5e10a0cbe47a450cb6e4a699b8b26605f23f340adf9d86c66fb2fbef2f7f",
70
70
  "microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "fdcc7aca57eaf7d0fa509dc28ef96abeb1099ed4da1e48411b4bb476d9f51390",
71
71
  "microi-left-right-layout/SKILL.md": "aa5b3c6424e6d69b16df7879a4fba85e551b32bb60a7eb676000568057430231",
72
- "microi-microservice/SKILL.md": "3944553acfbf6d09cfb740451dfbc07ecfa6e8c41d7e1c07d192b58439e99737",
73
- "microi-microservice/references/runtime-delivery.md": "31f008828f1967ccae043cfa26c722598b6b9061bbf36aa45193bb950fc58bd6",
72
+ "microi-microservice/SKILL.md": "4e9d461474dd478f4e8bf2a125c08582528fcee39754b6a2c79c03221024fb23",
73
+ "microi-microservice/references/runtime-delivery.md": "35c592d17b8bd3c5d44200ebaeeb9527821e5fb3f0340944018790d25a0e27de",
74
74
  "microi-mobile-app-quality/SKILL.md": "79cb796df3a486c9a39db10d47df53d9dafb259826067799486def659683144a",
75
75
  "microi-mobile-app-quality/references/progressive-01-4-重要按钮必须带图标.md": "8114fdf548ee6f466238a3f5fd4efe067b2f7569769e4e4881c042dfc319baa2",
76
76
  "microi-mobile-app-quality/references/progressive-02-9-主题切换必须真实且全局生效.md": "070ad110ed5a87046b2daf36c899debe2f1d08680148f6ff7549be4432bd3492",
@@ -94,11 +94,11 @@
94
94
  "page-engine/references/progressive-01-所有组件类型.md": "6fff4216181d8d7e473ef18c27f2224a9acb06129fba339fac22f10184131c0d",
95
95
  "page-engine/references/progressive-02-版本历史-并发保存与回滚.md": "6a2d64aa21d8aaed4607dc37f467e91309776d8dd6bc36b83bb4bd0737071764",
96
96
  "performance-testing/SKILL.md": "98139f3d09565847b3ed6d9122fc281e333e6dbd719c888927a5f023f0a399e2",
97
- "playwright-e2e/SKILL.md": "02cc51b067011570f1abd4d16d7a943be200941b74bb43ff69680e3e664484cc",
97
+ "playwright-e2e/SKILL.md": "de92eeb416383ea8cc09381cef0aa3aa606cd2a2fe1981eb63d73902bc23751f",
98
98
  "playwright-e2e/references/progressive-01-全自动登录-免验证码-但不免密码-必读.md": "de0a720ccb8b967cbc610da1e5aa4c558aa9a46ce7989c1231447d442c296ece",
99
99
  "playwright-e2e/references/progressive-02-文字对比度与可读性自动化检查-必做.md": "d8a0074aa941b3893c1b07841a37ed39f7a414cd97d59e45e459a45c1b0d15a7",
100
100
  "playwright-e2e/references/progressive-03-microi-helper-模板.md": "6df9c3427bd6ba8e971c5c7b2d5b4257b6a517e045076577cbf4b47dc8e8b5c3",
101
- "playwright-e2e/references/progressive-04-ci-建议.md": "fea944964dc045ccfd2cc5a49ce89c84bc03e8ffb42833a02f3677beb32019c9",
101
+ "playwright-e2e/references/progressive-04-ci-建议.md": "a9b46c3ee3842401df8c3fe471861402538af08bf18f6847cd8561feeee7ba6e",
102
102
  "print-engine/SKILL.md": "8d71b572a8da5cb5c0928d30e177a49ba7f79fb7785779127e19d5d47efac421",
103
103
  "production-readonly-audit/SKILL.md": "da8a47202f51850f879c387b75607ebde70b31b58c550f0959c54fc3da908972",
104
104
  "report-engine/SKILL.md": "40f1d24013cf8bcb446ab084cfca26e71fec9806980b33b244478e34cc8c1ded",
@@ -190,176 +190,176 @@
190
190
  "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "86db1f03700fd54dd824d28c553c678202e8f74b796fd0f9d91f63bf53a530b1"
191
191
  },
192
192
  "fileVersions": {
193
- ".microi-skills-version.json": "5.0.0",
194
- ".progressive-disclosure-manifest.json": "5.0.0",
195
- "README.md": "5.0.0",
196
- "ai-engine/SKILL.md": "5.0.0",
197
- "ai-engine/agents/openai.yaml": "5.0.0",
198
- "ai-platform-governance/SKILL.md": "5.0.0",
199
- "ai-platform-governance/references/progressive-01-功能开关.md": "5.0.0",
200
- "app-store/SKILL.md": "5.0.0",
201
- "app-store/agents/openai.yaml": "5.0.0",
202
- "business-blueprint/SKILL.md": "5.0.0",
203
- "datasource-engine/SKILL.md": "5.0.0",
204
- "datasource-engine/agents/openai.yaml": "5.0.0",
205
- "dos-orm/SKILL.md": "5.0.0",
206
- "dos-orm/references/api-reference.md": "5.0.0",
207
- "job-engine/SKILL.md": "5.0.0",
208
- "job-engine/agents/openai.yaml": "5.0.0",
209
- "message-notification/SKILL.md": "5.0.0",
210
- "message-notification/agents/openai.yaml": "5.0.0",
211
- "message-notification/references/contracts.md": "5.0.0",
212
- "microi-ai-app-auth.js": "5.0.0",
213
- "microi-ai-application/SKILL.md": "5.0.0",
214
- "microi-ai-application/agents/openai.yaml": "5.0.0",
215
- "microi-ai-application/references/frontend-baseline.md": "5.0.0",
216
- "microi-client-frontend/SKILL.md": "5.0.0",
217
- "microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "5.0.0",
218
- "microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "5.0.0",
219
- "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "5.0.0",
220
- "microi-codex-installer/SKILL.md": "5.0.0",
221
- "microi-codex-installer/agents/openai.yaml": "5.0.0",
222
- "microi-codex/SKILL.md": "5.0.0",
223
- "microi-datasource-mapping/SKILL.md": "5.0.0",
224
- "microi-db-schema/SKILL.md": "5.0.0",
225
- "microi-db-schema/agents/openai.yaml": "5.0.0",
226
- "microi-db-schema/references/core-tables.md": "5.0.0",
227
- "microi-db-schema/references/form-component-options.md": "5.0.0",
228
- "microi-db-schema/references/schema-overview.md": "5.0.0",
229
- "microi-db-schema/references/schema.md": "5.0.0",
230
- "microi-db-schema/references/table-catalog.md": "5.0.0",
231
- "microi-deployment/SKILL.md": "5.0.0",
232
- "microi-deployment/references/deployment-matrix.md": "5.0.0",
233
- "microi-docs-coverage/SKILL.md": "5.0.0",
234
- "microi-docs-coverage/references/capability-map.md": "5.0.0",
235
- "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "5.0.0",
236
- "microi-form-engine/SKILL.md": "5.0.0",
237
- "microi-form-engine/references/component-catalog.md": "5.0.0",
238
- "microi-form-engine/references/data-source-events.md": "5.0.0",
239
- "microi-form-layout/SKILL.md": "5.0.0",
240
- "microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "5.0.0",
241
- "microi-frontend-sdk/SKILL.md": "5.0.0",
242
- "microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "5.0.0",
243
- "microi-left-right-layout/SKILL.md": "5.0.0",
244
- "microi-microservice/SKILL.md": "5.0.0",
245
- "microi-microservice/references/runtime-delivery.md": "5.0.0",
246
- "microi-mobile-app-quality/SKILL.md": "5.0.0",
247
- "microi-mobile-app-quality/references/progressive-01-4-重要按钮必须带图标.md": "5.0.0",
248
- "microi-mobile-app-quality/references/progressive-02-9-主题切换必须真实且全局生效.md": "5.0.0",
249
- "microi-solution-quotation/SKILL.md": "5.0.0",
250
- "microi-solution-quotation/agents/openai.yaml": "5.0.0",
251
- "microi-solution-quotation/scripts/build_solution_quote.py": "5.0.0",
252
- "microi-system-delivery/SKILL.md": "5.0.0",
253
- "microi-system-delivery/references/progressive-01-标准工作流.md": "5.0.0",
254
- "microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md": "5.0.0",
255
- "microi-ui/SKILL.md": "5.0.0",
256
- "microi-ui/references/progressive-01-移动端场景蓝图.md": "5.0.0",
257
- "microi-uniapp-frontend/SKILL.md": "5.0.0",
258
- "microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "5.0.0",
259
- "microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "5.0.0",
260
- "microi.v8.js": "5.0.0",
261
- "module-engine/SKILL.md": "5.0.0",
262
- "module-engine/references/module-config.md": "5.0.0",
263
- "ocr-engine/SKILL.md": "5.0.0",
264
- "ocr-engine/agents/openai.yaml": "5.0.0",
265
- "page-engine/SKILL.md": "5.0.0",
266
- "page-engine/references/progressive-01-所有组件类型.md": "5.0.0",
267
- "page-engine/references/progressive-02-版本历史-并发保存与回滚.md": "5.0.0",
268
- "performance-testing/SKILL.md": "5.0.0",
269
- "playwright-e2e/SKILL.md": "5.0.0",
270
- "playwright-e2e/references/progressive-01-全自动登录-免验证码-但不免密码-必读.md": "5.0.0",
271
- "playwright-e2e/references/progressive-02-文字对比度与可读性自动化检查-必做.md": "5.0.0",
272
- "playwright-e2e/references/progressive-03-microi-helper-模板.md": "5.0.0",
273
- "playwright-e2e/references/progressive-04-ci-建议.md": "5.0.0",
274
- "print-engine/SKILL.md": "5.0.0",
275
- "production-readonly-audit/SKILL.md": "5.0.0",
276
- "report-engine/SKILL.md": "5.0.0",
277
- "report-engine/agents/openai.yaml": "5.0.0",
278
- "scripts/optimize-progressive-disclosure.mjs": "5.0.0",
279
- "scripts/refresh-progressive-disclosure.mjs": "5.0.0",
280
- "scripts/validate-progressive-disclosure.mjs": "5.0.0",
281
- "search-engine/SKILL.md": "5.0.0",
282
- "search-engine/agents/openai.yaml": "5.0.0",
283
- "spider-engine/SKILL.md": "5.0.0",
284
- "translate-engine/SKILL.md": "5.0.0",
285
- "translate-engine/agents/openai.yaml": "5.0.0",
286
- "ui-design/SKILL.md": "5.0.0",
287
- "ui-design/assets/pattern-showcase/app.js": "5.0.0",
288
- "ui-design/assets/pattern-showcase/index.html": "5.0.0",
289
- "ui-design/assets/pattern-showcase/styles.css": "5.0.0",
290
- "ui-design/assets/templates/MCI-DESIGN.md": "5.0.0",
291
- "ui-design/references/design-pattern-library.md": "5.0.0",
292
- "ui-design/references/mci-design-contract.md": "5.0.0",
293
- "ui-design/references/motion-and-media.md": "5.0.0",
294
- "ui-design/references/product-flow-recipes.md": "5.0.0",
295
- "ui-design/references/progressive-01-颜色体系-css-variables-支持主题切换.md": "5.0.0",
296
- "ui-design/references/progressive-02-字体.md": "5.0.0",
297
- "ui-design/references/progressive-03-动效规范-丰富但不卡.md": "5.0.0",
298
- "ui-design/references/progressive-04-组件风格速查.md": "5.0.0",
299
- "ui-design/references/progressive-05-移动端专用规范.md": "5.0.0",
300
- "ui-design/references/progressive-06-主题切换实现.md": "5.0.0",
301
- "ui-design/references/progressive-07-速查-从头搭建一个移动端页面.md": "5.0.0",
302
- "ui-design/references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md": "5.0.0",
303
- "uniapp-mall-assets/SKILL.md": "5.0.0",
304
- "unity-integration/SKILL.md": "5.0.0",
305
- "unity-integration/agents/openai.yaml": "5.0.0",
306
- "unity-integration/references/ai-app-delivery.md": "5.0.0",
307
- "unity-integration/references/sdk-api.md": "5.0.0",
308
- "unity-integration/references/toolbox-migration.md": "5.0.0",
309
- "unity-integration/references/webgl-hosting.md": "5.0.0",
310
- "v8-api-config/SKILL.md": "5.0.0",
311
- "v8-cache-pattern/SKILL.md": "5.0.0",
312
- "v8-crud-api/SKILL.md": "5.0.0",
313
- "v8-crud-api/references/progressive-01-查询列表-分页.md": "5.0.0",
314
- "v8-crud-api/references/progressive-02-where-条件语法速查.md": "5.0.0",
315
- "v8-debugging/SKILL.md": "5.0.0",
316
- "v8-explorer-tree/SKILL.md": "5.0.0",
317
- "v8-export-import/SKILL.md": "5.0.0",
318
- "v8-export-import/references/progressive-01-excellayout-高级自由布局.md": "5.0.0",
319
- "v8-export-import/references/progressive-02-powerpoint-导出.md": "5.0.0",
320
- "v8-export-import/references/progressive-03-安全-性能注意.md": "5.0.0",
321
- "v8-file-upload/SKILL.md": "5.0.0",
322
- "v8-file-upload/references/progressive-01-公有桶-vs-私有桶.md": "5.0.0",
323
- "v8-file-upload/references/progressive-02-office-文件在线编辑版本号规则.md": "5.0.0",
324
- "v8-formengine-http/SKILL.md": "5.0.0",
325
- "v8-frontend-events/SKILL.md": "5.0.0",
326
- "v8-frontend-events/references/bluetooth-print-api.md": "5.0.0",
327
- "v8-frontend-events/references/bluetooth-print.md": "5.0.0",
328
- "v8-frontend-events/references/progressive-01-列表事件.md": "5.0.0",
329
- "v8-http-integration/SKILL.md": "5.0.0",
330
- "v8-http-integration/references/progressive-01-get-请求.md": "5.0.0",
331
- "v8-http-integration/references/progressive-02-错误处理模式.md": "5.0.0",
332
- "v8-image-processing/SKILL.md": "5.0.0",
333
- "v8-image-processing/agents/openai.yaml": "5.0.0",
334
- "v8-image-processing/references/api-reference.md": "5.0.0",
335
- "v8-menu-buttons/SKILL.md": "5.0.0",
336
- "v8-menu-buttons/references/progressive-01-2-按钮对象-schema.md": "5.0.0",
337
- "v8-menu-buttons/references/progressive-02-8-模式-f-后台任务按钮-长任务.md": "5.0.0",
338
- "v8-menu-buttons/references/progressive-03-10-反模式-避免.md": "5.0.0",
339
- "v8-mongodb/SKILL.md": "5.0.0",
340
- "v8-mq-mqtt/SKILL.md": "5.0.0",
341
- "v8-mq-mqtt/references/mqtt-production.md": "5.0.0",
342
- "v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "5.0.0",
343
- "v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "5.0.0",
344
- "v8-saas-multi-tenant/SKILL.md": "5.0.0",
345
- "v8-security/SKILL.md": "5.0.0",
346
- "v8-security/references/progressive-01-2-权限校验.md": "5.0.0",
347
- "v8-security/references/progressive-02-7-日志记录.md": "5.0.0",
348
- "v8-sql-query/SKILL.md": "5.0.0",
349
- "v8-table-event/SKILL.md": "5.0.0",
350
- "v8-table-event/references/progressive-01-informv8-js-表单打开事件.md": "5.0.0",
351
- "v8-table-event/references/progressive-02-前端事件名-v8-eventname-可能的值.md": "5.0.0",
352
- "v8-template-engine/SKILL.md": "5.0.0",
353
- "v8-utilities/SKILL.md": "5.0.0",
354
- "v8-utilities/references/client-api-index.md": "5.0.0",
355
- "v8-utilities/references/platform-http-routes.md": "5.0.0",
356
- "v8-utilities/references/server-api-index.md": "5.0.0",
357
- "v8-workflow/SKILL.md": "5.0.0",
358
- "v8-workflow/references/progressive-01-节点开始-v8-事件.md": "5.0.0",
359
- "workspace-conventions/SKILL.md": "5.0.0",
360
- "workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "5.0.0",
361
- "workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md": "5.0.0",
362
- "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "5.0.0"
193
+ ".microi-skills-version.json": "5.0.1",
194
+ ".progressive-disclosure-manifest.json": "5.0.1",
195
+ "README.md": "5.0.1",
196
+ "ai-engine/SKILL.md": "5.0.1",
197
+ "ai-engine/agents/openai.yaml": "5.0.1",
198
+ "ai-platform-governance/SKILL.md": "5.0.1",
199
+ "ai-platform-governance/references/progressive-01-功能开关.md": "5.0.1",
200
+ "app-store/SKILL.md": "5.0.1",
201
+ "app-store/agents/openai.yaml": "5.0.1",
202
+ "business-blueprint/SKILL.md": "5.0.1",
203
+ "datasource-engine/SKILL.md": "5.0.1",
204
+ "datasource-engine/agents/openai.yaml": "5.0.1",
205
+ "dos-orm/SKILL.md": "5.0.1",
206
+ "dos-orm/references/api-reference.md": "5.0.1",
207
+ "job-engine/SKILL.md": "5.0.1",
208
+ "job-engine/agents/openai.yaml": "5.0.1",
209
+ "message-notification/SKILL.md": "5.0.1",
210
+ "message-notification/agents/openai.yaml": "5.0.1",
211
+ "message-notification/references/contracts.md": "5.0.1",
212
+ "microi-ai-app-auth.js": "5.0.1",
213
+ "microi-ai-application/SKILL.md": "5.0.1",
214
+ "microi-ai-application/agents/openai.yaml": "5.0.1",
215
+ "microi-ai-application/references/frontend-baseline.md": "5.0.1",
216
+ "microi-client-frontend/SKILL.md": "5.0.1",
217
+ "microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "5.0.1",
218
+ "microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "5.0.1",
219
+ "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "5.0.1",
220
+ "microi-codex-installer/SKILL.md": "5.0.1",
221
+ "microi-codex-installer/agents/openai.yaml": "5.0.1",
222
+ "microi-codex/SKILL.md": "5.0.1",
223
+ "microi-datasource-mapping/SKILL.md": "5.0.1",
224
+ "microi-db-schema/SKILL.md": "5.0.1",
225
+ "microi-db-schema/agents/openai.yaml": "5.0.1",
226
+ "microi-db-schema/references/core-tables.md": "5.0.1",
227
+ "microi-db-schema/references/form-component-options.md": "5.0.1",
228
+ "microi-db-schema/references/schema-overview.md": "5.0.1",
229
+ "microi-db-schema/references/schema.md": "5.0.1",
230
+ "microi-db-schema/references/table-catalog.md": "5.0.1",
231
+ "microi-deployment/SKILL.md": "5.0.1",
232
+ "microi-deployment/references/deployment-matrix.md": "5.0.1",
233
+ "microi-docs-coverage/SKILL.md": "5.0.1",
234
+ "microi-docs-coverage/references/capability-map.md": "5.0.1",
235
+ "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "5.0.1",
236
+ "microi-form-engine/SKILL.md": "5.0.1",
237
+ "microi-form-engine/references/component-catalog.md": "5.0.1",
238
+ "microi-form-engine/references/data-source-events.md": "5.0.1",
239
+ "microi-form-layout/SKILL.md": "5.0.1",
240
+ "microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "5.0.1",
241
+ "microi-frontend-sdk/SKILL.md": "5.0.1",
242
+ "microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "5.0.1",
243
+ "microi-left-right-layout/SKILL.md": "5.0.1",
244
+ "microi-microservice/SKILL.md": "5.0.1",
245
+ "microi-microservice/references/runtime-delivery.md": "5.0.1",
246
+ "microi-mobile-app-quality/SKILL.md": "5.0.1",
247
+ "microi-mobile-app-quality/references/progressive-01-4-重要按钮必须带图标.md": "5.0.1",
248
+ "microi-mobile-app-quality/references/progressive-02-9-主题切换必须真实且全局生效.md": "5.0.1",
249
+ "microi-solution-quotation/SKILL.md": "5.0.1",
250
+ "microi-solution-quotation/agents/openai.yaml": "5.0.1",
251
+ "microi-solution-quotation/scripts/build_solution_quote.py": "5.0.1",
252
+ "microi-system-delivery/SKILL.md": "5.0.1",
253
+ "microi-system-delivery/references/progressive-01-标准工作流.md": "5.0.1",
254
+ "microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md": "5.0.1",
255
+ "microi-ui/SKILL.md": "5.0.1",
256
+ "microi-ui/references/progressive-01-移动端场景蓝图.md": "5.0.1",
257
+ "microi-uniapp-frontend/SKILL.md": "5.0.1",
258
+ "microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "5.0.1",
259
+ "microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "5.0.1",
260
+ "microi.v8.js": "5.0.1",
261
+ "module-engine/SKILL.md": "5.0.1",
262
+ "module-engine/references/module-config.md": "5.0.1",
263
+ "ocr-engine/SKILL.md": "5.0.1",
264
+ "ocr-engine/agents/openai.yaml": "5.0.1",
265
+ "page-engine/SKILL.md": "5.0.1",
266
+ "page-engine/references/progressive-01-所有组件类型.md": "5.0.1",
267
+ "page-engine/references/progressive-02-版本历史-并发保存与回滚.md": "5.0.1",
268
+ "performance-testing/SKILL.md": "5.0.1",
269
+ "playwright-e2e/SKILL.md": "5.0.1",
270
+ "playwright-e2e/references/progressive-01-全自动登录-免验证码-但不免密码-必读.md": "5.0.1",
271
+ "playwright-e2e/references/progressive-02-文字对比度与可读性自动化检查-必做.md": "5.0.1",
272
+ "playwright-e2e/references/progressive-03-microi-helper-模板.md": "5.0.1",
273
+ "playwright-e2e/references/progressive-04-ci-建议.md": "5.0.1",
274
+ "print-engine/SKILL.md": "5.0.1",
275
+ "production-readonly-audit/SKILL.md": "5.0.1",
276
+ "report-engine/SKILL.md": "5.0.1",
277
+ "report-engine/agents/openai.yaml": "5.0.1",
278
+ "scripts/optimize-progressive-disclosure.mjs": "5.0.1",
279
+ "scripts/refresh-progressive-disclosure.mjs": "5.0.1",
280
+ "scripts/validate-progressive-disclosure.mjs": "5.0.1",
281
+ "search-engine/SKILL.md": "5.0.1",
282
+ "search-engine/agents/openai.yaml": "5.0.1",
283
+ "spider-engine/SKILL.md": "5.0.1",
284
+ "translate-engine/SKILL.md": "5.0.1",
285
+ "translate-engine/agents/openai.yaml": "5.0.1",
286
+ "ui-design/SKILL.md": "5.0.1",
287
+ "ui-design/assets/pattern-showcase/app.js": "5.0.1",
288
+ "ui-design/assets/pattern-showcase/index.html": "5.0.1",
289
+ "ui-design/assets/pattern-showcase/styles.css": "5.0.1",
290
+ "ui-design/assets/templates/MCI-DESIGN.md": "5.0.1",
291
+ "ui-design/references/design-pattern-library.md": "5.0.1",
292
+ "ui-design/references/mci-design-contract.md": "5.0.1",
293
+ "ui-design/references/motion-and-media.md": "5.0.1",
294
+ "ui-design/references/product-flow-recipes.md": "5.0.1",
295
+ "ui-design/references/progressive-01-颜色体系-css-variables-支持主题切换.md": "5.0.1",
296
+ "ui-design/references/progressive-02-字体.md": "5.0.1",
297
+ "ui-design/references/progressive-03-动效规范-丰富但不卡.md": "5.0.1",
298
+ "ui-design/references/progressive-04-组件风格速查.md": "5.0.1",
299
+ "ui-design/references/progressive-05-移动端专用规范.md": "5.0.1",
300
+ "ui-design/references/progressive-06-主题切换实现.md": "5.0.1",
301
+ "ui-design/references/progressive-07-速查-从头搭建一个移动端页面.md": "5.0.1",
302
+ "ui-design/references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md": "5.0.1",
303
+ "uniapp-mall-assets/SKILL.md": "5.0.1",
304
+ "unity-integration/SKILL.md": "5.0.1",
305
+ "unity-integration/agents/openai.yaml": "5.0.1",
306
+ "unity-integration/references/ai-app-delivery.md": "5.0.1",
307
+ "unity-integration/references/sdk-api.md": "5.0.1",
308
+ "unity-integration/references/toolbox-migration.md": "5.0.1",
309
+ "unity-integration/references/webgl-hosting.md": "5.0.1",
310
+ "v8-api-config/SKILL.md": "5.0.1",
311
+ "v8-cache-pattern/SKILL.md": "5.0.1",
312
+ "v8-crud-api/SKILL.md": "5.0.1",
313
+ "v8-crud-api/references/progressive-01-查询列表-分页.md": "5.0.1",
314
+ "v8-crud-api/references/progressive-02-where-条件语法速查.md": "5.0.1",
315
+ "v8-debugging/SKILL.md": "5.0.1",
316
+ "v8-explorer-tree/SKILL.md": "5.0.1",
317
+ "v8-export-import/SKILL.md": "5.0.1",
318
+ "v8-export-import/references/progressive-01-excellayout-高级自由布局.md": "5.0.1",
319
+ "v8-export-import/references/progressive-02-powerpoint-导出.md": "5.0.1",
320
+ "v8-export-import/references/progressive-03-安全-性能注意.md": "5.0.1",
321
+ "v8-file-upload/SKILL.md": "5.0.1",
322
+ "v8-file-upload/references/progressive-01-公有桶-vs-私有桶.md": "5.0.1",
323
+ "v8-file-upload/references/progressive-02-office-文件在线编辑版本号规则.md": "5.0.1",
324
+ "v8-formengine-http/SKILL.md": "5.0.1",
325
+ "v8-frontend-events/SKILL.md": "5.0.1",
326
+ "v8-frontend-events/references/bluetooth-print-api.md": "5.0.1",
327
+ "v8-frontend-events/references/bluetooth-print.md": "5.0.1",
328
+ "v8-frontend-events/references/progressive-01-列表事件.md": "5.0.1",
329
+ "v8-http-integration/SKILL.md": "5.0.1",
330
+ "v8-http-integration/references/progressive-01-get-请求.md": "5.0.1",
331
+ "v8-http-integration/references/progressive-02-错误处理模式.md": "5.0.1",
332
+ "v8-image-processing/SKILL.md": "5.0.1",
333
+ "v8-image-processing/agents/openai.yaml": "5.0.1",
334
+ "v8-image-processing/references/api-reference.md": "5.0.1",
335
+ "v8-menu-buttons/SKILL.md": "5.0.1",
336
+ "v8-menu-buttons/references/progressive-01-2-按钮对象-schema.md": "5.0.1",
337
+ "v8-menu-buttons/references/progressive-02-8-模式-f-后台任务按钮-长任务.md": "5.0.1",
338
+ "v8-menu-buttons/references/progressive-03-10-反模式-避免.md": "5.0.1",
339
+ "v8-mongodb/SKILL.md": "5.0.1",
340
+ "v8-mq-mqtt/SKILL.md": "5.0.1",
341
+ "v8-mq-mqtt/references/mqtt-production.md": "5.0.1",
342
+ "v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "5.0.1",
343
+ "v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "5.0.1",
344
+ "v8-saas-multi-tenant/SKILL.md": "5.0.1",
345
+ "v8-security/SKILL.md": "5.0.1",
346
+ "v8-security/references/progressive-01-2-权限校验.md": "5.0.1",
347
+ "v8-security/references/progressive-02-7-日志记录.md": "5.0.1",
348
+ "v8-sql-query/SKILL.md": "5.0.1",
349
+ "v8-table-event/SKILL.md": "5.0.1",
350
+ "v8-table-event/references/progressive-01-informv8-js-表单打开事件.md": "5.0.1",
351
+ "v8-table-event/references/progressive-02-前端事件名-v8-eventname-可能的值.md": "5.0.1",
352
+ "v8-template-engine/SKILL.md": "5.0.1",
353
+ "v8-utilities/SKILL.md": "5.0.1",
354
+ "v8-utilities/references/client-api-index.md": "5.0.1",
355
+ "v8-utilities/references/platform-http-routes.md": "5.0.1",
356
+ "v8-utilities/references/server-api-index.md": "5.0.1",
357
+ "v8-workflow/SKILL.md": "5.0.1",
358
+ "v8-workflow/references/progressive-01-节点开始-v8-事件.md": "5.0.1",
359
+ "workspace-conventions/SKILL.md": "5.0.1",
360
+ "workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "5.0.1",
361
+ "workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md": "5.0.1",
362
+ "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "5.0.1"
363
363
  },
364
364
  "files": [
365
365
  ".microi-skills-version.json",
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "5.0.0",
2
+ "version": "5.0.1",
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.VSCode/bump-version.js",
5
- "updatedAt": "2026-08-13T11:56:59.726Z"
5
+ "updatedAt": "2026-08-13T12:50:14.965Z"
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 1,
3
- "generatedAt": "2026-08-12T12:26:00.417Z",
3
+ "generatedAt": "2026-08-13T12:40:41.746Z",
4
4
  "policy": {
5
5
  "maxEntryLines": 285,
6
6
  "referenceBudgetLines": 245,
@@ -169,10 +169,10 @@
169
169
  ]
170
170
  },
171
171
  "microi-client-frontend": {
172
- "originalSha256": "a895090a5fa0930425e6674beb3ec38ddb601eaa99d7dcc9c71a86e405e7e173",
173
- "originalLines": 596,
174
- "prefixSha256": "3da2562f2b34a12495dfe54f8fa881dc31715bf34bcb7cba9a266c34bd1429c9",
175
- "prefixBytes": 656,
172
+ "originalSha256": "508f4d7c021971433d72ff9ed3eb6e3bbe02f2634ba01cb53bc799bdadaedd6f",
173
+ "originalLines": 602,
174
+ "prefixSha256": "5decf25a3ed71a6eb78accc950df73a3e3addf0909921f38389d3c526efb8738",
175
+ "prefixBytes": 720,
176
176
  "entryLines": 179,
177
177
  "chunks": [
178
178
  {
@@ -267,8 +267,8 @@
267
267
  "id": "microi-client-frontend-011",
268
268
  "ordinal": 11,
269
269
  "destination": "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md",
270
- "sha256": "18261b2eb8de007296bc536802abaf995f0696fd44c54677e0f7141dcef3c5ca",
271
- "lines": 76,
270
+ "sha256": "26acb7297e2d0e794ae447beaba3b19171f9f232255adafc26966187e445e95a",
271
+ "lines": 82,
272
272
  "heading": "Vue3 前端微服务宿主规则"
273
273
  },
274
274
  {
@@ -1344,10 +1344,10 @@
1344
1344
  ]
1345
1345
  },
1346
1346
  "playwright-e2e": {
1347
- "originalSha256": "e9ae52e876bad6413b92875ac83124750432682e72eaf54c087cc155c99e1318",
1348
- "originalLines": 746,
1349
- "prefixSha256": "c95509b6804353c3d7dbfcaa5101284d4b468f4d20e8ffc7dfb1eae22f5cbe49",
1350
- "prefixBytes": 1648,
1347
+ "originalSha256": "dfedb663bea48a7f16bf0c6ae8448ae6cef1249245cf2867fb9585414ceb9d89",
1348
+ "originalLines": 748,
1349
+ "prefixSha256": "8002a056799f289a3d76ae93418f5aaab4fde77a481b25d948ca70034714b30f",
1350
+ "prefixBytes": 1696,
1351
1351
  "entryLines": 180,
1352
1352
  "chunks": [
1353
1353
  {
@@ -1554,8 +1554,8 @@
1554
1554
  "id": "playwright-e2e-025",
1555
1555
  "ordinal": 25,
1556
1556
  "destination": "playwright-e2e/references/progressive-04-ci-建议.md",
1557
- "sha256": "2ae146b962ec19d0f74f9228ccfdb2d67164dea441dccce4dcc68a867269131a",
1558
- "lines": 9,
1557
+ "sha256": "be071153d695081b7c20d34cb5e9563480e3f09d9cd0292f2ca4b0245438787b",
1558
+ "lines": 11,
1559
1559
  "heading": "前端微服务 E2E 必测点"
1560
1560
  },
1561
1561
  {
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: microi-client-frontend
3
- description: Microi.Client 源码架构指南。用于修改 Microi.Client Vue 前端代码,尤其是表单引擎、diy-table、diy-form-full、工作流面板、sys_menu 按钮、前端 V8 事件、路由以及页面/弹窗/抽屉行为。
3
+ description: Microi.Client 源码架构指南。用于修改 Microi.Client Vue 前端代码,尤其是表单引擎、diy-table、diy-form-full、工作流面板、sys_menu 按钮、前端 V8 事件、路由、微服务宿主 keep-alive/TagsView 缓存/白屏恢复,以及页面、弹窗和抽屉行为。
4
4
  ---
5
5
 
6
6
  > **Codex 非阻塞自动更新:** 当前宿主为 Codex 时,吾码 CLI、Codex 插件与工作区 AI/MCP 由后台自动更新;需要诊断时读取 `../microi-codex-installer/SKILL.md`。更新失败、等待空闲或尚未重载均不得阻断当前、正在进行或新建任务。非 Codex 宿主跳过此项。
@@ -2,13 +2,19 @@
2
2
 
3
3
  > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
4
 
5
- <!-- microi-progressive:chunk id=microi-client-frontend-011 sha256=18261b2eb8de007296bc536802abaf995f0696fd44c54677e0f7141dcef3c5ca -->
5
+ <!-- microi-progressive:chunk id=microi-client-frontend-011 sha256=26acb7297e2d0e794ae447beaba3b19171f9f232255adafc26966187e445e95a -->
6
6
  ## Vue3 前端微服务宿主规则
7
7
 
8
8
  `sys_menu.OpenType=MicroService` 时,动态路由必须把 `MicroServiceId`、`MicroServicePageId`、`MicroServiceRoutePath` 和真实入口 `MicroAppUrl` 写入 route meta;浏览器侧菜单路由使用 `/#/micro-app/{MsKey}/{RoutePath}`,不要再生成 `/micro-app-host/{menuId}`,否则地址过长且刷新或直接访问菜单路由容易加载空白页。
9
9
 
10
10
  同一个编译后的微服务可以绑定多个后台菜单和内部页面。`MicroAppHost` 的 `<micro-app name>` 必须包含菜单 Id、路由路径或其它实例维度,避免多个菜单共享同一个 appKey 时触发 `app name conflict`。入口 URL 中的 `microRoute/routePath` 只用于解析,最终应通过 `data.microRoute` 传给子应用,入口文件 URL 保持稳定。
11
11
 
12
+ 菜单微服务的缓存所有权固定为一层:动态菜单和友好路由都设置 `meta.keepAlive=false`、`meta.microAppHost=true`,`AppMain` 不缓存 Vue 宿主;`host.vue` 的 `<micro-app keep-alive>` 才保存子应用 DOM、路由和状态。`AppMain` 对菜单微服务使用 `$route.fullPath` 作为宿主 key,宿主创建时立即快照 path/fullPath/meta/query,之后不得监听全局 `$route` 去改写即将隐藏的旧宿主。普通 Vue 页面继续使用原有 `KeepAlive`,菜单微服务也不得占用或淘汰 `cachedViews` 槽位。
13
+
14
+ 运行时缓存集中维护在 `utils/microAppRuntimeCache.js`:实例名必须由租户、AppKey、菜单、fullPath、版本和入口的安全指纹稳定生成,长度受限且不暴露 Token/查询原文;全局最多保留 5 个实例,只淘汰最久未使用的 hidden 实例。TagsView 的关闭当前/其它/全部和访问记录淘汰必须按 fullPath 精确销毁;退出登录、Token 重置、角色切换必须清空全部;同一路由版本/入口变化必须替换旧实例。销毁统一调用 `unmountApp(name,{destroy:true,clearData:true})`,不能只从本地 Map 删除。
15
+
16
+ 宿主监听 `beforeshow/aftershow/afterhidden`:恢复时用 `forceSetData` 下发最新 Token、OsClient、权限、主题、路由和视口,并重新执行可见 DOM 健康检查;隐藏时停止宿主看门狗并把实例放入 LRU。`microAppData.cache` 与 `hostCapabilities.lifecycle` 要公开缓存模式、所有者、上限和 `appstate-change` 状态,错误诊断同时显示 cacheMode/cacheState/cacheInstance。可见 DOM 不健康时只自动销毁重建一次,禁止恢复阶段无限重试。
17
+
12
18
  菜单型微服务的宿主操作集中维护在 `views/micro-app/host-bridge.js` 和 `host.vue`。
13
19
  `microAppData.hostCapabilities` 必须下发 `microi.host.v1` 协议、`tab` 模式、请求/结果事件名和动作清单;
14
20
  子应用只允许 dispatch `micro-app:host-action`,不能接收父页面函数或直接操作 TagsView/Router。
@@ -64,7 +70,7 @@ VS Code 插件执行前端微服务构建前必须先安全清理当前项目自
64
70
  - `routes` 是页面源码、`microi.routes.json`、发布路由和菜单绑定的共同事实源;一条路由只生成一个页面文件,必须明确 `path/name/title/sourceFile/isHome`。不能为了提供默认首页额外生成一个未被需求或菜单使用的第三页面。
65
71
  - 脚手架完成后依次执行:`npm install`、本地构建、`microi_create_microservice`、`microi_sync_microservice_source`、`microi_publish_application_directory_stream`。真实编译目录优先流式发布;只有当前服务器尚未部署流式端点且产物很小时,才允许临时使用兼容的 `microi_publish_microservice`,并在交付结论中如实注明。
66
72
  - 发布回读取得 `sys_microiservice.Id` 与每条 `sys_microiservice_page.Id` 后,使用 `microi_create_module` 一次传入 `openType=MicroService`、`microServiceId`、`microServicePageId`、`microServiceRoutePath`、`microServiceKey`。菜单工具必须写后回读这些字段;不得长期依赖“先建普通 URL 菜单,再手工补字段”的两步绕路。
67
- - 最终通过 `microi_get_application_context`、`microi_get_microservice`、`microi_get_module` 和真实登录后的两个友好菜单路由逐层验收;连续切换两个菜单,检查页面标题、MicroApp 上下文、Vue 交互、无 404/5xx/白屏/实例冲突,并保存 fullPage 截图后用 `view_image` 复核。
73
+ - 最终通过 `microi_get_application_context`、`microi_get_microservice`、`microi_get_module` 和真实登录后的友好菜单路由逐层验收;多个菜单至少往返切换 8 轮,检查标题与子路由不串页、缓存范围内输入/筛选/滚动保持、无 404/5xx/白屏/永久骨架屏/实例冲突。再打开第 6 个实例验证 LRU 冷启动,并关闭 Tab/退出登录验证精确销毁;保存 fullPage 截图后用 `view_image` 复核。
68
74
 
69
75
  ### 表单下拉 Data 动态对象选项
70
76
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: microi-microservice
3
- description: Microi 前端微服务 MicroService 开发与交付指南。用于创建、读取、修改、构建、发布或修复 Vue3 微应用,维护 microi.routes.json,绑定 sys_menu,使用 V8.OpenAppDialog,或通过 MCP 管理 Web、UniApp、MicroService 应用源码和运行时。
3
+ description: Microi 前端微服务 MicroService 开发与交付指南。用于创建、读取、修改、构建、发布或修复 Vue3 微应用,维护 microi.routes.json,绑定 sys_menu,使用 V8.OpenAppDialog,处理菜单页签 keep-alive、appstate-change、状态保留、滚动条、骨架屏或白屏,或通过 MCP 管理 Web、UniApp、MicroService 应用源码和运行时。
4
4
  ---
5
5
 
6
6
  > **Codex 非阻塞自动更新:** 当前宿主为 Codex 时,吾码 CLI、Codex 插件与工作区 AI/MCP 由后台自动更新;需要诊断时读取 `../microi-codex-installer/SKILL.md`。更新失败、等待空闲或尚未重载均不得阻断当前、正在进行或新建任务。非 Codex 宿主跳过此项。
@@ -159,6 +159,24 @@ AI 生成菜单微服务时,应优先封装一个 `callMicroiHost(action, data
159
159
  放在右侧内容容器内,使微服务导航栏和顶部栏保持挂载;浏览器 `popstate/hashchange` 要能恢复
160
160
  内部路由。只有确实要离开当前微服务、打开另一个吾码后台菜单或替换顶部 Tab 时才调用宿主路由动作。
161
161
 
162
+ ### 菜单页签缓存与子应用生命周期(强制)
163
+
164
+ - 菜单微服务只有一个缓存所有者:Vue 路由宿主固定 `meta.keepAlive=false`,`<micro-app keep-alive>` 独占子应用状态。禁止把外层 Vue `KeepAlive` 打开,也禁止子应用通过随机实例名规避运行时缓存;双层缓存会产生旧宿主与当前路由竞争、无数据、永久骨架屏和白屏。
165
+ - 每个主框架 `fullPath` 使用稳定且不泄露查询参数/Token 的实例指纹。平台最多保留 5 个菜单运行时,超过后按 LRU 销毁最久未使用的隐藏实例;Tab 仍保留,再次进入允许冷启动。关闭当前/其它/全部 Tab、访问记录淘汰、退出登录、Token 重置、角色变化、同路由版本或入口变化时必须精确 `unmountApp(name,{destroy:true,clearData:true})`。
166
+ - 恢复隐藏实例时,宿主用 `forceSetData` 同步当前 Token、OsClient、权限、主题、路由和视口,再复核 `micro-app-body/#app` 的真实可见 DOM;失败只允许自动销毁重建一次。`hostCapabilities.lifecycle` 暴露 `cacheOwner=micro-app`、`cacheMode=runtime-keep-alive`、`maxCachedTabs=5` 和状态事件。
167
+ - AI 创建或修改菜单微服务时必须生成 `appstate-change` 适配:`afterhidden` 幂等暂停轮询、WebSocket、观察器和昂贵任务;`aftershow` 重新读取宿主数据、幂等恢复任务并在下一帧重算图表/虚拟列表。隐藏时保留表单输入、筛选、滚动与内部路由,禁止清空业务状态;弹窗和表单嵌入不套用菜单页签保活。
168
+
169
+ ```js
170
+ window.addEventListener('appstate-change', (event) => {
171
+ if (event.detail?.appState === 'afterhidden') pauseBackgroundWork();
172
+ if (event.detail?.appState === 'aftershow') {
173
+ configureMicroiV8(getMicroiContext());
174
+ resumeBackgroundWorkOnce();
175
+ requestAnimationFrame(resizeChartsAndVirtualLists);
176
+ }
177
+ });
178
+ ```
179
+
162
180
  微服务所有主题变量、reset、通用元素规则必须限定在 AppKey 唯一根容器(推荐
163
181
  `[data-mci-ui-root="{AppKey}"]`)下,不能只用宿主也会命中的裸 `[data-mci-ui-root]`;禁止用
164
182
  `:root/html/body/#app`、裸 `*`、裸 `button/input` 污染宿主。
@@ -202,7 +220,8 @@ AI 生成菜单微服务时,应优先封装一个 `callMicroiHost(action, data
202
220
 
203
221
  - 源码、构建文件、运行时、页面路由和菜单五层分别回读。
204
222
  - 组合发布成功前,私有源码回读必须与本地源码在路径集合、文件数、字节数、逐文件 SHA-256 和规范化清单哈希上完全一致;任何缺失、多余或读取错误都要阻止运行版本切换。
205
- - 直接刷新友好路由与连续切换多个微应用不 404、白屏或实例名冲突。
223
+ - 直接刷新友好路由与多个菜单至少往返 8 轮不 404、白屏、永久骨架屏、串页或实例名冲突;缓存范围内输入/筛选/滚动/内部路由保持。
224
+ - 打开第 6 个菜单实例后确认 LRU 只淘汰最旧隐藏实例且重入可冷启动;关闭 Tab、关闭其它/全部与退出登录后确认对应运行时已销毁。
206
225
  - Dialog/Drawer 成功、取消、错误和关闭协议正确。
207
226
  - 表单 `DevComponentPath` 能匹配页面 `LegacyComponentPaths`,指定路由正常加载;Add/Edit/View/只读、字段值回写和自动高度均通过。
208
227
  - 独立地址覆盖“已有 Token 自动进入”和“无 Token 显示帐号密码”;`EnableCaptcha` 开/关各验一次,验证码响应头和登录参数正确。