@microi.net/cli 5.2.0 → 5.2.2

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-21T07:52:37.378Z",
2
+ "builtAt": "2026-08-22T09:37:28.504Z",
3
3
  "source": "../microi.skills",
4
4
  "extension": {
5
5
  "name": "v8-engine",
6
- "version": "5.2.0",
6
+ "version": "5.2.2",
7
7
  "publisher": "Microi"
8
8
  },
9
9
  "skills": {
10
- "version": "5.2.0",
10
+ "version": "5.2.2",
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": 2143823
18
+ "bytes": 2158757
19
19
  },
20
20
  "fileHashes": {
21
- ".microi-skills-version.json": "aa8e0687816692352cffb05e2027aec2403e6b33f6d3b2f0aa4262911a379dcb",
21
+ ".microi-skills-version.json": "9bdade9ec137c9ab98223393734bfc8f7a0ced1fa8a06757fd1928e95d56ebb2",
22
22
  ".progressive-disclosure-manifest.json": "1761c877fb868da0572a40b2b1884a7c17fa4215ac91bbb7c55e2084fefb0deb",
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": "a8c8fd8a49068845631a5778560bd035af48490e889d8454c3019e0eb1e480e8",
28
+ "app-store/SKILL.md": "801877fc4d3c3e3d4ba9859fb0765fed3342a20c7f4b61d5ad304324dfabf849",
29
29
  "app-store/agents/openai.yaml": "eda8f5cf043e7b8fb0e4fb3acf0625fef95eb49586b43187ced277cd0ae4a2c4",
30
30
  "business-blueprint/SKILL.md": "01619a3b6d37b5b67649ee59d2701301222006d3b943882b2802b1721c58f8a9",
31
31
  "datasource-engine/SKILL.md": "bed8352f1d43b55145e1c492d1ea0ca1ec8750b5c4d74e1e80cd71aa7b9a2e6f",
@@ -41,7 +41,7 @@
41
41
  "microi-ai-application/SKILL.md": "1fe627d21e9317ccdd46e0d8a0597ec722ceef456d435ed090df967616cb5d3e",
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": "5eae8a9cf2d8420600daa6f799ff1d8349470a0bab94362eb7dcf91df2b01c6a",
44
+ "microi-client-frontend/SKILL.md": "14bef202a3b8b99d3b36144bd99fa5a2f92de638ee48bd11f42c32eada1bd0fd",
45
45
  "microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "d823228d23c37047068c35bc55266867e367dc3702013e1ca6e1a8dc60563f9b",
46
46
  "microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "899a15f52cd849b1f5b48139fbec626423ebdae586032ad73801842f5701a3fe",
47
47
  "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "d8bc1be24e797175677e9eea34c919d43859b23aa7b5c2ba637864cb52117471",
@@ -61,10 +61,10 @@
61
61
  "microi-docs-coverage/SKILL.md": "44d2e633946af233bdd5a59a9fb74a8613e82031fa2f4635a2664fff0ad6c210",
62
62
  "microi-docs-coverage/references/capability-map.md": "7be5142411650c3ad50414324d07240b8d110f98c2bea57eda38da846bfdd516",
63
63
  "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "ebd57f17f2ebae499bfa59ad17830db458590feb76f7f0f20219ff0987b33af3",
64
- "microi-form-engine/SKILL.md": "071314e05697624617989c9864e02f0dec370c21087092580a3d4bd4b039ceb5",
64
+ "microi-form-engine/SKILL.md": "ec8772a037438e3c1063bdd8fe301fd736f8d3e88788215409e7ed0ed555a239",
65
65
  "microi-form-engine/references/component-catalog.md": "d5c433e0c9eb393b3ba8fec9d29ae1478b8b9f838f5c4ae0c74d0c49941d1dec",
66
66
  "microi-form-engine/references/data-source-events.md": "59a95a36624476b12cdc84e4c23975d074b1f115df19992fd0fd075bb982e7cb",
67
- "microi-form-layout/SKILL.md": "a37abd1b5b22c51aa6dd63cc0669e505a121632c9aa1559f59ec9c1557890f40",
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": "fdcc7aca57eaf7d0fa509dc28ef96abeb1099ed4da1e48411b4bb476d9f51390",
@@ -82,8 +82,8 @@
82
82
  "microi-sso/references/configuration-and-security.md": "8e03172147a3bbfc24d3fb0753bbe5fb03e1f4dad740eab4a02f7ef064e475b9",
83
83
  "microi-sso/references/inbound.md": "f2d1bd43d4bab3297b98b54cfc250d73adf8b8f07797af7900c90f77b9801b1c",
84
84
  "microi-sso/references/outbound.md": "236da363eea139a19264e956c94e0cc90da69a0a6c21505d0e02e682d8c506bc",
85
- "microi-system-delivery/SKILL.md": "3c1334b87eb37c1b1f2918620794770ec55893cb34a3c3897f28a94814fea94c",
86
- "microi-system-delivery/references/progressive-01-标准工作流.md": "9da62bbb529572f9e276d1c0dd9c1b5de547b992c6b29b57acdfac827e4555c6",
85
+ "microi-system-delivery/SKILL.md": "c194cb2c786f4f39d3b33bb42d68797ee240f4ad82c7a6d535028e5fb6ddad81",
86
+ "microi-system-delivery/references/progressive-01-标准工作流.md": "47e36edf32fe2a95c21650731f7cbc5161acdab907a3f86f782429fece5c013e",
87
87
  "microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md": "dee8e3f2363548e4c83519f8784f8e8bfafe8dd3058f28c49d525dc93c542753",
88
88
  "microi-ui/SKILL.md": "1136593475e94d55799dde302e8e86f1e96dd101e5f4645fd4d8091faa52f5d6",
89
89
  "microi-ui/references/progressive-01-移动端场景蓝图.md": "aec5e6a400cec7a4cc4e474ad7033bc69874920ebd554706656034ffb9dc8c00",
@@ -91,8 +91,8 @@
91
91
  "microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "44df3c20120298f6565cf4388eadca70d98d097880c61168ce6d3ac03e80968b",
92
92
  "microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "31a0a12e39ec785df038fb5c73d4978d6dec42d86c52b79e91082c9ac13f29cf",
93
93
  "microi.v8.js": "4e5b7bb819255159a3d7a9555af662618162e31ec41cb3b67b3d7cc01635c9ec",
94
- "module-engine/SKILL.md": "9c120d53081beec6823a9bc2c13b5100f56fcb6dad12283a390c5b4ae217e650",
95
- "module-engine/references/module-config.md": "8143c6efec795208fabc1af77e5689dcede9e9ff2da2d9287d639d512bb58a1f",
94
+ "module-engine/SKILL.md": "2580bd3405ad3fbcd203e5f01b1ca275d056fbb6c4b864842f372d9872e4dbc8",
95
+ "module-engine/references/module-config.md": "9e8ac8a7f65d6b563f938193d4b7c6b230d878a3513fc2a90c8b780e70ddd353",
96
96
  "ocr-engine/SKILL.md": "239fed8ba28c0178fbbcc4c3dc8d4f3b8b8cf1d2b794db2014c2600ea7835da6",
97
97
  "ocr-engine/agents/openai.yaml": "3a6cc9984a246c41332c5f53d1badef31b78f81324333ea0d6337cb20c7fc898",
98
98
  "page-engine/SKILL.md": "294028ac521da715889699d3aba5fc273305c5825be844a0d795284890529445",
@@ -140,8 +140,8 @@
140
140
  "unity-integration/references/sdk-api.md": "b473e7094b0c4cf7860cecb9acfbdd55025c7f851b4bd4bf92b4233091b182fa",
141
141
  "unity-integration/references/toolbox-migration.md": "b9294ea7db2b2a0f31e650e6e80f6d8f69385037bff6ac39fd5525ea98f8c934",
142
142
  "unity-integration/references/webgl-hosting.md": "5c19bda62d7c7a258b4fafc1d46e9a7c94e5400803d77d9aff44ce794083e745",
143
- "v8-api-config/SKILL.md": "36cbd0551c75fce2fc276712251bf401ac25fdc6d7402132cb3c3c683e76302b",
144
- "v8-cache-pattern/SKILL.md": "bfa7250d461f77a7498821face0d20bae933b22cc7139bceac4bd8a6b680cb56",
143
+ "v8-api-config/SKILL.md": "4a288bba9b04e8c03e6c60ebe432c2870ca030f25acc7ff93970fd2811fb514a",
144
+ "v8-cache-pattern/SKILL.md": "ece9d8bf1b4c4e367ddfc53a1b2d6351b3ae729463049aa6b836bfd32b2a641f",
145
145
  "v8-crud-api/SKILL.md": "f497a58bd87c6a77bafb1e0a753371489fe803ebe67c1e0eecb900bac58cd510",
146
146
  "v8-crud-api/references/progressive-01-查询列表-分页.md": "5264932207d1a011062e3f6a982b44ce3796470f7d3261ec3d6690322b28f61d",
147
147
  "v8-crud-api/references/progressive-02-where-条件语法速查.md": "3ee7f1ef68b3546a5dacd0ed12f94e1ca7bf6cd10ecf5c3594bc4ecfb63f333d",
@@ -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.0",
201
- ".progressive-disclosure-manifest.json": "5.2.0",
202
- "README.md": "5.2.0",
203
- "ai-engine/SKILL.md": "5.2.0",
204
- "ai-engine/agents/openai.yaml": "5.2.0",
205
- "ai-platform-governance/SKILL.md": "5.2.0",
206
- "ai-platform-governance/references/progressive-01-功能开关.md": "5.2.0",
207
- "app-store/SKILL.md": "5.2.0",
208
- "app-store/agents/openai.yaml": "5.2.0",
209
- "business-blueprint/SKILL.md": "5.2.0",
210
- "datasource-engine/SKILL.md": "5.2.0",
211
- "datasource-engine/agents/openai.yaml": "5.2.0",
212
- "dos-orm/SKILL.md": "5.2.0",
213
- "dos-orm/references/api-reference.md": "5.2.0",
214
- "job-engine/SKILL.md": "5.2.0",
215
- "job-engine/agents/openai.yaml": "5.2.0",
216
- "message-notification/SKILL.md": "5.2.0",
217
- "message-notification/agents/openai.yaml": "5.2.0",
218
- "message-notification/references/contracts.md": "5.2.0",
219
- "microi-ai-app-auth.js": "5.2.0",
220
- "microi-ai-application/SKILL.md": "5.2.0",
221
- "microi-ai-application/agents/openai.yaml": "5.2.0",
222
- "microi-ai-application/references/frontend-baseline.md": "5.2.0",
223
- "microi-client-frontend/SKILL.md": "5.2.0",
224
- "microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "5.2.0",
225
- "microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "5.2.0",
226
- "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "5.2.0",
227
- "microi-codex-installer/SKILL.md": "5.2.0",
228
- "microi-codex-installer/agents/openai.yaml": "5.2.0",
229
- "microi-codex/SKILL.md": "5.2.0",
230
- "microi-datasource-mapping/SKILL.md": "5.2.0",
231
- "microi-db-schema/SKILL.md": "5.2.0",
232
- "microi-db-schema/agents/openai.yaml": "5.2.0",
233
- "microi-db-schema/references/core-tables.md": "5.2.0",
234
- "microi-db-schema/references/form-component-options.md": "5.2.0",
235
- "microi-db-schema/references/schema-overview.md": "5.2.0",
236
- "microi-db-schema/references/schema.md": "5.2.0",
237
- "microi-db-schema/references/table-catalog.md": "5.2.0",
238
- "microi-deployment/SKILL.md": "5.2.0",
239
- "microi-deployment/references/deployment-matrix.md": "5.2.0",
240
- "microi-docs-coverage/SKILL.md": "5.2.0",
241
- "microi-docs-coverage/references/capability-map.md": "5.2.0",
242
- "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "5.2.0",
243
- "microi-form-engine/SKILL.md": "5.2.0",
244
- "microi-form-engine/references/component-catalog.md": "5.2.0",
245
- "microi-form-engine/references/data-source-events.md": "5.2.0",
246
- "microi-form-layout/SKILL.md": "5.2.0",
247
- "microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "5.2.0",
248
- "microi-frontend-sdk/SKILL.md": "5.2.0",
249
- "microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "5.2.0",
250
- "microi-left-right-layout/SKILL.md": "5.2.0",
251
- "microi-microservice/SKILL.md": "5.2.0",
252
- "microi-microservice/references/runtime-delivery.md": "5.2.0",
253
- "microi-mobile-app-quality/SKILL.md": "5.2.0",
254
- "microi-mobile-app-quality/references/progressive-01-4-重要按钮必须带图标.md": "5.2.0",
255
- "microi-mobile-app-quality/references/progressive-02-9-主题切换必须真实且全局生效.md": "5.2.0",
256
- "microi-solution-quotation/SKILL.md": "5.2.0",
257
- "microi-solution-quotation/agents/openai.yaml": "5.2.0",
258
- "microi-solution-quotation/scripts/build_solution_quote.py": "5.2.0",
259
- "microi-sso/SKILL.md": "5.2.0",
260
- "microi-sso/references/acceptance.md": "5.2.0",
261
- "microi-sso/references/configuration-and-security.md": "5.2.0",
262
- "microi-sso/references/inbound.md": "5.2.0",
263
- "microi-sso/references/outbound.md": "5.2.0",
264
- "microi-system-delivery/SKILL.md": "5.2.0",
265
- "microi-system-delivery/references/progressive-01-标准工作流.md": "5.2.0",
266
- "microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md": "5.2.0",
267
- "microi-ui/SKILL.md": "5.2.0",
268
- "microi-ui/references/progressive-01-移动端场景蓝图.md": "5.2.0",
269
- "microi-uniapp-frontend/SKILL.md": "5.2.0",
270
- "microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "5.2.0",
271
- "microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "5.2.0",
272
- "microi.v8.js": "5.2.0",
273
- "module-engine/SKILL.md": "5.2.0",
274
- "module-engine/references/module-config.md": "5.2.0",
275
- "ocr-engine/SKILL.md": "5.2.0",
276
- "ocr-engine/agents/openai.yaml": "5.2.0",
277
- "page-engine/SKILL.md": "5.2.0",
278
- "page-engine/references/progressive-01-所有组件类型.md": "5.2.0",
279
- "page-engine/references/progressive-02-版本历史-并发保存与回滚.md": "5.2.0",
280
- "performance-testing/SKILL.md": "5.2.0",
281
- "playwright-e2e/SKILL.md": "5.2.0",
282
- "playwright-e2e/references/progressive-01-全自动登录-免验证码-但不免密码-必读.md": "5.2.0",
283
- "playwright-e2e/references/progressive-02-文字对比度与可读性自动化检查-必做.md": "5.2.0",
284
- "playwright-e2e/references/progressive-03-microi-helper-模板.md": "5.2.0",
285
- "playwright-e2e/references/progressive-04-ci-建议.md": "5.2.0",
286
- "print-engine/SKILL.md": "5.2.0",
287
- "production-readonly-audit/SKILL.md": "5.2.0",
288
- "report-engine/SKILL.md": "5.2.0",
289
- "report-engine/agents/openai.yaml": "5.2.0",
290
- "scripts/optimize-progressive-disclosure.mjs": "5.2.0",
291
- "scripts/refresh-progressive-disclosure.mjs": "5.2.0",
292
- "scripts/validate-progressive-disclosure.mjs": "5.2.0",
293
- "search-engine/SKILL.md": "5.2.0",
294
- "search-engine/agents/openai.yaml": "5.2.0",
295
- "spider-engine/SKILL.md": "5.2.0",
296
- "translate-engine/SKILL.md": "5.2.0",
297
- "translate-engine/agents/openai.yaml": "5.2.0",
298
- "ui-design/SKILL.md": "5.2.0",
299
- "ui-design/assets/pattern-showcase/app.js": "5.2.0",
300
- "ui-design/assets/pattern-showcase/index.html": "5.2.0",
301
- "ui-design/assets/pattern-showcase/styles.css": "5.2.0",
302
- "ui-design/assets/templates/MCI-DESIGN.md": "5.2.0",
303
- "ui-design/references/design-pattern-library.md": "5.2.0",
304
- "ui-design/references/mci-design-contract.md": "5.2.0",
305
- "ui-design/references/motion-and-media.md": "5.2.0",
306
- "ui-design/references/product-flow-recipes.md": "5.2.0",
307
- "ui-design/references/progressive-01-颜色体系-css-variables-支持主题切换.md": "5.2.0",
308
- "ui-design/references/progressive-02-字体.md": "5.2.0",
309
- "ui-design/references/progressive-03-动效规范-丰富但不卡.md": "5.2.0",
310
- "ui-design/references/progressive-04-组件风格速查.md": "5.2.0",
311
- "ui-design/references/progressive-05-移动端专用规范.md": "5.2.0",
312
- "ui-design/references/progressive-06-主题切换实现.md": "5.2.0",
313
- "ui-design/references/progressive-07-速查-从头搭建一个移动端页面.md": "5.2.0",
314
- "ui-design/references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md": "5.2.0",
315
- "uniapp-mall-assets/SKILL.md": "5.2.0",
316
- "unity-integration/SKILL.md": "5.2.0",
317
- "unity-integration/agents/openai.yaml": "5.2.0",
318
- "unity-integration/references/ai-app-delivery.md": "5.2.0",
319
- "unity-integration/references/sdk-api.md": "5.2.0",
320
- "unity-integration/references/toolbox-migration.md": "5.2.0",
321
- "unity-integration/references/webgl-hosting.md": "5.2.0",
322
- "v8-api-config/SKILL.md": "5.2.0",
323
- "v8-cache-pattern/SKILL.md": "5.2.0",
324
- "v8-crud-api/SKILL.md": "5.2.0",
325
- "v8-crud-api/references/progressive-01-查询列表-分页.md": "5.2.0",
326
- "v8-crud-api/references/progressive-02-where-条件语法速查.md": "5.2.0",
327
- "v8-debugging/SKILL.md": "5.2.0",
328
- "v8-explorer-tree/SKILL.md": "5.2.0",
329
- "v8-export-import/SKILL.md": "5.2.0",
330
- "v8-export-import/references/progressive-01-excellayout-高级自由布局.md": "5.2.0",
331
- "v8-export-import/references/progressive-02-powerpoint-导出.md": "5.2.0",
332
- "v8-export-import/references/progressive-03-安全-性能注意.md": "5.2.0",
333
- "v8-file-upload/SKILL.md": "5.2.0",
334
- "v8-file-upload/references/progressive-01-公有桶-vs-私有桶.md": "5.2.0",
335
- "v8-file-upload/references/progressive-02-office-文件在线编辑版本号规则.md": "5.2.0",
336
- "v8-formengine-http/SKILL.md": "5.2.0",
337
- "v8-frontend-events/SKILL.md": "5.2.0",
338
- "v8-frontend-events/references/bluetooth-print-api.md": "5.2.0",
339
- "v8-frontend-events/references/bluetooth-print.md": "5.2.0",
340
- "v8-frontend-events/references/progressive-01-列表事件.md": "5.2.0",
341
- "v8-http-integration/SKILL.md": "5.2.0",
342
- "v8-http-integration/references/progressive-01-get-请求.md": "5.2.0",
343
- "v8-http-integration/references/progressive-02-错误处理模式.md": "5.2.0",
344
- "v8-image-processing/SKILL.md": "5.2.0",
345
- "v8-image-processing/agents/openai.yaml": "5.2.0",
346
- "v8-image-processing/references/api-reference.md": "5.2.0",
347
- "v8-menu-buttons/SKILL.md": "5.2.0",
348
- "v8-menu-buttons/references/progressive-01-2-按钮对象-schema.md": "5.2.0",
349
- "v8-menu-buttons/references/progressive-02-8-模式-f-后台任务按钮-长任务.md": "5.2.0",
350
- "v8-menu-buttons/references/progressive-03-10-反模式-避免.md": "5.2.0",
351
- "v8-mongodb/SKILL.md": "5.2.0",
352
- "v8-mq-mqtt/SKILL.md": "5.2.0",
353
- "v8-mq-mqtt/references/mqtt-production.md": "5.2.0",
354
- "v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "5.2.0",
355
- "v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "5.2.0",
356
- "v8-saas-multi-tenant/SKILL.md": "5.2.0",
357
- "v8-security/SKILL.md": "5.2.0",
358
- "v8-security/references/progressive-01-2-权限校验.md": "5.2.0",
359
- "v8-security/references/progressive-02-7-日志记录.md": "5.2.0",
360
- "v8-sql-query/SKILL.md": "5.2.0",
361
- "v8-table-event/SKILL.md": "5.2.0",
362
- "v8-table-event/references/progressive-01-informv8-js-表单打开事件.md": "5.2.0",
363
- "v8-table-event/references/progressive-02-前端事件名-v8-eventname-可能的值.md": "5.2.0",
364
- "v8-tcp-integration/SKILL.md": "5.2.0",
365
- "v8-tcp-integration/agents/openai.yaml": "5.2.0",
366
- "v8-template-engine/SKILL.md": "5.2.0",
367
- "v8-utilities/SKILL.md": "5.2.0",
368
- "v8-utilities/references/client-api-index.md": "5.2.0",
369
- "v8-utilities/references/platform-http-routes.md": "5.2.0",
370
- "v8-utilities/references/server-api-index.md": "5.2.0",
371
- "v8-workflow/SKILL.md": "5.2.0",
372
- "v8-workflow/references/progressive-01-节点开始-v8-事件.md": "5.2.0",
373
- "workspace-conventions/SKILL.md": "5.2.0",
374
- "workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "5.2.0",
375
- "workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md": "5.2.0",
376
- "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "5.2.0"
200
+ ".microi-skills-version.json": "5.2.2",
201
+ ".progressive-disclosure-manifest.json": "5.2.2",
202
+ "README.md": "5.2.2",
203
+ "ai-engine/SKILL.md": "5.2.2",
204
+ "ai-engine/agents/openai.yaml": "5.2.2",
205
+ "ai-platform-governance/SKILL.md": "5.2.2",
206
+ "ai-platform-governance/references/progressive-01-功能开关.md": "5.2.2",
207
+ "app-store/SKILL.md": "5.2.2",
208
+ "app-store/agents/openai.yaml": "5.2.2",
209
+ "business-blueprint/SKILL.md": "5.2.2",
210
+ "datasource-engine/SKILL.md": "5.2.2",
211
+ "datasource-engine/agents/openai.yaml": "5.2.2",
212
+ "dos-orm/SKILL.md": "5.2.2",
213
+ "dos-orm/references/api-reference.md": "5.2.2",
214
+ "job-engine/SKILL.md": "5.2.2",
215
+ "job-engine/agents/openai.yaml": "5.2.2",
216
+ "message-notification/SKILL.md": "5.2.2",
217
+ "message-notification/agents/openai.yaml": "5.2.2",
218
+ "message-notification/references/contracts.md": "5.2.2",
219
+ "microi-ai-app-auth.js": "5.2.2",
220
+ "microi-ai-application/SKILL.md": "5.2.2",
221
+ "microi-ai-application/agents/openai.yaml": "5.2.2",
222
+ "microi-ai-application/references/frontend-baseline.md": "5.2.2",
223
+ "microi-client-frontend/SKILL.md": "5.2.2",
224
+ "microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "5.2.2",
225
+ "microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "5.2.2",
226
+ "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "5.2.2",
227
+ "microi-codex-installer/SKILL.md": "5.2.2",
228
+ "microi-codex-installer/agents/openai.yaml": "5.2.2",
229
+ "microi-codex/SKILL.md": "5.2.2",
230
+ "microi-datasource-mapping/SKILL.md": "5.2.2",
231
+ "microi-db-schema/SKILL.md": "5.2.2",
232
+ "microi-db-schema/agents/openai.yaml": "5.2.2",
233
+ "microi-db-schema/references/core-tables.md": "5.2.2",
234
+ "microi-db-schema/references/form-component-options.md": "5.2.2",
235
+ "microi-db-schema/references/schema-overview.md": "5.2.2",
236
+ "microi-db-schema/references/schema.md": "5.2.2",
237
+ "microi-db-schema/references/table-catalog.md": "5.2.2",
238
+ "microi-deployment/SKILL.md": "5.2.2",
239
+ "microi-deployment/references/deployment-matrix.md": "5.2.2",
240
+ "microi-docs-coverage/SKILL.md": "5.2.2",
241
+ "microi-docs-coverage/references/capability-map.md": "5.2.2",
242
+ "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "5.2.2",
243
+ "microi-form-engine/SKILL.md": "5.2.2",
244
+ "microi-form-engine/references/component-catalog.md": "5.2.2",
245
+ "microi-form-engine/references/data-source-events.md": "5.2.2",
246
+ "microi-form-layout/SKILL.md": "5.2.2",
247
+ "microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "5.2.2",
248
+ "microi-frontend-sdk/SKILL.md": "5.2.2",
249
+ "microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "5.2.2",
250
+ "microi-left-right-layout/SKILL.md": "5.2.2",
251
+ "microi-microservice/SKILL.md": "5.2.2",
252
+ "microi-microservice/references/runtime-delivery.md": "5.2.2",
253
+ "microi-mobile-app-quality/SKILL.md": "5.2.2",
254
+ "microi-mobile-app-quality/references/progressive-01-4-重要按钮必须带图标.md": "5.2.2",
255
+ "microi-mobile-app-quality/references/progressive-02-9-主题切换必须真实且全局生效.md": "5.2.2",
256
+ "microi-solution-quotation/SKILL.md": "5.2.2",
257
+ "microi-solution-quotation/agents/openai.yaml": "5.2.2",
258
+ "microi-solution-quotation/scripts/build_solution_quote.py": "5.2.2",
259
+ "microi-sso/SKILL.md": "5.2.2",
260
+ "microi-sso/references/acceptance.md": "5.2.2",
261
+ "microi-sso/references/configuration-and-security.md": "5.2.2",
262
+ "microi-sso/references/inbound.md": "5.2.2",
263
+ "microi-sso/references/outbound.md": "5.2.2",
264
+ "microi-system-delivery/SKILL.md": "5.2.2",
265
+ "microi-system-delivery/references/progressive-01-标准工作流.md": "5.2.2",
266
+ "microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md": "5.2.2",
267
+ "microi-ui/SKILL.md": "5.2.2",
268
+ "microi-ui/references/progressive-01-移动端场景蓝图.md": "5.2.2",
269
+ "microi-uniapp-frontend/SKILL.md": "5.2.2",
270
+ "microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "5.2.2",
271
+ "microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "5.2.2",
272
+ "microi.v8.js": "5.2.2",
273
+ "module-engine/SKILL.md": "5.2.2",
274
+ "module-engine/references/module-config.md": "5.2.2",
275
+ "ocr-engine/SKILL.md": "5.2.2",
276
+ "ocr-engine/agents/openai.yaml": "5.2.2",
277
+ "page-engine/SKILL.md": "5.2.2",
278
+ "page-engine/references/progressive-01-所有组件类型.md": "5.2.2",
279
+ "page-engine/references/progressive-02-版本历史-并发保存与回滚.md": "5.2.2",
280
+ "performance-testing/SKILL.md": "5.2.2",
281
+ "playwright-e2e/SKILL.md": "5.2.2",
282
+ "playwright-e2e/references/progressive-01-全自动登录-免验证码-但不免密码-必读.md": "5.2.2",
283
+ "playwright-e2e/references/progressive-02-文字对比度与可读性自动化检查-必做.md": "5.2.2",
284
+ "playwright-e2e/references/progressive-03-microi-helper-模板.md": "5.2.2",
285
+ "playwright-e2e/references/progressive-04-ci-建议.md": "5.2.2",
286
+ "print-engine/SKILL.md": "5.2.2",
287
+ "production-readonly-audit/SKILL.md": "5.2.2",
288
+ "report-engine/SKILL.md": "5.2.2",
289
+ "report-engine/agents/openai.yaml": "5.2.2",
290
+ "scripts/optimize-progressive-disclosure.mjs": "5.2.2",
291
+ "scripts/refresh-progressive-disclosure.mjs": "5.2.2",
292
+ "scripts/validate-progressive-disclosure.mjs": "5.2.2",
293
+ "search-engine/SKILL.md": "5.2.2",
294
+ "search-engine/agents/openai.yaml": "5.2.2",
295
+ "spider-engine/SKILL.md": "5.2.2",
296
+ "translate-engine/SKILL.md": "5.2.2",
297
+ "translate-engine/agents/openai.yaml": "5.2.2",
298
+ "ui-design/SKILL.md": "5.2.2",
299
+ "ui-design/assets/pattern-showcase/app.js": "5.2.2",
300
+ "ui-design/assets/pattern-showcase/index.html": "5.2.2",
301
+ "ui-design/assets/pattern-showcase/styles.css": "5.2.2",
302
+ "ui-design/assets/templates/MCI-DESIGN.md": "5.2.2",
303
+ "ui-design/references/design-pattern-library.md": "5.2.2",
304
+ "ui-design/references/mci-design-contract.md": "5.2.2",
305
+ "ui-design/references/motion-and-media.md": "5.2.2",
306
+ "ui-design/references/product-flow-recipes.md": "5.2.2",
307
+ "ui-design/references/progressive-01-颜色体系-css-variables-支持主题切换.md": "5.2.2",
308
+ "ui-design/references/progressive-02-字体.md": "5.2.2",
309
+ "ui-design/references/progressive-03-动效规范-丰富但不卡.md": "5.2.2",
310
+ "ui-design/references/progressive-04-组件风格速查.md": "5.2.2",
311
+ "ui-design/references/progressive-05-移动端专用规范.md": "5.2.2",
312
+ "ui-design/references/progressive-06-主题切换实现.md": "5.2.2",
313
+ "ui-design/references/progressive-07-速查-从头搭建一个移动端页面.md": "5.2.2",
314
+ "ui-design/references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md": "5.2.2",
315
+ "uniapp-mall-assets/SKILL.md": "5.2.2",
316
+ "unity-integration/SKILL.md": "5.2.2",
317
+ "unity-integration/agents/openai.yaml": "5.2.2",
318
+ "unity-integration/references/ai-app-delivery.md": "5.2.2",
319
+ "unity-integration/references/sdk-api.md": "5.2.2",
320
+ "unity-integration/references/toolbox-migration.md": "5.2.2",
321
+ "unity-integration/references/webgl-hosting.md": "5.2.2",
322
+ "v8-api-config/SKILL.md": "5.2.2",
323
+ "v8-cache-pattern/SKILL.md": "5.2.2",
324
+ "v8-crud-api/SKILL.md": "5.2.2",
325
+ "v8-crud-api/references/progressive-01-查询列表-分页.md": "5.2.2",
326
+ "v8-crud-api/references/progressive-02-where-条件语法速查.md": "5.2.2",
327
+ "v8-debugging/SKILL.md": "5.2.2",
328
+ "v8-explorer-tree/SKILL.md": "5.2.2",
329
+ "v8-export-import/SKILL.md": "5.2.2",
330
+ "v8-export-import/references/progressive-01-excellayout-高级自由布局.md": "5.2.2",
331
+ "v8-export-import/references/progressive-02-powerpoint-导出.md": "5.2.2",
332
+ "v8-export-import/references/progressive-03-安全-性能注意.md": "5.2.2",
333
+ "v8-file-upload/SKILL.md": "5.2.2",
334
+ "v8-file-upload/references/progressive-01-公有桶-vs-私有桶.md": "5.2.2",
335
+ "v8-file-upload/references/progressive-02-office-文件在线编辑版本号规则.md": "5.2.2",
336
+ "v8-formengine-http/SKILL.md": "5.2.2",
337
+ "v8-frontend-events/SKILL.md": "5.2.2",
338
+ "v8-frontend-events/references/bluetooth-print-api.md": "5.2.2",
339
+ "v8-frontend-events/references/bluetooth-print.md": "5.2.2",
340
+ "v8-frontend-events/references/progressive-01-列表事件.md": "5.2.2",
341
+ "v8-http-integration/SKILL.md": "5.2.2",
342
+ "v8-http-integration/references/progressive-01-get-请求.md": "5.2.2",
343
+ "v8-http-integration/references/progressive-02-错误处理模式.md": "5.2.2",
344
+ "v8-image-processing/SKILL.md": "5.2.2",
345
+ "v8-image-processing/agents/openai.yaml": "5.2.2",
346
+ "v8-image-processing/references/api-reference.md": "5.2.2",
347
+ "v8-menu-buttons/SKILL.md": "5.2.2",
348
+ "v8-menu-buttons/references/progressive-01-2-按钮对象-schema.md": "5.2.2",
349
+ "v8-menu-buttons/references/progressive-02-8-模式-f-后台任务按钮-长任务.md": "5.2.2",
350
+ "v8-menu-buttons/references/progressive-03-10-反模式-避免.md": "5.2.2",
351
+ "v8-mongodb/SKILL.md": "5.2.2",
352
+ "v8-mq-mqtt/SKILL.md": "5.2.2",
353
+ "v8-mq-mqtt/references/mqtt-production.md": "5.2.2",
354
+ "v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "5.2.2",
355
+ "v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "5.2.2",
356
+ "v8-saas-multi-tenant/SKILL.md": "5.2.2",
357
+ "v8-security/SKILL.md": "5.2.2",
358
+ "v8-security/references/progressive-01-2-权限校验.md": "5.2.2",
359
+ "v8-security/references/progressive-02-7-日志记录.md": "5.2.2",
360
+ "v8-sql-query/SKILL.md": "5.2.2",
361
+ "v8-table-event/SKILL.md": "5.2.2",
362
+ "v8-table-event/references/progressive-01-informv8-js-表单打开事件.md": "5.2.2",
363
+ "v8-table-event/references/progressive-02-前端事件名-v8-eventname-可能的值.md": "5.2.2",
364
+ "v8-tcp-integration/SKILL.md": "5.2.2",
365
+ "v8-tcp-integration/agents/openai.yaml": "5.2.2",
366
+ "v8-template-engine/SKILL.md": "5.2.2",
367
+ "v8-utilities/SKILL.md": "5.2.2",
368
+ "v8-utilities/references/client-api-index.md": "5.2.2",
369
+ "v8-utilities/references/platform-http-routes.md": "5.2.2",
370
+ "v8-utilities/references/server-api-index.md": "5.2.2",
371
+ "v8-workflow/SKILL.md": "5.2.2",
372
+ "v8-workflow/references/progressive-01-节点开始-v8-事件.md": "5.2.2",
373
+ "workspace-conventions/SKILL.md": "5.2.2",
374
+ "workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "5.2.2",
375
+ "workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md": "5.2.2",
376
+ "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "5.2.2"
377
377
  },
