@microi.net/cli 6.0.4 → 6.0.6

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,6 +1,6 @@
1
1
  {
2
- "version": "6.0.4",
2
+ "version": "6.0.6",
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.Agent/bump-version.js",
5
- "updatedAt": "2026-10-19T11:32:34.929Z"
5
+ "updatedAt": "2026-10-19T12:07:30.199Z"
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 1,
3
- "generatedAt": "2026-10-18T18:09:39.262Z",
3
+ "generatedAt": "2026-10-19T12:05:07.180Z",
4
4
  "policy": {
5
5
  "maxEntryLines": 285,
6
6
  "referenceBudgetLines": 245,
@@ -1382,17 +1382,17 @@
1382
1382
  ]
1383
1383
  },
1384
1384
  "playwright-e2e": {
1385
- "originalSha256": "4d2bdb53447bf8bfca376f2861dd6828b4c07b3511503d5ab2bdb7eb1934f83e",
1386
- "originalLines": 813,
1387
- "prefixSha256": "f691ccb80a94c5e34216ed442e750c814cbc3c2f860d6ad69dc4349ec286e8e5",
1388
- "prefixBytes": 3679,
1389
- "entryLines": 205,
1385
+ "originalSha256": "a70cd402df73041f886f64ebd7eb315e23cae0ae1347a4806b533a63b30b2193",
1386
+ "originalLines": 815,
1387
+ "prefixSha256": "7a2f83e469bfc176ff5fccc556acff13ebc157cc820e5b5f1e776269f227653b",
1388
+ "prefixBytes": 3656,
1389
+ "entryLines": 207,
1390
1390
  "chunks": [
1391
1391
  {
1392
1392
  "id": "playwright-e2e-000",
1393
1393
  "ordinal": 0,
1394
1394
  "destination": "playwright-e2e/SKILL.md",
1395
- "sha256": "f04614f276c139cfa50b9e46e89857675c6dc5e7cf0cfbfde76d6e6dbe9746c9",
1395
+ "sha256": "a6ef528a2a940fd0f58efaee6b73eb5dbc159db93d95afedf41c7b8642536d18",
1396
1396
  "lines": 9,
1397
1397
  "heading": "是否需要 `-e2e` 后缀"
1398
1398
  },
@@ -1400,7 +1400,7 @@
1400
1400
  "id": "playwright-e2e-001",
1401
1401
  "ordinal": 1,
1402
1402
  "destination": "playwright-e2e/SKILL.md",
1403
- "sha256": "703786ae7a5a52cb39664f1c82de7fb7aa7dfece511046d3757da64918c23063",
1403
+ "sha256": "b3970a9a4603447651520667c05ab4ecfae01b65b3f752e9f318007c5e2699c1",
1404
1404
  "lines": 11,
1405
1405
  "heading": "适用范围"
1406
1406
  },
@@ -1408,7 +1408,7 @@
1408
1408
  "id": "playwright-e2e-002",
1409
1409
  "ordinal": 2,
1410
1410
  "destination": "playwright-e2e/SKILL.md",
1411
- "sha256": "acef3e589cf11f3c197ee0b0ccf56d96b3f286263d54161b3c260e07c2090ed0",
1411
+ "sha256": "5874137c92e16fd5cc729fd9c23d051caa3e64438fc7bee1d717ae9c5a0f2a90",
1412
1412
  "lines": 20,
1413
1413
  "heading": "临时文件与产物放置规则(必须遵守)"
1414
1414
  },
@@ -1416,7 +1416,7 @@
1416
1416
  "id": "playwright-e2e-003",
1417
1417
  "ordinal": 3,
1418
1418
  "destination": "playwright-e2e/SKILL.md",
1419
- "sha256": "69b8842a221a0de60f8605c5059deee391be0f16f0b6cbc5ddfb3cfd210268db",
1419
+ "sha256": "247ddb9017c174f0daa88d1f6e4220c5530b79c5ac976e61e128ed8bd0aa1fea",
1420
1420
  "lines": 20,
1421
1421
  "heading": "标准目录"
1422
1422
  },
@@ -1424,7 +1424,7 @@
1424
1424
  "id": "playwright-e2e-004",
1425
1425
  "ordinal": 4,
