@microi.net/cli 5.0.0 → 5.0.1
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.
- package/.codebuddy-plugin/marketplace.json +2 -2
- package/.codebuddy-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/.workbuddy-plugin/marketplace.json +2 -2
- package/.workbuddy-plugin/plugin.json +1 -1
- package/assets/build-meta.json +3 -3
- package/package.json +1 -1
- package/scripts/mcp-server.js +86 -86
- package/scripts/microi-skills.meta.json +182 -182
- package/skills/.microi-skills-version.json +2 -2
- package/skills/.progressive-disclosure-manifest.json +13 -13
- package/skills/microi-client-frontend/SKILL.md +1 -1
- package/skills/microi-client-frontend/references/progressive-03-vue3-/345/211/215/347/253/257/345/276/256/346/234/215/345/212/241/345/256/277/344/270/273/350/247/204/345/210/231.md +8 -2
- package/skills/microi-microservice/SKILL.md +21 -2
- package/skills/microi-microservice/references/runtime-delivery.md +26 -1
- package/skills/playwright-e2e/SKILL.md +1 -1
- package/skills/playwright-e2e/references/progressive-04-ci-/345/273/272/350/256/256.md +4 -2
|
@@ -157,7 +157,7 @@ const host = window.microApp?.getData?.() || {};
|
|
|
157
157
|
|
|
158
158
|
常见字段:`apiBase`、`osClient`、`token`、`menuId`、`moduleEngineKey`、`diyTableId`、
|
|
159
159
|
`permissionContext`、`appKey`、`version`、`microRoute`、`dialog`、`dialogData`、
|
|
160
|
-
`componentMode`、`componentData`。只在内存中使用 Token。
|
|
160
|
+
`componentMode`、`componentData`、`cache`、`hostCapabilities.lifecycle`。只在内存中使用 Token。
|
|
161
161
|
|
|
162
162
|
独立访问时没有宿主 Token:先配置清单中的 `apiBase/osClient`,读取 `V8.GetSysConfig(true)`,
|
|
163
163
|
没有有效本地 Token 才显示吾码帐号密码登录;按 `EnableCaptcha` 动态请求验证码并向 `V8.Login`
|
|
@@ -175,6 +175,31 @@ const host = window.microApp?.getData?.() || {};
|
|
|
175
175
|
sticky/虚拟列表时,子应用以宿主可用高度约束自己的滚动容器并设置 `overflow-y:auto`,框架边界
|
|
176
176
|
因不再发生内容溢出而不显示滚动条。不要同时让宿主外层、微服务边界和自动高度根节点都承担滚动。
|
|
177
177
|
|
|
178
|
+
菜单页签还采用单一缓存所有者:主框架 Vue 宿主不进入 `KeepAlive`,由 `<micro-app keep-alive>`
|
|
179
|
+
保存子应用状态。宿主按租户、AppKey、菜单、主框架 `fullPath`、版本和入口生成稳定指纹,最多保留
|
|
180
|
+
5 个运行时;超过上限时只按 LRU 销毁隐藏实例。关闭当前/其它/全部 Tab、访问记录淘汰、退出登录、
|
|
181
|
+
Token 重置、角色变化、同一路由版本或入口变化时,使用 `destroy:true,clearData:true` 精确销毁。
|
|
182
|
+
弹窗和表单组件不承诺页签缓存,禁止套用菜单规则。
|
|
183
|
+
|
|
184
|
+
隐藏/恢复由子应用原生事件通知:
|
|
185
|
+
|
|
186
|
+
```javascript
|
|
187
|
+
window.addEventListener('appstate-change', function (event) {
|
|
188
|
+
var state = event.detail && event.detail.appState;
|
|
189
|
+
if (state === 'afterhidden') pauseBackgroundWork();
|
|
190
|
+
if (state === 'aftershow') {
|
|
191
|
+
configureMicroiV8(getMicroiContext());
|
|
192
|
+
resumeBackgroundWorkOnce();
|
|
193
|
+
requestAnimationFrame(resizeChartsAndVirtualLists);
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
`pause/resume` 必须幂等,分别处理轮询、WebSocket、观察器、图表和虚拟列表;隐藏时不得清空用户
|
|
199
|
+
输入、筛选、滚动或内部路由。恢复时宿主会以 `host:resume` 强制同步当前 Token、OsClient、权限、
|
|
200
|
+
主题、路由和视口,然后复核真实可见 DOM;子应用也应重新读取宿主上下文。AI 生成菜单微服务时
|
|
201
|
+
必须包含此生命周期适配,不能只实现首次 `mount`。
|
|
202
|
+
|
|
178
203
|
子应用通过模板 SDK 调用接口,不自行发明认证协议。关闭/结果使用宿主约定的
|
|
179
204
|
success、cancel、error/close 事件;业务写入成功后再报告 success。
|
|
180
205
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: playwright-e2e
|
|
3
|
-
description: 按 Microi 系统真实业务逻辑进行 Playwright 全自动化、全面测试。用于测试 PC Vue、uni-app H5、网站、界面引擎、移动商城、ApiEngine/FormEngine 契约、登录流程、写入闭环、网络防护、截图、报告和 Playwright Test for VSCode 集成。
|
|
3
|
+
description: 按 Microi 系统真实业务逻辑进行 Playwright 全自动化、全面测试。用于测试 PC Vue、前端微服务菜单切换与 keep-alive/LRU、uni-app H5、网站、界面引擎、移动商城、ApiEngine/FormEngine 契约、登录流程、写入闭环、网络防护、截图、报告和 Playwright Test for VSCode 集成。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
> **Codex 非阻塞自动更新:** 当前宿主为 Codex 时,吾码 CLI、Codex 插件与工作区 AI/MCP 由后台自动更新;需要诊断时读取 `../microi-codex-installer/SKILL.md`。更新失败、等待空闲或尚未重载均不得阻断当前、正在进行或新建任务。非 Codex 宿主跳过此项。
|
|
@@ -46,12 +46,14 @@ jobs:
|
|
|
46
46
|
| 页面有横向滚动 | 组件撑出视口 | 对根容器和列表容器加 `max-width:100vw; overflow-x:hidden` |
|
|
47
47
|
|
|
48
48
|
<!-- /microi-progressive:chunk -->
|
|
49
|
-
<!-- microi-progressive:chunk id=playwright-e2e-025 sha256=
|
|
49
|
+
<!-- microi-progressive:chunk id=playwright-e2e-025 sha256=be071153d695081b7c20d34cb5e9563480e3f09d9cd0292f2ca4b0245438787b -->
|
|
50
50
|
## 前端微服务 E2E 必测点
|
|
51
51
|
|
|
52
52
|
测试 Vue3 MicroApp 微服务时,不能只验证 `/micro-app/{OsClient}/{appKey}/index.html` 或带 token 的临时 URL。必须先建立真实登录态,再访问用户实际使用的不带 token 菜单路由,例如 `/#/micro-app/{MsKey}/{RoutePath}`,并确认地址栏没有退回旧的 `micro-app-host` 长地址。
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
同一套微服务绑定多个菜单时,至少选择 3 个真实菜单往返切换 8 轮,逐轮断言主框架 route、当前菜单和子应用可见内容匹配,且没有 `element head is missing`、`Failed to fetch`、`ERR_TOO_MANY_REDIRECTS`、`app name conflict`、永久骨架屏或空白内容。不能只断言 `<micro-app>` 元素存在。
|
|
55
|
+
|
|
56
|
+
页签缓存验收必须覆盖单一所有者与清理边界:在一个缓存范围内修改表单输入、筛选、内部路由或滚动位置,切走再返回后状态应保持;连续打开 6 个菜单微服务实例,断言运行时最多保留 5 个,最久未使用的隐藏实例重入时正常冷启动;关闭当前/其它/全部 Tab 后对应实例消失,退出登录后全部实例清空。恢复页还要断言收到最新 Token/OsClient/权限/主题/视口上下文,且任一时刻只有一个可见活动微服务。若子应用有轮询或 WebSocket,记录 `appstate-change`,确认 `afterhidden` 暂停、`aftershow` 幂等恢复而没有重复连接。
|
|
55
57
|
|
|
56
58
|
如果页面内提供 Microi SDK 调用按钮,必须点击并断言返回 `Code=1`,同时确认没有 `登录身份已过期`、`1001`、`1002`。只看到标题文本不代表鉴权链路通过。
|
|
57
59
|
|