378
378
  "files": [
379
379
  ".microi-skills-version.json",
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "5.2.0",
2
+ "version": "5.2.2",
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-21T07:50:56.285Z"
5
+ "updatedAt": "2026-08-22T09:37:00.495Z"
6
6
  }
@@ -20,7 +20,9 @@ description: Microi 应用商城开发、打包、安装和升级规范。用于
20
20
  - 表、字段、Tab、菜单、权限、接口引擎、事件、数据源、页面、打印、工作流、任务和可幂等种子数据都应通过应用包升级;不得为这些资源在 `Microi.Server/Microi.Upgrade/` 新增租户定制 .NET 代码。
21
21
  - 有官方 MCP 权限时,固定使用 `microi_itdos`(`https://api.itdos.com`、`OsClient=iTdos`)更新官方母版、制作并发布对应应用,按内容哈希/包版本回读后,再由目标租户 MCP 安装或更新。无官方权限时只通过当前用户自己的 MCP/Manifest 更新其数据库并回读,不得假借通用升级器越权发布官方应用。
22
22
  - `Microi.Upgrade` 只保留应用商城/安装器启动前必需的核心物理兼容或协议迁移,并要求持久化版本门、共享租约、幂等、失败不推进版本。禁止每次启动对每个租户重跑不断增长的历史迁移清单。
