@microi.net/cli 5.3.8 → 5.3.9

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-26T22:37:02.116Z",
2
+ "builtAt": "2026-08-27T13:01:10.548Z",
3
3
  "source": "../microi.skills",
4
4
  "extension": {
5
5
  "name": "v8-engine",
6
- "version": "5.3.8",
6
+ "version": "5.3.9",
7
7
  "publisher": "Microi"
8
8
  },
9
9
  "skills": {
10
- "version": "5.3.8",
10
+ "version": "5.3.9",
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,10 +15,10 @@
15
15
  "dir": "dist/microi.skills",
16
16
  "files": 178,
17
17
  "skills": 65,
18
- "bytes": 2275468
18
+ "bytes": 2280221
19
19
  },
20
20
  "fileHashes": {
21
- ".microi-skills-version.json": "779658caca5b6f00e8c6b7cd57988d77b8b93448866c09e6deeaa04ad89c43ea",
21
+ ".microi-skills-version.json": "7bf5ae573892d236ad14c12051ba428e2bcb20641dc1fec498f4afda08b3f30c",
22
22
  ".progressive-disclosure-manifest.json": "c039b5bc6761bd0a17b551e3a865cfb4660253254185c96650e83ad13d2f01cb",
23
23
  "README.md": "332aade05015acac5f1387829a42529f37fc203ff0fcfb2f16cc3afdbb23b1ed",
24
24
  "ai-engine/SKILL.md": "df63cf56bd06027f30bd0597003c65b479049141fc0b4a31d33cbc9a5fa044cf",
@@ -56,14 +56,14 @@
56
56
  "microi-db-schema/references/schema-overview.md": "fb2e99d0d759619f73833b9261c4cb57c9dcdbdd3c0be6147d0ecf8b0d192991",
57
57
  "microi-db-schema/references/schema.md": "943de6a603c60e8184044745787fcff2c5c8e192a94ebe2f6511e3200df5f430",
58
58
  "microi-db-schema/references/table-catalog.md": "26cc65486f39cc80703e47111e715f8b8512e24a55d0ab94dc048ace6206a3da",
59
- "microi-deployment/SKILL.md": "dfa09ad1660ab1b1c9994f647f3c46e41bf833a1934504bea1c0cb07e585bdde",
59
+ "microi-deployment/SKILL.md": "5a699ae5c45455c495ebfc25372444129dc997ba3c41f3e822e9c70591e12abc",
60
60
  "microi-deployment/references/deployment-matrix.md": "49c71b3b0d5cf0cb6bea36a8460b13ba46033adbeda89f097e10ea392ed04ceb",
61
61
  "microi-docs-coverage/SKILL.md": "44d2e633946af233bdd5a59a9fb74a8613e82031fa2f4635a2664fff0ad6c210",
62
62
  "microi-docs-coverage/references/capability-map.md": "fdc73d7164fddfea8f70107f678ecde3729f7fc34cd51cfab077188d1f7de48b",
63
63
  "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "ebd57f17f2ebae499bfa59ad17830db458590feb76f7f0f20219ff0987b33af3",
64
64
  "microi-form-engine/SKILL.md": "425ee60dbad2daeea91a980c5d53d7e736405f300fd625f1b33e75ce6f5591fe",
65
65
  "microi-form-engine/references/component-catalog.md": "f43fee6bc00e72f99efe286a94f46d8920f6159ec1a9745391f641acf7bdf249",
66
- "microi-form-engine/references/data-source-events.md": "59a95a36624476b12cdc84e4c23975d074b1f115df19992fd0fd075bb982e7cb",
66
+ "microi-form-engine/references/data-source-events.md": "acae97de68c729745fc831a546cbdee4feb598c10f6b667b678cc6513a3e9e22",
67
67
  "microi-form-layout/SKILL.md": "ce4278f50cd5cea54a20b082525b1a94b58baa7745a27bec626b71725affa061",
68
68
  "microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "b72f79f9cf7635d0add29aa954c9dc0d333a62f45ee1d6113fbd7ee250b26965",
69
69
  "microi-frontend-sdk/SKILL.md": "f05d35dc4427267582404e5e905654b240ffc0fdcd4c155516fa783eb38c5e14",
@@ -198,184 +198,184 @@
198
198
  "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "86db1f03700fd54dd824d28c553c678202e8f74b796fd0f9d91f63bf53a530b1"
199
199
  },
