# 执行任务历史查询与 CSV 导出(2026-11-11) 已部署本机 `http://127.0.0.1:5182/tasks` →「执行任务」,使用真实 PostgreSQL 数据。 ## 使用与接口 支持关键词、操作者包含、动作、类型、状态、提交时间范围;每页 20 条,详情可打开旧任务,并保留既有核对、诊断入口。不选起始时间可查全部历史,不再截取最近 1000 条。查询固定截止时间,任务状态随平台刷新,新增任务需重新查询;导出使用已应用条件,修改草稿后不会混用。查询失败清空旧结果并禁用导出。 - `GET /api/v1/tasks`:SQL 分页,默认每页 20、最多 100 条。可选 `keyword/actor/action/kind/status/targetId/from/to/active`;关键词覆盖任务、目标、操作者、动作和结果。`%/_/反斜杠` 按普通文字匹配,时间使用含时区 RFC3339,边界包含两端。 - `active=true` 查询全部 queued/running/timeout。全局刷新只取最近 100 条与分页拉全的未结束任务,旧任务继续阻止冲突操作,避免每 5 秒下载完整历史。 - `GET /api/v1/tasks/export`:共享筛选,忽略分页,UTF-8 BOM/CRLF,10 列,时间为 UTC。成功生成记 `export_tasks` 审计;不包含 provider_ref、幂等键或原始任务参数。公式单元格加单引号。最多 10000 条,超过返回 413 并提示缩小范围;不会静默截断。 三角色均可查询和导出,未登录返回 401。列表总数和记录使用同一数据库快照,稳定排序 `created_at DESC,id DESC`。固定截止时间可避免正常追加造成翻页移动;历史时间回填和状态筛选结果变化仍可能改变后续页。没有新增历史清理或归档。 ## 验收结果 - 独立 PostgreSQL Go 全量及 vet 通过;专项覆盖 1052 条旧任务分页、旧活动任务、组合筛选、字面通配符、导出 10000/10001 条边界、权限和公式防护。 - 前端 lint、类型检查、3 项单元测试、生产构建通过。任务历史新增 4 项浏览器用例通过;原有快照、规格、批量电源和审计 26 项回归通过。 - 真实环境 51 条任务按每页 2 条查询,共 26 页;CSV 的 51 个任务标识及顺序与完整分页一致。组合筛选、active、401 和非法条件拒绝、导出审计通过。 - 真实深浅主题、1440/390px 页面、任务详情与 CSV 下载通过,无脚本错误、失败 API 或前端业务写请求。账号密码指纹、用户授权、终端身份及配置、告警规则、VM 配置和电源状态均与部署前一致,任务数仍为 51。 证据见 [真实接口核验](evidence/cloud-task-history-20261111/live-verification.json) 与 [真实浏览器核验](evidence/cloud-task-history-20261111/browser-verification.json)。独立打包以已部署 GPU 功能为基线,保留既有 GPU 配置;基线二进制 SHA-256 与部署前一致:`913056171c513393c24d15abfabcd7efd142a0d0bef3db6ae934f7ffa2cd8a8a`。 ## 回退与范围 无数据库结构变更。部署前备份 `.local/live/backups/before-task-history-20261111-145521.dump`,原镜像标签 `before-task-history-20261111-145521`。回退前先核对后续部署,再将原 API/console 镜像打回服务名,使用 `.local/task-history-review/compose.release.yml`、原环境文件、`--project-directory deploy` 执行 `up -d --no-build --no-deps api console`,不删除业务卷。 专用测试 VM、Windows 副本、存储和真实还原仍按用户要求暂缓。此项不执行 VM、磁盘、GPU 或盒子控制命令。外部归档、防篡改仍待后续。