23
- - 平台通用缺陷的交付证据必须分开记录:源码修复、官方母版资源、商城包发布后回读、目标租户后台安装任务、目标租户资源回读和真实 UI/接口验收;其中任一步未完成都不能笼统称为“已发布并安装”。
23
+ - 平台通用缺陷的交付证据必须分开记录:源码修复、官方母版资源、商城包发布后回读、目标租户后台安装任务、目标租户资源回读和真实 UI/接口验收;其中任一步未完成都不能笼统称为“已发布并安装”。
24
+ - 任何计划让全部吾码租户通过“安装/更新官方应用”获得的标准字段、布局、菜单、页面或种子数据,必须先在官方 `microi_itdos` 主租户创建并回读,再从该主租户按精确菜单/表资源导出新版 `AppPakcet`、单调递增应用版本并发布。禁止先只在客户/子租户补字段,再用本地手工 JSON 冒充官方母版;客户验证应发生在官方包发布之后。
25
+ - 同一标准能力若同时属于基础 SaaS 空库包和独立官方应用(例如系统设置、系统账号),两条交付链都要更新:基础包保证新租户初始化完整,独立应用保证存量租户可增量安装。发布后分别核对 `PackageInfo.Version`、物理列、`diy_field` 布局节点和商城行 `AppVersion/AppPakcet`,不能用其中一条替代另一条。
24
26
 