200
200
  "fileVersions": {
201
- ".microi-skills-version.json": "5.3.8",
202
- ".progressive-disclosure-manifest.json": "5.3.8",
203
- "README.md": "5.3.8",
204
- "ai-engine/SKILL.md": "5.3.8",
205
- "ai-engine/agents/openai.yaml": "5.3.8",
206
- "ai-platform-governance/SKILL.md": "5.3.8",
207
- "ai-platform-governance/references/progressive-01-功能开关.md": "5.3.8",
208
- "app-store/SKILL.md": "5.3.8",
209
- "app-store/agents/openai.yaml": "5.3.8",
210
- "business-blueprint/SKILL.md": "5.3.8",
211
- "datasource-engine/SKILL.md": "5.3.8",
212
- "datasource-engine/agents/openai.yaml": "5.3.8",
213
- "dos-orm/SKILL.md": "5.3.8",
214
- "dos-orm/references/api-reference.md": "5.3.8",
215
- "job-engine/SKILL.md": "5.3.8",
216
- "job-engine/agents/openai.yaml": "5.3.8",
217
- "message-notification/SKILL.md": "5.3.8",
218
- "message-notification/agents/openai.yaml": "5.3.8",
219
- "message-notification/references/contracts.md": "5.3.8",
220
- "microi-ai-app-auth.js": "5.3.8",
221
- "microi-ai-application/SKILL.md": "5.3.8",
222
- "microi-ai-application/agents/openai.yaml": "5.3.8",
223
- "microi-ai-application/references/frontend-baseline.md": "5.3.8",
224
- "microi-client-frontend/SKILL.md": "5.3.8",
225
- "microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "5.3.8",
226
- "microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "5.3.8",
227
- "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "5.3.8",
228
- "microi-codex-installer/SKILL.md": "5.3.8",
229
- "microi-codex-installer/agents/openai.yaml": "5.3.8",
230
- "microi-codex/SKILL.md": "5.3.8",
231
- "microi-datasource-mapping/SKILL.md": "5.3.8",
232
- "microi-db-schema/SKILL.md": "5.3.8",
233
- "microi-db-schema/agents/openai.yaml": "5.3.8",
234
- "microi-db-schema/references/core-tables.md": "5.3.8",
235
- "microi-db-schema/references/form-component-options.md": "5.3.8",
236
- "microi-db-schema/references/schema-overview.md": "5.3.8",
237
- "microi-db-schema/references/schema.md": "5.3.8",
238
- "microi-db-schema/references/table-catalog.md": "5.3.8",
239
- "microi-deployment/SKILL.md": "5.3.8",
240
- "microi-deployment/references/deployment-matrix.md": "5.3.8",
241
- "microi-docs-coverage/SKILL.md": "5.3.8",
242
- "microi-docs-coverage/references/capability-map.md": "5.3.8",
243
- "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "5.3.8",
244
- "microi-form-engine/SKILL.md": "5.3.8",
245
- "microi-form-engine/references/component-catalog.md": "5.3.8",
246
- "microi-form-engine/references/data-source-events.md": "5.3.8",
247
- "microi-form-layout/SKILL.md": "5.3.8",
248
- "microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "5.3.8",
249
- "microi-frontend-sdk/SKILL.md": "5.3.8",
250
- "microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "5.3.8",
251
- "microi-left-right-layout/SKILL.md": "5.3.8",
252
- "microi-microservice/SKILL.md": "5.3.8",
253
- "microi-microservice/references/runtime-delivery.md": "5.3.8",
254
- "microi-mobile-app-quality/SKILL.md": "5.3.8",
255
- "microi-mobile-app-quality/references/progressive-01-4-重要按钮必须带图标.md": "5.3.8",
256
- "microi-mobile-app-quality/references/progressive-02-9-主题切换必须真实且全局生效.md": "5.3.8",
257
- "microi-solution-quotation/SKILL.md": "5.3.8",
258
- "microi-solution-quotation/agents/openai.yaml": "5.3.8",
259
- "microi-solution-quotation/scripts/build_solution_quote.py": "5.3.8",
260
- "microi-sso/SKILL.md": "5.3.8",
261
- "microi-sso/references/acceptance.md": "5.3.8",
262
- "microi-sso/references/configuration-and-security.md": "5.3.8",
263
- "microi-sso/references/inbound.md": "5.3.8",
264
- "microi-sso/references/outbound.md": "5.3.8",
265
- "microi-system-delivery/SKILL.md": "5.3.8",
266
- "microi-system-delivery/references/progressive-01-标准工作流.md": "5.3.8",
267
- "microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md": "5.3.8",
268
- "microi-ui/SKILL.md": "5.3.8",
269
- "microi-ui/references/progressive-01-移动端场景蓝图.md": "5.3.8",
270
- "microi-uniapp-frontend/SKILL.md": "5.3.8",
271
- "microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "5.3.8",
272
- "microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "5.3.8",
273
- "microi.v8.js": "5.3.8",
274
- "module-engine/SKILL.md": "5.3.8",
275
- "module-engine/references/module-config.md": "5.3.8",
276
- "ocr-engine/SKILL.md": "5.3.8",
277
- "ocr-engine/agents/openai.yaml": "5.3.8",
278
- "page-engine/SKILL.md": "5.3.8",
279
- "page-engine/references/progressive-01-所有组件类型.md": "5.3.8",
280
- "page-engine/references/progressive-02-版本历史-并发保存与回滚.md": "5.3.8",
281
- "performance-testing/SKILL.md": "5.3.8",
282
- "playwright-e2e/SKILL.md": "5.3.8",
283
- "playwright-e2e/references/progressive-01-全自动登录-免验证码-但不免密码-必读.md": "5.3.8",
284
- "playwright-e2e/references/progressive-02-文字对比度与可读性自动化检查-必做.md": "5.3.8",
285
- "playwright-e2e/references/progressive-03-microi-helper-模板.md": "5.3.8",
286
- "playwright-e2e/references/progressive-04-ci-建议.md": "5.3.8",
287
- "print-engine/SKILL.md": "5.3.8",
288
- "production-readonly-audit/SKILL.md": "5.3.8",
289
- "report-engine/SKILL.md": "5.3.8",
290
- "report-engine/agents/openai.yaml": "5.3.8",
291
- "scripts/optimize-progressive-disclosure.mjs": "5.3.8",
292
- "scripts/refresh-progressive-disclosure.mjs": "5.3.8",
293
- "scripts/validate-progressive-disclosure.mjs": "5.3.8",
294
- "search-engine/SKILL.md": "5.3.8",
295
- "search-engine/agents/openai.yaml": "5.3.8",
296
- "spider-engine/SKILL.md": "5.3.8",
297
- "system-observability/SKILL.md": "5.3.8",
298
- "translate-engine/SKILL.md": "5.3.8",
299
- "translate-engine/agents/openai.yaml": "5.3.8",
300
- "ui-design/SKILL.md": "5.3.8",
301
- "ui-design/assets/pattern-showcase/app.js": "5.3.8",
302
- "ui-design/assets/pattern-showcase/index.html": "5.3.8",
303
- "ui-design/assets/pattern-showcase/styles.css": "5.3.8",
304
- "ui-design/assets/templates/MCI-DESIGN.md": "5.3.8",
305
- "ui-design/references/design-pattern-library.md": "5.3.8",
306
- "ui-design/references/mci-design-contract.md": "5.3.8",
307
- "ui-design/references/motion-and-media.md": "5.3.8",
308
- "ui-design/references/product-flow-recipes.md": "5.3.8",
309
- "ui-design/references/progressive-01-颜色体系-css-variables-支持主题切换.md": "5.3.8",
310
- "ui-design/references/progressive-02-字体.md": "5.3.8",
311
- "ui-design/references/progressive-03-动效规范-丰富但不卡.md": "5.3.8",
312
- "ui-design/references/progressive-04-组件风格速查.md": "5.3.8",
313
- "ui-design/references/progressive-05-移动端专用规范.md": "5.3.8",
314
- "ui-design/references/progressive-06-主题切换实现.md": "5.3.8",
315
- "ui-design/references/progressive-07-速查-从头搭建一个移动端页面.md": "5.3.8",
316
- "ui-design/references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md": "5.3.8",
317
- "uniapp-mall-assets/SKILL.md": "5.3.8",
318
- "unity-integration/SKILL.md": "5.3.8",
319
- "unity-integration/agents/openai.yaml": "5.3.8",
320
- "unity-integration/references/ai-app-delivery.md": "5.3.8",
321
- "unity-integration/references/sdk-api.md": "5.3.8",
322
- "unity-integration/references/toolbox-migration.md": "5.3.8",
323
- "unity-integration/references/webgl-hosting.md": "5.3.8",
324
- "v8-api-config/SKILL.md": "5.3.8",
325
- "v8-cache-pattern/SKILL.md": "5.3.8",
326
- "v8-crud-api/SKILL.md": "5.3.8",
327
- "v8-crud-api/references/progressive-01-查询列表-分页.md": "5.3.8",
328
- "v8-crud-api/references/progressive-02-where-条件语法速查.md": "5.3.8",
329
- "v8-debugging/SKILL.md": "5.3.8",
330
- "v8-explorer-tree/SKILL.md": "5.3.8",
331
- "v8-export-import/SKILL.md": "5.3.8",
332
- "v8-export-import/references/progressive-01-excellayout-高级自由布局.md": "5.3.8",
333
- "v8-export-import/references/progressive-02-powerpoint-导出.md": "5.3.8",
334
- "v8-export-import/references/progressive-03-安全-性能注意.md": "5.3.8",
335
- "v8-file-upload/SKILL.md": "5.3.8",
336
- "v8-file-upload/references/progressive-01-公有桶-vs-私有桶.md": "5.3.8",
337
- "v8-file-upload/references/progressive-02-office-文件在线编辑版本号规则.md": "5.3.8",
338
- "v8-formengine-http/SKILL.md": "5.3.8",
339
- "v8-frontend-events/SKILL.md": "5.3.8",
340
- "v8-frontend-events/references/bluetooth-print-api.md": "5.3.8",
341
- "v8-frontend-events/references/bluetooth-print.md": "5.3.8",
342
- "v8-frontend-events/references/progressive-01-列表事件.md": "5.3.8",
343
- "v8-http-integration/SKILL.md": "5.3.8",
344
- "v8-http-integration/references/progressive-01-get-请求.md": "5.3.8",
345
- "v8-http-integration/references/progressive-02-错误处理模式.md": "5.3.8",
346
- "v8-image-processing/SKILL.md": "5.3.8",
347
- "v8-image-processing/agents/openai.yaml": "5.3.8",
348
- "v8-image-processing/references/api-reference.md": "5.3.8",
349
- "v8-menu-buttons/SKILL.md": "5.3.8",
350
- "v8-menu-buttons/references/progressive-01-2-按钮对象-schema.md": "5.3.8",
351
- "v8-menu-buttons/references/progressive-02-8-模式-f-后台任务按钮-长任务.md": "5.3.8",
352
- "v8-menu-buttons/references/progressive-03-10-反模式-避免.md": "5.3.8",
353
- "v8-mongodb/SKILL.md": "5.3.8",
354
- "v8-mq-mqtt/SKILL.md": "5.3.8",
355
- "v8-mq-mqtt/references/mqtt-production.md": "5.3.8",
356
- "v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "5.3.8",
357
- "v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "5.3.8",
358
- "v8-saas-multi-tenant/SKILL.md": "5.3.8",
359
- "v8-security/SKILL.md": "5.3.8",
360
- "v8-security/references/progressive-01-2-权限校验.md": "5.3.8",
361
- "v8-security/references/progressive-02-7-日志记录.md": "5.3.8",
362
- "v8-sql-query/SKILL.md": "5.3.8",
363
- "v8-table-event/SKILL.md": "5.3.8",
364
- "v8-table-event/references/progressive-01-informv8-js-表单打开事件.md": "5.3.8",
365
- "v8-table-event/references/progressive-02-前端事件名-v8-eventname-可能的值.md": "5.3.8",
366
- "v8-tcp-integration/SKILL.md": "5.3.8",
367
- "v8-tcp-integration/agents/openai.yaml": "5.3.8",
368
- "v8-template-engine/SKILL.md": "5.3.8",
369
- "v8-utilities/SKILL.md": "5.3.8",
370
- "v8-utilities/references/client-api-index.md": "5.3.8",
371
- "v8-utilities/references/platform-http-routes.md": "5.3.8",
372
- "v8-utilities/references/server-api-index.md": "5.3.8",
373
- "v8-workflow/SKILL.md": "5.3.8",
374
- "v8-workflow/references/progressive-01-节点开始-v8-事件.md": "5.3.8",
375
- "workspace-conventions/SKILL.md": "5.3.8",
376
- "workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "5.3.8",
377
- "workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md": "5.3.8",
378
- "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "5.3.8"
201
+ ".microi-skills-version.json": "5.3.9",
202
+ ".progressive-disclosure-manifest.json": "5.3.9",
203
+ "README.md": "5.3.9",
204
+ "ai-engine/SKILL.md": "5.3.9",
205
+ "ai-engine/agents/openai.yaml": "5.3.9",
206
+ "ai-platform-governance/SKILL.md": "5.3.9",
207
+ "ai-platform-governance/references/progressive-01-功能开关.md": "5.3.9",
208
+ "app-store/SKILL.md": "5.3.9",
209
+ "app-store/agents/openai.yaml": "5.3.9",
210
+ "business-blueprint/SKILL.md": "5.3.9",
211
+ "datasource-engine/SKILL.md": "5.3.9",
212
+ "datasource-engine/agents/openai.yaml": "5.3.9",
213
+ "dos-orm/SKILL.md": "5.3.9",
214
+ "dos-orm/references/api-reference.md": "5.3.9",
215
+ "job-engine/SKILL.md": "5.3.9",
216
+ "job-engine/agents/openai.yaml": "5.3.9",
217
+ "message-notification/SKILL.md": "5.3.9",
218
+ "message-notification/agents/openai.yaml": "5.3.9",
219
+ "message-notification/references/contracts.md": "5.3.9",
220
+ "microi-ai-app-auth.js": "5.3.9",
221
+ "microi-ai-application/SKILL.md": "5.3.9",
222
+ "microi-ai-application/agents/openai.yaml": "5.3.9",
223
+ "microi-ai-application/references/frontend-baseline.md": "5.3.9",
224
+ "microi-client-frontend/SKILL.md": "5.3.9",
225
+ "microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "5.3.9",
226
+ "microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "5.3.9",
227
+ "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "5.3.9",
228
+ "microi-codex-installer/SKILL.md": "5.3.9",
229
+ "microi-codex-installer/agents/openai.yaml": "5.3.9",
230
+ "microi-codex/SKILL.md": "5.3.9",
231
+ "microi-datasource-mapping/SKILL.md": "5.3.9",
232
+ "microi-db-schema/SKILL.md": "5.3.9",
233
+ "microi-db-schema/agents/openai.yaml": "5.3.9",
234
+ "microi-db-schema/references/core-tables.md": "5.3.9",
235
+ "microi-db-schema/references/form-component-options.md": "5.3.9",
236
+ "microi-db-schema/references/schema-overview.md": "5.3.9",
237
+ "microi-db-schema/references/schema.md": "5.3.9",
238
+ "microi-db-schema/references/table-catalog.md": "5.3.9",
239
+ "microi-deployment/SKILL.md": "5.3.9",
240
+ "microi-deployment/references/deployment-matrix.md": "5.3.9",
241
+ "microi-docs-coverage/SKILL.md": "5.3.9",
242
+ "microi-docs-coverage/references/capability-map.md": "5.3.9",
243
+ "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "5.3.9",
244
+ "microi-form-engine/SKILL.md": "5.3.9",
245
+ "microi-form-engine/references/component-catalog.md": "5.3.9",
246
+ "microi-form-engine/references/data-source-events.md": "5.3.9",
247
+ "microi-form-layout/SKILL.md": "5.3.9",
248
+ "microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "5.3.9",
249
+ "microi-frontend-sdk/SKILL.md": "5.3.9",
250
+ "microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "5.3.9",
251
+ "microi-left-right-layout/SKILL.md": "5.3.9",
252
+ "microi-microservice/SKILL.md": "5.3.9",
253
+ "microi-microservice/references/runtime-delivery.md": "5.3.9",
254
+ "microi-mobile-app-quality/SKILL.md": "5.3.9",
255
+ "microi-mobile-app-quality/references/progressive-01-4-重要按钮必须带图标.md": "5.3.9",
256
+ "microi-mobile-app-quality/references/progressive-02-9-主题切换必须真实且全局生效.md": "5.3.9",
257
+ "microi-solution-quotation/SKILL.md": "5.3.9",
258
+ "microi-solution-quotation/agents/openai.yaml": "5.3.9",
259
+ "microi-solution-quotation/scripts/build_solution_quote.py": "5.3.9",
260
+ "microi-sso/SKILL.md": "5.3.9",
261
+ "microi-sso/references/acceptance.md": "5.3.9",
262
+ "microi-sso/references/configuration-and-security.md": "5.3.9",
263
+ "microi-sso/references/inbound.md": "5.3.9",
264
+ "microi-sso/references/outbound.md": "5.3.9",
265
+ "microi-system-delivery/SKILL.md": "5.3.9",
266
+ "microi-system-delivery/references/progressive-01-标准工作流.md": "5.3.9",
267
+ "microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md": "5.3.9",
268
+ "microi-ui/SKILL.md": "5.3.9",
269
+ "microi-ui/references/progressive-01-移动端场景蓝图.md": "5.3.9",
270
+ "microi-uniapp-frontend/SKILL.md": "5.3.9",
271
+ "microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "5.3.9",
272
+ "microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "5.3.9",
273
+ "microi.v8.js": "5.3.9",
274
+ "module-engine/SKILL.md": "5.3.9",
275
+ "module-engine/references/module-config.md": "5.3.9",
276
+ "ocr-engine/SKILL.md": "5.3.9",
277
+ "ocr-engine/agents/openai.yaml": "5.3.9",
278
+ "page-engine/SKILL.md": "5.3.9",
279
+ "page-engine/references/progressive-01-所有组件类型.md": "5.3.9",
280
+ "page-engine/references/progressive-02-版本历史-并发保存与回滚.md": "5.3.9",
281
+ "performance-testing/SKILL.md": "5.3.9",
282
+ "playwright-e2e/SKILL.md": "5.3.9",
283
+ "playwright-e2e/references/progressive-01-全自动登录-免验证码-但不免密码-必读.md": "5.3.9",
284
+ "playwright-e2e/references/progressive-02-文字对比度与可读性自动化检查-必做.md": "5.3.9",
285
+ "playwright-e2e/references/progressive-03-microi-helper-模板.md": "5.3.9",
286
+ "playwright-e2e/references/progressive-04-ci-建议.md": "5.3.9",
287
+ "print-engine/SKILL.md": "5.3.9",
288
+ "production-readonly-audit/SKILL.md": "5.3.9",
289
+ "report-engine/SKILL.md": "5.3.9",
290
+ "report-engine/agents/openai.yaml": "5.3.9",
291
+ "scripts/optimize-progressive-disclosure.mjs": "5.3.9",
292
+ "scripts/refresh-progressive-disclosure.mjs": "5.3.9",
293
+ "scripts/validate-progressive-disclosure.mjs": "5.3.9",
294
+ "search-engine/SKILL.md": "5.3.9",
295
+ "search-engine/agents/openai.yaml": "5.3.9",
296
+ "spider-engine/SKILL.md": "5.3.9",
297
+ "system-observability/SKILL.md": "5.3.9",
298
+ "translate-engine/SKILL.md": "5.3.9",
299
+ "translate-engine/agents/openai.yaml": "5.3.9",
300
+ "ui-design/SKILL.md": "5.3.9",
301
+ "ui-design/assets/pattern-showcase/app.js": "5.3.9",
302
+ "ui-design/assets/pattern-showcase/index.html": "5.3.9",
303
+ "ui-design/assets/pattern-showcase/styles.css": "5.3.9",
304
+ "ui-design/assets/templates/MCI-DESIGN.md": "5.3.9",
305
+ "ui-design/references/design-pattern-library.md": "5.3.9",
306
+ "ui-design/references/mci-design-contract.md": "5.3.9",
307
+ "ui-design/references/motion-and-media.md": "5.3.9",
308
+ "ui-design/references/product-flow-recipes.md": "5.3.9",
309
+ "ui-design/references/progressive-01-颜色体系-css-variables-支持主题切换.md": "5.3.9",
310
+ "ui-design/references/progressive-02-字体.md": "5.3.9",
311
+ "ui-design/references/progressive-03-动效规范-丰富但不卡.md": "5.3.9",
312
+ "ui-design/references/progressive-04-组件风格速查.md": "5.3.9",
313
+ "ui-design/references/progressive-05-移动端专用规范.md": "5.3.9",
314
+ "ui-design/references/progressive-06-主题切换实现.md": "5.3.9",
315
+ "ui-design/references/progressive-07-速查-从头搭建一个移动端页面.md": "5.3.9",
316
+ "ui-design/references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md": "5.3.9",
317
+ "uniapp-mall-assets/SKILL.md": "5.3.9",
318
+ "unity-integration/SKILL.md": "5.3.9",
319
+ "unity-integration/agents/openai.yaml": "5.3.9",
320
+ "unity-integration/references/ai-app-delivery.md": "5.3.9",
321
+ "unity-integration/references/sdk-api.md": "5.3.9",
322
+ "unity-integration/references/toolbox-migration.md": "5.3.9",
323
+ "unity-integration/references/webgl-hosting.md": "5.3.9",
324
+ "v8-api-config/SKILL.md": "5.3.9",
325
+ "v8-cache-pattern/SKILL.md": "5.3.9",
326
+ "v8-crud-api/SKILL.md": "5.3.9",
327
+ "v8-crud-api/references/progressive-01-查询列表-分页.md": "5.3.9",
328
+ "v8-crud-api/references/progressive-02-where-条件语法速查.md": "5.3.9",
329
+ "v8-debugging/SKILL.md": "5.3.9",
330
+ "v8-explorer-tree/SKILL.md": "5.3.9",
331
+ "v8-export-import/SKILL.md": "5.3.9",
332
+ "v8-export-import/references/progressive-01-excellayout-高级自由布局.md": "5.3.9",
333
+ "v8-export-import/references/progressive-02-powerpoint-导出.md": "5.3.9",
334
+ "v8-export-import/references/progressive-03-安全-性能注意.md": "5.3.9",
335
+ "v8-file-upload/SKILL.md": "5.3.9",
336
+ "v8-file-upload/references/progressive-01-公有桶-vs-私有桶.md": "5.3.9",
337
+ "v8-file-upload/references/progressive-02-office-文件在线编辑版本号规则.md": "5.3.9",
338
+ "v8-formengine-http/SKILL.md": "5.3.9",
339
+ "v8-frontend-events/SKILL.md": "5.3.9",
340
+ "v8-frontend-events/references/bluetooth-print-api.md": "5.3.9",
341
+ "v8-frontend-events/references/bluetooth-print.md": "5.3.9",
342
+ "v8-frontend-events/references/progressive-01-列表事件.md": "5.3.9",
343
+ "v8-http-integration/SKILL.md": "5.3.9",
344
+ "v8-http-integration/references/progressive-01-get-请求.md": "5.3.9",
345
+ "v8-http-integration/references/progressive-02-错误处理模式.md": "5.3.9",
346
+ "v8-image-processing/SKILL.md": "5.3.9",
347
+ "v8-image-processing/agents/openai.yaml": "5.3.9",
348
+ "v8-image-processing/references/api-reference.md": "5.3.9",
349
+ "v8-menu-buttons/SKILL.md": "5.3.9",
350
+ "v8-menu-buttons/references/progressive-01-2-按钮对象-schema.md": "5.3.9",
351
+ "v8-menu-buttons/references/progressive-02-8-模式-f-后台任务按钮-长任务.md": "5.3.9",
352
+ "v8-menu-buttons/references/progressive-03-10-反模式-避免.md": "5.3.9",
353
+ "v8-mongodb/SKILL.md": "5.3.9",
354
+ "v8-mq-mqtt/SKILL.md": "5.3.9",
355
+ "v8-mq-mqtt/references/mqtt-production.md": "5.3.9",
356
+ "v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "5.3.9",
357
+ "v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "5.3.9",
358
+ "v8-saas-multi-tenant/SKILL.md": "5.3.9",
359
+ "v8-security/SKILL.md": "5.3.9",
360
+ "v8-security/references/progressive-01-2-权限校验.md": "5.3.9",
361
+ "v8-security/references/progressive-02-7-日志记录.md": "5.3.9",
362
+ "v8-sql-query/SKILL.md": "5.3.9",
363
+ "v8-table-event/SKILL.md": "5.3.9",
364
+ "v8-table-event/references/progressive-01-informv8-js-表单打开事件.md": "5.3.9",
365
+ "v8-table-event/references/progressive-02-前端事件名-v8-eventname-可能的值.md": "5.3.9",
366
+ "v8-tcp-integration/SKILL.md": "5.3.9",
367
+ "v8-tcp-integration/agents/openai.yaml": "5.3.9",
368
+ "v8-template-engine/SKILL.md": "5.3.9",
369
+ "v8-utilities/SKILL.md": "5.3.9",
370
+ "v8-utilities/references/client-api-index.md": "5.3.9",
371
+ "v8-utilities/references/platform-http-routes.md": "5.3.9",
372
+ "v8-utilities/references/server-api-index.md": "5.3.9",
373
+ "v8-workflow/SKILL.md": "5.3.9",
374
+ "v8-workflow/references/progressive-01-节点开始-v8-事件.md": "5.3.9",
375
+ "workspace-conventions/SKILL.md": "5.3.9",
376
+ "workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "5.3.9",
377
+ "workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md": "5.3.9",
378
+ "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "5.3.9"
379
379
  },
