diff --git a/docs/design/console-ia.md b/docs/design/console-ia.md index 8ba6e7c3..242d597d 100644 --- a/docs/design/console-ia.md +++ b/docs/design/console-ia.md @@ -288,3 +288,55 @@ | 账户与安全 `account` | password / totp / session / shortcuts | 改密、TOTP 开启/关闭、当前会话到期与退出、本机 Token、Agent 快捷键 | 后端没有会话列表/吊销接口,只能看当前会话;改密会注销其它会话 | 每节独立保存:全局设置类的节有"未保存"标记、保存/还原按钮,保存后 sonner 一句;实例、站点、上游类在抽屉里保存。窄屏左栏折叠为顶部下拉。 + +## 7. IA-3 已实施对照(FE-1,2026-09-28) + +依据 `docs/plan/00-first-version-plan.md` §8"IA-3 最终定稿"。定稿文字写"共 12 项",逐项清单是 14 项,按清单实施。 + +### 7.1 侧栏(`components/console/nav.ts`,5 组 14 项) + +| 组 | 项 → 路由 | 说明 | +| --- | --- | --- | +| 概览 | 首页 `/console`、任务 `/console/tasks`、Agent 会话 `/console/agent` | 待处理不进侧栏 | +| 资源 | 站点 `/console/sites`、RSS 订阅 `/console/sources` | 页面标题由站点区(FE-2)更新;"RSS 订阅"与术语表"Feed"并存,术语表待定 | +| 订阅 | 订阅 `/console/subscriptions`、规则 `/console/rules` | 偏好标签页保留路由,由规则页(FE-3)收编 | +| 整理 | 下载面板 `/console/downloads`、整理记录、文件管理、媒体概览 `/console/library` | 下载计划成为下载面板第二个页签(`/downloads/plans` 路由不变) | +| 系统 | 设置、审计 `/console/audit`、运行状态 `/console/status` | 引擎面板、定时任务、身份与元数据不再有入口 | + +- 顶栏收件箱(`components/console/inbox-bell.tsx`):铃铛 + 未决角标;下拉按问题类型分组列最近 8 条,点开进 `/console/inbox?kind=`,"查看全部"进待处理页(路由保留)。 +- 顶栏标题 `pageTitle()`:导航项名,或不在侧栏的页面名(待处理、偏好标签)。 + +### 7.2 重定向(`routes/console/redirects.ts`) + +| 旧 | 新 | +| --- | --- | +| `/console/engine[?…]` | `/console/tasks[?…]` | +| `/console/engine/:runId` | `/console/tasks?run=:runId`(任务抽屉) | +| `/console/schedules` | `/console/tasks?tab=plan` | +| `/console/tasks?tab=business` / `tab=tasks` | `/console/tasks` | +| `/console/identity`(`tab=pool`) | `/console/library?filter=unidentified` | +| `/console/identity?tab=external` / `aliases` | `/console/library?view=identities` / `view=aliases` | +| `/console/tasks/:id` | 先按任务(引擎运行)查;不是则按旧业务任务查,有引擎运行就跳过去;再不是就按下载任务跳 `/downloads/:id` | + +### 7.3 任务页(`/console/tasks`) + +- 页签:全部 / 进行中(进行中 + 排队)/ 失败 / 计划;页签带计数(`/engine/stats`)。 +- 任务流 = `GET /engine/runs` + `business`:行显示业务标题(`title`,否则类型 + 短 id,否则工作流做什么)、来源(定时 / 事件 / 手动 / Agent;API Key 算手动)、状态、开始与耗时、关联链接。 +- 筛选写进 URL:`source`、`kind`(businessKind)、`ref`(businessRefId)、`status`、`since`(1h/24h/7d/30d → `from`)、`workflow`(旧引擎链接)。来源筛选在前端对已加载记录做(后端无 triggeredBy 参数)。 +- 详情抽屉 `?run=`:业务摘要 → 时间线(创建、开始、等待、失败步骤、结束)→ 相关审计(`/audit?targetType=engine_run&targetId=`,定时任务另链 `scheduled_job`)→ 折叠的引擎步骤(原引擎面板详情:步骤尝试、信号、输入输出)。操作:未结束可取消,已结束可重跑(重跑后抽屉切到新任务)。`/console/tasks/:id` 是同内容的独立页。 +- 计划页签 = 原定时任务看板(`components/schedules/schedule-board.tsx`)。卡片"运行记录"跳任务流 `kind=schedule&ref=`;该筛选下页头给出定时任务自己的运行记录(含跳过)与回到卡片的链接;`?job=` 高亮并滚到卡片。 + +### 7.4 首页 + +正在进行(任务流进行中前 5 + 排队/下载计数)、需要我处理(计数 + 前 3 条)、媒体概览(版本目标满足率、今日产出;作品/季/资产数占位)、计划带(下一次运行的 5 项、启用/失败计数、快速开关)、最近完成/失败、缓存与保留、来源健康(站点 + 账号状态,来自 `/sites?include=accounts`,有问题的排前)、运行状态摘要(`/system/health`)。 + +### 7.5 运行状态页(`/console/status`) + +顶部横幅按 `level` 列出问题;进程表(类型、主机/pid、版本、启动、最后心跳、延迟/峰值、并发、运行中、SSE、内存);趋势(1/6/24/168 小时,事件循环延迟峰值与 SSE 连接数,recharts 无彩,多进程靠线型和图例区分);数据库、任务引擎、定时任务(失败项链到计划卡)、磁盘(阈值刻线)、挂载根。 + +### 7.6 后端缺口 + +- `/dashboard` 没有 `library{entities, seasons, assets}`,首页媒体概览三个计数显示"—"(site-center.md §10 已列)。 +- `/engine/runs` 没有 `triggeredBy` 筛选参数,来源筛选只作用于已加载的记录。 +- `/engine/runs` 的 `status` 只收单值,"进行中"页签用 running、pending 两次查询各取前 100 条合并,不分页。 +- 定时任务的运行记录(`scheduled_job_run`)没有对应引擎 run id,卡片与任务之间只能按 `business.kind=schedule` + key 关联;feeds.poll 这类只发事件的定时任务,触发的任务记在 Feed 名下。