25
27
  ## 包内容
26
28
 
@@ -33,10 +35,10 @@ description: Microi 应用商城开发、打包、安装和升级规范。用于
33
35
  ## 接口引擎资源所有权(强制)
34
36
 
35
37
  - 新发布包必须声明 `ResourcePolicies.ApiEngines`,不得再依赖“同 Key 直接覆盖”。官方不可随租户修改的核心使用 `{ Ownership:'Application', UpgradePolicy:'Managed' }`;提供给租户改业务的 Hook 使用 `{ Ownership:'Tenant', UpgradePolicy:'CreateIfMissing' }`。
36
- - 发布器从上一版 `AppPakcet.SysApiEngines` 计算 `BaseHash`;导入成功后把本版摘要写入 `sys_microistoreversion.InstallResult.ResourceState.ApiEngines`。普通/社区应用仍按 Base/Local/Incoming 三方保护:`Local == Base` 才更新,`Local != Base && Local != Incoming` 必须冲突回滚。唯一覆盖例外是从固定 `https://api.itdos.com + iTdos` 实时回读并校验为官方 `ApplicationType=Platform` 的应用:其中 `Ownership=Application + UpgradePolicy=Managed` 属于平台发行物,安装/更新按包覆盖本地差异;离线包、自报官方、非 Platform 来源都不能获得该权限。
38
+ - 发布器从上一版 `AppPakcet.SysApiEngines` 计算 `BaseHash`;导入成功后把本版摘要写入 `sys_microistoreversion.InstallResult.ResourceState.ApiEngines`。普通/社区应用仍按 Base/Local/Incoming 三方保护:`Local == Base` 才更新,`Local != Base && Local != Incoming` 必须冲突回滚。唯一覆盖例外是从固定 `https://api.itdos.com + iTdos` 实时回读并校验为官方 `ApplicationType=Platform` 的应用:其中 `Ownership=Application + UpgradePolicy=Managed` 属于平台发行物,安装/更新按包覆盖本地差异;离线包、自报官方、非 Platform 来源都不能获得该权限。
37
39
  - `CreateIfMissing` 只在目标 Key 不存在时创建,存在时不得对齐 Id、源码、启用状态或其它字段。扩展模板发布后即归租户维护;后续版本禁止把同一 Key 改回 `Managed` 接管,确需新的官方核心时发布新 Key 并显式迁移。
