@microi.net/cli 5.2.3 → 5.2.4

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-22T21:26:20.289Z",
2
+ "builtAt": "2026-08-23T04:41:57.567Z",
3
3
  "source": "../microi.skills",
4
4
  "extension": {
5
5
  "name": "v8-engine",
6
- "version": "5.2.3",
6
+ "version": "5.2.4",
7
7
  "publisher": "Microi"
8
8
  },
9
9
  "skills": {
10
- "version": "5.2.3",
10
+ "version": "5.2.4",
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,17 +15,17 @@
15
15
  "dir": "dist/microi.skills",
16
16
  "files": 177,
17
17
  "skills": 64,
18
- "bytes": 2187566
18
+ "bytes": 2196071
19
19
  },
20
20
  "fileHashes": {
21
- ".microi-skills-version.json": "55abe8861932a9c4b68137b14159adff33181b86fb5ad1586de275d0c5de7b68",
22
- ".progressive-disclosure-manifest.json": "1761c877fb868da0572a40b2b1884a7c17fa4215ac91bbb7c55e2084fefb0deb",
21
+ ".microi-skills-version.json": "1fd9e365bae1ad365000ec91ce3030cce03daeff60a7784441a09b8ab5654624",
22
+ ".progressive-disclosure-manifest.json": "852576d84d0c40d3171771ff8373b85b74e93c74f26a1a4d76c3577233a98b5a",
23
23
  "README.md": "d39c20a392145fe9aff9929bec11549bdd1fe1640e5af63228ac396b21173046",
24
24
  "ai-engine/SKILL.md": "0d91e157454569003b216ee4e6efa8b161dd7409788c4cae9f10f212531badc3",
25
25
  "ai-engine/agents/openai.yaml": "40deb07801006a46b9a7f0020d13251955eeadd04c8e591160210479936f8b5b",
26
26
  "ai-platform-governance/SKILL.md": "84ca4bcacf15deecd0c04dc1a664b23041a6a5f020d3a5288c5458b5e7da4b8e",
27
27
  "ai-platform-governance/references/progressive-01-功能开关.md": "ea46fb02267e9e3ace3d9d72e67b02183c61e5c198f4b2f27e8196d6ee6d0bec",
28
- "app-store/SKILL.md": "b9b52455f74ae60d77dd3db6c94d8a9162dd3ca87a003a843b3a397e99ff5580",
28
+ "app-store/SKILL.md": "9e8b311bfa03e573cfdd00f256a8e27ca3684158fb1266822589480088556533",
29
29
  "app-store/agents/openai.yaml": "eda8f5cf043e7b8fb0e4fb3acf0625fef95eb49586b43187ced277cd0ae4a2c4",
30
30
  "business-blueprint/SKILL.md": "01619a3b6d37b5b67649ee59d2701301222006d3b943882b2802b1721c58f8a9",
31
31
  "datasource-engine/SKILL.md": "bed8352f1d43b55145e1c492d1ea0ca1ec8750b5c4d74e1e80cd71aa7b9a2e6f",
@@ -36,9 +36,9 @@
36
36
  "job-engine/agents/openai.yaml": "65889ee39bc34caca9085539d8954a381aab93590c5635eea3bb6f4c001934af",
37
37
  "message-notification/SKILL.md": "54c92a1bfd4ae7fa42ef87775f209ea3e935d0fcec4fa352511553084b23bd75",
38
38
  "message-notification/agents/openai.yaml": "d0e259921410e94caaf8b376d690a529842446e3f32c9523b7dfd1bda599f58c",
39
- "message-notification/references/contracts.md": "a33e3dd4093430ed1dc5b79a978d8981479e975a7dd30fde6f68559360369f06",
39
+ "message-notification/references/contracts.md": "752a5acdd6481dd2386d116eaa8b59401dcef8fc07185208c5e835e17b979afe",
40
40
  "microi-ai-app-auth.js": "8023db6ae655bc33027f389a64ef7937ac09da35eb1b8a497aaefb986834242a",
41
- "microi-ai-application/SKILL.md": "1fe627d21e9317ccdd46e0d8a0597ec722ceef456d435ed090df967616cb5d3e",
41
+ "microi-ai-application/SKILL.md": "de48dd57de350dcc3e605bc5075ff0d6cfa33e7f7e450e59cbdd6afe32e02e0b",
42
42
  "microi-ai-application/agents/openai.yaml": "d3dfc4d0f2fda3391e90e661ca9d8d051cb43824b011d1a88e99db135870454f",
43
43
  "microi-ai-application/references/frontend-baseline.md": "c21a2d38292fd8d445a7538afb45d609881f624f32d39c0fc4bbbb3c2fa64a74",
44
44
  "microi-client-frontend/SKILL.md": "14bef202a3b8b99d3b36144bd99fa5a2f92de638ee48bd11f42c32eada1bd0fd",
@@ -52,7 +52,7 @@
52
52
  "microi-db-schema/SKILL.md": "a69a9bcc87e8b74879c801c7e478a6270da8f2e4724421ff0611bb9a95c2fd1f",
53
53
  "microi-db-schema/agents/openai.yaml": "c725a2be4c904472f9e46dc4b49aa642c9f3a4437c91a28ba7cc27167497ede7",
54
54
  "microi-db-schema/references/core-tables.md": "b71164d9afe8cd6085745a27dddb31722014a85f8ab22f09ab447738612fea6a",
55
- "microi-db-schema/references/form-component-options.md": "c4c5085d4b2e4fc79b09d255fa1655c2007e863e3c102ccf805ca57abdf79028",
55
+ "microi-db-schema/references/form-component-options.md": "070f31a866ac59a7e727e2f90fb796f51818acfa5ec4d769f352abcc26287707",
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",
@@ -62,14 +62,14 @@
62
62
  "microi-docs-coverage/references/capability-map.md": "7be5142411650c3ad50414324d07240b8d110f98c2bea57eda38da846bfdd516",
63
63
  "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "ebd57f17f2ebae499bfa59ad17830db458590feb76f7f0f20219ff0987b33af3",
64
64
  "microi-form-engine/SKILL.md": "b92a7f80cb35ff26b2a1b0b91829fe85329794bb6e92e4b9e95ff706fb5c9ddb",
65
- "microi-form-engine/references/component-catalog.md": "24ca51a7e0c75ea6b5d98c33685a4d6e8758e699f27278b656c8921c49d3893a",
65
+ "microi-form-engine/references/component-catalog.md": "5272eb01b9bbedd5bdbcb9c839316812c69a29c8e92766229cbec1a904effcac",
66
66
  "microi-form-engine/references/data-source-events.md": "59a95a36624476b12cdc84e4c23975d074b1f115df19992fd0fd075bb982e7cb",
67
67
  "microi-form-layout/SKILL.md": "8a443d18587fc1eb0a9d5ae8082bc730b43ad82ca450af91cd5cfca4515b0392",
68
68
  "microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "b72f79f9cf7635d0add29aa954c9dc0d333a62f45ee1d6113fbd7ee250b26965",
69
69
  "microi-frontend-sdk/SKILL.md": "828edf7b6a08cde37e13aeee0f9eb4042dc74e10b62ef80c87649ccb6231139a",
70
70
  "microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "5dea28edec5a31b6e6e5e15fefc03df9d1ad9bd4b583388fc77bd2aa67a19165",
71
71
  "microi-left-right-layout/SKILL.md": "e2f051bce91e6b7cd103599ea526d543fd0f8caaa4c92c71e9e5d81b1a90cf7d",
72
- "microi-microservice/SKILL.md": "4abbe1608a10280f13a11a34c380ca46d76df09c9b35a57f29d5345d21450c59",
72
+ "microi-microservice/SKILL.md": "b4d905f92ea66d7e09ecf0a8d7606ae236f188084f86311af8b3f8ccf862a615",
73
73
  "microi-microservice/references/runtime-delivery.md": "538ae295826892942b365492b11aa4797599ea7047fc69409aae64ed99ecfe9b",
74
74
  "microi-mobile-app-quality/SKILL.md": "79cb796df3a486c9a39db10d47df53d9dafb259826067799486def659683144a",
75
75
  "microi-mobile-app-quality/references/progressive-01-4-重要按钮必须带图标.md": "ec938bd1a64b9896ff5d3165ad217ee5c68a22a51ddb690d8a8a0c7a9365c512",
@@ -147,7 +147,7 @@
147
147
  "v8-crud-api/references/progressive-02-where-条件语法速查.md": "3ee7f1ef68b3546a5dacd0ed12f94e1ca7bf6cd10ecf5c3594bc4ecfb63f333d",
148
148
  "v8-debugging/SKILL.md": "32007f51d5ba0a6125f2220904bf1864a283820bb61ee6c0b2c9a0e8477f776c",
149
149
  "v8-explorer-tree/SKILL.md": "1c941d9b5b589a27ed2ce3000f69206c2209660f7d1c86b5b0cb0a82bc1d5003",
150
- "v8-export-import/SKILL.md": "ee0eb3b474556c546ac2a3f8f5733b48180711c46421de19df5da6ec1af66e58",
150
+ "v8-export-import/SKILL.md": "f5c04ad68d1aea586ae01fab3c6a22942cf578e160ce59d4f16dc1667f7b9a5d",
151
151
  "v8-export-import/references/progressive-01-excellayout-高级自由布局.md": "71ab3c94a6034f2d0c374de594104543770cb1313a6515494a213a1ecdf5baf7",
152
152
  "v8-export-import/references/progressive-02-powerpoint-导出.md": "5837905a195be7c38fe37e0abd40eee95a8bc26acdab1f3a9aba01c264a125ae",
153
153
  "v8-export-import/references/progressive-03-安全-性能注意.md": "a2acc492740eb693be5a0ad275cabcba7a813aa7378c844e43b04233d03a9d0c",
@@ -174,8 +174,8 @@
174
174
  "v8-mq-mqtt/references/mqtt-production.md": "8ef68eb3f312abfef23a2c667d809d9aa2bc036f6219ea7921969b4edb0f0090",
175
175
  "v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "842c74bd8bc30b932346e34c0d4154edffc1bf6a5a8aaafaaa344f250394762c",
176
176
  "v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "e9f981e17e3d93d64aeeeb1bbc80a0eb680414e17782d43bfc7c1db676063dd0",
177
- "v8-saas-multi-tenant/SKILL.md": "f3f4e7b0ce320eb72a62bce3666cd7420a17d477c4d6a5dd29d7cef7a61cfb0e",
178
- "v8-security/SKILL.md": "61bcd71e6b5db1a3ee4aa59b2513f3e5b98184c7a59e7978bf8d90669d7e80e8",
177
+ "v8-saas-multi-tenant/SKILL.md": "7c2683b80e9b571408f79a2fa0ec7ed0e266c753183109b812d61da5b95f911f",
178
+ "v8-security/SKILL.md": "9670e5b77a564d64acda91efaae22ce24db950aa107dcf4d90f226a252668ef1",
179
179
  "v8-security/references/progressive-01-2-权限校验.md": "a7e2314b8f2f9bf413956191ffeda6d2f823760def2b06bf6b4c1565e8f71816",
180
180
  "v8-security/references/progressive-02-7-日志记录.md": "2758de279da56e90587df8422e25a1ccfce5c3bdc1f1c363a90c666b6c3f298a",
181
181
  "v8-sql-query/SKILL.md": "23a12c6801627890d18ff9f1d09cdd1abbd9b08ffc12ef6a12c915d504ed3255",
@@ -197,183 +197,183 @@
197
197
  "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "86db1f03700fd54dd824d28c553c678202e8f74b796fd0f9d91f63bf53a530b1"
198
198
  },