380
380
  "files": [
381
381
  ".microi-skills-version.json",
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "5.3.8",
2
+ "version": "5.3.9",
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-26T22:36:39.071Z"
5
+ "updatedAt": "2026-08-27T13:00:40.619Z"
6
6
  }
@@ -82,6 +82,13 @@ Microi API 安装时,`AppSettings` 与同名容器环境变量只允许以下
82
82
  - 端口、密码和数据目录全部生成后,安装器必须注册统一的失败收尾:数据库、缓存、存储、API/Web、完整升级链或 API liveness/readiness 等核心后段错误保留原始非零退出码,并输出标题为“安装未完成”的恢复汇总,列出已生成端口、凭据、目录、失败阶段和全部容器状态。OCR/LibreTranslate 的网络、镜像、容器或 SaaS 配置失败只记录附加能力警告、保持对应能力未启用并继续核心安装。两种结果都不得把 `Running` 当 readiness,也不得绕过 Upgrade29/Upgrade31 或完整升级链门禁。
83
83
  - 从客户/旧库恢复安装时,安装器只按 `OsClient + OsClientType + OsClientNetwork + IsEnable + IsDeleted` 处理目标主租户:0 条时幂等创建最小可运行记录,1 条时原位复用,超过 1 条失败关闭。禁止把所有活动 `sys_osclients` 批量改成输入的 OsClient;新记录不得落库 `DbConn/DbReadConn/DbMongoConnection` 或 Redis 主机、端口、密码,这些继续由十项编排启动配置提供。MinIO、OCR 等安装值随后只更新这个精确三元组并回读唯一性。
