feat(desktop): 自动化面板整体优化——页面式布局 + 运行历史 + 分组视图 + 滚动条 - #8261
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a8c09160c0
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
a8c0916 to
e6ebe87
Compare
|
作者你好,感谢这次对自动化面板的整体升级。页面式布局、分组搜索、运行历史和当前版本下的 runHistory 合并保护,整体方向很好;我在 e6ebe87 上复核后,暂时仍不建议合并,主要需要处理以下问题:
本地验证结果:Go 全量测试、Heartbeat race 测试、tsc、hooks lint 和 Vite build 通过;但完整前端测试仍因 app-chrome-tabs.test.ts 使用旧组件名失败,bundle budget 的简体中文 chunk 超预算 28 bytes,git diff --check 也报告 heartbeat-next-run.test.ts 文件尾多空行。另外,当前 head 与最新 main-v2 合并模拟在 check-bundle-budget.mjs 上存在内容冲突,尚有 9 个未解决 review thread。 建议先修复以上问题、rebase 最新 main-v2,并让完整测试和 bundle 门禁全绿后再合并。 |
将心跳任务面板从弹窗升级为页面式主视图(sidebar 入口 + mainView 状态机): - 页面式布局:automation 视图填充主内容区,聊天/面板导航自动切回 chat - 左右分栏:左栏任务列表(scope 分组、搜索、状态/范围过滤),右栏详情/编辑器,可拖拽分割(宽度持久化) - 运行历史:每次成功执行记录 runHistory(At+TopicID,最多 20 条),详情页展示并支持跳转对应对话;旧任务无历史时用 topicId 合成一条 - 数据保护:前端整表保存时按 At union 磁盘 runHistory,防止旧快照清空引擎写入的执行历史(ReplaceTasks/ReplaceConfig 双路径) - 状态同步:手动触发后详情页同步 runHistory/topicId/lastRunAt;列表开关同步详情 enabled;TaskEditor draft 跟随 - 分组视图 + 纯列表双视图切换 - 滚动条:顶部与搜索框齐平、滚动时显示/停止后淡出、颜色 35% 透明、淡出时 visibility 隐藏避免拦截点击 - 支持 cron 表达式调度 + 时间窗口 - Tooltip 增加 delay 参数;locale 预算调整;新增 heartbeat-next-run 测试
…S静态导入 - 周期任务 next-run 改用调度语义(nextCycleRunAt 镜像后端),不再转 cron - intervalToCron 对 biweekly/秒级/跨午夜窗口返回 null(无法无损表达) - 窗口结束时刻 exclusive(09:00-17:00 → 9-16) - 推荐卡片改为打开编辑器,默认 enabled=false + approvalMode=ask - heartbeat-split 硬编码 #fafafa → var(--bg-soft)(主题感知) - 编辑器状态入口 + 右侧按钮共用 toggleEnabled helper(基于保存基线) - isCronExpr 前后端加字段范围校验(拒绝 99 * * * *) - taskNextRun 双调用去重;heartbeat.css 静态导入 + css-stub-register - app-chrome-tabs 断言更新为 HeartbeatView;budget 调整 - 补周期转换守卫与周期 next-run 回归测试(14 项断言)
…ola review #7) - heartbeatConfig 加 SchemaVersion 字段(heartbeatSchemaVersion=2),写入时标记格式版本 - writeTasks 前向保护:拒绝用当前二进制整表保存覆盖更高 schemaVersion 的未来配置,避免静默降级丢 runHistory - 明确迁移边界:v2 配置旧二进制读不报错但整表保存会丢 runHistory,升级单向 - 新增 TestHeartbeatConfigSchemaVersionWritten / TestHeartbeatConfigForwardProtection
e6ebe87 to
629cb54
Compare
|
感谢逐条复核。已按 7 点意见全部处理,并 rebase 到最新 main-v2,新增提交: 1. 周期转 Cron 语义 ✅
2. 推荐卡片权限 ✅
3. 主题色 ✅
4. 暂停/启动按钮落盘草稿 ✅
5. Cron 校验与性能 ✅
6. CSS 加载 FOUC ✅
7. runHistory 跨版本兼容 ✅(本次新增)
验证项 ✅
验证结果:Go 全量 Heartbeat 测试 + race 通过;前端 tsc(含 tsconfig.test)+ bundle budget + diff --check 全绿。composer-goal-toggle 与 message-reasoning-panel 的失败在干净 main-v2 上可复现,属上游基线问题,与本 PR 无关。 |


变更摘要
将心跳任务(自动化任务)面板从弹窗升级为页面式主视图,并完成整体优化:
布局
mainView状态机,填充主内容区;打开对话/新会话/设置等导航自动切回 chat 视图visibility隐藏避免拦截左栏右缘点击运行历史(新功能)
runHistory(At + TopicID,最多 20 条),详情页倒序展示,可点击跳转对应对话调度
验证
go build+ Heartbeat 全部测试通过(含新增 runHistory 保护回归测试)tsc --noEmit(除上游基线 bridge.ts 的 SetColdResumePrune 未同步问题外无错误,该问题与本 PR 无关)Documentation-impact: none - 纯 UI/功能改动,不涉及内嵌文档
Cache-impact: none - 不触及 internal/boot、internal/tool 等 cache-sensitive 路径,仅 desktop/heartbeat.go 与前端
Cache-guard: go test ./desktop -run Heartbeat 覆盖 runHistory 合并与持久化