199
199
  "fileVersions": {
200
- ".microi-skills-version.json": "5.2.3",
201
- ".progressive-disclosure-manifest.json": "5.2.3",
202
- "README.md": "5.2.3",
203
- "ai-engine/SKILL.md": "5.2.3",
204
- "ai-engine/agents/openai.yaml": "5.2.3",
205
- "ai-platform-governance/SKILL.md": "5.2.3",
206
- "ai-platform-governance/references/progressive-01-功能开关.md": "5.2.3",
207
- "app-store/SKILL.md": "5.2.3",
208
- "app-store/agents/openai.yaml": "5.2.3",
209
- "business-blueprint/SKILL.md": "5.2.3",
210
- "datasource-engine/SKILL.md": "5.2.3",
211
- "datasource-engine/agents/openai.yaml": "5.2.3",
212
- "dos-orm/SKILL.md": "5.2.3",
213
- "dos-orm/references/api-reference.md": "5.2.3",
214
- "job-engine/SKILL.md": "5.2.3",
215
- "job-engine/agents/openai.yaml": "5.2.3",
216
- "message-notification/SKILL.md": "5.2.3",
217
- "message-notification/agents/openai.yaml": "5.2.3",
218
- "message-notification/references/contracts.md": "5.2.3",
219
- "microi-ai-app-auth.js": "5.2.3",
220
- "microi-ai-application/SKILL.md": "5.2.3",
221
- "microi-ai-application/agents/openai.yaml": "5.2.3",
222
- "microi-ai-application/references/frontend-baseline.md": "5.2.3",
223
- "microi-client-frontend/SKILL.md": "5.2.3",
224
- "microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "5.2.3",
225
- "microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "5.2.3",
226
- "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "5.2.3",
227
- "microi-codex-installer/SKILL.md": "5.2.3",
228
- "microi-codex-installer/agents/openai.yaml": "5.2.3",
229
- "microi-codex/SKILL.md": "5.2.3",
230
- "microi-datasource-mapping/SKILL.md": "5.2.3",
231
- "microi-db-schema/SKILL.md": "5.2.3",
232
- "microi-db-schema/agents/openai.yaml": "5.2.3",
233
- "microi-db-schema/references/core-tables.md": "5.2.3",
234
- "microi-db-schema/references/form-component-options.md": "5.2.3",
235
- "microi-db-schema/references/schema-overview.md": "5.2.3",
236
- "microi-db-schema/references/schema.md": "5.2.3",
237
- "microi-db-schema/references/table-catalog.md": "5.2.3",
238
- "microi-deployment/SKILL.md": "5.2.3",
239
- "microi-deployment/references/deployment-matrix.md": "5.2.3",
240
- "microi-docs-coverage/SKILL.md": "5.2.3",
241
- "microi-docs-coverage/references/capability-map.md": "5.2.3",
242
- "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "5.2.3",
243
- "microi-form-engine/SKILL.md": "5.2.3",
244
- "microi-form-engine/references/component-catalog.md": "5.2.3",
245
- "microi-form-engine/references/data-source-events.md": "5.2.3",
246
- "microi-form-layout/SKILL.md": "5.2.3",
247
- "microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "5.2.3",
248
- "microi-frontend-sdk/SKILL.md": "5.2.3",
249
- "microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "5.2.3",
250
- "microi-left-right-layout/SKILL.md": "5.2.3",
251
- "microi-microservice/SKILL.md": "5.2.3",
252
- "microi-microservice/references/runtime-delivery.md": "5.2.3",
253
- "microi-mobile-app-quality/SKILL.md": "5.2.3",
254
- "microi-mobile-app-quality/references/progressive-01-4-重要按钮必须带图标.md": "5.2.3",
255
- "microi-mobile-app-quality/references/progressive-02-9-主题切换必须真实且全局生效.md": "5.2.3",
256
- "microi-solution-quotation/SKILL.md": "5.2.3",
257
- "microi-solution-quotation/agents/openai.yaml": "5.2.3",
258
- "microi-solution-quotation/scripts/build_solution_quote.py": "5.2.3",
259
- "microi-sso/SKILL.md": "5.2.3",
260
- "microi-sso/references/acceptance.md": "5.2.3",
261
- "microi-sso/references/configuration-and-security.md": "5.2.3",
262
- "microi-sso/references/inbound.md": "5.2.3",
263
- "microi-sso/references/outbound.md": "5.2.3",
264
- "microi-system-delivery/SKILL.md": "5.2.3",
265
- "microi-system-delivery/references/progressive-01-标准工作流.md": "5.2.3",
266
- "microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md": "5.2.3",
267
- "microi-ui/SKILL.md": "5.2.3",
268
- "microi-ui/references/progressive-01-移动端场景蓝图.md": "5.2.3",
269
- "microi-uniapp-frontend/SKILL.md": "5.2.3",
270
- "microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "5.2.3",
271
- "microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "5.2.3",
272
- "microi.v8.js": "5.2.3",
273
- "module-engine/SKILL.md": "5.2.3",
274
- "module-engine/references/module-config.md": "5.2.3",
275
- "ocr-engine/SKILL.md": "5.2.3",
276
- "ocr-engine/agents/openai.yaml": "5.2.3",
277
- "page-engine/SKILL.md": "5.2.3",
278
- "page-engine/references/progressive-01-所有组件类型.md": "5.2.3",
279
- "page-engine/references/progressive-02-版本历史-并发保存与回滚.md": "5.2.3",
280
- "performance-testing/SKILL.md": "5.2.3",
281
- "playwright-e2e/SKILL.md": "5.2.3",
282
- "playwright-e2e/references/progressive-01-全自动登录-免验证码-但不免密码-必读.md": "5.2.3",
283
- "playwright-e2e/references/progressive-02-文字对比度与可读性自动化检查-必做.md": "5.2.3",
284
- "playwright-e2e/references/progressive-03-microi-helper-模板.md": "5.2.3",
285
- "playwright-e2e/references/progressive-04-ci-建议.md": "5.2.3",
286
- "print-engine/SKILL.md": "5.2.3",
287
- "production-readonly-audit/SKILL.md": "5.2.3",
288
- "report-engine/SKILL.md": "5.2.3",
289
- "report-engine/agents/openai.yaml": "5.2.3",
290
- "scripts/optimize-progressive-disclosure.mjs": "5.2.3",
291
- "scripts/refresh-progressive-disclosure.mjs": "5.2.3",
292
- "scripts/validate-progressive-disclosure.mjs": "5.2.3",
293
- "search-engine/SKILL.md": "5.2.3",
294
- "search-engine/agents/openai.yaml": "5.2.3",
295
- "spider-engine/SKILL.md": "5.2.3",
296
- "translate-engine/SKILL.md": "5.2.3",
297
- "translate-engine/agents/openai.yaml": "5.2.3",
298
- "ui-design/SKILL.md": "5.2.3",
299
- "ui-design/assets/pattern-showcase/app.js": "5.2.3",
300
- "ui-design/assets/pattern-showcase/index.html": "5.2.3",
301
- "ui-design/assets/pattern-showcase/styles.css": "5.2.3",
302
- "ui-design/assets/templates/MCI-DESIGN.md": "5.2.3",
303
- "ui-design/references/design-pattern-library.md": "5.2.3",
304
- "ui-design/references/mci-design-contract.md": "5.2.3",
305
- "ui-design/references/motion-and-media.md": "5.2.3",
306
- "ui-design/references/product-flow-recipes.md": "5.2.3",
307
- "ui-design/references/progressive-01-颜色体系-css-variables-支持主题切换.md": "5.2.3",
308
- "ui-design/references/progressive-02-字体.md": "5.2.3",
309
- "ui-design/references/progressive-03-动效规范-丰富但不卡.md": "5.2.3",
310
- "ui-design/references/progressive-04-组件风格速查.md": "5.2.3",
311
- "ui-design/references/progressive-05-移动端专用规范.md": "5.2.3",
312
- "ui-design/references/progressive-06-主题切换实现.md": "5.2.3",
313
- "ui-design/references/progressive-07-速查-从头搭建一个移动端页面.md": "5.2.3",
314
- "ui-design/references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md": "5.2.3",
315
- "uniapp-mall-assets/SKILL.md": "5.2.3",
316
- "unity-integration/SKILL.md": "5.2.3",
317
- "unity-integration/agents/openai.yaml": "5.2.3",
318
- "unity-integration/references/ai-app-delivery.md": "5.2.3",
319
- "unity-integration/references/sdk-api.md": "5.2.3",
320
- "unity-integration/references/toolbox-migration.md": "5.2.3",
321
- "unity-integration/references/webgl-hosting.md": "5.2.3",
322
- "v8-api-config/SKILL.md": "5.2.3",
323
- "v8-cache-pattern/SKILL.md": "5.2.3",
324
- "v8-crud-api/SKILL.md": "5.2.3",
325
- "v8-crud-api/references/progressive-01-查询列表-分页.md": "5.2.3",
326
- "v8-crud-api/references/progressive-02-where-条件语法速查.md": "5.2.3",
327
- "v8-debugging/SKILL.md": "5.2.3",
328
- "v8-explorer-tree/SKILL.md": "5.2.3",
329
- "v8-export-import/SKILL.md": "5.2.3",
330
- "v8-export-import/references/progressive-01-excellayout-高级自由布局.md": "5.2.3",
331
- "v8-export-import/references/progressive-02-powerpoint-导出.md": "5.2.3",
332
- "v8-export-import/references/progressive-03-安全-性能注意.md": "5.2.3",
333
- "v8-file-upload/SKILL.md": "5.2.3",
334
- "v8-file-upload/references/progressive-01-公有桶-vs-私有桶.md": "5.2.3",
335
- "v8-file-upload/references/progressive-02-office-文件在线编辑版本号规则.md": "5.2.3",
336
- "v8-formengine-http/SKILL.md": "5.2.3",
337
- "v8-frontend-events/SKILL.md": "5.2.3",
338
- "v8-frontend-events/references/bluetooth-print-api.md": "5.2.3",
339
- "v8-frontend-events/references/bluetooth-print.md": "5.2.3",
340
- "v8-frontend-events/references/progressive-01-列表事件.md": "5.2.3",
341
- "v8-http-integration/SKILL.md": "5.2.3",
342
- "v8-http-integration/references/progressive-01-get-请求.md": "5.2.3",
343
- "v8-http-integration/references/progressive-02-错误处理模式.md": "5.2.3",
344
- "v8-image-processing/SKILL.md": "5.2.3",
345
- "v8-image-processing/agents/openai.yaml": "5.2.3",
346
- "v8-image-processing/references/api-reference.md": "5.2.3",
347
- "v8-menu-buttons/SKILL.md": "5.2.3",
348
- "v8-menu-buttons/references/progressive-01-2-按钮对象-schema.md": "5.2.3",
349
- "v8-menu-buttons/references/progressive-02-8-模式-f-后台任务按钮-长任务.md": "5.2.3",
350
- "v8-menu-buttons/references/progressive-03-10-反模式-避免.md": "5.2.3",
351
- "v8-mongodb/SKILL.md": "5.2.3",
352
- "v8-mq-mqtt/SKILL.md": "5.2.3",
353
- "v8-mq-mqtt/references/mqtt-production.md": "5.2.3",
354
- "v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "5.2.3",
355
- "v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "5.2.3",
356
- "v8-saas-multi-tenant/SKILL.md": "5.2.3",
357
- "v8-security/SKILL.md": "5.2.3",
358
- "v8-security/references/progressive-01-2-权限校验.md": "5.2.3",
359
- "v8-security/references/progressive-02-7-日志记录.md": "5.2.3",
360
- "v8-sql-query/SKILL.md": "5.2.3",
361
- "v8-table-event/SKILL.md": "5.2.3",
362
- "v8-table-event/references/progressive-01-informv8-js-表单打开事件.md": "5.2.3",
363
- "v8-table-event/references/progressive-02-前端事件名-v8-eventname-可能的值.md": "5.2.3",
364
- "v8-tcp-integration/SKILL.md": "5.2.3",
365
- "v8-tcp-integration/agents/openai.yaml": "5.2.3",
366
- "v8-template-engine/SKILL.md": "5.2.3",
367
- "v8-utilities/SKILL.md": "5.2.3",
368
- "v8-utilities/references/client-api-index.md": "5.2.3",
369
- "v8-utilities/references/platform-http-routes.md": "5.2.3",
370
- "v8-utilities/references/server-api-index.md": "5.2.3",
371
- "v8-workflow/SKILL.md": "5.2.3",
372
- "v8-workflow/references/progressive-01-节点开始-v8-事件.md": "5.2.3",
373
- "workspace-conventions/SKILL.md": "5.2.3",
374
- "workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "5.2.3",
375
- "workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md": "5.2.3",
376
- "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "5.2.3"
200
+ ".microi-skills-version.json": "5.2.4",
201
+ ".progressive-disclosure-manifest.json": "5.2.4",
202
+ "README.md": "5.2.4",
203
+ "ai-engine/SKILL.md": "5.2.4",
204
+ "ai-engine/agents/openai.yaml": "5.2.4",
205
+ "ai-platform-governance/SKILL.md": "5.2.4",
206
+ "ai-platform-governance/references/progressive-01-功能开关.md": "5.2.4",
207
+ "app-store/SKILL.md": "5.2.4",
208
+ "app-store/agents/openai.yaml": "5.2.4",
209
+ "business-blueprint/SKILL.md": "5.2.4",
210
+ "datasource-engine/SKILL.md": "5.2.4",
211
+ "datasource-engine/agents/openai.yaml": "5.2.4",
212
+ "dos-orm/SKILL.md": "5.2.4",
213
+ "dos-orm/references/api-reference.md": "5.2.4",
214
+ "job-engine/SKILL.md": "5.2.4",
215
+ "job-engine/agents/openai.yaml": "5.2.4",
216
+ "message-notification/SKILL.md": "5.2.4",
217
+ "message-notification/agents/openai.yaml": "5.2.4",
218
+ "message-notification/references/contracts.md": "5.2.4",
219
+ "microi-ai-app-auth.js": "5.2.4",
220
+ "microi-ai-application/SKILL.md": "5.2.4",
221
+ "microi-ai-application/agents/openai.yaml": "5.2.4",
222
+ "microi-ai-application/references/frontend-baseline.md": "5.2.4",
223
+ "microi-client-frontend/SKILL.md": "5.2.4",
224
+ "microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "5.2.4",
225
+ "microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "5.2.4",
226
+ "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "5.2.4",
227
+ "microi-codex-installer/SKILL.md": "5.2.4",
228
+ "microi-codex-installer/agents/openai.yaml": "5.2.4",
229
+ "microi-codex/SKILL.md": "5.2.4",
230
+ "microi-datasource-mapping/SKILL.md": "5.2.4",
231
+ "microi-db-schema/SKILL.md": "5.2.4",
232
+ "microi-db-schema/agents/openai.yaml": "5.2.4",
233
+ "microi-db-schema/references/core-tables.md": "5.2.4",
234
+ "microi-db-schema/references/form-component-options.md": "5.2.4",
235
+ "microi-db-schema/references/schema-overview.md": "5.2.4",
236
+ "microi-db-schema/references/schema.md": "5.2.4",
237
+ "microi-db-schema/references/table-catalog.md": "5.2.4",
238
+ "microi-deployment/SKILL.md": "5.2.4",
239
+ "microi-deployment/references/deployment-matrix.md": "5.2.4",
240
+ "microi-docs-coverage/SKILL.md": "5.2.4",
241
+ "microi-docs-coverage/references/capability-map.md": "5.2.4",
242
+ "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "5.2.4",
243
+ "microi-form-engine/SKILL.md": "5.2.4",
244
+ "microi-form-engine/references/component-catalog.md": "5.2.4",
245
+ "microi-form-engine/references/data-source-events.md": "5.2.4",
246
+ "microi-form-layout/SKILL.md": "5.2.4",
247
+ "microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "5.2.4",
248
+ "microi-frontend-sdk/SKILL.md": "5.2.4",
249
+ "microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "5.2.4",
250
+ "microi-left-right-layout/SKILL.md": "5.2.4",
251
+ "microi-microservice/SKILL.md": "5.2.4",
252
+ "microi-microservice/references/runtime-delivery.md": "5.2.4",
253
+ "microi-mobile-app-quality/SKILL.md": "5.2.4",
254
+ "microi-mobile-app-quality/references/progressive-01-4-重要按钮必须带图标.md": "5.2.4",
255
+ "microi-mobile-app-quality/references/progressive-02-9-主题切换必须真实且全局生效.md": "5.2.4",
256
+ "microi-solution-quotation/SKILL.md": "5.2.4",
257
+ "microi-solution-quotation/agents/openai.yaml": "5.2.4",
258
+ "microi-solution-quotation/scripts/build_solution_quote.py": "5.2.4",
259
+ "microi-sso/SKILL.md": "5.2.4",
260
+ "microi-sso/references/acceptance.md": "5.2.4",
261
+ "microi-sso/references/configuration-and-security.md": "5.2.4",
262
+ "microi-sso/references/inbound.md": "5.2.4",
263
+ "microi-sso/references/outbound.md": "5.2.4",
264
+ "microi-system-delivery/SKILL.md": "5.2.4",
265
+ "microi-system-delivery/references/progressive-01-标准工作流.md": "5.2.4",
266
+ "microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md": "5.2.4",
267
+ "microi-ui/SKILL.md": "5.2.4",
268
+ "microi-ui/references/progressive-01-移动端场景蓝图.md": "5.2.4",
269
+ "microi-uniapp-frontend/SKILL.md": "5.2.4",
270
+ "microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "5.2.4",
271
+ "microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "5.2.4",
272
+ "microi.v8.js": "5.2.4",
273
+ "module-engine/SKILL.md": "5.2.4",
274
+ "module-engine/references/module-config.md": "5.2.4",
275
+ "ocr-engine/SKILL.md": "5.2.4",
276
+ "ocr-engine/agents/openai.yaml": "5.2.4",
277
+ "page-engine/SKILL.md": "5.2.4",
278
+ "page-engine/references/progressive-01-所有组件类型.md": "5.2.4",
279
+ "page-engine/references/progressive-02-版本历史-并发保存与回滚.md": "5.2.4",
280
+ "performance-testing/SKILL.md": "5.2.4",
281
+ "playwright-e2e/SKILL.md": "5.2.4",
282
+ "playwright-e2e/references/progressive-01-全自动登录-免验证码-但不免密码-必读.md": "5.2.4",
283
+ "playwright-e2e/references/progressive-02-文字对比度与可读性自动化检查-必做.md": "5.2.4",
284
+ "playwright-e2e/references/progressive-03-microi-helper-模板.md": "5.2.4",
285
+ "playwright-e2e/references/progressive-04-ci-建议.md": "5.2.4",
286
+ "print-engine/SKILL.md": "5.2.4",
287
+ "production-readonly-audit/SKILL.md": "5.2.4",
288
+ "report-engine/SKILL.md": "5.2.4",
289
+ "report-engine/agents/openai.yaml": "5.2.4",
290
+ "scripts/optimize-progressive-disclosure.mjs": "5.2.4",
291
+ "scripts/refresh-progressive-disclosure.mjs": "5.2.4",
292
+ "scripts/validate-progressive-disclosure.mjs": "5.2.4",
293
+ "search-engine/SKILL.md": "5.2.4",
294
+ "search-engine/agents/openai.yaml": "5.2.4",
295
+ "spider-engine/SKILL.md": "5.2.4",
296
+ "translate-engine/SKILL.md": "5.2.4",
297
+ "translate-engine/agents/openai.yaml": "5.2.4",
298
+ "ui-design/SKILL.md": "5.2.4",
299
+ "ui-design/assets/pattern-showcase/app.js": "5.2.4",
300
+ "ui-design/assets/pattern-showcase/index.html": "5.2.4",
301
+ "ui-design/assets/pattern-showcase/styles.css": "5.2.4",
302
+ "ui-design/assets/templates/MCI-DESIGN.md": "5.2.4",
303
+ "ui-design/references/design-pattern-library.md": "5.2.4",
304
+ "ui-design/references/mci-design-contract.md": "5.2.4",
305
+ "ui-design/references/motion-and-media.md": "5.2.4",
306
+ "ui-design/references/product-flow-recipes.md": "5.2.4",
307
+ "ui-design/references/progressive-01-颜色体系-css-variables-支持主题切换.md": "5.2.4",
308
+ "ui-design/references/progressive-02-字体.md": "5.2.4",
309
+ "ui-design/references/progressive-03-动效规范-丰富但不卡.md": "5.2.4",
310
+ "ui-design/references/progressive-04-组件风格速查.md": "5.2.4",
311
+ "ui-design/references/progressive-05-移动端专用规范.md": "5.2.4",
312
+ "ui-design/references/progressive-06-主题切换实现.md": "5.2.4",
313
+ "ui-design/references/progressive-07-速查-从头搭建一个移动端页面.md": "5.2.4",
314
+ "ui-design/references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md": "5.2.4",
315
+ "uniapp-mall-assets/SKILL.md": "5.2.4",
316
+ "unity-integration/SKILL.md": "5.2.4",
317
+ "unity-integration/agents/openai.yaml": "5.2.4",
318
+ "unity-integration/references/ai-app-delivery.md": "5.2.4",
319
+ "unity-integration/references/sdk-api.md": "5.2.4",
320
+ "unity-integration/references/toolbox-migration.md": "5.2.4",
321
+ "unity-integration/references/webgl-hosting.md": "5.2.4",
322
+ "v8-api-config/SKILL.md": "5.2.4",
323
+ "v8-cache-pattern/SKILL.md": "5.2.4",
324
+ "v8-crud-api/SKILL.md": "5.2.4",
325
+ "v8-crud-api/references/progressive-01-查询列表-分页.md": "5.2.4",
326
+ "v8-crud-api/references/progressive-02-where-条件语法速查.md": "5.2.4",
327
+ "v8-debugging/SKILL.md": "5.2.4",
328
+ "v8-explorer-tree/SKILL.md": "5.2.4",
329
+ "v8-export-import/SKILL.md": "5.2.4",
330
+ "v8-export-import/references/progressive-01-excellayout-高级自由布局.md": "5.2.4",
331
+ "v8-export-import/references/progressive-02-powerpoint-导出.md": "5.2.4",
332
+ "v8-export-import/references/progressive-03-安全-性能注意.md": "5.2.4",
333
+ "v8-file-upload/SKILL.md": "5.2.4",
334
+ "v8-file-upload/references/progressive-01-公有桶-vs-私有桶.md": "5.2.4",
335
+ "v8-file-upload/references/progressive-02-office-文件在线编辑版本号规则.md": "5.2.4",
336
+ "v8-formengine-http/SKILL.md": "5.2.4",
337
+ "v8-frontend-events/SKILL.md": "5.2.4",
338
+ "v8-frontend-events/references/bluetooth-print-api.md": "5.2.4",
339
+ "v8-frontend-events/references/bluetooth-print.md": "5.2.4",
340
+ "v8-frontend-events/references/progressive-01-列表事件.md": "5.2.4",
341
+ "v8-http-integration/SKILL.md": "5.2.4",
342
+ "v8-http-integration/references/progressive-01-get-请求.md": "5.2.4",
343
+ "v8-http-integration/references/progressive-02-错误处理模式.md": "5.2.4",
344
+ "v8-image-processing/SKILL.md": "5.2.4",
345
+ "v8-image-processing/agents/openai.yaml": "5.2.4",
346
+ "v8-image-processing/references/api-reference.md": "5.2.4",
347
+ "v8-menu-buttons/SKILL.md": "5.2.4",
348
+ "v8-menu-buttons/references/progressive-01-2-按钮对象-schema.md": "5.2.4",
349
+ "v8-menu-buttons/references/progressive-02-8-模式-f-后台任务按钮-长任务.md": "5.2.4",
350
+ "v8-menu-buttons/references/progressive-03-10-反模式-避免.md": "5.2.4",
351
+ "v8-mongodb/SKILL.md": "5.2.4",
352
+ "v8-mq-mqtt/SKILL.md": "5.2.4",
353
+ "v8-mq-mqtt/references/mqtt-production.md": "5.2.4",
354
+ "v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "5.2.4",
355
+ "v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "5.2.4",
356
+ "v8-saas-multi-tenant/SKILL.md": "5.2.4",
357
+ "v8-security/SKILL.md": "5.2.4",
358
+ "v8-security/references/progressive-01-2-权限校验.md": "5.2.4",
359
+ "v8-security/references/progressive-02-7-日志记录.md": "5.2.4",
360
+ "v8-sql-query/SKILL.md": "5.2.4",
361
+ "v8-table-event/SKILL.md": "5.2.4",
362
+ "v8-table-event/references/progressive-01-informv8-js-表单打开事件.md": "5.2.4",
363
+ "v8-table-event/references/progressive-02-前端事件名-v8-eventname-可能的值.md": "5.2.4",
364
+ "v8-tcp-integration/SKILL.md": "5.2.4",
365
+ "v8-tcp-integration/agents/openai.yaml": "5.2.4",
366
+ "v8-template-engine/SKILL.md": "5.2.4",
367
+ "v8-utilities/SKILL.md": "5.2.4",
368
+ "v8-utilities/references/client-api-index.md": "5.2.4",
369
+ "v8-utilities/references/platform-http-routes.md": "5.2.4",
370
+ "v8-utilities/references/server-api-index.md": "5.2.4",
371
+ "v8-workflow/SKILL.md": "5.2.4",
372
+ "v8-workflow/references/progressive-01-节点开始-v8-事件.md": "5.2.4",
373
+ "workspace-conventions/SKILL.md": "5.2.4",
374
+ "workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "5.2.4",
375
+ "workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md": "5.2.4",
376
+ "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "5.2.4"
377
377
  },