84
84
 
85
+ ### 复盘:普通帐号运行安装器直到步骤 5 才因 `/microi/compose` 权限失败
86
+
87
+ - 触发场景:普通帐号已经加入 Docker 组,前四步的探测和交互看似正常;脚本在开放防火墙后直接执行 `mkdir -p /microi/compose`,才报 `Permission denied`。命令替换中的数据目录创建错误还可能被旧 Bash 的 `set -e` 语义掩盖,使成功提示先于真实失败出现。
88
+ - 根因:安装器把 `sudo` 零散放在软件包、防火墙和 systemd 命令前,却没有在真实安装或修复入口统一取得 root 身份;同时假设精简系统一定安装 `sudo`,普通用户与“root 但无 sudo”两种环境都没有明确的早期门禁。
89
+ - 通用规则:会写 `/microi`、`/home`、防火墙、systemd/cgroup 或 Docker 宿主状态的一键安装/修复,必须在步骤 1 和任何交互、凭据生成、宿主机写入前完成一次 root 门禁。普通帐号有 `sudo` 时重新执行同一绝对脚本并保留参数;无 `sudo` 或验证失败时零副作用停止并给出 `su -` 恢复指引。已经是 root 时不得要求系统额外安装 `sudo`;目录创建仍要显式检查只读文件系统、空间和权限错误。
90
+ - 自动化检查:提供只执行权限门禁的无副作用入口;在本地 Linux 容器分别覆盖 root 且无 sudo、普通帐号且无 sudo、普通帐号通过 sudo 提权三种场景,断言成功路径最终 `uid=0`、失败路径发生在步骤 1 之前且不创建 `/microi`。源码契约同时锁定正常安装与 `--repair-app` 均调用同一门禁,并执行 `bash -n`。
91
+
85
92
  ## 多节点与滚动发布
