status: complete
定时任务运维日志监控 进入 apply。JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home。默认 JDK 首次执行出现“无效的目标发行版 17”,固定 Java 17 后通过。JobObservabilityMigrationContractTest、JobObservabilityApiContractTest、JobObservabilityManagerTest、SysJobLogServiceImplTest、JobExecutionLifecycleServiceTest 和 JobMapperXmlContractTest:15/15 通过。mvn -Penable-tests -pl forge-framework/forge-plugin-parent/forge-plugin-job -am test:94/94 通过。mvn -pl forge-admin-server -am package -DskipTests:Admin Reactor 42/42,构建通过。xmllint --noout forge-framework/forge-plugin-parent/forge-plugin-job/src/main/resources/mapper/SysJobConfigMapper.xml forge-framework/forge-plugin-parent/forge-plugin-job/src/main/resources/mapper/SysJobLogMapper.xml:通过。rg -n '\$\{[^}]+\}' db/migration:无输出,Flyway 脚本不存在未处理 placeholder。pnpm exec vitest run src/views/system/job-config/__tests__/job-config-form.test.js src/views/system/__tests__/job-log-query.test.js:16/16 通过。NODE_OPTIONS=--max-old-space-size=8192 pnpm build:生产构建通过,耗时约 1 分 29 秒。UserSelectModal 组件命名冲突、部分动态/静态导入重叠、既有 CSS // 注释;后端保留既有 deprecated/unchecked 编译提示。EMFILE: too many open files, watch 无法启动;改用已构建产物执行 vite preview --host 127.0.0.1 --port 4173。curl -I http://127.0.0.1:4173/forge:返回 200。rg -n '^(<<<<<<<|=======|>>>>>>>)':无输出。git diff --check:通过。job-log-list.vue 的概览、筛选、表格与详情层级;外层日志弹窗从 1400px 收敛到 1120px,并移除标题中的重复任务名。resolveJobLogStartedAt,列表开始时间优先使用 startTime,缺失时依次回退 triggerTime 和 scheduledFireTime。pnpm exec vitest run src/views/system/__tests__/job-log-query.test.js:1 failed / 4 passed,失败原因为 resolveJobLogStartedAt is not a function。1/1 文件、5/5 测试通过。v20.19.0 下执行目标 ESLint:job-config.vue、job-log-list.vue、job-log-query.js、job-log-query.test.js 无输出、退出码 0。NODE_OPTIONS=--max-old-space-size=8192 pnpm build:8725 个模块完成转换,job-log-list 和 job-config 产物生成,构建用时约 1 分 36 秒。UserSelectModal 命名冲突、动态/静态导入、CSS // 注释和大包体提示,均不阻断本轮结果。git diff --check 通过;目标源码与变更文档尾随空白扫描无输出。webapp-testing 流程先确认本机已有 5173/8580 监听,再尝试使用 Python Playwright 启动无头 Chromium。