378
378
  "files": [
379
379
  ".microi-skills-version.json",
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "5.2.3",
2
+ "version": "5.2.4",
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-22T21:20:23.605Z"
5
+ "updatedAt": "2026-08-23T04:41:26.232Z"
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 1,
3
- "generatedAt": "2026-08-21T06:26:54.984Z",
3
+ "generatedAt": "2026-08-23T00:53:50.403Z",
4
4
  "policy": {
5
5
  "maxEntryLines": 285,
6
6
  "referenceBudgetLines": 245,
@@ -2091,11 +2091,11 @@
2091
2091
  ]
2092
2092
  },
2093
2093
  "v8-export-import": {
2094
- "originalSha256": "e6d70e66b2c939e761c7f63d8280dbc1c4d9978ed9586bddc92366b29f1392b8",
2095
- "originalLines": 593,
2094
+ "originalSha256": "76d9a977e0c510e72a3b3b938631970b5d0ba480b8ced4e3f2622db85c2692a8",
2095
+ "originalLines": 608,
2096
2096
  "prefixSha256": "db7143225a92851a015cc0d5e5a7dd40db9d16e6fcdffdc1e5116f32f52ebbda",
2097
2097
  "prefixBytes": 1120,
2098
- "entryLines": 183,
2098
+ "entryLines": 198,
2099
2099
  "chunks": [
2100
2100
  {
2101
2101
  "id": "v8-export-import-000",
@@ -2125,8 +2125,8 @@
2125
2125
  "id": "v8-export-import-003",
2126
2126
  "ordinal": 7,
2127
2127
  "destination": "v8-export-import/SKILL.md",
2128
- "sha256": "8c2868406d663d51bbd479c12b052b70ffa1014cc4ec4186b8dcecd0e5a3105b",
2129
- "lines": 21,
2128
+ "sha256": "75977093346f025e91041b36bdb7887e2cacee854800c1f43e407e8fc037a166",
2129
+ "lines": 36,
2130
2130
  "heading": "解析上传的 Excel(导入)"
2131
2131
  },
2132
2132
  {
@@ -89,9 +89,18 @@ description: Microi 应用商城开发、打包、安装和升级规范。用于
89
89
  - 商城详情、来源管理等 Teleport 弹层必须使用宿主级固定遮罩,毛玻璃覆盖完整可视区域;标题栏拖动按弹层真实尺寸限制四边,窗口缩放后重新限制,不能依赖固定像素最大位移或允许内容越出视口。
90
90
  - “我发布的应用”只读取当前登录用户拥有的记录,可以包含草稿和构建失败项;普通商城列表只读取已发布项。两者必须在服务端按 Owner 和发布状态过滤,不能依赖浏览器过滤后再分页。
91
91
 
92
- ## 发布版本与资源选择
93
-
94
- - 发布器必须把用户请求的精确版本传给资产准备器,并断言 `RequestedVersion == Prepared.PackageVersion == AppPakcet.PackageInfo.Version`;版本不存在就失败,禁止静默改用最新版本。
92
+ ## 发布版本与资源选择
93
+
94
+ ### 每个应用版本必须有更新日志(强制)
95
+
96
+ - 本规则覆盖 `Platform / Regular / Web / UniApp / MicroService` 以及所有 AI 应用。任何创建、修改、升级、重新构建或重新发布,只要产生新的应用版本,就必须先在 `sys_microistore_changelog` 写入一条更新日志;不允许先发布后补写,也不允许因为只改了元数据、V8、路由、提示文案或内置运行产物而省略。
97
+ - 更新日志通过 `StoreId` 关联 `sys_microistore.Id`,`Version` 必须是规范化后的精确 `AppVersion`,且同一应用同一版本只能有一条。`Title`、`ChangeType`、`Content`、`ReleaseTime` 都是必填项;`Content` 要写清用户可感知的新增、优化、修复、兼容或安全影响,禁止只写“优化体验”“修复问题”等无法审计的空泛文字。
98
+ - 正确顺序固定为:确定目标版本 → 保存商城应用 → 写入或审阅该精确版本日志 → 同步源码与构建 → 制包/发布 → 回读商城行、安装包和日志。发布器发现日志缺失、软删除、版本不一致或任一必填项为空时必须失败关闭。
99
+ - `microi_publish_application_directory_stream`、V3 发布或其它支持变更摘要的工具必须显式传 `changeSummary`,且其含义与更新日志一致;`mci_ai_app_version.ChangeSummary`、`AppPakcet.PackageInfo.ChangeLog` 和商城子表不得互相矛盾。
100
+ - 应用商城包升级必须同时交付子表、真实 `StoreId` 外键字段、唯一约束/索引、隐藏子菜单、主表 `TableChild` 字段、详情时间线和发布门禁。历史商城源没有该能力时前端应明确显示“当前来源暂未提供更新日志”,不得伪造空日志为“暂无更新”。
101
+ - 验收至少回读“商城当前版本 + 对应日志 + 包内版本/ChangeLog”,再在真实商城详情弹层检查版本、类型、标题、时间和正文;重复执行相同版本写入应命中唯一记录而不产生重复行。
102
+
103
+ - 发布器必须把用户请求的精确版本传给资产准备器,并断言 `RequestedVersion == Prepared.PackageVersion == AppPakcet.PackageInfo.Version`;版本不存在就失败,禁止静默改用最新版本。
95
104
  - `SelectMenu`、`SelectTable`、`SelectApiEngine` 必须从当前发布包的显式选择持久化;不能读取商城行上一次保存的选择来决定本次包内容。
96
105
  - 发布完成后同时回读商城版本行、包正文和构建资产,逐项核对版本、数量与 SHA-256;任一处漂移即发布失败。
97
106
  - 官方内置前端应用只能有一个发布源码根。默认租户工作副本与受审计的独立 Git 源码仓库不能同时成为事实源;若使用独立仓库,必须提交一个发布契约并让构建、跨工程测试、所有程序集内置包共同读取它,正式发布还要证明源码根来自无未提交修改的 Git 提交。前端主包只提供通用宿主、诊断和恢复入口,不复制完整业务源码。HDFS/CDN 运行镜像必须回读到同一 `RuntimeManifestHash` 后才可启用,不能用较新的镜像静默覆盖较旧数据库包,也不能用较新的数据库包静默覆盖未验签镜像。
@@ -99,8 +108,8 @@ description: Microi 应用商城开发、打包、安装和升级规范。用于
99
108
 
100
109
  ## MCP 工作流
101
110
 
102
- 1. 安装/更新现成商城应用时,先调用 `microi_install_store_application` / `microi_update_store_application` 且不传 `confirmExecution`,核对目标租户、商城源、StoreId 和幂等请求 Id 的预检结果。
103
- 2. 用户明确确认后,把 `confirmExecution` 精确设为 `StoreId`,提交真实持久化后台任务;只传 StoreId、版本和商城源定位信息,不通过 MCP/HTTP 传完整 `AppPakcet`。
111
+ 1. 安装/更新现成商城应用时,先调用 `microi_install_store_application` / `microi_update_store_application` 且不传 `confirmExecution`,核对目标租户、商城源、StoreId 和幂等请求 Id 的预检结果。恢复被商城升版打断的旧任务时,额外传入已回读且仍含完整包正文的 `storeVersionId`;不同快照必须使用新的 `requestId`。
112
+ 2. 用户明确确认后,把 `confirmExecution` 精确设为 `StoreId`,提交真实持久化后台任务;只传 StoreId、可选不可变 StoreVersionId、版本和商城源定位信息,不通过 MCP/HTTP 传完整 `AppPakcet`。
104
113
  3. 自建应用或低代码系统先用 `microi_list_applications` / `microi_get_application_context` 盘点源码,再用 `microi_get_manifest_schema`、`microi_plan_system` 与 `microi_generate_system(dryRun:true)` 干跑。
105
114
  4. 安装任务必须回读至 `Succeeded`,再执行 `microi_validate_system`、远端资源回读和真实 UI 验收;仅返回 TaskId 不代表安装成功。
106
115
 
@@ -241,3 +250,17 @@ description: Microi 应用商城开发、打包、安装和升级规范。用于
241
250
  - 根因证据:两次托管转储的调用链都停在 `V8.ApiEngine.Run -> GetApiEngineModelInternal -> MicroiTwoLevelCache.SetAsync -> PublishInvalidateAsync -> PublishWithRetryAsync`。权威 Redis 写入已经成功,随后用于通知其它节点清理一级缓存的 Pub/Sub 广播没有完成时限,因而把业务调用永久挂住;与此同时,单字段元数据更新即使只变更 Label、Remark、布局或 V8,也会重复执行物理列 DDL,放大旧租户升级成本。
242
251
  - 通用规则:Redis 权威值写入成功后,跨节点一级缓存失效广播只能是有界、尽力而为的附属动作。队列等待和实际发布都必须有独立短超时,超时后观察迟到异常并开启短暂熔断冷却,防止悬挂发布任务无界堆积;不得因此回滚已经成功的权威写入。`UptDiyField` 只有列名或物理类型变化时才允许调用 `ChangeColumn`,显示名称、说明、布局和事件代码等纯元数据变化禁止触发 DDL。
243
252
  - 自动化与真实验收:缓存测试必须覆盖发布永久不返回时的有界退出、迟到异常观察和冷却期抑制;字段测试必须断言只有 Name/Type 变化才进入物理 DDL。应用商城资源契约测试、后台任务与 SaaS 回归测试通过后,还必须在真实主租户完成 8/8 子租户收敛并立即执行一轮 8/8 无操作重跑。验收期间若官方应用发布了新版本,应以新的不可变 `StoreVersionId` 启动独立追赶批次,禁止混入已经开始的旧版本分片。
253
+
254
+ ## 复盘:最新版后端仍放行未锁快照的旧商城工作器
255
+
256
+ - 触发场景:目标租户已经部署最新版前后端,但数据库中的 `import-microi-store-package v2.2.9` 与 `bulk-import-microi-store-packages v1.2.4` 被启动完整性检查判为合格;平台应用批量任务开始后,官方商城恰好升版,首个应用在下一分片仍从易变当前行取包并失败。
257
+ - 根因:后端自举门槛只校验早期版本和历史标记,没有把不可变快照、禁止自适应单片、前置物理列分片检查点及商城自举优先级纳入能力契约;MCP 单应用恢复工具也只能传 `StoreId`,无法显式锁定已经回读的 `mic_data_version` 快照。
258
+ - 通用规则:后端启动必须同时校验导入器最低版本与固定快照/有界分片/前置列检查点标记、批量工作器最低版本与 `StoreVersionId + BulkAdaptiveSingleSlice:false`、商城列表的自举优先级;任一缺失都必须从受信升级资源刷新,不能仅看后端二进制版本。MCP 安装/更新允许传受校验的可选 `storeVersionId`,审计同样记录该 Id;不同快照使用不同幂等请求 Id,禁止把旧任务静默改指新包。
259
+ - 自动化与真实验收:单元测试同时拒绝旧版本和缺标记的伪新版工作器;在真实旧租户先用固定快照完成应用商城自举,再执行全部平台应用更新并立即做零更新复跑。验收期间出现的新官方版本只进入下一独立批次,历史失败任务保留作审计,不删除或篡改。
260
+
261
+ ## 复盘:本租户自助批量被误判为主租户跨租户任务
262
+
263
+ - 触发场景:普通租户在自己的应用商城点击“全部安装/更新”,后台执行器仅按固定批量工作器 Key 触发跨租户自愈,把 `owner=当前租户、target=当前租户` 当成主→子任务;旧导入器只能从自己复制自己,随后被新能力门禁拒绝,并错误提示“先更新主租户应用商城”。
264
+ - 根因:跨租户自愈没有校验由服务端控制面持久化的目标租户保留标记,也没有要求任务拥有者与执行租户不同;把同租户自助批量和主租户代子租户执行混成了同一作用域。
265
+ - 通用规则:运行前强制自愈只允许用于固定批量工作器、非空服务端目标标记、`owner != execution` 且标记精确等于执行租户的主→子任务。普通租户自助批量必须跳过跨租户复制,让持久计划按官方列表顺序优先安装/更新应用商城自身,再由新版导入器继续后续应用;不能要求官方发布源安装自己。
266
+ - 自动化与真实验收:单元测试覆盖同租户无标记、同租户伪标记、跨租户正确标记、标记漂移和错误工作器 Key;真实旧租户先保留旧导入器发起自助批量,断言不再出现“子租户商城工作器执行前自愈失败”,计划第一项为应用商城,全部任务成功后立即执行零更新复跑。
@@ -73,6 +73,8 @@
73
73
  - 仅返回 `V8.CurrentUser.Id` 的 `ChannelType=平台内部` 记录。
74
74
  - 支持 `PageIndex/PageSize`,`PageSize` 最大 100。
75
75
  - `DataAppend.UnreadCount` 返回同一用户权威未读数。
76
+ - 每条记录统一投影 `SenderUserId/Account=AI`、`SenderName=AI助手`、`ReadOnly=false`;聊天侧只能固定一个 AI 助手联系人,并将通知权威历史与 AI 聊天历史按时间合并。
77
+ - 兼容旧 `MICROI_PLATFORM_ADMIN/admin` 元数据时只改显示投影,不批量删除或改写 `mic_msg_event_log` 历史事实。
76
78
 
77
79
  ### `msg_internal_mark_read`
78
80