38
- - 官方功能采用“Managed 核心 + CreateIfMissing Hook”。核心只提供稳定协议和默认行为,并在可信官方 Platform 包更新时覆盖升级;客户日志、写表、通知和业务动作放 Hook,并以稳定 `EventId`、唯一约束或 outbox 幂等。`CreateIfMissing` 一旦交给租户维护,即使后续官方包误改为 Managed 也必须冲突回滚。
39
- - 历史包未声明策略时只能按旧兼容流程安装;重新发布时发布器必须生成策略。验收至少覆盖首次安装、可信官方 Managed 本地有差异仍覆盖、普通应用核心差异冲突回滚、Hook 被改后保持原样、重复安装、两节点竞态,以及官方发布数据库连 `ValidateOnly` 也禁止执行安装器。
40
+ - 官方功能采用“Managed 核心 + CreateIfMissing Hook”。核心只提供稳定协议和默认行为,并在可信官方 Platform 包更新时覆盖升级;客户日志、写表、通知和业务动作放 Hook,并以稳定 `EventId`、唯一约束或 outbox 幂等。`CreateIfMissing` 一旦交给租户维护,即使后续官方包误改为 Managed 也必须冲突回滚。
41
+ - 历史包未声明策略时只能按旧兼容流程安装;重新发布时发布器必须生成策略。验收至少覆盖首次安装、可信官方 Managed 本地有差异仍覆盖、普通应用核心差异冲突回滚、Hook 被改后保持原样、重复安装、两节点竞态,以及官方发布数据库连 `ValidateOnly` 也禁止执行安装器。
40
42
 
41
43
  ## 安装流程
42
44
 
@@ -59,7 +61,9 @@ description: Microi 应用商城开发、打包、安装和升级规范。用于
59
61
  - 所有资源按目标 `OsClient` 写入;包内不能携带源租户 `OsClient`、数据库、Redis、对象存储、MQ/MQTT、AI 或第三方密钥。
60
62
  - 按钮调用后台安装接口时,前端只传应用/版本/安装 Id;目标租户和管理员身份由 Token 确定。
61
63
  - 每次安装、更新、重新安装生成稳定 `OperationId`。官方计数服务用共享数据库事件表唯一约束去重,并在同一事务内登记事件和递增 `InstallCount`;重试、跨节点和响应丢失不得重复计数。
64
+ - 安装次数回传属于非阻塞幂等遥测,不是应用导入事务的成功条件。来源节点返回旧格式 `True`、空响应、非 JSON、业务失败或请求异常时,只能写入带 `OperationId`/`InstallationKey` 的 warning 诊断,不得用 `_error_` 标记或回滚已经成功导入的应用;重试仍须复用同一幂等键。
62
65
  - “全部安装/更新”固定只处理 `ApplicationType=Platform` 的官方平台应用中未安装与存在新版本的项目,不得把 UniApp、Web、MicroService 或其它社区/AI 应用整库安装;已是最新版的应用不重新安装。批量计划、子项状态、checkpoint 和进度必须持久化到共享数据库/后台任务,支持多节点抢占、失败重试和重启恢复,不能依赖进程内集合或浏览器状态。