86
93
 
87
94
  后端默认按多个 API/Worker 节点设计:
@@ -153,6 +160,13 @@ Microi API 安装时,`AppSettings` 与同名容器环境变量只允许以下
153
160
  - 通用规则:发布冒烟必须启动最终混淆/签名后的产物,确认本次进程仍存活,再以 `/api/Diagnostics/liveness` HTTP 200 判定启动成功;使用专用空闲端口,成功、超时、异常和中断路径都要在有限时间内结束本次进程并清理 publish 内的临时 logs/PDB。版本号已经更新但尚未提交时,重跑默认继续工作区当前版本,不能再次自动递增;当前版本进入 Git HEAD 后才计算下一版本。
154
161
  - 自动化检查:构造不再输出旧中文文案但 liveness 返回 200 的版本,断言冒烟成功;另覆盖端口占用、进程提前退出和 liveness 超时,断言脚本失败原因准确、进程无残留、`publish/logs` 不存在。再把工作区版本设为高于 HEAD,验证重跑默认版本保持不变。
155
162
 
163
+ ### 复盘:旧租户启动闭包把应用包展示字段当成物理列并反复重启
164
+
165
+ - 触发场景:升级后的节点发现平台运行时接口缺失,准备从内置官方应用包自愈;旧包把接口名称导出为 `Name`,目标 `sys_apiengine` 的真实字段却是 `ApiName`,直接拼接包对象后出现 `Unknown column 'Name' in 'field list'`。修完别名后,另一批旧库又因 `UserId NOT NULL` 且无默认值、而少数新接口包漏出审计字段,出现 `Field 'UserId' doesn't have a default value`。启动门禁失败会使 Docker 的 restart policy 不断重启同一进程。
166
+ - 根因:启动自愈把“应用包传输对象”误当成“数据库物理行”,既没有规范化历史别名,也没有按目标租户的真实表结构过滤;同时只检查“列是否存在”,却没有覆盖旧结构中仍为必填且无默认值的审计列。不同年代租户会依次暴露 unknown-column 或 required-column 错误。
167
+ - 通用规则:任何在 FormEngine 可用前直接写核心物理表的可信自愈,都必须先规范化已知历史别名,再应用固定实体字段白名单,并与目标租户实时回读的物理列取交集;SQL 只使用经过双重筛选的固定标识符和参数值。官方包本身必须携带完整审计字段;无登录上下文的启动门禁还必须为历史必填审计列提供稳定的系统身份兜底,并为 `IsDeleted/IsEnable/Lock` 等开关及 `ApiRole/Files` 等集合字段补齐语义明确的插入默认值,这些默认值不得参与授权。必需业务列缺失时给出明确物理升级错误,写入后按稳定 Key 强回读,禁止把包级元数据直接转换成列名。
168
+ - 自动化检查:使用包含旧 `Name`、未来包级字段、新版本可选列及缺失 `UserId/UserName/Lock` 的官方包样例,分别对完整结构与精简旧结构断言 `Name -> ApiName`、未知字段被丢弃、必需字段保留、审计字段和传统必填列获得稳定非空值;同时扫描全部启动闭包包,保证 `SysApiEngines` 只输出 `ApiName` 且审计字段及传统必填开关完整,并锁定新增接口生成器输出的集合字段,最后执行真实启动日志门禁回归。
169
+
156
170
  ## 禁止事项