1426
1426
  "destination": "playwright-e2e/SKILL.md",
1427
- "sha256": "4f5e11baf4651c11b5f9819a0b4f33ce2590db1733d4db72814bd1a25daf56ff",
1427
+ "sha256": "f71fe44f7d5753b93804dac958ea8205cddcaee25188a8417b33770e305c46ed",
1428
1428
  "lines": 21,
1429
1429
  "heading": "必备环境变量"
1430
1430
  },
@@ -1432,7 +1432,7 @@
1432
1432
  "id": "playwright-e2e-005",
1433
1433
  "ordinal": 5,
1434
1434
  "destination": "playwright-e2e/SKILL.md",
1435
- "sha256": "51567cea5fca434f9b031fef0871454100cf4715dfb65695dc1722bd275399be",
1435
+ "sha256": "a66696c3263f060d0b7be309a527fca6a9bad95dd534eabbe84f1b6539770d8e",
1436
1436
  "lines": 24,
1437
1437
  "heading": "本地测试账号自动发现"
1438
1438
  },
@@ -1440,7 +1440,7 @@
1440
1440
  "id": "playwright-e2e-006",
1441
1441
  "ordinal": 6,
1442
1442
  "destination": "playwright-e2e/SKILL.md",
1443
- "sha256": "88e1002cae934acd2de5af2f77f371a9ea152a525eecf11b49fe182b16a56044",
1443
+ "sha256": "6aeefebda3a9e598564c53c2f8028a4ccefe2291c4c7c7ae4781ca15fb5d0697",
1444
1444
  "lines": 12,
1445
1445
  "heading": "后端改动后的 E2E 前置动作"
1446
1446
  },
@@ -1448,8 +1448,8 @@
1448
1448
  "id": "playwright-e2e-007",
1449
1449
  "ordinal": 8,
1450
1450
  "destination": "playwright-e2e/SKILL.md",
1451
- "sha256": "948194cce3a29cfec216546acab77314ccaa1c0afad3cbcfd6b426a94f36d4ac",
1452
- "lines": 42,
1451
+ "sha256": "f866625ae131442e50ccee9faacc98672daa138154dd4a0e5deb054271b688b2",
1452
+ "lines": 44,
1453
1453
  "heading": "服务自启动纪律(必做)"
1454
1454
  },
1455
1455
  {
@@ -3241,17 +3241,17 @@
3241
3241
  ]
3242
3242
  },
3243
3243
  "workspace-conventions": {
3244
- "originalSha256": "3998276ab21bbb92c90594a49b9ffc0c39aeed16d3473ad637ae6e4acd7475d9",
3245
- "originalLines": 685,
3246
- "prefixSha256": "f2d5f1c288602fb264a0171b755bec68a56e7d496ab93cce69f33b70f9ffc315",
3247
- "prefixBytes": 11204,
3248
- "entryLines": 151,
3244
+ "originalSha256": "91a0efdb55bfdc38a4b6736405ef208063da2696d494feff7b0b69c5dcc382ea",
3245
+ "originalLines": 691,
3246
+ "prefixSha256": "c8087b7ca3fe82246cf95fe6e062b9f1987053ca8a1f04fe518f8db5c1c2453b",
3247
+ "prefixBytes": 11967,
3248
+ "entryLines": 153,
3249
3249
  "chunks": [
3250
3250
  {
3251
3251
  "id": "workspace-conventions-000",
3252
3252
  "ordinal": 0,
3253
3253
  "destination": "workspace-conventions/SKILL.md",
3254
- "sha256": "aca51a9aec956dd31d4865eeb25b3d33452106b363659970773b40b48d22e346",
3254
+ "sha256": "0c3f889089f09b9b43f1ae7168f9e20a7aa3e1324b1cf5c94052a78ffb1792b9",
3255
3255
  "lines": 60,
3256
3256
  "heading": "任务启动前 Skill 读取规则(强制)"
3257
3257
  },
@@ -3275,8 +3275,8 @@
3275
3275
  "id": "workspace-conventions-003",
3276
3276
  "ordinal": 3,
3277
3277
  "destination": "workspace-conventions/references/progressive-04-工作区与平台专项保障.md",
3278
- "sha256": "fd7e446aa87c7d8fecac6a258dab354bfa81415a2ed60c11f5b3069557dfa049",
3279
- "lines": 19,
3278
+ "sha256": "e2b353a4b8b4c11b4c22d7fa6d60056002f9efc94605f1732079c7940b13a464",
3279
+ "lines": 21,
3280
3280
  "heading": "本地资源与 OOM 保护规范(强制)"
3281
3281
  },
3282
3282
  {
@@ -3323,7 +3323,7 @@
3323
3323
  "id": "workspace-conventions-009",
3324
3324
  "ordinal": 9,
3325
3325
  "destination": "workspace-conventions/references/progressive-04-工作区与平台专项保障.md",
3326
- "sha256": "90d90834a2080c2a2f08bae1092557761b6b23c79274f8d4dc2b115c121f5b51",
3326
+ "sha256": "4551654837b9b34fc1d4dabcda3147541a61b484a52ad8ddc02ac84c1c822372",
3327
3327
  "lines": 40,
3328
3328
  "heading": "多对话共享工作区变更归属保护(强制)"
3329
3329
  },
@@ -3555,7 +3555,7 @@
3555
3555
  "id": "workspace-conventions-038",
3556
3556
  "ordinal": 38,
3557
3557
  "destination": "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md",
3558
- "sha256": "5dbfb261596e9c61fcc330adca7a1ff40a3a1508cd89be3c7b10410e591aa557",
3558
+ "sha256": "1b65652abc8ca096a22d79a62b32c74557e5fc3daa7d81f3c192c4b9e37e4665",
3559
3559
  "lines": 30,
3560
3560
  "heading": "CLI 与 IDE 插件错版共存约定"
3561
3561
  },
