Server 执行日志
Server 执行日志用于查看远程执行记录。server web 会过滤 draft run,只展示已发布版本或 latest 的运行记录。issue #79 后,日志不再是独立页面,也不再使用左侧 run 列表;它作为项目详情菜单里的“执行日志”tab 放在“项目详情”下面,并和版本、KV、环境变量等页面共享默认server/web 的 shadcn/Radix 控件语法。
日志表格
日志 tab 使用/api/workflows/{name}/runs?pageSize=20&includeDraft=false 的分页响应。draft run 在服务端分页前排除,避免最新 draft 记录占满第一页后让已发布版本记录缺失。
日志面板顶部提供紧凑筛选区;状态下拉使用 Radix Select,不再打开浏览器原生菜单:
- 按执行 ID、workflow 名称、会话 ID、target 或 resolved target 关键字过滤。
- 按全部、进行中、等待中、成功、失败、取消或超时状态过滤。
- 展示当前页范围和服务端过滤后的总数。
- 清空筛选会关闭当前 run 抽屉,避免旧 runId 继续停留在 URL 中。
- 服务端还有下一页时启用“下一页”,有 cursor 历史时启用“上一页”,不再提供“加载更多”。
title 保留完整值。最右侧操作列保留两个 icon-only 日志按钮;执行回放使用预览语义图标,不使用重新执行/重试样式图标,按钮会阻止行点击冒泡,避免“详细日志”被行级回放点击覆盖。
列表接口只返回表格需要的 run summary 字段,不携带 stdout、stderr 或完整 report。带 runId 的日志深链会先打开轻量“详细日志”抽屉并读取单条 run record;只有点击“执行回放”按钮时才请求 replay。
行级操作
表格最右侧是稳定操作列:- 第一个图标按钮打开“执行回放”右侧抽屉,并按需请求
/api/workflows/{name}/runs/{runId}/replay?messageLimit=20。 - 第二个图标按钮打开“详细日志”右侧抽屉,只读取单条 run record。
running或waiting的 run 额外显示停止按钮,调用POST /api/workflows/{name}/runs/{runId}/cancel。
右侧抽屉
执行回放抽屉展示只读 Run workspace 回放。普通 workflow 会显示 target、raw arguments、args chips、状态和 Markdown 输出;conversation workflow 会按同一个conversation_id 汇总当前 run 之前及当前 run 的输入输出,形成只读 transcript。管理端默认请求最近 20 条 replay message;服务端允许用 messageLimit 在 1 到 100 之间调整窗口大小。默认管理端 server/web 会引入 shared run-workspace-input 样式,让 replay 抽屉里的 transcript、assistant 输出 item、业务计时卡片和附件入口与公开 embed / App 保持同一套展示;workflow.createTimerNode 产生的记录从 run.report.timers 读取,success / failed / cleared 分别展示完成、失败和已清理状态,不单独新增 timer 管理页。管理端主题会在全局 CSS 桥接 shared CSS 需要的 --color-* 变量,因此回放抽屉在深色模式下继续使用管理端深色背景、边框和文字,不会回退为 shared CSS 的浅色 fallback。workflow 的最终输出如果包含 displayInput 或 display_input,conversation 回放会优先把它作为用户输入展示,适合 webhook 等原始参数很大的场景;原始 args、provider payload、完整 output item 内容和节点输入仍保留在详细日志中用于排查。(issue #47、issue #79、issue #88)
详细日志抽屉展示:
- 执行摘要:run id、target、resolved target、状态、耗时。
- 共享 Logs workspace:run 摘要、stdout、stderr、runner diagnostics 和
report.json。 report.json使用 shared 只读可搜索查看器,支持匹配定位和上一个/下一个跳转。- 日志抽屉只负责排查单条 run record;需要查看 workflow 输出形态时使用“执行回放”抽屉中的 shared Output/Conversation 回放。
运行状态
运行状态与 server storage 保持一致:runningwaitingsuccessfailedabortedtimed_out
errCode === 0 的结果映射为 succeeded,如果 workflow 返回非零 errCode,即使 executor 退出成功也会映射为失败。
移动端与深色模式
移动端仍在项目详情内打开“执行日志”tab,表格内容保持可读标签和可触达图标按钮;回放和详细日志抽屉占满可用宽度,并保留固定关闭入口。深色模式沿用同一套项目详情结构和中性色 token,状态 badge、筛选控件、行级操作与右侧抽屉都必须在深浅主题中保持可辨认。追踪
本文档首版由 issue #32 记录。日志只读回放由 issue #43 记录。日志分页、进行中筛选和一屏内滚动由 issue #45 记录。日志日期展示和执行中任务停止由 issue #74 记录。server web 极简界面重构由 issue #79 记录。默认日志行为对齐server/web/src/pages/DetailPage.tsx、server/src/routes/api.ts 和 server/src/storage.ts。