157
171
 
158
172
  - 不把数据库/Redis/MinIO 密码写入仓库、日志、命令回显或最终答复。
@@ -87,6 +87,13 @@ if (!V8.Form.Name) return { Code: 0, Msg: '名称不能为空' };
87
87
  - 修改防抖编辑器/代码字段前必须刷新待保存值,避免最后一次输入未入库。
88
88
  - `Data/Config` 修改后回读并刷新 schema 缓存。
89
89
 
90
+ ### 历史字段 V8 双存储兼容
91
+
92
+ - `diy_field.V8Code` 是历史租户和官方应用包实际使用的物理列,按钮点击/字段值变更代码可能只存在于该列;`Config.V8Code` 是部分新版前端使用的镜像,不能假定它是唯一事实源。
93
+ - 后端 `DiyField` 实体、字段查询投影和 `DiyFieldParam` 必须保留 `V8Code`,否则数据库代码虽然仍在,设计器列表和单字段回读都会表现成“0 字”。
94
+ - 前端回读顺序固定为:先安全解码历史 Base64,再取“非空物理 `V8Code` 优先、否则 `Config.V8Code`”,最后同步两处。禁止用空镜像覆盖非空物理代码;保存和显式清空时则必须同步写入两处。
95
+ - 回归至少包含一个 `Component=Button`、根级 `V8Code` 非空而 `Config.V8Code` 为空的官方包字段,并验证列表回读、选中编辑、保存、刷新后代码仍完整。
96
+
90
97
  ## DevComponent 定制组件
91
98
 
92
99
  定制组件至少处理: