@microi.net/cli 5.1.7 → 5.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,13 +5,13 @@
5
5
  "url": "https://microi.net"
6
6
  },
7
7
  "description": "Microi吾码官方 AI 插件市场",
8
- "version": "5.1.7",
8
+ "version": "5.1.8",
9
9
  "plugins": [
10
10
  {
11
11
  "name": "microi",
12
12
  "source": ".",
13
13
  "description": "Microi吾码 AI 开发插件:服务器连接、Skills、MCP、V8 全量同步与低代码交付",
14
- "version": "5.1.7",
14
+ "version": "5.1.8",
15
15
  "strict": true
16
16
  }
17
17
  ]
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "microi",
3
- "version": "5.1.7",
3
+ "version": "5.1.8",
4
4
  "description": "Microi吾码 AI 开发插件:服务器连接、Skills、MCP、V8 全量同步与低代码交付",
5
5
  "author": {
6
6
  "name": "Microi.Net",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "microi",
3
- "version": "5.1.7",
3
+ "version": "5.1.8",
4
4
  "description": "Microi吾码低代码平台的 Codex 开发插件,共享 VS Code/CLI 的连接、同步、MCP、V8 与交付能力。",
5
5
  "author": {
6
6
  "name": "Microi.Net",
@@ -5,13 +5,13 @@
5
5
  "url": "https://microi.net"
6
6
  },
7
7
  "description": "Microi吾码官方 AI 插件市场",
8
- "version": "5.1.7",
8
+ "version": "5.1.8",
9
9
  "plugins": [
10
10
  {
11
11
  "name": "microi",
12
12
  "source": ".",
13
13
  "description": "Microi吾码 AI 开发插件:服务器连接、Skills、MCP、V8 全量同步与低代码交付",
14
- "version": "5.1.7",
14
+ "version": "5.1.8",
15
15
  "strict": true
16
16
  }
17
17
  ]
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "microi",
3
- "version": "5.1.7",
3
+ "version": "5.1.8",
4
4
  "description": "Microi吾码 AI 开发插件:服务器连接、Skills、MCP、V8 全量同步与低代码交付",
5
5
  "author": {
6
6
  "name": "Microi.Net",
@@ -1,6 +1,6 @@
1
1
  {
2
- "builtAt": "2026-08-20T04:15:20.632Z",
3
- "version": "5.1.7",
2
+ "builtAt": "2026-08-20T15:27:02.716Z",
3
+ "version": "5.1.8",
4
4
  "sourceProducts": [
5
5
  "vscode-extension",
6
6
  "microi-cli",
@@ -13,6 +13,6 @@
13
13
  "cli": "05799e65bf90686936f519cd822cceb1dea0200fd2509904d50f870e6302ddc1",
14
14
  "router": "ffc14787fc2d3d6173b7a779b77139b759eb1d482cea787f71283f4017a4e223",
15
15
  "broker": "42a9d89ad7b960a324da949939ef46266aa66e21068e6fbfd040cecc58b7c956",
16
- "dshBundle": "dd4f9f77ed95a6c3bdbb90755441790670fba0aa11c17de65f0b7d48e2b14018"
16
+ "dshBundle": "41dd3cef98cb26145ca8ffb9d06be1696420c80b48e02c31cb346cce4fb26113"
17
17
  }
18
18
  }
package/cordis.patch.yml CHANGED
@@ -7,7 +7,7 @@
7
7
  serverName: microi
8
8
  transport: stdio
9
9
  command: !!js process.execPath
10
- args: ["-e","/*\n * DeepSeek Harness 通过 profile bundle 加载此 `node -e` 引导脚本。\n * DSH 不保证 MCP 子进程 cwd 位于 npm 包根,因此按 DSH_HOME/profile 定位\n * 当前版本的 @microi.net/cli,再复用 Codex 同源适配器与多连接路由器。\n */\nconst fs = require('node:fs');\nconst os = require('node:os');\nconst path = require('node:path');\nconst packageName = '@microi.net/cli';\nconst expectedVersion = '5.1.7';\n\nfunction readJson(filePath) {\n try { return JSON.parse(fs.readFileSync(filePath, 'utf8')); }\n catch { return undefined; }\n}\n\nfunction expandHome(value) {\n if (value === '~') return os.homedir();\n if (value.startsWith('~/') || value.startsWith('~\\\\')) return path.join(os.homedir(), value.slice(2));\n return value;\n}\n\nfunction validRoot(value) {\n const root = path.resolve(value);\n const pkg = readJson(path.join(root, 'package.json'));\n const patch = path.join(root, 'cordis.patch.yml');\n const adapter = path.join(root, 'scripts', 'mcp-codex-stdio-adapter.js');\n const router = path.join(root, 'scripts', 'microi-codex-router.js');\n if (pkg?.name !== packageName || pkg?.version !== expectedVersion) return undefined;\n if (pkg?.dsh?.bundle?.patch !== './cordis.patch.yml') return undefined;\n if (![patch, adapter, router].every(filePath => fs.existsSync(filePath))) return undefined;\n return { root: fs.realpathSync(root), adapter, router, modifiedAt: fs.statSync(router).mtimeMs };\n}\n\nfunction findPlugin() {\n const explicit = String(process.env.MICROI_DSH_PLUGIN_ROOT || '').trim();\n if (explicit) {\n const plugin = validRoot(explicit);\n if (!plugin) throw new Error(`MICROI_DSH_PLUGIN_ROOT 不是版本 ${expectedVersion} 的有效 Microi DSH bundle:${explicit}`);\n return plugin;\n }\n const configuredHome = String(process.env.DSH_HOME || '').trim();\n const dshHome = path.resolve(expandHome(configuredHome || path.join(os.homedir(), '.dsh')));\n const profilesRoot = path.join(dshHome, 'profiles');\n const candidates = [];\n if (fs.existsSync(profilesRoot)) {\n for (const entry of fs.readdirSync(profilesRoot, { withFileTypes: true })) {\n if (!entry.isDirectory() || entry.name === 'node_modules') continue;\n const root = path.join(profilesRoot, entry.name, 'node_modules', '@microi.net', 'cli');\n const plugin = validRoot(root);\n if (plugin) candidates.push(plugin);\n }\n }\n candidates.sort((left, right) => right.modifiedAt - left.modifiedAt);\n if (!candidates[0]) throw new Error(`未在 ${profilesRoot} 找到版本 ${expectedVersion} 的 ${packageName}`);\n return candidates[0];\n}\n\ntry {\n const plugin = findPlugin();\n process.env.MICROI_DSH_PLUGIN_ROOT = plugin.root;\n process.env.MICROI_CODEX_PLUGIN_ROOT = plugin.root;\n process.env.MICROI_TOOL_SOURCE = 'dsh';\n process.env.MICROI_TOOL_VERSION = expectedVersion;\n process.env.MICROI_WORKSPACE_ROOT = process.env.MICROI_WORKSPACE_ROOT || process.cwd();\n process.argv[2] = plugin.router;\n require(plugin.adapter);\n} catch (error) {\n console.error(`[microi-dsh-bootstrap] ${error instanceof Error ? error.message : String(error)}`);\n process.exit(1);\n}\n"]
10
+ args: ["-e","/*\n * DeepSeek Harness 通过 profile bundle 加载此 `node -e` 引导脚本。\n * DSH 不保证 MCP 子进程 cwd 位于 npm 包根,因此按 DSH_HOME/profile 定位\n * 当前版本的 @microi.net/cli,再复用 Codex 同源适配器与多连接路由器。\n */\nconst fs = require('node:fs');\nconst os = require('node:os');\nconst path = require('node:path');\nconst packageName = '@microi.net/cli';\nconst expectedVersion = '5.1.8';\n\nfunction readJson(filePath) {\n try { return JSON.parse(fs.readFileSync(filePath, 'utf8')); }\n catch { return undefined; }\n}\n\nfunction expandHome(value) {\n if (value === '~') return os.homedir();\n if (value.startsWith('~/') || value.startsWith('~\\\\')) return path.join(os.homedir(), value.slice(2));\n return value;\n}\n\nfunction validRoot(value) {\n const root = path.resolve(value);\n const pkg = readJson(path.join(root, 'package.json'));\n const patch = path.join(root, 'cordis.patch.yml');\n const adapter = path.join(root, 'scripts', 'mcp-codex-stdio-adapter.js');\n const router = path.join(root, 'scripts', 'microi-codex-router.js');\n if (pkg?.name !== packageName || pkg?.version !== expectedVersion) return undefined;\n if (pkg?.dsh?.bundle?.patch !== './cordis.patch.yml') return undefined;\n if (![patch, adapter, router].every(filePath => fs.existsSync(filePath))) return undefined;\n return { root: fs.realpathSync(root), adapter, router, modifiedAt: fs.statSync(router).mtimeMs };\n}\n\nfunction findPlugin() {\n const explicit = String(process.env.MICROI_DSH_PLUGIN_ROOT || '').trim();\n if (explicit) {\n const plugin = validRoot(explicit);\n if (!plugin) throw new Error(`MICROI_DSH_PLUGIN_ROOT 不是版本 ${expectedVersion} 的有效 Microi DSH bundle:${explicit}`);\n return plugin;\n }\n const configuredHome = String(process.env.DSH_HOME || '').trim();\n const dshHome = path.resolve(expandHome(configuredHome || path.join(os.homedir(), '.dsh')));\n const profilesRoot = path.join(dshHome, 'profiles');\n const candidates = [];\n if (fs.existsSync(profilesRoot)) {\n for (const entry of fs.readdirSync(profilesRoot, { withFileTypes: true })) {\n if (!entry.isDirectory() || entry.name === 'node_modules') continue;\n const root = path.join(profilesRoot, entry.name, 'node_modules', '@microi.net', 'cli');\n const plugin = validRoot(root);\n if (plugin) candidates.push(plugin);\n }\n }\n candidates.sort((left, right) => right.modifiedAt - left.modifiedAt);\n if (!candidates[0]) throw new Error(`未在 ${profilesRoot} 找到版本 ${expectedVersion} 的 ${packageName}`);\n return candidates[0];\n}\n\ntry {\n const plugin = findPlugin();\n process.env.MICROI_DSH_PLUGIN_ROOT = plugin.root;\n process.env.MICROI_CODEX_PLUGIN_ROOT = plugin.root;\n process.env.MICROI_TOOL_SOURCE = 'dsh';\n process.env.MICROI_TOOL_VERSION = expectedVersion;\n process.env.MICROI_WORKSPACE_ROOT = process.env.MICROI_WORKSPACE_ROOT || process.cwd();\n process.argv[2] = plugin.router;\n require(plugin.adapter);\n} catch (error) {\n console.error(`[microi-dsh-bootstrap] ${error instanceof Error ? error.message : String(error)}`);\n process.exit(1);\n}\n"]
11
11
  env:
12
12
  MICROI_TOOL_SOURCE: dsh
13
13
  cwd: !!js process.cwd()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microi.net/cli",
3
- "version": "5.1.7",
3
+ "version": "5.1.8",
4
4
  "description": "Microi吾码 AI 开发 CLI 与多宿主 Plugin:服务器连接、Skills、MCP、V8 同步和低代码交付",
5
5
  "license": "MIT",
6
6
  "homepage": "https://microi.net/doc/v8-engine/vs-code-plugin.html",
@@ -1,13 +1,13 @@
1
1
  {
2
- "builtAt": "2026-08-20T04:15:19.369Z",
2
+ "builtAt": "2026-08-20T15:26:59.448Z",
3
3
  "source": "../microi.skills",
4
4
  "extension": {
5
5
  "name": "v8-engine",
6
- "version": "5.1.7",
6
+ "version": "5.1.8",
7
7
  "publisher": "Microi"
8
8
  },
9
9
  "skills": {
10
- "version": "5.1.7",
10
+ "version": "5.1.8",
11
11
  "versionRule": "Microi version uses three numeric parts. Each publish increments the last part; when a part exceeds 9 it carries to the previous part: 1.0.9 -> 1.1.0, 1.9.9 -> 2.0.0.",
12
12
  "managedBy": "Microi.VSCode/bump-version.js"
13
13
  },
@@ -15,17 +15,17 @@
15
15
  "dir": "dist/microi.skills",
16
16
  "files": 172,
17
17
  "skills": 63,
18
- "bytes": 2115354
18
+ "bytes": 2115609
19
19
  },
20
20
  "fileHashes": {
21
- ".microi-skills-version.json": "f530e2f301cf21829f6640ff17ec71773d9c67f096007bd554ff785ec09e7199",
22
- ".progressive-disclosure-manifest.json": "e888f96322802591ec2c7ef89fed0447103d3c52a836bd060f29070405d48412",
21
+ ".microi-skills-version.json": "1016e6c6be2895c4f0ca7449e9602e653cd993349c72bed1d6501c4f2404bc69",
22
+ ".progressive-disclosure-manifest.json": "2c9e36e4fe432d538d2e7cbf0298e97de91d756bbedef42bd9a74fbf0d137819",
23
23
  "README.md": "e4c36c39515953ac1953622f19671d2c377a8828aae20f877bdd39ab1dcb0cb1",
24
24
  "ai-engine/SKILL.md": "a9d3b152c6d8ca03bfa37669d4e81cf33c7361f3105165e40cb357f1b23b2bfb",
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": "03829703a45067fdadb564aca9056777deddbbed49be001f886d38478bf1932d",
28
+ "app-store/SKILL.md": "3549ce5ae0c3ac8cb4d39aaacb56fdafb579cd58d2d704522b3d27aea9bb5297",
29
29
  "app-store/agents/openai.yaml": "eda8f5cf043e7b8fb0e4fb3acf0625fef95eb49586b43187ced277cd0ae4a2c4",
30
30
  "business-blueprint/SKILL.md": "01619a3b6d37b5b67649ee59d2701301222006d3b943882b2802b1721c58f8a9",
31
31
  "datasource-engine/SKILL.md": "bed8352f1d43b55145e1c492d1ea0ca1ec8750b5c4d74e1e80cd71aa7b9a2e6f",
@@ -64,7 +64,7 @@
64
64
  "microi-form-engine/SKILL.md": "071314e05697624617989c9864e02f0dec370c21087092580a3d4bd4b039ceb5",
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": "3970f25e1bee69ab048af13456853ff4f1d63430fbbcc6c01b52c46d6e0251ed",
67
+ "microi-form-layout/SKILL.md": "8f94488edcd12e7ceeb185847b81a659a6998cbfab9fa070e3f148317edc32c5",
68
68
  "microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "b72f79f9cf7635d0add29aa954c9dc0d333a62f45ee1d6113fbd7ee250b26965",
69
69
  "microi-frontend-sdk/SKILL.md": "010e5e10a0cbe47a450cb6e4a699b8b26605f23f340adf9d86c66fb2fbef2f7f",
70
70
  "microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "fdcc7aca57eaf7d0fa509dc28ef96abeb1099ed4da1e48411b4bb476d9f51390",
@@ -86,7 +86,7 @@
86
86
  "microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "44df3c20120298f6565cf4388eadca70d98d097880c61168ce6d3ac03e80968b",
87
87
  "microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "31a0a12e39ec785df038fb5c73d4978d6dec42d86c52b79e91082c9ac13f29cf",
88
88
  "microi.v8.js": "25ff9e9aca3ff5167a1f3f06e262e3389a6d732cb12b9a3ddb4f218fb331ef53",
89
- "module-engine/SKILL.md": "2ed0766381b21601aa6f8a0597492d67bc494934d1dfffa628ab16b647aef4b4",
89
+ "module-engine/SKILL.md": "576c5ea9fc4efa6eabe13be02e79146c99a4b78bf83b681f0a4c7cec12523cb7",
90
90
  "module-engine/references/module-config.md": "fc9a5104d1a99774c9455c92a1277d7ae15851fe917ef7aa6162ffb73debd05a",
91
91
  "ocr-engine/SKILL.md": "239fed8ba28c0178fbbcc4c3dc8d4f3b8b8cf1d2b794db2014c2600ea7835da6",
92
92
  "ocr-engine/agents/openai.yaml": "3a6cc9984a246c41332c5f53d1badef31b78f81324333ea0d6337cb20c7fc898",
@@ -111,7 +111,7 @@
111
111
  "spider-engine/SKILL.md": "e24018f7ab2a07706a70bb592adb7a2f91f0a66e3f9bc944593e18731c53d77e",
112
112
  "translate-engine/SKILL.md": "8f4c49d49049dfc0ed5e0a792b35a2c2490e2279a4e3be90f29309a4e55a9d53",
113
113
  "translate-engine/agents/openai.yaml": "8eb47e08a691219bbe22a797ddbdf73234ec77f86e5724bc735fb0738d899112",
114
- "ui-design/SKILL.md": "408ed010f9a15aa27da71a60db1565e60e39f620cfec7e305ca7b073d25da864",
114
+ "ui-design/SKILL.md": "a8c7679d5ac1224b9fc652866dfd2baddf3b663ff0b398740e324d1413eab320",
115
115
  "ui-design/assets/pattern-showcase/app.js": "68a8d404c30096da853c6edbc7cb27f336982147ddfebccd66c03ba3d99427cd",
116
116
  "ui-design/assets/pattern-showcase/index.html": "242f94772a5f14e38296f1e925f30a9a5fef2103975831cbd47861a3fc14d5bc",
117
117
  "ui-design/assets/pattern-showcase/styles.css": "77c34ddae0dd9c665c8774dc6def4bd8f4f5ed02470d4343d116ed141c87eccb",
@@ -170,7 +170,7 @@
170
170
  "v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "842c74bd8bc30b932346e34c0d4154edffc1bf6a5a8aaafaaa344f250394762c",
171
171
  "v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "e9f981e17e3d93d64aeeeb1bbc80a0eb680414e17782d43bfc7c1db676063dd0",
172
172
  "v8-saas-multi-tenant/SKILL.md": "f3f4e7b0ce320eb72a62bce3666cd7420a17d477c4d6a5dd29d7cef7a61cfb0e",
173
- "v8-security/SKILL.md": "d0a235ea135da81111456c7d6b737589d2f8d0daaa67323de2b94f31ebd46758",
173
+ "v8-security/SKILL.md": "3f18f23ff376b0aab5b7aea67170e5b9633384934dcf6c7512a3f3856674cd84",
174
174
  "v8-security/references/progressive-01-2-权限校验.md": "a7e2314b8f2f9bf413956191ffeda6d2f823760def2b06bf6b4c1565e8f71816",
175
175
  "v8-security/references/progressive-02-7-日志记录.md": "2758de279da56e90587df8422e25a1ccfce5c3bdc1f1c363a90c666b6c3f298a",
176
176
  "v8-sql-query/SKILL.md": "23a12c6801627890d18ff9f1d09cdd1abbd9b08ffc12ef6a12c915d504ed3255",
@@ -183,7 +183,7 @@
183
183
  "v8-utilities/SKILL.md": "8313a3e0e0c5f7a29cb22231b751a52107e3efa3b790e994343e54807fcb7285",
184
184
  "v8-utilities/references/client-api-index.md": "3362126197bd34191640d6bd532b16f1ed446c4a8a9d805f4973be5d58b90a4a",
185
185
  "v8-utilities/references/platform-http-routes.md": "87579eef4e89b4c80e1757ad34ec951e0ccadb6bd15aab4f3ab247f55d5f1cd5",
186
- "v8-utilities/references/server-api-index.md": "c5b9fc297f066e1c48ae2cf7de042afe4d7d41ff60faa93c67020bb95a011d75",
186
+ "v8-utilities/references/server-api-index.md": "0138cc3eceaf7b9160733b14419dcba4f3dc6e983b8e233017bc3c5dd557bcc0",
187
187
  "v8-workflow/SKILL.md": "f6dc87709362c3f8305a03d0b9b73e16a5ded601a509e8d5191b1141b0a72175",
188
188
  "v8-workflow/references/progressive-01-节点开始-v8-事件.md": "9b6b01e7ac03c0a11bc837671a30107ff5c5f253029d74fd17713084104d7e99",
189
189
  "workspace-conventions/SKILL.md": "cd64538477676d2b72c1a447b04143905e1f2bf06d293e771d1690f4e9d4962d",
@@ -192,178 +192,178 @@
192
192
  "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "86db1f03700fd54dd824d28c553c678202e8f74b796fd0f9d91f63bf53a530b1"
193
193
  },
194
194
  "fileVersions": {
195
- ".microi-skills-version.json": "5.1.7",
196
- ".progressive-disclosure-manifest.json": "5.1.7",
197
- "README.md": "5.1.7",
198
- "ai-engine/SKILL.md": "5.1.7",
199
- "ai-engine/agents/openai.yaml": "5.1.7",
200
- "ai-platform-governance/SKILL.md": "5.1.7",
201
- "ai-platform-governance/references/progressive-01-功能开关.md": "5.1.7",
202
- "app-store/SKILL.md": "5.1.7",
203
- "app-store/agents/openai.yaml": "5.1.7",
204
- "business-blueprint/SKILL.md": "5.1.7",
205
- "datasource-engine/SKILL.md": "5.1.7",
206
- "datasource-engine/agents/openai.yaml": "5.1.7",
207
- "dos-orm/SKILL.md": "5.1.7",
208
- "dos-orm/references/api-reference.md": "5.1.7",
209
- "job-engine/SKILL.md": "5.1.7",
210
- "job-engine/agents/openai.yaml": "5.1.7",
211
- "message-notification/SKILL.md": "5.1.7",
212
- "message-notification/agents/openai.yaml": "5.1.7",
213
- "message-notification/references/contracts.md": "5.1.7",
214
- "microi-ai-app-auth.js": "5.1.7",
215
- "microi-ai-application/SKILL.md": "5.1.7",
216
- "microi-ai-application/agents/openai.yaml": "5.1.7",
217
- "microi-ai-application/references/frontend-baseline.md": "5.1.7",
218
- "microi-client-frontend/SKILL.md": "5.1.7",
219
- "microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "5.1.7",
220
- "microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "5.1.7",
221
- "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "5.1.7",
222
- "microi-codex-installer/SKILL.md": "5.1.7",
223
- "microi-codex-installer/agents/openai.yaml": "5.1.7",
224
- "microi-codex/SKILL.md": "5.1.7",
225
- "microi-datasource-mapping/SKILL.md": "5.1.7",
226
- "microi-db-schema/SKILL.md": "5.1.7",
227
- "microi-db-schema/agents/openai.yaml": "5.1.7",
228
- "microi-db-schema/references/core-tables.md": "5.1.7",
229
- "microi-db-schema/references/form-component-options.md": "5.1.7",
230
- "microi-db-schema/references/schema-overview.md": "5.1.7",
231
- "microi-db-schema/references/schema.md": "5.1.7",
232
- "microi-db-schema/references/table-catalog.md": "5.1.7",
233
- "microi-deployment/SKILL.md": "5.1.7",
234
- "microi-deployment/references/deployment-matrix.md": "5.1.7",
235
- "microi-docs-coverage/SKILL.md": "5.1.7",
236
- "microi-docs-coverage/references/capability-map.md": "5.1.7",
237
- "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "5.1.7",
238
- "microi-form-engine/SKILL.md": "5.1.7",
239
- "microi-form-engine/references/component-catalog.md": "5.1.7",
240
- "microi-form-engine/references/data-source-events.md": "5.1.7",
241
- "microi-form-layout/SKILL.md": "5.1.7",
242
- "microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "5.1.7",
243
- "microi-frontend-sdk/SKILL.md": "5.1.7",
244
- "microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "5.1.7",
245
- "microi-left-right-layout/SKILL.md": "5.1.7",
246
- "microi-microservice/SKILL.md": "5.1.7",
247
- "microi-microservice/references/runtime-delivery.md": "5.1.7",
248
- "microi-mobile-app-quality/SKILL.md": "5.1.7",
249
- "microi-mobile-app-quality/references/progressive-01-4-重要按钮必须带图标.md": "5.1.7",
250
- "microi-mobile-app-quality/references/progressive-02-9-主题切换必须真实且全局生效.md": "5.1.7",
251
- "microi-solution-quotation/SKILL.md": "5.1.7",
252
- "microi-solution-quotation/agents/openai.yaml": "5.1.7",
253
- "microi-solution-quotation/scripts/build_solution_quote.py": "5.1.7",
254
- "microi-system-delivery/SKILL.md": "5.1.7",
255
- "microi-system-delivery/references/progressive-01-标准工作流.md": "5.1.7",
256
- "microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md": "5.1.7",
257
- "microi-ui/SKILL.md": "5.1.7",
258
- "microi-ui/references/progressive-01-移动端场景蓝图.md": "5.1.7",
259
- "microi-uniapp-frontend/SKILL.md": "5.1.7",
260
- "microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "5.1.7",
261
- "microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "5.1.7",
262
- "microi.v8.js": "5.1.7",
263
- "module-engine/SKILL.md": "5.1.7",
264
- "module-engine/references/module-config.md": "5.1.7",
265
- "ocr-engine/SKILL.md": "5.1.7",
266
- "ocr-engine/agents/openai.yaml": "5.1.7",
267
- "page-engine/SKILL.md": "5.1.7",
268
- "page-engine/references/progressive-01-所有组件类型.md": "5.1.7",
269
- "page-engine/references/progressive-02-版本历史-并发保存与回滚.md": "5.1.7",
270
- "performance-testing/SKILL.md": "5.1.7",
271
- "playwright-e2e/SKILL.md": "5.1.7",
272
- "playwright-e2e/references/progressive-01-全自动登录-免验证码-但不免密码-必读.md": "5.1.7",
273
- "playwright-e2e/references/progressive-02-文字对比度与可读性自动化检查-必做.md": "5.1.7",
274
- "playwright-e2e/references/progressive-03-microi-helper-模板.md": "5.1.7",
275
- "playwright-e2e/references/progressive-04-ci-建议.md": "5.1.7",
276
- "print-engine/SKILL.md": "5.1.7",
277
- "production-readonly-audit/SKILL.md": "5.1.7",
278
- "report-engine/SKILL.md": "5.1.7",
279
- "report-engine/agents/openai.yaml": "5.1.7",
280
- "scripts/optimize-progressive-disclosure.mjs": "5.1.7",
281
- "scripts/refresh-progressive-disclosure.mjs": "5.1.7",
282
- "scripts/validate-progressive-disclosure.mjs": "5.1.7",
283
- "search-engine/SKILL.md": "5.1.7",
284
- "search-engine/agents/openai.yaml": "5.1.7",
285
- "spider-engine/SKILL.md": "5.1.7",
286
- "translate-engine/SKILL.md": "5.1.7",
287
- "translate-engine/agents/openai.yaml": "5.1.7",
288
- "ui-design/SKILL.md": "5.1.7",
289
- "ui-design/assets/pattern-showcase/app.js": "5.1.7",
290
- "ui-design/assets/pattern-showcase/index.html": "5.1.7",
291
- "ui-design/assets/pattern-showcase/styles.css": "5.1.7",
292
- "ui-design/assets/templates/MCI-DESIGN.md": "5.1.7",
293
- "ui-design/references/design-pattern-library.md": "5.1.7",
294
- "ui-design/references/mci-design-contract.md": "5.1.7",
295
- "ui-design/references/motion-and-media.md": "5.1.7",
296
- "ui-design/references/product-flow-recipes.md": "5.1.7",
297
- "ui-design/references/progressive-01-颜色体系-css-variables-支持主题切换.md": "5.1.7",
298
- "ui-design/references/progressive-02-字体.md": "5.1.7",
299
- "ui-design/references/progressive-03-动效规范-丰富但不卡.md": "5.1.7",
300
- "ui-design/references/progressive-04-组件风格速查.md": "5.1.7",
301
- "ui-design/references/progressive-05-移动端专用规范.md": "5.1.7",
302
- "ui-design/references/progressive-06-主题切换实现.md": "5.1.7",
303
- "ui-design/references/progressive-07-速查-从头搭建一个移动端页面.md": "5.1.7",
304
- "ui-design/references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md": "5.1.7",
305
- "uniapp-mall-assets/SKILL.md": "5.1.7",
306
- "unity-integration/SKILL.md": "5.1.7",
307
- "unity-integration/agents/openai.yaml": "5.1.7",
308
- "unity-integration/references/ai-app-delivery.md": "5.1.7",
309
- "unity-integration/references/sdk-api.md": "5.1.7",
310
- "unity-integration/references/toolbox-migration.md": "5.1.7",
311
- "unity-integration/references/webgl-hosting.md": "5.1.7",
312
- "v8-api-config/SKILL.md": "5.1.7",
313
- "v8-cache-pattern/SKILL.md": "5.1.7",
314
- "v8-crud-api/SKILL.md": "5.1.7",
315
- "v8-crud-api/references/progressive-01-查询列表-分页.md": "5.1.7",
316
- "v8-crud-api/references/progressive-02-where-条件语法速查.md": "5.1.7",
317
- "v8-debugging/SKILL.md": "5.1.7",
318
- "v8-explorer-tree/SKILL.md": "5.1.7",
319
- "v8-export-import/SKILL.md": "5.1.7",
320
- "v8-export-import/references/progressive-01-excellayout-高级自由布局.md": "5.1.7",
321
- "v8-export-import/references/progressive-02-powerpoint-导出.md": "5.1.7",
322
- "v8-export-import/references/progressive-03-安全-性能注意.md": "5.1.7",
323
- "v8-file-upload/SKILL.md": "5.1.7",
324
- "v8-file-upload/references/progressive-01-公有桶-vs-私有桶.md": "5.1.7",
325
- "v8-file-upload/references/progressive-02-office-文件在线编辑版本号规则.md": "5.1.7",
326
- "v8-formengine-http/SKILL.md": "5.1.7",
327
- "v8-frontend-events/SKILL.md": "5.1.7",
328
- "v8-frontend-events/references/bluetooth-print-api.md": "5.1.7",
329
- "v8-frontend-events/references/bluetooth-print.md": "5.1.7",
330
- "v8-frontend-events/references/progressive-01-列表事件.md": "5.1.7",
331
- "v8-http-integration/SKILL.md": "5.1.7",
332
- "v8-http-integration/references/progressive-01-get-请求.md": "5.1.7",
333
- "v8-http-integration/references/progressive-02-错误处理模式.md": "5.1.7",
334
- "v8-image-processing/SKILL.md": "5.1.7",
335
- "v8-image-processing/agents/openai.yaml": "5.1.7",
336
- "v8-image-processing/references/api-reference.md": "5.1.7",
337
- "v8-menu-buttons/SKILL.md": "5.1.7",
338
- "v8-menu-buttons/references/progressive-01-2-按钮对象-schema.md": "5.1.7",
339
- "v8-menu-buttons/references/progressive-02-8-模式-f-后台任务按钮-长任务.md": "5.1.7",
340
- "v8-menu-buttons/references/progressive-03-10-反模式-避免.md": "5.1.7",
341
- "v8-mongodb/SKILL.md": "5.1.7",
342
- "v8-mq-mqtt/SKILL.md": "5.1.7",
343
- "v8-mq-mqtt/references/mqtt-production.md": "5.1.7",
344
- "v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "5.1.7",
345
- "v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "5.1.7",
346
- "v8-saas-multi-tenant/SKILL.md": "5.1.7",
347
- "v8-security/SKILL.md": "5.1.7",
348
- "v8-security/references/progressive-01-2-权限校验.md": "5.1.7",
349
- "v8-security/references/progressive-02-7-日志记录.md": "5.1.7",
350
- "v8-sql-query/SKILL.md": "5.1.7",
351
- "v8-table-event/SKILL.md": "5.1.7",
352
- "v8-table-event/references/progressive-01-informv8-js-表单打开事件.md": "5.1.7",
353
- "v8-table-event/references/progressive-02-前端事件名-v8-eventname-可能的值.md": "5.1.7",
354
- "v8-tcp-integration/SKILL.md": "5.1.7",
355
- "v8-tcp-integration/agents/openai.yaml": "5.1.7",
356
- "v8-template-engine/SKILL.md": "5.1.7",
357
- "v8-utilities/SKILL.md": "5.1.7",
358
- "v8-utilities/references/client-api-index.md": "5.1.7",
359
- "v8-utilities/references/platform-http-routes.md": "5.1.7",
360
- "v8-utilities/references/server-api-index.md": "5.1.7",
361
- "v8-workflow/SKILL.md": "5.1.7",
362
- "v8-workflow/references/progressive-01-节点开始-v8-事件.md": "5.1.7",
363
- "workspace-conventions/SKILL.md": "5.1.7",
364
- "workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "5.1.7",
365
- "workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md": "5.1.7",
366
- "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "5.1.7"
195
+ ".microi-skills-version.json": "5.1.8",
196
+ ".progressive-disclosure-manifest.json": "5.1.8",
197
+ "README.md": "5.1.8",
198
+ "ai-engine/SKILL.md": "5.1.8",
199
+ "ai-engine/agents/openai.yaml": "5.1.8",
200
+ "ai-platform-governance/SKILL.md": "5.1.8",
201
+ "ai-platform-governance/references/progressive-01-功能开关.md": "5.1.8",
202
+ "app-store/SKILL.md": "5.1.8",
203
+ "app-store/agents/openai.yaml": "5.1.8",
204
+ "business-blueprint/SKILL.md": "5.1.8",
205
+ "datasource-engine/SKILL.md": "5.1.8",
206
+ "datasource-engine/agents/openai.yaml": "5.1.8",
207
+ "dos-orm/SKILL.md": "5.1.8",
208
+ "dos-orm/references/api-reference.md": "5.1.8",
209
+ "job-engine/SKILL.md": "5.1.8",
210
+ "job-engine/agents/openai.yaml": "5.1.8",
211
+ "message-notification/SKILL.md": "5.1.8",
212
+ "message-notification/agents/openai.yaml": "5.1.8",
213
+ "message-notification/references/contracts.md": "5.1.8",
214
+ "microi-ai-app-auth.js": "5.1.8",
215
+ "microi-ai-application/SKILL.md": "5.1.8",
216
+ "microi-ai-application/agents/openai.yaml": "5.1.8",
217
+ "microi-ai-application/references/frontend-baseline.md": "5.1.8",
218
+ "microi-client-frontend/SKILL.md": "5.1.8",
219
+ "microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "5.1.8",
220
+ "microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "5.1.8",
221
+ "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "5.1.8",
222
+ "microi-codex-installer/SKILL.md": "5.1.8",
223
+ "microi-codex-installer/agents/openai.yaml": "5.1.8",
224
+ "microi-codex/SKILL.md": "5.1.8",
225
+ "microi-datasource-mapping/SKILL.md": "5.1.8",
226
+ "microi-db-schema/SKILL.md": "5.1.8",
227
+ "microi-db-schema/agents/openai.yaml": "5.1.8",
228
+ "microi-db-schema/references/core-tables.md": "5.1.8",
229
+ "microi-db-schema/references/form-component-options.md": "5.1.8",
230
+ "microi-db-schema/references/schema-overview.md": "5.1.8",
231
+ "microi-db-schema/references/schema.md": "5.1.8",
232
+ "microi-db-schema/references/table-catalog.md": "5.1.8",
233
+ "microi-deployment/SKILL.md": "5.1.8",
234
+ "microi-deployment/references/deployment-matrix.md": "5.1.8",
235
+ "microi-docs-coverage/SKILL.md": "5.1.8",
236
+ "microi-docs-coverage/references/capability-map.md": "5.1.8",
237
+ "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "5.1.8",
238
+ "microi-form-engine/SKILL.md": "5.1.8",
239
+ "microi-form-engine/references/component-catalog.md": "5.1.8",
240
+ "microi-form-engine/references/data-source-events.md": "5.1.8",
241
+ "microi-form-layout/SKILL.md": "5.1.8",
242
+ "microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "5.1.8",
243
+ "microi-frontend-sdk/SKILL.md": "5.1.8",
244
+ "microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "5.1.8",
245
+ "microi-left-right-layout/SKILL.md": "5.1.8",
246
+ "microi-microservice/SKILL.md": "5.1.8",
247
+ "microi-microservice/references/runtime-delivery.md": "5.1.8",
248
+ "microi-mobile-app-quality/SKILL.md": "5.1.8",
249
+ "microi-mobile-app-quality/references/progressive-01-4-重要按钮必须带图标.md": "5.1.8",
250
+ "microi-mobile-app-quality/references/progressive-02-9-主题切换必须真实且全局生效.md": "5.1.8",
251
+ "microi-solution-quotation/SKILL.md": "5.1.8",
252
+ "microi-solution-quotation/agents/openai.yaml": "5.1.8",
253
+ "microi-solution-quotation/scripts/build_solution_quote.py": "5.1.8",
254
+ "microi-system-delivery/SKILL.md": "5.1.8",
255
+ "microi-system-delivery/references/progressive-01-标准工作流.md": "5.1.8",
256
+ "microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md": "5.1.8",
257
+ "microi-ui/SKILL.md": "5.1.8",
258
+ "microi-ui/references/progressive-01-移动端场景蓝图.md": "5.1.8",
259
+ "microi-uniapp-frontend/SKILL.md": "5.1.8",
260
+ "microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "5.1.8",
261
+ "microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "5.1.8",
262
+ "microi.v8.js": "5.1.8",
263
+ "module-engine/SKILL.md": "5.1.8",
264
+ "module-engine/references/module-config.md": "5.1.8",
265
+ "ocr-engine/SKILL.md": "5.1.8",
266
+ "ocr-engine/agents/openai.yaml": "5.1.8",
267
+ "page-engine/SKILL.md": "5.1.8",
268
+ "page-engine/references/progressive-01-所有组件类型.md": "5.1.8",
269
+ "page-engine/references/progressive-02-版本历史-并发保存与回滚.md": "5.1.8",
270
+ "performance-testing/SKILL.md": "5.1.8",
271
+ "playwright-e2e/SKILL.md": "5.1.8",
272
+ "playwright-e2e/references/progressive-01-全自动登录-免验证码-但不免密码-必读.md": "5.1.8",
273
+ "playwright-e2e/references/progressive-02-文字对比度与可读性自动化检查-必做.md": "5.1.8",
274
+ "playwright-e2e/references/progressive-03-microi-helper-模板.md": "5.1.8",
275
+ "playwright-e2e/references/progressive-04-ci-建议.md": "5.1.8",
276
+ "print-engine/SKILL.md": "5.1.8",
277
+ "production-readonly-audit/SKILL.md": "5.1.8",
278
+ "report-engine/SKILL.md": "5.1.8",
279
+ "report-engine/agents/openai.yaml": "5.1.8",
280
+ "scripts/optimize-progressive-disclosure.mjs": "5.1.8",
281
+ "scripts/refresh-progressive-disclosure.mjs": "5.1.8",
282
+ "scripts/validate-progressive-disclosure.mjs": "5.1.8",
283
+ "search-engine/SKILL.md": "5.1.8",
284
+ "search-engine/agents/openai.yaml": "5.1.8",
285
+ "spider-engine/SKILL.md": "5.1.8",
286
+ "translate-engine/SKILL.md": "5.1.8",
287
+ "translate-engine/agents/openai.yaml": "5.1.8",
288
+ "ui-design/SKILL.md": "5.1.8",
289
+ "ui-design/assets/pattern-showcase/app.js": "5.1.8",
290
+ "ui-design/assets/pattern-showcase/index.html": "5.1.8",
291
+ "ui-design/assets/pattern-showcase/styles.css": "5.1.8",
292
+ "ui-design/assets/templates/MCI-DESIGN.md": "5.1.8",
293
+ "ui-design/references/design-pattern-library.md": "5.1.8",
294
+ "ui-design/references/mci-design-contract.md": "5.1.8",
295
+ "ui-design/references/motion-and-media.md": "5.1.8",
296
+ "ui-design/references/product-flow-recipes.md": "5.1.8",
297
+ "ui-design/references/progressive-01-颜色体系-css-variables-支持主题切换.md": "5.1.8",
298
+ "ui-design/references/progressive-02-字体.md": "5.1.8",
299
+ "ui-design/references/progressive-03-动效规范-丰富但不卡.md": "5.1.8",
300
+ "ui-design/references/progressive-04-组件风格速查.md": "5.1.8",
301
+ "ui-design/references/progressive-05-移动端专用规范.md": "5.1.8",
302
+ "ui-design/references/progressive-06-主题切换实现.md": "5.1.8",
303
+ "ui-design/references/progressive-07-速查-从头搭建一个移动端页面.md": "5.1.8",
304
+ "ui-design/references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md": "5.1.8",
305
+ "uniapp-mall-assets/SKILL.md": "5.1.8",
306
+ "unity-integration/SKILL.md": "5.1.8",
307
+ "unity-integration/agents/openai.yaml": "5.1.8",
308
+ "unity-integration/references/ai-app-delivery.md": "5.1.8",
309
+ "unity-integration/references/sdk-api.md": "5.1.8",
310
+ "unity-integration/references/toolbox-migration.md": "5.1.8",
311
+ "unity-integration/references/webgl-hosting.md": "5.1.8",
312
+ "v8-api-config/SKILL.md": "5.1.8",
313
+ "v8-cache-pattern/SKILL.md": "5.1.8",
314
+ "v8-crud-api/SKILL.md": "5.1.8",
315
+ "v8-crud-api/references/progressive-01-查询列表-分页.md": "5.1.8",
316
+ "v8-crud-api/references/progressive-02-where-条件语法速查.md": "5.1.8",
317
+ "v8-debugging/SKILL.md": "5.1.8",
318
+ "v8-explorer-tree/SKILL.md": "5.1.8",
319
+ "v8-export-import/SKILL.md": "5.1.8",
320
+ "v8-export-import/references/progressive-01-excellayout-高级自由布局.md": "5.1.8",
321
+ "v8-export-import/references/progressive-02-powerpoint-导出.md": "5.1.8",
322
+ "v8-export-import/references/progressive-03-安全-性能注意.md": "5.1.8",
323
+ "v8-file-upload/SKILL.md": "5.1.8",
324
+ "v8-file-upload/references/progressive-01-公有桶-vs-私有桶.md": "5.1.8",
325
+ "v8-file-upload/references/progressive-02-office-文件在线编辑版本号规则.md": "5.1.8",
326
+ "v8-formengine-http/SKILL.md": "5.1.8",
327
+ "v8-frontend-events/SKILL.md": "5.1.8",
328
+ "v8-frontend-events/references/bluetooth-print-api.md": "5.1.8",
329
+ "v8-frontend-events/references/bluetooth-print.md": "5.1.8",
330
+ "v8-frontend-events/references/progressive-01-列表事件.md": "5.1.8",
331
+ "v8-http-integration/SKILL.md": "5.1.8",
332
+ "v8-http-integration/references/progressive-01-get-请求.md": "5.1.8",
333
+ "v8-http-integration/references/progressive-02-错误处理模式.md": "5.1.8",
334
+ "v8-image-processing/SKILL.md": "5.1.8",
335
+ "v8-image-processing/agents/openai.yaml": "5.1.8",
336
+ "v8-image-processing/references/api-reference.md": "5.1.8",
337
+ "v8-menu-buttons/SKILL.md": "5.1.8",
338
+ "v8-menu-buttons/references/progressive-01-2-按钮对象-schema.md": "5.1.8",
339
+ "v8-menu-buttons/references/progressive-02-8-模式-f-后台任务按钮-长任务.md": "5.1.8",
340
+ "v8-menu-buttons/references/progressive-03-10-反模式-避免.md": "5.1.8",
341
+ "v8-mongodb/SKILL.md": "5.1.8",
342
+ "v8-mq-mqtt/SKILL.md": "5.1.8",
343
+ "v8-mq-mqtt/references/mqtt-production.md": "5.1.8",
344
+ "v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "5.1.8",
345
+ "v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "5.1.8",
346
+ "v8-saas-multi-tenant/SKILL.md": "5.1.8",
347
+ "v8-security/SKILL.md": "5.1.8",
348
+ "v8-security/references/progressive-01-2-权限校验.md": "5.1.8",
349
+ "v8-security/references/progressive-02-7-日志记录.md": "5.1.8",
350
+ "v8-sql-query/SKILL.md": "5.1.8",
351
+ "v8-table-event/SKILL.md": "5.1.8",
352
+ "v8-table-event/references/progressive-01-informv8-js-表单打开事件.md": "5.1.8",
353
+ "v8-table-event/references/progressive-02-前端事件名-v8-eventname-可能的值.md": "5.1.8",
354
+ "v8-tcp-integration/SKILL.md": "5.1.8",
355
+ "v8-tcp-integration/agents/openai.yaml": "5.1.8",
356
+ "v8-template-engine/SKILL.md": "5.1.8",
357
+ "v8-utilities/SKILL.md": "5.1.8",
358
+ "v8-utilities/references/client-api-index.md": "5.1.8",
359
+ "v8-utilities/references/platform-http-routes.md": "5.1.8",
360
+ "v8-utilities/references/server-api-index.md": "5.1.8",
361
+ "v8-workflow/SKILL.md": "5.1.8",
362
+ "v8-workflow/references/progressive-01-节点开始-v8-事件.md": "5.1.8",
363
+ "workspace-conventions/SKILL.md": "5.1.8",
364
+ "workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "5.1.8",
365
+ "workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md": "5.1.8",
366
+ "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "5.1.8"
367
367
  },
368
368
  "files": [
369
369
  ".microi-skills-version.json",
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "5.1.7",
2
+ "version": "5.1.8",
3
3
  "versionRule": "Microi version uses three numeric parts. Each publish increments the last part; when a part exceeds 9 it carries to the previous part: 1.0.9 -> 1.1.0, 1.9.9 -> 2.0.0.",
4
4
  "managedBy": "Microi.VSCode/bump-version.js",
5
- "updatedAt": "2026-08-20T04:14:49.723Z"
5
+ "updatedAt": "2026-08-20T15:26:14.536Z"
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 1,
3
- "generatedAt": "2026-08-19T19:46:28.459Z",
3
+ "generatedAt": "2026-08-20T15:12:13.816Z",
4
4
  "policy": {
5
5
  "maxEntryLines": 285,
6
6
  "referenceBudgetLines": 245,
@@ -316,10 +316,10 @@
316
316
  ]
317
317
  },
318
318
  "microi-form-layout": {
319
- "originalSha256": "f062cd46b4a1736796f727ddc5d184e2b38d94556cf39a0f2d941bf7da4596d0",
319
+ "originalSha256": "a279abf5400932ba725da58ec510407ea1155ac95ce330ea46a19abde98655bb",
320
320
  "originalLines": 398,
321
- "prefixSha256": "e54e2fa2f5a398f6dcd63cd2ef8a245ca95d9e24c5b18643d4e59647904f78a0",
322
- "prefixBytes": 2518,
321
+ "prefixSha256": "e1876f78d666d81d6aba19c4c6515b2312d4b78b965199f518f4105f3a595131",
322
+ "prefixBytes": 2508,
323
323
  "entryLines": 192,
324
324
  "chunks": [
325
325
  {
@@ -1614,7 +1614,7 @@
1614
1614
  "originalLines": 1632,
1615
1615
  "prefixSha256": "d557bbba4ba5ade3f10f5d8cc672d038f5136ce2eda7eaefbcfe2dd2eb65812a",
1616
1616
  "prefixBytes": 1106,
1617
- "entryLines": 205,
1617
+ "entryLines": 206,
1618
1618
  "chunks": [
1619
1619
  {
1620
1620
  "id": "ui-design-000",
@@ -2786,7 +2786,7 @@
2786
2786
  ]
2787
2787
  },
2788
2788
  "v8-security": {
2789
- "originalSha256": "9ca4d19e632aa28e49ee7322e10e9bac489b51ed3162b4a885a66adc36c1e1a7",
2789
+ "originalSha256": "f84dc7ac07651b87d1e35a0f170c0059e5a42f04a27d75ea654fe4670df92151",
2790
2790
  "originalLines": 491,
2791
2791
  "prefixSha256": "529a335f022a9c01309e2aca8254abf8aa72ea9b3bd4f0e73ec737697118ae51",
2792
2792
  "prefixBytes": 1071,
@@ -2796,7 +2796,7 @@
2796
2796
  "id": "v8-security-000",
2797
2797
  "ordinal": 0,
2798
2798
  "destination": "v8-security/SKILL.md",
2799
- "sha256": "683f6fb48592b050fc31caec6b45e39c8109b0a67baa48c0a2e6d1385a0e4ce1",
2799
+ "sha256": "0346bd9ca3fe98dd2b589d1777aa1e55cd24cf7dedc69ee65d4ca91461db7dee",
2800
2800
  "lines": 46,
2801
2801
  "heading": "0. 租户动态系统设置与密钥边界"
2802
2802
  },
@@ -70,7 +70,7 @@ description: Microi 应用商城开发、打包、安装和升级规范。用于
70
70
  - 每个主租户和子租户都可以发布自己的应用;应用行用 `IsPublic` 表达公开范围,缺省/历史空值按公开兼容。公开应用允许未登录来源读取和安装,私有应用只允许来源登录成功后的授权身份读取,列表、详情、版本接口都必须重复执行这一权限判断。
71
71
  - 商城来源以 `ApiBase + OsClient` 唯一定位。添加来源先只读发现系统标题、验证码策略和公开应用数;需要私有应用时再登录。帐号、密码、Token 不能写浏览器配置或商城来源 JSON;密码只用于本次登录,长会话 Token 以 `MCP/Mobile` 非 PC 客户端签发,并由当前租户后端加密保存到 `mci_system_setting`,浏览器只持有不具备取密能力的凭据 Key。
72
72
  - 后端来源代理必须固定已保存的 `ApiBase + OsClient`,拒绝过期 Token、访问密钥会话、非超级管理员、非 HTTPS 外网地址、重定向漂移和超限响应;Token 不得返回浏览器、日志、审计或应用包。退出登录同步删除服务端密文。
73
- - 商城主页面统一承载应用市场、已安装、我发布的应用、安装离线包和来源管理,不能再通过独立菜单或路由割裂上下文。来源增删改启停逐项自动保存;来源管理、详情和复杂配置使用平台统一 `80%` 可拖动大圆角 Dialog,遮罩服从 `sys_config.DisableFormMaskBlur`。
73
+ - 商城主页面统一承载应用市场、已安装、我发布的应用、安装离线包和来源管理,不能再通过独立菜单或路由割裂上下文。来源增删改启停逐项自动保存;来源管理、详情和复杂配置使用平台统一 `80%` 可拖动大圆角 Dialog,遮罩服从正向开关 `sys_config.FormMaskBlur`,缺失或 `0/false` 默认关闭毛玻璃。
74
74
  - 每张应用卡必须显示预览图、公开范围、分类、最新版本、当前租户已安装版本及状态色。来源卡必须显示其公开数和当前授权可访问总数;平台官方发布节点只显示“平台官方应用源”身份标记,不显示安装、更新或重新安装操作。
75
75
  - 安装可明确选择 `sys_microistore` 当前版本或 `mic_data_version` 中仍含完整包正文的历史快照;后台任务必须把 `StoreVersionId` 一直传到详情取包并把实际安装版本写回 `sys_microistoreversion`。回退旧版属于重新安装,不得静默换成最新版。
76
76
  - 应用详情的版本选择必须服务端分页和搜索,默认每页不超过 20 条;当前版本固定置顶,历史版本只返回仍包含完整包正文的可安装状态。禁止用 `_PageSize:500` 或一次加载全部版本后在浏览器过滤。翻页、搜索与页大小切换都必须保持已选版本语义并显示总数。
@@ -13,7 +13,7 @@ Microi 吾码低代码提供 **三种** 表单分组能力,但每种都有明
13
13
 
14
14
  控件事实源:`Microi.Client/src/views/form-engine/diy-field-component/diy-component-list.json` 中 `Sort=1000` 附近的 `Divider`、`CollapseGroup`、`Tabs`、`Alert`、`StaticText`、`Html`、`RichText` 等都属于 Advanced 布局控件。
15
15
 
16
- 表单遮罩统一使用负向开关 `diy_table.DisableFormMaskBlur`:字段缺失、空值或 `0/false` 时默认启用毛玻璃,只有显式 `1/true` 才关闭;`sys_config.DisableFormMaskBlur` 可以全局关闭。商城升级必须复用旧 `FormMaskBlur` 的字段元数据 Id 就地改名,允许暂留旧物理列供兼容读取,但旧字段元数据必须设置 `Visible=0`、`AppVisible=0`,不得同时向用户展示正向与负向开关。
16
+ 全局遮罩毛玻璃使用正向开关 `sys_config.FormMaskBlur`:缺失、空值或 `0/false` 默认关闭,只有显式 `1/true` 才开启。表级仍使用负向开关 `diy_table.DisableFormMaskBlur`;全局开启后,某张表显式 `1/true` 可单独关闭。旧全局字段 `sys_config.DisableFormMaskBlur` 只作未升级租户兼容回退,元数据必须设置 `Visible=0`、`AppVisible=0`,不得同时向用户展示两套开关。
17
17
 
18
18
  表单打开方式与分组是两个独立决策:新表默认 `FormOpenType=Dialog`、
19
19
  `FormOpenWidth=80%`。只有约 36 个以上业务字段、至少 2 个大型子表,或同等密度的重型控件
@@ -39,7 +39,7 @@ description: Microi 模块引擎与 sys_menu 配置指南。用于创建或修
39
39
  `TableChild`、28 个以上字段且含大型子表,或 7 个以上子表/富文本/代码编辑/上传/地图等
40
40
  重型控件。达到阈值仍应先用 `diy_table.Tabs` 与 CollapseGroup 整理信息架构。
41
41
  - 用户显式指定 `Dialog/Drawer/Page` 或宽度时以用户配置为准。Drawer 是贴边直角容器;
42
- Dialog 使用平台统一大圆角、可拖动、居中弹层,遮罩服从 `sys_config.DisableFormMaskBlur`。
42
+ Dialog 使用平台统一大圆角、可拖动、居中弹层,遮罩服从正向开关 `sys_config.FormMaskBlur`,缺失或 `0/false` 默认关闭毛玻璃。
43
43
  7. 为管理员/目标角色分配菜单权限,并以真实登录用户验收。
44
44
 
45
45
  ## 绑定表菜单不能只写两个字段
@@ -195,7 +195,7 @@ Microi 项目必须支持用户或项目级形态偏好:`data-mci-shape="round
195
195
  - **尊重三种标签布局**:`left`、`right`、`top` 三种 `FormLabelPosition` 必须完整保留,标签宽度继续服从表单配置;移动窄屏允许回落到顶部标签,但不能破坏桌面配置语义。字段存在说明文字时,`left/right` 把灰色小字放在 Label 与控件整行下方,默认最多两行并压缩上下间距;`top` 把说明放在 Label 右侧,单行省略并通过原生 `title` 或等价可访问方式查看全文。不得再以孤立 `i` 图标和仅鼠标悬停 Tooltip 作为默认说明入口。
196
196
  - **Label 与紧凑控件共用中心线**:左右标签布局下,普通字段 Label、输入控件、日期文字与日期前缀图标必须共用同一控件高度和垂直中心线;不得保留会把 Label 单独上抬/下压的底部外边距。多行文本、上传、子表等高控件才切换为顶部对齐。
197
197
  - **弹窗与抽屉边界有区别**:表单对话框采用中性细边界、柔和遮罩与模糊背景,标题顶部不加装饰色线;抽屉必须贴边且无圆角,可在顶部保留克制的 2–3px 主题色识别线。两者都使用连续的柔和表单画布和紧凑操作区;设计器双击字段弹窗必须可拖动,并继续提供控件专项配置入口。
198
- - **平台 Dialog 统一壳**:除 Drawer 外,框架弹层、微应用弹层、系统设置、商城、通知与业务表单默认使用 20–24px 大圆角、上下左右居中、标题栏可拖动的 Dialog;禁止页面自行恢复方角壳或顶部主题色粗线。标题栏左侧依次提供语义图标、英文眉题、大字标题和可选小字副标题;右上关闭按钮与标题区垂直居中并必须有可辨识的按钮底色。内容区使用连续、固定的柔和背景和整齐栅格;底部操作区右对齐大号关闭/保存按钮,两者都带语义图标。拖动与窗口缩放必须按弹层真实宽高重新约束,四边至少保留 8–18px 可视余量,不得把内容拖出视口。Teleport 到 `body` 的微应用弹层必须在弹层根同步 `data-mci-ui-root`、主题与必要 token,不能只依赖原祖先 CSS 变量。遮罩默认毛玻璃,只有 `sys_config.DisableFormMaskBlur=1/true` 才全局关闭;`prefers-reduced-motion` 只能停止动画与过渡,不得关闭静态毛玻璃。
198
+ - **平台 Dialog 统一壳**:除 Drawer 外,框架弹层、微应用弹层、系统设置、商城、通知与业务表单默认使用 20–24px 大圆角、上下左右居中、标题栏可拖动的 Dialog;禁止页面自行恢复方角壳或顶部主题色粗线。标题栏左侧依次提供语义图标、英文眉题、大字标题和可选小字副标题;右上关闭按钮与标题区垂直居中并必须有可辨识的按钮底色。内容区使用连续、固定的柔和背景和整齐栅格;底部操作区右对齐大号关闭/保存按钮,两者都带语义图标。拖动与窗口缩放必须按弹层真实宽高重新约束,四边至少保留 8–18px 可视余量,不得把内容拖出视口。Teleport 到 `body` 的微应用弹层必须在弹层根同步 `data-mci-ui-root`、主题与必要 token,不能只依赖原祖先 CSS 变量。遮罩毛玻璃由 `sys_config.FormMaskBlur=1/true` 全局显式开启,缺失或 `0/false` 默认关闭;`prefers-reduced-motion` 只能停止动画与过渡,不得擅自反转静态毛玻璃配置。
199
199
  - **Dialog 关闭按钮可见性**:右上关闭按钮固定使用 40×40px(移动端不低于 40px)中性灰底、细边框和 10–12px 圆角,不能只显示悬空的细线 X;亮色和暗色主题都必须保持可辨识背景。hover/focus-visible 时使用更深一级灰底、主题色图标和清晰焦点环。底部关闭/取消/保存按钮高度不低于 42px、最小宽度 96px,并保持右对齐与 12px 间距。
200
200
  - **Tabs 统一视觉**:顶部工作区、数据列表 PageTabs、表单 Tabs 与右侧关联数据 Tabs 使用同一套清爽、独立标签视觉。横向 Tabs 禁止铺设贯穿整行的有色轨道、边框底板、下划线或其它装饰线;未选项保持透明,悬停与选中只使用克制的文字色、浅色独立表面和轻阴影。纵向 Tabs 可使用截图式中性浅色分组容器,选中项是独立浅色卡片。数字角标放在标签文本之后且不得挤压标题;过渡只用于交互,并尊重 `prefers-reduced-motion`。
201
201
  - **表格与卡片行为完整**:桌面数据卡片采用连续白色表面、弱边界和轻阴影,操作区不得再叠加有色底板或硬分割线;表格模块门头的标题/副标题卡片与每个动态统计卡片必须彼此独立,父布局保持透明,禁止用一个大卡片或外框把标题和全部统计项包在一起。表格默认取消无意义的纵向网格,只保留浅表头与轻量横向行节奏,工具栏和分页不得层层套框。`PageBtns`、`BatchSelect`、行内/行外 V8 按钮均不可因改版丢失;需多选而当前未选中时,应先把当前记录纳入选中集再执行。
@@ -12,7 +12,7 @@ description: Microi V8 安全指南。用于审查 DiyToken 与权限、可逆
12
12
  访问密钥由 `microi_list_my_access_keys`、`microi_create_my_access_key`、`microi_revoke_my_access_key` 管理,只允许当前用户、限期、最小 scope,明文仅创建时返回一次。外部身份回调固定为 `/api/ExternalLogin/Callback`,服务端校验租户、Provider、state、redirect 和回调域名,验证成功后仍签发 DiyToken。
13
13
 
14
14
  <!-- microi-progressive:begin -->
15
- <!-- microi-progressive:chunk id=v8-security-000 sha256=683f6fb48592b050fc31caec6b45e39c8109b0a67baa48c0a2e6d1385a0e4ce1 -->
15
+ <!-- microi-progressive:chunk id=v8-security-000 sha256=0346bd9ca3fe98dd2b589d1777aa1e55cd24cf7dedc69ee65d4ca91461db7dee -->
16
16
  ## 0. 租户动态系统设置与密钥边界
17
17
 
18
18
  第三方密钥(微信、支付宝、OpenAI、阿里云、ERP、SMTP)**禁止**硬编码在 V8 代码或前端。公开的租户配置必须建成当前租户 `sys_config` 的实体字段;敏感或仅供后端使用的租户业务配置保存到 `mci_system_setting`。数据库、Redis、MongoDB、MinIO、MQ 等部署控制面仍由主库 `sys_osclients` 托管,子租户不能修改。
@@ -20,7 +20,7 @@ description: Microi V8 安全指南。用于审查 DiyToken 与权限、可逆
20
20
  ```javascript
21
21
  // ✅ 浏览器/前端 V8 只读取 sys_config 的浏览器安全投影
22
22
  var sysTitle = V8.SysConfig.SysTitle;
23
- var githubVisible = V8.SysConfig.LoginGitHubDisplay;
23
+ var githubVisible = V8.SysConfig.DisableLoginGitHub !== 1;
24
24
 
25
25
  // ✅ 后端接口引擎/后端 V8 事件从独立节点读取私密设置
26
26
  var privateSettings = V8.SysConfig.ServerPrivateSettings || {};
@@ -50,6 +50,7 @@
50
50
  | `V8.Method.GetCurrentToken(token,osClient)` | 读取当前 Token 对象;不透传前端 |
51
51
  | `V8.Method.RefreshLoginUser(userId,osClient)` | 刷新用户登录缓存 |
52
52
  | `V8.Method.ClearUserLoginInfo(userId,osClient)` | 管理员吊销用户全部终端 Token |
53
+ | `V8.Method.GetDirectTableGrantPolicies()` | 读取平台表直连授权策略;仅供可信角色表单事件做最终校验 |
53
54
  | `V8.Method.ConsumeIdentityVerificationTicket({Ticket,Purpose,ActionHash})` | 按当前 DiyToken 用户、租户、用途和操作摘要原子消费一次性 Passkey/TOTP/人脸票据 |
54
55
  | `V8.Method.GetPrivateFileUrl({FilePathName})` | 签发当前租户短期私有文件代理地址 |
55
56
  | `V8.Method.Upload(options)` | 受配额限制的上传 |