@microi.net/cli 4.6.9 → 4.7.3

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.
@@ -208,6 +208,22 @@ AI 为 Microi 平台新增或修改任何业务逻辑、后台工具、数据维
208
208
  - 如果接口引擎缺少底层能力,优先扩展 V8 能力(例如 `V8.Method`、`V8.FormEngine`、HDFS 辅助方法),再让接口引擎调用新增能力;只有跨平台核心框架、协议层、鉴权管线、SignalR/WebSocket、ORM、任务调度内核等接口引擎无法表达的能力,才新增或修改 C# Controller/Service。
209
209
  - 新增 C# Controller 前必须能说明为什么不能用接口引擎实现,并在交付说明中列出原因、影响范围和版本升级要求。
210
210
  - 从 C# Controller 迁移到接口引擎时,前端不得继续调用旧 `/api/<Controller>/<Action>`;应统一改为 `DiyCommon.ApiEngine.Run('<ApiEngineKey>', params)`,并保留 DosResult 返回格式。
211
+ - 修改 `Microi.Server` 前必须先做四级归类并留下结论:① 现有表单引擎 CRUD/事件能完成;② 现有 V8 接口引擎能完成;③ 只缺一个可复用的底层原子能力,应先扩展 V8 再由接口引擎编排;④ 只有平台协议、可信鉴权、密钥隔离、存储/网络边界或运行时内核才允许直接写 C#。未完成归类不得直接新增 Controller/Service。
212
+ - 第三方回调必须优先采用“C# 最小协议网关 + 应用拥有的 `Managed` 核心接口引擎 + 租户拥有的 `CreateIfMissing` 扩展 Hook”。C# 只验签、解密、校验租户/AppId 和整理脱敏事件;状态、日志、数据写入、通知及业务编排放接口引擎。扩展 Hook 以稳定 `EventId` 幂等,不能因修改业务规则再次发布后端。
213
+ - 第三方平台不支持 QueryString 时使用 `/path--OsClient--{OsClient}--`;支持 Query 时参数名固定为 `?OsClient=`,不得发明 `?o=` 等缩写。路径与 Query 同时出现时必须一致。
214
+ - 第三方 HTTP 集成默认用 `V8.Http` 放在接口引擎;若平台密钥绝不能进入可编辑 V8,只在 C# 暴露最小、租户隔离、不可覆盖密钥的安全原子方法,业务字段选择、状态流转和页面动作仍由接口引擎/表单事件编排。
215
+ - 平台级强制安全校验不能为了“全部低代码化”放进租户可编辑脚本而被绕过;可以留在 C#,但必须是通用、失败关闭的安全边界,不得夹带某个项目的业务文案、字段组合或状态机。
216
+
217
+ ## 应用商城优先于 Microi.Upgrade(强制)
218
+
219
+ 能由应用包声明、差异安装和回读验收完成的升级,不得在 `Microi.Server/Microi.Upgrade/` 新增定制 .NET 升级类。表、字段、Tab、菜单、角色权限、接口引擎、表单事件、数据源、页面、打印、工作流、任务及可幂等安装的种子数据,默认都属于应用商城资源。
220
+
221
+ - 应用包中的接口引擎必须声明 `ResourcePolicies.ApiEngines`:官方核心使用 `Managed`,租户 Hook 使用 `CreateIfMissing`。`Managed` 以目标端安装记录的上游 SHA-256 为 Base,仅当 `Local == Base` 才升级;本地已改则整包冲突回滚。`CreateIfMissing` 首次创建后永不覆盖,且同一 Key 后续禁止改回 `Managed`;确需收回官方维护时必须发布新 Key 并显式迁移。安全核心禁止自动合并可执行代码,要求把客户差异迁移到 Hook 或人工确认。
222
+ - 吾码官方开发者若可调用绑定 `https://api.itdos.com`、`OsClient=iTdos` 的 `microi_itdos`,必须先在官方主租户通过 MCP 更新资源,重新制作并发布对应官方应用,发布后按字段/菜单/引擎/包版本回读;再用目标租户 MCP 安装/更新并轮询后台任务到 `Succeeded`。
223
+ - 当前用户没有 `microi_itdos` 权限时,通过其自己的 MCP/Manifest 幂等升级自己的数据库并回读;不得为了单个租户把定制迁移塞进通用后端。确需让更多用户复用时,应生成其有权维护的社区/私有应用包。
224
+ - 只有应用商城运行前就必须存在的物理兼容基础、跨版本核心协议迁移、存储格式变化,或安装器自身无法安全表达的不可逆平台迁移,才允许进入 `Microi.Upgrade`。每个例外必须写明“为什么应用包不能完成”、影响范围、回滚/前后兼容、分布式幂等和验收依据。
225
+ - 允许的 .NET 迁移只能按持久化版本/迁移账本执行待办步骤,使用共享租约且业务幂等;禁止把新迁移同时加入版本链和“每次启动无条件全租户对账”列表。启动成本必须与待执行迁移数相关,不能随历史升级文件总数对每个租户线性增长。
226
+ - 评审 `Microi.Upgrade` PR 时先做资源分类:若只是补字段、Tab 或低代码元数据,移出升级器并发布应用包;若保留 C#,必须提供双节点、重复启动、租约丢失、失败不推进版本以及旧新节点共存测试。
211
227
 