@@ -3563,8 +3563,8 @@
3563
3563
  "id": "workspace-conventions-039",
3564
3564
  "ordinal": 39,
3565
3565
  "destination": "workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md",
3566
- "sha256": "6a24718aa7e8b1b34cc6ff212d5a8331976d338bb60d99401c256c469e522a67",
3567
- "lines": 13,
3566
+ "sha256": "ff09cc6c76c9c6d13280f1d0fe45db19775863bca06eae8dadd1c4b2358183d3",
3567
+ "lines": 15,
3568
3568
  "heading": "本地测试程序与依赖生命周期(强制)"
3569
3569
  }
3570
3570
  ],
@@ -119,7 +119,7 @@ Codex Router 启动后会异步调用 bundled CLI 的 `microi update --backgroun
119
119
 
120
120
  ## 同步与安全边界
121
121
 
122
- - 发布扩展与 CLI/AI Plugin 前检查实际 VSIX:完整清单、字节数、SHA-256 和敏感文件扫描回执保存在 `.tmp/development-tools-releases/<版本>/`;逐字节核对 MCP 输出/构建输入与 Skills 全部文件同源。归档超过 64 MiB 或混入签名资料、凭据、桌面安装包、工具链、apps、upstream、同步目录或 node_modules 时停止,修复误包后复测;断点补发使用同一门禁,不用 `vsce ls` 替代归档检查。npm Token 只绑定官方 HTTPS registry,私有 npmrc 仅引用 `${NPM_TOKEN}`;同时固定 `npm_config_userconfig` / `NPM_CONFIG_USERCONFIG` 与 registry 两种大小写变量,避免外层 `npm run` 的配置遮蔽有效 Token。不输出凭据,不因继承错误重复要求登录;已发布正确制品保留,发行内容变化使用新不可变版本。
122
+ - 发布扩展与 CLI/AI Plugin 前检查实际 VSIX:完整清单、字节数、SHA-256 和敏感文件扫描回执保存在 `.tmp/development-tools-releases/<版本>/`;逐字节核对 MCP 输出/构建输入与 Skills 全部文件同源。归档超过 64 MiB 或混入签名资料、凭据、桌面安装包、工具链、apps、upstream、同步目录或 node_modules 时停止,修复误包后复测;断点补发使用同一门禁,不用 `vsce ls` 替代归档检查。npm Token 只绑定官方 HTTPS registry,私有 npmrc 仅引用 `${NPM_TOKEN}`;同时固定 `npm_config_userconfig` / `NPM_CONFIG_USERCONFIG` 与 registry 两种大小写变量,避免外层 `npm run` 的配置遮蔽有效 Token。不输出凭据,不因继承错误重复要求登录;已发布正确制品保留,发行内容变化使用新不可变版本。npm、Visual Studio Marketplace、Open VSX 的发布命令明确提示成功即可报告对应渠道发布成功;默认不追加 `--verify-all` / `--verify-only`、版本轮询或下载回读,不因传播延迟重复发布。只有命令报错、结果未知或用户明确要求核验时才查询渠道状态。
123
123
 
124
124
  - `Microi-V8-Engine/.microi-config.json` 是三端连接配置事实源;未知字段必须保留。
125
125
  - CLI、VS Code、Codex 与 DeepSeek Harness 插件可以在同一工作区并存;各端必须复用同一配置/Token/MCP 协议,带版本写入实行较新 provider 优先,禁止旧入口回写降级。`doctor.coexistence` 未通过时准确报告兼容风险并后台修复,但不得因此停止无关工作。
@@ -24,6 +24,8 @@ description: Microi 安装、部署、升级和本地运行指南。用于吾码
24
24
 
25
25
  常规发布按用户指定 MCP 的实际 MySQL、MongoDB 版本、Redis 和生效 MinIO 或 OSS/HDFS 选择测试矩阵;SQL Server 真实服务与兼容专项仅在用户明确指定解决 SQL Server 问题时执行,不作为每轮发布的默认前置条件,也无需反复申请免测。本文中的“Full/重新 Full”均指当前选定矩阵,已选必测项仍须全部通过。
26
26
 
27
+ 发布测试默认复用上述 MCP 服务。固定夹具库名、端口或归属冲突先修正测试入口的可配置隔离,采用本任务唯一名称并核验所有者;不能因此新建本地数据库、Redis、MongoDB 或存储容器,也不能删除他人的夹具或放宽测试断言。不可复用的例外及清理要求统一见 [本地测试程序与依赖生命周期](../workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md#本地测试程序与依赖生命周期强制)。
28
+
27
29
  选择、旧脚本冲突处理及结果记录统一读取 [发布测试矩阵](../microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md#按指定-mcp-选择发布测试矩阵) 和 `../workspace-conventions/SKILL.md`;实际目标未使用的提供商不能被虚构为已验证。
28
30
 
29
31
  ## 先确认部署类型
@@ -49,7 +51,7 @@ description: Microi 安装、部署、升级和本地运行指南。用于吾码
49
51
 
50
52
  共享源码持续变化时,可在独立目录保存完整候选源码和依赖,以该目录运行同一 Full 与发布脚本。专用测试服务使用独立端口,通过发布脚本变量 `MICROI_RELEASE_BACKEND_PORT`、`MICROI_RELEASE_FRONTEND_PORT` 指定收尾端口(默认仍为 61501、61500);进程管理器仍必须核验 PID、命令行和工作区归属,不得结束原工作区服务。变量仅供发布脚本使用,不进入生产 API 配置。
51
53
 
52
- 私有原生规则的静态后端组合必须设置构建专用 `MICROI_RELEASE_COMPOSITION_FILE`,不能把根仓忽略的应用源码当作已经进入 Full 候选。工作区内契约 `schema:1` 固定 `properties/files/directories/artifacts`;四个文件属性 `CustomAfterMicrosoftCommonTargets`、`PrivateRulesProject`、`ApprovedRulesBootstrapSource`、`MicroiCoreProject` 必须与当前 MSBuild 环境属性一致并进入源清单。契约、规则目录、静态审批及项目文件的新增/修改/删除均绑定候选,链接和越界路径拒绝。API 最终 `publish/<规则DLL>.dll` 必须与 `artifacts` 中后台审批的实际 SHA256 一致;不重新签名另一份 DLL 来通过门禁。普通无组合发布与 PC 制品保持兼容,实际镜像和部署仍需独立回读。详细契约见官网 `getting-started/local-run.md`;这是发行进程参数,不是生产 AppSettings、V8 或 MCP 代码上传入口。
54
+ 私有原生规则的静态后端组合必须设置构建专用 `MICROI_RELEASE_COMPOSITION_FILE`,不能把根仓忽略的应用源码当作已经进入 Full 候选。工作区内契约 `schema:1` 固定 `properties/files/directories/artifacts`;四个文件属性 `CustomAfterMicrosoftCommonTargets`、`PrivateRulesProject`、`ApprovedRulesBootstrapSource`、`MicroiCoreProject` 必须与当前 MSBuild 环境属性一致并进入源清单。契约、规则目录、静态审批及项目文件的新增/修改/删除均绑定候选,链接和越界路径拒绝。API 最终 `publish/<规则DLL>.dll` 必须与 `artifacts` 中后台审批的实际 SHA256 一致;不重新签名另一份 DLL 来通过门禁。普通无组合发布与 PC 制品保持兼容,镜像发布以推送命令明确成功为准,默认不追加渠道回读;目标部署和运行验收仍独立执行。详细契约见官网 `getting-started/local-run.md`;这是发行进程参数,不是生产 AppSettings、V8 或 MCP 代码上传入口。
53
55
 
54
56
  Windows Git Bash 发布锁必须把当前 Shell 的 MSYS PID 经真实 `ps` 的 `WINPID` 映射成 Windows 原生 PID,再以原生 PID 和唯一令牌登记、释放;映射失败或持有者退出立即停止,不借用其它进程。中文旧热修复入口通过 PowerShell UTF-8 命令行与精确工作区路径核验,不能只看标签或因大小写规范化误拒绝已核验入口。API、PC、官网和 Agent 仍各自互斥,实际 Bash 与原生宿主回归必须通过后重新 Full。
55
57
 
@@ -63,16 +65,16 @@ DLL 加密脚本只在 Git Bash、MSYS 或 Cygwin 中转换 Windows 路径,优
63
65
 
64
66
  加密脚本被 `source` 引入时只提供函数,不执行发行入口。SQLite 回归使用真实解释器及隔离标准库,Windows 选择 `python`,其它宿主使用 `python3`;不能用假解释器或跳过 SQL 断言。字节契约下的包投影、内联源码以及官方资源目录的全部 JavaScript 接口、表事件和 Hook 模板均按 Git 的 LF 规则检出,不能忽略原始字节差异来通过测试。缺少发行运行产物时,可按同版本包正文的大小与 SHA-256 恢复;明确标记为制品恢复,不能报告为新的源码构建。
65
67
 
66
- 只要检测到闭源项目源码,就必须具备完整的五项目加密链;源码不完整、加密脚本缺失都要硬失败,不能降级为 `HAS_ENCRYPT=false` 的开源模式。一键脚本由 `release-encryption.mjs` 保存五个实际 DLL 的加密前后 SHA-256,并要求每个 DLL 字节改变且匹配原加密器指纹。上传 NuGet 前检查真实 ZIP 中所有闭源 DLL;上传后端 Docker 前从不启动、不联网的临时容器读取实际镜像内五个 DLL,与加密回执逐字节哈希核对。缺回执、明文重编译覆盖、包或镜像中的旧 DLL 均阻止上传;最终渠道仍需独立回读,不以本地检查代替已发布证据。
68
+ 只要检测到闭源项目源码,就必须具备完整的五项目加密链;源码不完整、加密脚本缺失都要硬失败,不能降级为 `HAS_ENCRYPT=false` 的开源模式。一键脚本由 `release-encryption.mjs` 保存五个实际 DLL 的加密前后 SHA-256,并要求每个 DLL 字节改变且匹配原加密器指纹。上传 NuGet 前检查真实 ZIP 中所有闭源 DLL;上传后端 Docker 前从不启动、不联网的临时容器读取实际镜像内五个 DLL,与加密回执逐字节哈希核对。缺回执、明文重编译覆盖、包或镜像中的旧 DLL 均阻止上传;NuGet、Docker 等渠道发布命令明确成功即可报告发布完成,默认不再回读渠道或等待传播;本地检查不能替代实际发布命令,目标部署和业务验收仍独立执行。
67
69
 
68
70
  在线 AI 的 MCP 运行目录必须由已锁定依赖干净安装、编译和裁剪后完整复制。生产命令的符号链接应解析为真实文件并保留执行权限,不能依赖即将清理的临时目录;损坏、越界或循环链接在替换旧运行目录前失败,重新打包清除旧依赖残留。保留制品门禁对符号链接的拒绝规则,专项验证使用同一复制逻辑并核对清理临时目录后命令仍可运行;修复打包逻辑后重新 Full。
69
71
 
70
72
 
71
- 私有原生规则的静态后端组合必须设置构建专用 `MICROI_RELEASE_COMPOSITION_FILE`,不能把根仓忽略的应用源码当作已经进入 Full 候选。工作区内契约 `schema:1` 固定 `properties/files/directories/artifacts`;四个文件属性 `CustomAfterMicrosoftCommonTargets`、`PrivateRulesProject`、`ApprovedRulesBootstrapSource`、`MicroiCoreProject` 必须与当前 MSBuild 环境属性一致并进入源清单。契约、规则目录、静态审批及项目文件的新增/修改/删除均绑定候选,链接和越界路径拒绝。API 最终 `publish/<规则DLL>.dll` 必须与 `artifacts` 中后台审批的实际 SHA256 一致;不重新签名另一份 DLL 来通过门禁。普通无组合发布与 PC 制品保持兼容,实际镜像和部署仍需独立回读。详细契约见官网 `getting-started/local-run.md`;这是发行进程参数,不是生产 AppSettings、V8 或 MCP 代码上传入口。
73
+ 私有原生规则的静态后端组合必须设置构建专用 `MICROI_RELEASE_COMPOSITION_FILE`,不能把根仓忽略的应用源码当作已经进入 Full 候选。工作区内契约 `schema:1` 固定 `properties/files/directories/artifacts`;四个文件属性 `CustomAfterMicrosoftCommonTargets`、`PrivateRulesProject`、`ApprovedRulesBootstrapSource`、`MicroiCoreProject` 必须与当前 MSBuild 环境属性一致并进入源清单。契约、规则目录、静态审批及项目文件的新增/修改/删除均绑定候选,链接和越界路径拒绝。API 最终 `publish/<规则DLL>.dll` 必须与 `artifacts` 中后台审批的实际 SHA256 一致;不重新签名另一份 DLL 来通过门禁。普通无组合发布与 PC 制品保持兼容,镜像发布以推送命令明确成功为准,默认不追加渠道回读;目标部署和运行验收仍独立执行。详细契约见官网 `getting-started/local-run.md`;这是发行进程参数,不是生产 AppSettings、V8 或 MCP 代码上传入口。
72
74
 
73
75
  组合环境只属于发行工具所在工作区;临时测试仓库和其它源码根显式传递自己的环境。不得把主发行环境传入隔离夹具,也不得吞掉显式错误组合;实际 CLI 继续严格验证全部四项属性。
74
76
 
75
- 原生依赖审批在目标 Linux CLR 中验证完整程序集引用链及实际字节哈希。驱动扩展也属于交付依赖:Oracle Core 23.26.300 同时交付同版本 Azure、Kerberos、OCI、ConfigFile、AWS、GCP 六个官方扩展及传递依赖,以 `ProviderDependencyDeliveryTests` 验证真实装载,不连接云服务。缺文件、身份冲突和哈希变化继续失败关闭;先复现并修复包装,再重新 Full 和镜像回读,禁止跳过未执行的依赖或开放 V8/MCP 任意装载。
77
+ 原生依赖审批在目标 Linux CLR 中验证完整程序集引用链及实际字节哈希。驱动扩展也属于交付依赖:Oracle Core 23.26.300 同时交付同版本 Azure、Kerberos、OCI、ConfigFile、AWS、GCP 六个官方扩展及传递依赖,以 `ProviderDependencyDeliveryTests` 验证真实装载,不连接云服务。缺文件、身份冲突和哈希变化继续失败关闭;先复现并修复包装,再重新 Full 和镜像发布,禁止跳过未执行的依赖或开放 V8/MCP 任意装载。
76
78
 
77
79
  包清单不能代替真实程序集引用:Oracle AWS 扩展还引用清单未声明的 AWSSDK.SQS,Dos.ORM 显式交付官方 4.0.100.15 包,并由 NuGet 统一 AWS Core。回归递归检查扩展引用链,仍保留 512 个程序集预算;诊断集中列出缺失项,正式验证继续拒绝缺失和身份冲突。
78
80