@microi.net/cli 5.9.9 → 6.0.0
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 +5 -5
- package/cordis.patch.yml +1 -1
- package/package.json +1 -1
- package/scripts/mcp-server.js +82 -82
- package/scripts/microi-cli.js +56 -55
- package/scripts/microi-skills.meta.json +207 -207
- package/skills/.microi-skills-version.json +2 -2
- package/skills/.progressive-disclosure-manifest.json +8 -8
- package/skills/ai-engine/SKILL.md +5 -1
- package/skills/microi-client-frontend/SKILL.md +10 -5
- package/skills/microi-codex/SKILL.md +2 -2
- package/skills/module-engine/SKILL.md +6 -0
- package/skills/ui-design/SKILL.md +1 -1
|
@@ -27,15 +27,17 @@ description: Microi.Client 源码架构指南。用于修改 Microi.Client Vue
|
|
|
27
27
|
---
|
|
28
28
|
|
|
29
29
|
<!-- /microi-progressive:chunk -->
|
|
30
|
-
<!-- microi-progressive:chunk id=microi-client-frontend-001 sha256=
|
|
30
|
+
<!-- microi-progressive:chunk id=microi-client-frontend-001 sha256=60265fdc9842dcc4f032f80e1a93b88dd5f47f1261d0fa7334c2a7eac8d31c4c -->
|
|
31
31
|
## 1. 技术栈和源码入口
|
|
32
32
|
|
|
33
|
-
###
|
|
33
|
+
### 详情评论、日志与版本的按需读取
|
|
34
34
|
|
|
35
35
|
- 评论用 `/api/FormEngine/AddFormComment`,只传 `ParentFormEngineKey/ParentTableRowId/_SysMenuId/Content/ParentCommentId/RequestId`。服务端固定作者、父表及回复上下文;同一提交重试必须复用 RequestId,兼容 GUID 与平台 `DiyCommon.NewGuid()` 实际生成的 ULID。
|
|
36
36
|
- 评论归属为 `diy_comment.ParentTableId + TableRowId`,新表字段与复合索引通过表单引擎应用交付,主库回读保证写后可见。已有 TableId 绑定兼容,空归属历史评论禁止仅按记录 Id 自动猜测或后台回填。
|
|
37
|
-
- `/api/FormEngine/GetFormRelatedData`
|
|
38
|
-
-
|
|
37
|
+
- `/api/FormEngine/GetFormRelatedData` 的日志和版本列表只含元信息;`HistoryContentMode=OnDemand` 时,点击动作再传 `LogId/VersionId` 读取一条,并要求返回 `Authorized`。不要预取全部正文或将版本 Data 装入列表长期缓存。
|
|
38
|
+
- 历史正文单独复核当前主库有效管理员、父菜单/表/记录,普通用户与 AccessKey 会话不能仅凭当前行可读获得历史原文。代码继续使用代码字段白名单,普通数据使用当前元数据和正常 Client 读取前后未改变的字段交集;字段被任意 DataFilter、文件/模块权限隐藏、删除或改写时,不开放其历史值。密码控件、加密列、嵌套凭据及连接等敏感配置继续排除;SaaS 配置历史只允许明确安全字段白名单。
|
|
39
|
+
- 历史读取观察既有父记录管线,不重新执行历史 V8,不新读业务原行、不触发业务写入。局部版本比较/加载只涉及可读快照字段,保存继续走正常表单鉴权和事件。
|
|
40
|
+
- 表、记录、菜单、ApiBase/OsClient 或表单代次变化时同步清空列表、计数、评论/回复与历史弹窗,并作废旧响应。头像解析和按需正文 Promise 恢复后再次核归属;同一记录重新打开也要生成新代次,不能用列表非空代替当前记录已加载。
|
|
39
41
|
- 不得为了修复右栏恢复调度器通用 FormEngine 状态写回、启动历史回填或无变化版本写入。必须同时运行评论归属/去重、按需读取以及 ScheduleRuntimeTimeWriter、V8CodeVersionService 的性能回归。
|
|
40
42
|
|
|
41
43
|
- Vue 3 + Options API + mixins,构建工具是 Vite。
|
|
@@ -58,7 +60,7 @@ description: Microi.Client 源码架构指南。用于修改 Microi.Client Vue
|
|
|
58
60
|
---
|
|
59
61
|
|
|
60
62
|
<!-- /microi-progressive:chunk -->
|
|
61
|
-
<!-- microi-progressive:chunk id=microi-client-frontend-002 sha256=
|
|
63
|
+
<!-- microi-progressive:chunk id=microi-client-frontend-002 sha256=0d8e3d76a5c8198d562b0af842e109e8d9eeb27ab5ddc43a6fa367d5b08bdd14 -->
|
|
62
64
|
## 2. 表单引擎三层结构
|
|
63
65
|
|
|
64
66
|
### 模块级跨端视图
|
|
@@ -159,12 +161,15 @@ description: Microi.Client 源码架构指南。用于修改 Microi.Client Vue
|
|
|
159
161
|
|
|
160
162
|
- 边角风格先读取当前用户 `CornerStyle`:`round/square` 显式覆盖;空值或 `System` 继承租户 `sys_config.CornerStyle`,租户空值默认为圆角。不得把空个人值提前归一为 `round`,否则会阻断租户直角设置。
|
|
161
163
|
- 桌面经典布局使用 `NavigationLayout=Side/Top/TopSide`,个人空值或 `System` 继承租户,租户空值为侧边导航。`TopSide` 将一级放顶部,当前一级的二级及更深菜单复用原侧栏;单个子菜单仍留在侧栏,无可见子菜单时隐藏侧栏并释放内容宽度。侧栏仍支持收起及 `MenuChildExpandMode=System/Down/Right`。顶部导航复用当前权限路由、角标与外链,空间不足收纳到更多菜单;移动端仍采用底部导航。当前路由与一级归属由 `hybrid-navigation.js` 统一投影,禁止修改共享权限树。
|
|
164
|
+
- 侧栏与角色管理组织树共用 `MciResizablePane`:右边缘拖拽、可访问分隔条、方向键/Shift/Home/End 和收起按钮必须同样可用。`sys_user.SidebarWidth/RoleTreeWidth` 为 nullable 整数像素(160–600),`SidebarCollapsed/RoleTreeCollapsed` 为 nullable 0/1;使用当前账号的 Managed 偏好白名单保存。拖拽中仅预览,松开提交,取消或卸载释放指针。视口夹紧保留主内容宽度,不能把夹紧值覆盖长期偏好;窄屏禁拖,旧租户仅用账号/租户/API 隔离的设备回退。侧栏空宽度沿用 `sys_config.MenuWidth` 后回退240px,角色树默认240px。
|
|
165
|
+
- 顶部主导航与工作区 Tabs 是不同层级:`Top/TopSide` 的当前一级使用独立短底线,hover/focus 前景显式跟随可读主题,禁止继承 Element 的低对比品牌色。长弹出菜单使用独立主题表面、无异色顶边和内部滚动,嵌套层仍 Teleport;顶部菜单标题与品牌不显示 title/alt/Tooltip 类提示浮层,保留完整 aria-label 无障碍名称;顶栏整条背景色带须贴合视口或所属壳层左右边界,不能把内部 padding 当成全宽验收,内容区留白独立处理。窄视口“更多”菜单也遵守同一契约。
|
|
162
166
|
- 顶部导航整行(含功能图标和账号姓名)使用主题运行时的 `--sidebar-*` 可读表面与前景;主题面板和业务弹层保留自身语义表面。主题入口为齿轮,界面密度在同一主题面板调整,已安装 `sys_user.UiDensityScale` 时保存当前账号、个人空值继承 `sys_config.UiDensityScale`,旧租户才使用按租户/账号隔离的设备回退;AI 入口使用圆圈内 AI 字母 SVG,不能回退魔法棒或图片。
|
|
163
167
|
- 头像菜单【修改密码】使用标准 `DiyCustomDialog + MicroAppDialog` 打开现有平台服务 `/personal-settings`,仅传 `Data.Action=ChangePassword` 选择密码展示模式;不能用宿主输入决定目标账号/租户,不新建密码旁路。当前密码校验、Passkey/TOTP/严格人脸一次性票据与提交继续复用个人中心,成功或卸载清除密码输入。定向回归使用 `hybrid-navigation.spec.mjs`、`password-dialog.spec.mjs` 和个人偏好资源测试。
|
|
164
168
|
- 桌面壳层使用视口高度与可收缩的 flex 内容区,只有路由内容滚动,导航和 Tab 不随页面滚动;移动端仍保留文档滚动。用户入口含头像与姓名,不能使用纯图标的固定 flex 宽度;异步图表须在真实 DOM 挂载后观察尺寸变化,避免侧边/顶部导航切换后撑破卡片。
|
|
165
169
|
- 主题色、浅色/深色、菜单子级展开方式等需要“换设备仍生效”的选择必须保存到当前 DiyToken 用户的 `sys_user` 白名单字段;`localStorage` 只作为未安装新字段租户和匿名启动阶段的兼容回退,不能作为跨设备事实源。
|
|
166
170
|
- 已安装用户偏好字段时优先级固定为“当前用户显式值 → 租户 `sys_config` → 平台安全默认”;个人菜单值 `System` 表示继承租户配置。不得让上一位用户的浏览器本地主题覆盖下一位已登录用户。
|
|
167
171
|
- 主题面板的主题色、亮暗模式、边角、导航、菜单展开、密度、三个装饰开关及登录风格均有同名系统全局默认,不新建重复字段。`framework-appearance.js` 统一应用运行状态;渲染继承值不能写成个人选择。`UiDensityScale` 安全范围为 90~110、步长 5,覆盖表单标签/普通控件、系统设置表单、侧栏、表格、Tab 与 Teleport 弹层;富文本、代码、地图和子表保持内容高度,触屏最小目标仍为 44px。
|
|
172
|
+
- 密度覆盖不能只改字号和单元格 padding:父菜单底圈、图标、菜单行间距与普通表格 `.cell` 的历史38/40px行高都必须采用同一密度 token。多行内容保持自然高度,不能设置固定行高裁切。直角样式需按真实选择器优先级覆盖 `.el-message-box.mci-unified-message-box` 等双class的 important 壳,并验退出确认 Teleport 首帧。
|
|
168
173
|
- 【恢复默认】沿原保存队列把 `ThemeMode/ThemeColor` 清空、`CornerStyle/NavigationLayout/MenuChildExpandMode/LoginStyle` 写 `System`、`UiDensityScale/DisableGradient/DisableShadow/DisableButtonIcon` 写 `null`,只作用当前用户。同时清旧设备回退与本身份缓存;不能修改 `sys_config` 或把平台默认值写成个人覆盖。开关 `0` 与 `null` 语义不同:`0` 可覆盖全局 `1`,`null` 继承全局。
|
|
169
174
|
- `DisableGradient/DisableShadow/DisableButtonIcon` 同时支持个人与租户默认,根标识分别为 `data-mci-disable-gradient/shadow/button-icon`。去装饰仍保留输入边界、键盘焦点、加载指示与纯图标操作。登录样式 `LoginStyle=Original/Minimal/Split/Console` 复用一套业务 mixin 与表单,不复制验证码、SSO、强认证、协议及回跳逻辑;匿名读取当前租户默认或本匿名上下文明确预览,不能读取上一账号的个人值。
|
|
170
175
|
- `sys_config.HideFrameworkFunctions` 只控制顶栏入口,固定 Key 为 `Chat/BackgroundTasks/Search/Language/Theme/AI/Bluetooth/SystemStyle/FullScreen`,账号头像姓名始终保留。它与控制移动端等范围的原 AI 禁用开关独立,也不能代替功能权限。所有入口提供 `data-framework-function` 便于验收,未知 Key 忽略。
|
|
@@ -36,7 +36,7 @@ description: 在 Microi Agent、Codex 或 DeepSeek Harness 中完成 Microi吾
|
|
|
36
36
|
|
|
37
37
|
- 桌面与手机配对的本机 HTTP 监听必须避开 Fetch 标准禁止端口。系统自动分配的端口也可能不可浏览器访问;只有浏览器允许的真实监听端口才能进入配对 URL。自动命中禁止端口时关闭监听再有界重选,显式配置禁止端口须报错;权限和占用错误仍保留原错误,不改变系统动态端口范围、不绕过浏览器安全策略。同步上游时保护共同端口选择器、配对监听与对应回归。
|
|
38
38
|
|
|
39
|
-
- 1.3.8 起生产宿主为 DeepSeek 官方桌面。同步前读取内部源码根目录 `同步DeepSeek官方上游.md`、`apps/official-desktop/upstream.lock.json` 与维护交接记录;核对官方提交、归档 SHA
|
|
39
|
+
- 1.3.8 起生产宿主为 DeepSeek 官方桌面。同步前读取内部源码根目录 `同步DeepSeek官方上游.md`、`apps/official-desktop/upstream.lock.json` 与维护交接记录;核对官方提交、归档 SHA、版本与完整锁。保留原始快照、自有层和精确接缝,干净安装、回归及真实包验收后才能推进基线。旧 `同步dsh-desktop上游.md` 已删除;历史派生模块只按发行快照追溯,不得恢复退役宿主或 PPT 模式。
|
|
40
40
|
- Microi Agent 是内部仓库中的独立桌面发行物,基于 DeepSeek Harness 官方桌面源码及独立吾码差异层,内置固定 Harness、Node.js、MCP / CLI / Skills;不是需要额外 Agent Token 的 CLI 别名。历史 DataElement 派生模块及许可证仍保留。
|
|
41
41
|
- 官方 AI 登录只走吾码桌面账号窗口,在受支持的 `https://api.microi.net` / `https://api.itdos.com`、`OsClient=iTdos` 使用本人的中转 Key 和额度;它是员工业务 MCP 之外的可选计费来源。不要把密码或 AI Key 写入对话、命令行、MCP 参数或模型配置。
|
|
42
42
|
- 业务连接在「服务器连接(MCP)」中单独添加、登录;官方 AI 账号不授予业务租户权限。项目初始化和资源同步优先使用桌面「项目资源」;其余业务继续调用同源 MCP 的原工具。
|
|
@@ -62,7 +62,7 @@ description: 在 Microi Agent、Codex 或 DeepSeek Harness 中完成 Microi吾
|
|
|
62
62
|
- Windows 1.3.7 修复候选针对新版 stage 启用时 Win32=5 的单次失败:对 5/32/33 有限重试,再仅在成功新建的目标目录内做同盘文件重命名;以固定 UTF-16 日志记录迁移意图,部分失败逐项搬回,已有目标、未知文件与旧备份均不覆盖。回滚 EOF 和短记录必须停止,目录枚举句柄先关闭再删除空目录。真实 NSIS 回归覆盖短暂/持续错误 5、中途错误 5、文件冲突和未知目标;Wine 结果与 Windows 原生覆盖升级/全部文件哈希/最终程序启动分别报告。
|
|
63
63
|
- Windows 1.2.9 起本机启动探测必须使用覆盖 TCP 连接和响应头的硬超时;Harness 输出认证地址后,Node 请求失败可使用实际渲染页面的 Chromium 网络通道回退,严格限制为本次 `http://127.0.0.1:端口/`、不带凭据、不跟随重定向。记录两个通道的真实错误;只有响应正常且存在本次认证信息才可启动页面。恢复日志只能去除缓冲区之间的重叠,不能用全局 Set 删除重试中的相同超时。发布必须运行 `scripts/verify-harness-startup.mjs`,使用发布包内 Node/Harness 验证普通与安全模式、注入 Node 超时后由真实 Chromium 渲染新会话控件,以及双通道真实不响应的有界失败;本机验证不能称为客户设备已通过。
|
|
64
64
|
- 桌面平台 Worker 必须在真实安装包内验证 IPC 与 Windows DPAPI。旧保险库只有成功解密且明文为零字节时才允许迁移为空文档;损坏或其他 Windows 用户的保险库保留原文件并返回具体错误。启动初始化拒绝不能让 Node 服务退出;单元测试、安装成功与真实桌面账号/AI 员工页面联调是三个独立验收层。
|
|
65
|
-
-
|
|
65
|
+
- Microi Agent 的生产桌面使用 DeepSeek 官方源码,升级唯一入口为 `Microi.Agent/同步DeepSeek官方上游.md`。锁定官方 commit 和归档哈希,重放独立 overlay、桥接、客户端插件及云应用契约;吾码源码保护区、VS Code/CLI/MCP 与商店通道不能被上游覆盖。历史 dsh 桌面快照只作旧发行追溯和保留业务模块的来源,不再作为生产同步入口。用户「关于」可以只展示 Microi Agent、版本、吾码官网和支持入口;第三方许可证与版权声明继续在安装包的 NOTICE/LICENSE 中保留,不能因简化关于弹窗而删除法律材料。停止或退出后的任务保留历史,当前 SDK 的跨进程历史仅供查看,需新建任务引用继续。
|
|
66
66
|
|
|
67
67
|
### 默认中文输出
|
|
68
68
|
|
|
@@ -23,6 +23,12 @@ description: Microi 模块引擎与 sys_menu 配置指南。用于创建或修
|
|
|
23
23
|
通过 `microi_update_module` 的 module 对象维护同名字段,写后回读并发布模块引擎官方应用,
|
|
24
24
|
不得把新配置写入废弃 `DiyConfig`。开关不删除 MoreBtns/PageBtns/FormBtns,也不能替代后端权限。
|
|
25
25
|
|
|
26
|
+
模块【替换】中的 `[日志]/[评论]/[版本]文字替换` 对应物理字段
|
|
27
|
+
`sys_menu.DataLogTitle/DataCommentTitle/DataVersionTitle`(varchar100/Text,普通字段不设整行宽度)。
|
|
28
|
+
空白恢复当前语言默认“日志/评论/版本”,桌面页面、弹窗、抽屉及移动端使用同一标题,
|
|
29
|
+
不改变角标、内容或权限。通过 `microi_update_module` 同名字段维护并回读;先升级模块引擎应用,
|
|
30
|
+
同时同步所有共享 sys_menu 的官方包 PhysicalColumns,不写入废弃 DiyConfig 或默认租户标题种子。
|
|
31
|
+
|
|
26
32
|
多选搜索必须显示可读的选项 Label;折叠时至少保留首个标签,其余可用数量和浮层呈现。
|
|
27
33
|
不得仅因 DOM 有文字就判定回显成功,需验证窄搜索槽位中的真实宽度、90~110 密度、选项
|
|
28
34
|
Key/Label 映射、清除与查询条件一致;不能为修复显示改动实际查询 Key 或业务数据源。
|
|
@@ -215,7 +215,7 @@ Microi 项目必须支持用户或项目级形态偏好:`data-mci-shape="round
|
|
|
215
215
|
- **弹窗与抽屉边界有区别**:表单对话框采用中性细边界、柔和遮罩与模糊背景,标题顶部不加装饰色线;抽屉必须贴边且无圆角,可在顶部保留克制的 2–3px 主题色识别线。两者都使用连续的柔和表单画布和紧凑操作区;设计器双击字段弹窗必须可拖动,并继续提供控件专项配置入口。
|
|
216
216
|
- **平台 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` 只能停止动画与过渡,不得擅自反转静态毛玻璃配置。
|
|
217
217
|
- **Dialog 关闭按钮可见性**:右上关闭按钮固定使用 40×40px(移动端不低于 40px)中性灰底、细边框和 10–12px 圆角,不能只显示悬空的细线 X;亮色和暗色主题都必须保持可辨识背景。hover/focus-visible 时使用更深一级灰底、主题色图标和清晰焦点环。底部关闭/取消/保存按钮高度不低于 42px、最小宽度 96px,并保持右对齐与 12px 间距。
|
|
218
|
-
- **Tabs 统一视觉**:顶部工作区、数据列表 PageTabs、表单 Tabs 与右侧关联数据 Tabs 使用同一套清爽、独立标签视觉。横向 Tabs 禁止铺设贯穿整行的有色轨道、边框底板、下划线或其它装饰线;未选项保持透明,悬停与选中只使用克制的文字色、浅色独立表面和轻阴影。纵向 Tabs 可使用截图式中性浅色分组容器,选中项是独立浅色卡片。数字角标放在标签文本之后且不得挤压标题;过渡只用于交互,并尊重 `prefers-reduced-motion
|
|
218
|
+
- **Tabs 统一视觉**:顶部工作区、数据列表 PageTabs、表单 Tabs 与右侧关联数据 Tabs 使用同一套清爽、独立标签视觉。横向 Tabs 禁止铺设贯穿整行的有色轨道、边框底板、下划线或其它装饰线;未选项保持透明,悬停与选中只使用克制的文字色、浅色独立表面和轻阴影。纵向 Tabs 可使用截图式中性浅色分组容器,选中项是独立浅色卡片。数字角标放在标签文本之后且不得挤压标题;过渡只用于交互,并尊重 `prefers-reduced-motion`。框架 `Top/TopSide` 的一级主导航属于站点导航,使用独立短底线标识当前位置,不将该样式扩散到上述 Tabs。
|
|
219
219
|
- **表格与卡片行为完整**:桌面数据卡片采用连续白色表面、弱边界和轻阴影,操作区不得再叠加有色底板或硬分割线;表格模块门头的标题/副标题卡片与每个动态统计卡片必须彼此独立,父布局保持透明,禁止用一个大卡片或外框把标题和全部统计项包在一起。表格默认取消无意义的纵向网格,只保留浅表头与轻量横向行节奏,工具栏和分页不得层层套框。`PageBtns`、`BatchSelect`、行内/行外 V8 按钮均不可因改版丢失;需多选而当前未选中时,应先把当前记录纳入选中集再执行。
|
|
220
220
|
- **启动状态可理解、可恢复**:Vue 挂载和业务就绪是两个状态。进度到 100% 后若仍在初始化,应显示“正在连接/后端响应较慢/仍在等待”等阶段文字;明确失败时提供原因摘要与刷新重试,禁止撤掉启动层后留下空白页。
|
|
221
221
|
- **侧栏清爽但层级清晰**:压缩无效间距,保留足够点击区域、选中态、父子层级和键盘焦点;颜色、圆角、阴影必须来自主题 token。
|