.DS_Store、forge-h5-ui/src/manifest.json、锁文件及输出文档等未提交变更;本变更不会覆盖它们。TaskFormInfo 处理同意、驳回、退回、终结、转办、必填意见和表单字段;要求签名、外部表单、仅 PC 的代码表单及不支持的动态字段配置均失败关闭,禁止跳过表单直接提交。source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-h5-ui build:h5DONE Build complete.。v20.19.0 解析为 N/A,但命令仍以当前 Node 工具链完成构建;未安装依赖、未启动服务。git diff --check 通过,无空白错误。test-spec.md 回填。AiLayoutPage 的简约导航/底栏与带文字的三项底部导航;待办补充流程分类筛选,并收紧动态表单字段类型的失败关闭规则。source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-h5-ui build:h5DONE Build complete.;同样存在 nvm N/A 警告但未阻断实际构建。git diff --check 通过;新增 pages/todo-detail.vue 使用 git diff --no-index --check 检查通过。taskId 时直达详情页,无 taskId 时切换到待办 tab;兼容消息配置中的 /pages/todo?taskId=...,不再对 tab 页调用 navigateTo。source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-h5-ui build:h5DONE Build complete.;nvm N/A 警告仍存在但不阻断构建。git diff --check 通过;重写后的 pages/todo.vue 使用 git diff --no-index --check 检查通过。/pages/todo,改用 switchTab,避免 tab 页被 navigateTo 误判为“页面未注册”。source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-h5-ui build:h5DONE Build complete.;git diff --check 通过。FLOW_TODO、业务键或 UUID;保留“查看业务”作为唯一的业务跳转入口。消息页移除大号未读统计卡,筛选改为宽触达标签与独立“全部标为已读”操作。feature-inner 里的菜单、权限、同步等技术计数,工作台改为“优先处理”两条业务行动项(待处理任务、消息提醒);底栏取消顶部短横与悬浮卡式表现,改为带安全区的三项图标/文字导航。source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-h5-ui build:h5DONE Build complete.;nvm use 仍提示 N/A 未安装,但未阻断当前 Node 工具链构建。git diff --check -- forge-h5-ui/src/components/AiTabBar.vue forge-h5-ui/src/pages/index/index.vue forge-h5-ui/src/pages/message/index.vue 通过;源码扫描未发现待办页未接入文案,也未发现消息页关联业务标识渲染。test-spec.md 回填。AiSearchBar 调整为 68rpx 高度,AiField 调整为 80rpx 高度;二者改用实体白底、清晰边框和三态焦点/错误反馈,移除模糊与弱边界效果。- 作为联系方式占位。source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-h5-ui build:h5DONE Build complete.;nvm use 仍提示 N/A 未安装,但未阻断实际构建。test-spec.md 进行页面验收。flattenMenus 与全部应用菜单仅保留 pages.json 已注册的 H5 路由;未注册的“联系方式”等后端菜单不会再显示为可点击卡片,因此不会触发“页面未注册”。AiTabBar 回退为原有浮动胶囊导航,保留三项任务导航;workbench-panel 移除辅助说明并缩短刷新按钮、图标、行高和内边距,进一步降低首屏占用。source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-h5-ui build:h5DONE Build complete.;nvm use 仍提示 N/A 未安装,但未阻断实际构建。pages.json 注册路由一致。AiListSkeleton,使用低对比度静态占位和仅加载期间的轻微透明度反馈;消息、待办、通用 AiPagingPage、转办人员和租户切换列表均接入首次查询骨架屏。AiSearchBar,将页面收敛为与消息页一致的标题、搜索、横向筛选和白底边框卡片层级;首页 priority-item 保持仅两条、84rpx 行高的紧凑工作入口。source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-h5-ui build:h5DONE Build complete.;nvm use 仍提示 N/A 未安装,但未阻断实际构建。test-spec.md 回填。priority-item 行项目,首页处理区改为两张明确的行动卡(待办、消息)。卡片只呈现可执行的数量、当前状态和对应入口,不再沿用缩小后的列表行布局。source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-h5-ui build:h5DONE Build complete.;git diff --check -- forge-h5-ui/src/pages/index/index.vue 通过。/pages/test 的“联系方式”保留在首页和全部应用中。若专属 H5 页面未编译,统一跳转到新增的 pages/app-entry 承接页,避免“页面未注册”且不隐藏正式菜单。source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-h5-ui build:h5DONE Build complete.;nvm use 提示 N/A 未安装,但未阻断实际构建。AiEmpty 改用用户提供的 src/static/images/no-data.png,去除灰色图标框;消息空状态移除无意义的刷新按钮,保留标题与筛选结果说明。source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-h5-ui build:h5DONE Build complete.;git diff --check -- forge-h5-ui/src/components/AiEmpty.vue forge-h5-ui/src/pages/message/index.vue 通过。sa-token.alone-redis.database 的显式值由 1 统一为 0。database: 1;git diff --check 通过。/pages/todo 的待办卡片,展示与 PC 一致的当前节点、申请人、流程分类、提交时间和流程名称;名称、分类、状态三项查询条件保留,流程分类改为公共 AiSelect。AiTabs 调整为小圆角胶囊样式并接入待办详情;补充发起部门、流程分类等基础信息。节点没有配置字段时,改从真实业务记录补只读字段,并展示已配置的业务明细;移除“该节点没有需要展示的业务字段”提示。source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-h5-ui build:h5DONE Build complete.;nvm use 仍提示 N/A,未阻断当前 Node 环境构建。git diff --check 通过;构建确认新增详情页模板可编译。sm 尺寸并收紧操作栏安全区内边距;紧急优先级标识由红色改为琥珀色。AiSelect 不再依赖未注册的 uni-popup,改为复用 AiPopupSheet;点击“全部流程”可打开分类列表,选择后立即更新筛选结果。source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-h5-ui build:h5DONE Build complete.;nvm use 的 N/A 提示未影响实际构建。sys_client.token_activity_timeout=-1 修改 App 进程内的 Sa-Token 全局配置;Flow 独立进程仍按自身全局活跃超时校验同一 Token,找不到 last-active 记录时返回 TOKEN_FREEZE(token 已被冻结)。这与账号封禁、Nginx 代理和 Redis database 无关。last-active 记录读取配置。JAVA_HOME=/Users/yaominliang/Library/Java/JavaVirtualMachines/ms-17.0.19/Contents/Home PATH=/Users/yaominliang/Library/Java/JavaVirtualMachines/ms-17.0.19/Contents/Home/bin:$PATH mvn -pl forge-framework/forge-plugin-parent/forge-plugin-system -am compile -DskipTestsBUILD SUCCESS。git diff --check 通过。forge-starter-auth 与 forge-plugin-system 的新构件后,需要重启 App 与 Flow 并重新登录验证。business-code 表单无条件标记为“请在 PC 端处理”,而 PC 使用 FlowBusinessForm 动态加载 PC Vue 组件。采购申请等代码表单实际已由后端 BusinessTaskFormContextVO 返回字段、记录数据和节点级读写权限,因此不应被拦截。source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-h5-ui build:h5DONE Build complete.;nvm 仍显示 N/A,未阻断当前 Node 工具链构建。scroll-view 内移至页面根部弹层,避免 H5 固定定位层被滚动容器裁剪或拦截点击;选择、遮罩和关闭按钮均由页面状态控制。taskId 请求 /ai/business/flow/task-form-context,与 PC 端一致。业务对象/代码表单直接渲染后端返回的字段、记录值与节点读写权限,不再依赖普通 TaskFormInfo 携带业务标识。/ai/business/flow/task-action;转办、退回、终结保留 Flow 接口,转办参数与 PC 端保持 taskId/userId/targetUserId/comment 一致。业务表单增加“暂存修改”。source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-h5-ui build:h5DONE Build complete.;当前 nvm 仍提示 N/A,但未阻断实际构建。git diff --check -- forge-h5-ui/src/pages/todo.vue forge-h5-ui/src/pages/todo-detail.vue 通过。/ai/business/flow/task-form-context 被 Vite 的通用 App 代理转发到 8583;该服务未引入 generator 的 BusinessFlowController,所以返回 404。Flow 服务 8081 已引入 generator,才是该接口的实际宿主。/dev-api/ai/business/flow/** -> Flow 8081,并置于通用 App 代理前。待办操作栏把“更多”调整到前位并复用次要按钮样式;转办弹层增加清晰的选择态、已选人员回显、确认按钮禁用态与紧凑成员行。source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-h5-ui build:h5DONE Build complete.;nvm 的 N/A 提示未阻断构建。git diff --check -- forge-h5-ui/vite.config.js forge-h5-ui/src/pages/todo-detail.vue 通过。/forge-h5-api/ai/business/flow/ 在通用 /forge-h5-api/ 前代理到 8081;本轮未改动远端 Nginx。AiSignaturePad 和 AiFileUpload。要求签名的节点会采集笔迹、上传 /api/file/upload 后以文件标识提交;可写附件字段同样上传并只向业务表单提交文件标识。日期时间、选择项无选项和未知可写字段均继续遵循“无法安全渲染即阻断”的原则。source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-h5-ui build:h5DONE Build complete.;shell 仍把 v20.19.0 显示为 N/A,但未阻断当前 Node 工具链完成构建。git diff --check -- forge-h5-ui/src/api/index.js forge-h5-ui/src/pages/todo.vue forge-h5-ui/src/pages/todo-detail.vue forge-h5-ui/src/components/AiFileUpload.vue forge-h5-ui/src/components/AiSignaturePad.vue code-copilot/changes/h5-mobile-workbench-refactor 通过。test-spec.md 对签名、附件、转办、已办及撤回进行回填验收。task-form-context 响应的顶层 fields 为空,字段元数据位于 formRef.fields;同时返回 代码表单Provider未注册: samplePurchaseOrder,因此 recordData 与节点过滤后的 fieldPermissions 也为空。formRef.fields / fieldCatalog 读取字段,避免“业务内容”整块空白。Provider 未注册时,字段强制只读并明确提示服务端缺少 Provider,禁止依据未过滤的通用字段元数据开放编辑或办理。samplePurchaseOrder 的 BusinessCodeFormProvider Bean,才能返回真实单据数据和节点级字段权限;这属于服务装配/部署修复,H5 不应伪造该数据。project Name 而不是配置中的 项目名称。这表示页面退回了变量键名自动拆词,而没有命中动态表单字段架构。fields、fieldCatalog、formRef.fields、form.fields 与 rule;动态表单优先从 formJson、再从任务 fields/formRef/fieldCatalog 取架构。因此展示优先使用字段的 label,例如 项目名称。137 终止影响,未能在本次微调后重跑构建;上一轮 H5 构建已通过,需在可用 Node 环境重跑 pnpm --dir forge-h5-ui build:h5。field-list 将 recordData/variables 的原始键名自动拆词后展示,如 project Name、warehouse Id,并暴露业务主键和以分存储的金额字段。这属于开发排障兜底,不是用户界面。message。data.message、response.data.message、error.data.message 等错误结构,并在审批、签收、转办人员加载、暂存等失败路径显示 toast。数据访问异常,请联系管理员 是后端已经归一化后的 500 文案;H5 现在会如实展示,具体 SQL/Mapper 根因仍需要从对应 Flow 服务日志定位。