212
228
  ## 在线 AI 应用上下文默认发现规则(强制)
213
229
 
@@ -315,6 +331,7 @@ Pop-Location
315
331
  - 启动前先检查端口、健康接口、PID、命令行和工作区路径。健康且代码无需重载时直接复用;不得仅为声明“本对话拥有服务”而重启。
316
332
  - 长期本地后端必须通过项目目录里的 `dotnet run --launch-profile Microi.net.Api` 使用开发输出。禁止把 `bin/Release/net10.0` 或 `bin/Release/publish` 的 `dotnet Microi.net.Api.dll` 当长期 E2E 服务;运行中的 Release DLL 会让后续 `dotnet build` 报 `MSB3021/MSB3027` 文件锁。
317
333
  - 一键编译发布会创建 `.tmp/microi-process-state/release.lock`,并调用 `Microi.Server/tools/Microi.LocalProcessManager.ps1 -Action PrepareRelease`。它只结束命令行和工作区均匹配的 `61501` 后端、`61500` Vite 以及额外 Release 后端,并验证 Release DLL 可独占打开;遇到身份不匹配的端口占用必须停止,不得按进程名全杀。
334
+ - Vite 子进程可能由相对 `node_modules/vite/bin/vite.js` 启动,父 npm/终端退出后命令行不再包含工作区绝对路径。Windows 进程管理器应先匹配命令行绝对路径;无法匹配时只读回读进程 CWD,只有 CWD 精确等于当前工作区 `Microi.Client` 且入口确为 Vite 才可结束。CWD 无法读取、属于其它目录或仅仅“父进程不存在”时必须失败关闭。
318
335
  - 发布锁存在期间,所有 AI 自动启动、服务自愈和 Playwright `webServer` 都必须等待或退出,禁止重新抢占 `61500/61501`。发布正常结束或中断时由脚本释放锁;无法证明锁持有者已退出时不得自行删除锁。
319
336
  - Edge/Chrome 主浏览器、VS Code 持有的 Playwright Test Server、语言服务和 MCP Node 进程不属于发布文件锁清理范围。浏览器自动化必须关闭本用例创建的 context/browser;不得通过 `taskkill /IM chrome.exe|msedge.exe|node.exe|dotnet.exe` 清空整机进程。
320
337
  - 人工盘点使用:`powershell -NoProfile -ExecutionPolicy Bypass -File Microi.Server/tools/Microi.LocalProcessManager.ps1 -Action Status`。需要单独停止当前工作区服务时使用 `-Action StopBackend` 或 `-Action StopFrontend`,不再让用户根据任务管理器猜进程。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microi.net/cli",
3
- "version": "4.6.9",
3
+ "version": "4.7.3",
4
4
  "description": "Microi吾码 AI 开发命令行:服务器连接、登录、AI/MCP 初始化与 V8 资源同步",
5
5
  "license": "MIT",
6
6
  "homepage": "https://microi.net/doc/v8-engine/vs-code-plugin.html",