66
+ - 主租户批量维护全部子租户时,前端入口和接口引擎都必须校验主租户上下文及 `Level >= 9999`,再由可信控制面为每个启用子租户创建独立持久后台任务;父任务必须按子任务真实百分比聚合进度,等全部子任务终态后才成功或失败,并在通知中心保留每个租户、阶段和原始失败原因。所有子任务可立即创建,但固定商城工作器必须通过配置租户 Redis 的集群并发租约跨租户串行执行,避免共享物理库并发 DDL/元数据写入死锁;分片幂等任务使用足以覆盖短时死锁和滚动重启的有界重试预算,禁止无限重试。`MaxAttempts` 表示连续失败预算:任一分片成功写入 checkpoint 后必须把 `AttemptCount` 与陈旧 `LastError` 清零,不能让数百个成功分片之间偶发的网络错误按任务生命周期累计并误终结。分片重新入队后必须按 `COALESCE(NextRunTime, CreateTime)` 选取最早就绪任务,禁止只按 `CreateTime` 让最早长任务重复抢占全部分片。商城包属于只读权威数据,可对空响应做有界退避重试,并优先用完整响应的 `Content`、`RawBytes`、HTTP 状态和传输错误诊断;不得把该规则扩展到安装写入请求。目标租户固定商城工作器只允许从受信任官方谱系向更高版本刷新;同版本不同源码、目标端更新版或未知谱系必须失败关闭。历史空库缺少生成实体所需物理列时,导入器须在首次 FormEngine 调用前幂等补齐并回读,不能再把真实表结构错误包装成 `Value cannot be null (source)`。
63
67
  - 必须随所有后端版本自动落地的平台基础能力,仍要封装成受信任的官方 Platform 应用包,再由升级器调用统一 `import-microi-store-package` 幂等导入;禁止把表、字段、页面或微服务复制成定制 C# 迁移。身份验证、登录方式、个人中心与租户系统设置使用 `app.microi.saas-engine.json`:携带 `mci_system_setting`、`mci_user_external_identity`、默认设置和平台内置微服务。默认行必须使用 `InsertIfMissing + ConfigKey`,只补缺失,不覆盖 `ValueSource=Tenant` 的租户值或租户后来明确关闭的功能。小型平台启动微服务应以 `Source=NotIncluded + Build=DatabaseOnly + StorageMode=db` 随程序集交付并接受 256 文件/5MB、逐文件哈希和无源码门禁,使新租户在 HDFS 故障时仍能打开商城与恢复入口;普通应用安装、源码编辑和文件能力继续失败关闭,不得伪装成全平台健康。
64
68
  - 批量任务已经以“一个应用”为外层持久化恢复单元。规模可控的小型官方包应在一个事务中完成,避免对同一包体按 8 个字段反复下载、解析和重新排队;超过字段、表、DDL、流程、随包数据或资产安全阈值的大包继续使用内部 checkpoint 分片。热更新发现旧版批量计划不含 `ApplicationType` 时,必须丢弃旧计划并重新盘点,不能继续安装历史计划中的社区应用。
65
69
  - MySQL 宽表触发 65,535 字节行内上限时,只允许把不参与索引的 `varchar` 配置列无损提升为 `mediumtext`,并把类型覆盖持久化到后台任务 checkpoint;索引列和非行宽错误必须失败关闭。发布包对长连接串、密钥、回调地址、域名/白名单等字段应直接使用 `mediumtext`,同时更新 `DiyFields` 与建表 DDL,不能长期依赖安装时猜测。
@@ -130,7 +130,21 @@ description: Microi.Client 源码架构指南。用于修改 Microi.Client Vue
130
130
 
131
131
  标准前端 V8 会挂载 `FormEngine`、`ApiEngine`、`DataSourceEngine`、`Http`、`Base64` 等能力;虽然 `DiyCommon.ModuleEngine` 有底层实现,标准全局 V8 当前并未挂载 `V8.ModuleEngine`,文档和编辑器提示不得把它当作可用 API。
132
132
 
133
- `V8.SysConfig` 是面向浏览器的脱敏公开配置投影,不得依赖其中出现数据库连接串、对象存储密钥、短信/邮件密码或其它 SaaS 私密字段。
133
+ `V8.SysConfig` 是面向浏览器的脱敏公开配置投影,不得依赖其中出现数据库连接串、对象存储密钥、短信/邮件密码或其它 SaaS 私密字段。
134
+
135
+ ### 框架来源标识与水印(强制)
136
+
137
+ - 微服务和定制组件的来源标识必须由 Microi.Client 宿主统一渲染,子应用不得各自实现。来源标识是框架内置的常驻可发现能力,不得再创建 `RenderSourceBadgeMode`、自动收起、全局关闭等租户配置。
138
+ - `V8.OpenAppDialog` / Drawer 等标准弹层的来源标识放在标题文字之后,始终显示且不提供关闭按钮;菜单/整页微服务由 `micro-app/host.vue` 在内容区右上角直接渲染,必须提供只作用于当前页面实例的手动关闭按钮,切换实例后恢复显示。不得依赖外围路由组件猜测菜单微服务,避免动态路由元数据不同步导致漏标。
139
+ - 来源标识必须使用可点击的 `button` 语义与 `cursor:pointer`。点击后用可拖动、居中、亮/暗色适配的大圆角 Element Plus 弹层展示 AppKey、PageKey、应用内/框架路由、版本、源码定位、运行入口、发布/挂载状态和租户坐标,并生成可复制的 MCP 修改指令;公开详情不得包含 DiyToken、访问密钥、私有配置或用户敏感字段。
140
+ - 框架水印覆盖 `100vw × 100vh` 且固定 `pointer-events:none`。开启后内容空值默认 `$SysTitle$ - $UserName$`(用户名为空回退账号)、方向默认 `DiagonalUp`、密度默认 `Comfortable`、字号空值/0 默认 14,透明度空值/0 默认 30;亮色、深色、弹层、键盘和减少动态效果模式都要验收。
141
+
142
+ ### 用户级界面偏好(强制)
143
+
144
+ - 主题色、浅色/深色、菜单子级展开方式等需要“换设备仍生效”的选择必须保存到当前 DiyToken 用户的 `sys_user` 白名单字段;`localStorage` 只作为未安装新字段租户和匿名启动阶段的兼容回退,不能作为跨设备事实源。
145
+ - 已安装用户偏好字段时优先级固定为“当前用户显式值 → 租户 `sys_config` → 平台安全默认”;个人菜单值 `System` 表示继承租户配置。不得让上一位用户的浏览器本地主题覆盖下一位已登录用户。
146
+ - 自助保存优先使用官方 `Managed` 接口引擎,由 `V8.CurrentUser.Id` 与 `V8.OsClient` 推导用户和租户,并在服务端构造固定白名单更新对象;接口参数禁止决定目标 Id/OsClient,也禁止写入 Account、Phone、Tenant、Dept、Role、Level、State、Pwd、认证因子和登录审计字段。只有缺少可复用可信原子能力时才新增 C# DTO/端点。保存成功后调用 `V8.Method.RefreshLoginUser` 刷新登录缓存,并让微服务宿主重新同步 `CurrentUser`。
147
+ - 右上角即时切换可以乐观应用并短防抖保存;远端保存失败时保留当前设备效果并明确提示。个人中心和右上角必须调用同一个应用包交付的白名单接口引擎(当前为 `platform-user-update-preferences`),不能分别形成两套字段、枚举或优先级。
134
148
 
135
149
  ---
136
150