console: 任务列表行显示首字、总耗时、token 栏位

任务列表每一行新增三项(筛选、搜索、选中高亮、状态点不动):
- 首字:行前小方块,prompt 第一个非空白字符(按码点取),
  无 prompt 时用任务 id 首字符兜底;原 prompt 文案不动。
- 总耗时:只用列表已回时间戳算。终态用 finished_at -
  started_at(与服务端 avg_duration_seconds 同口径);running
  显示“进行中 + 已用时长”,随列表刷新更新;无 started_at
  时用 created_at 兜底(含排队,title 注明口径)。格式:
  3分12秒、1小时5分、1天1小时。
- token:栏位已接好,total_tokens 优先,actual +
  estimated 分项加总次之;但列表接口 _task_to_dict 目前
  不回任何 token 字段,单任务真数只在 GET /tasks/{id}/cost
  里,所以当前显示“token —”,不编造、不逐个调 /cost
  拖慢列表。服务端在列表里补 total_tokens 后本行自动出真数。

诚实边界:worker 每次认领重写 started_at,多轮续跑任务
的耗时是末次认领时长,不是历次之和;严格累计需服务端
保留首次 started_at 或累加各轮时长。token 的服务端缺口:
需在 _task_to_dict / 列表查询里按 task_id 聚合 cost_records
的 total_tokens,不需要新端点。
构建:npm run build(tsc + vite singlefile)0 退出,
dist/index.html 原样拷到 cloud/console.html,产物含
issue-first、耗时、token —,未动其它确认框。
This commit is contained in:
host committed 2026-10-29 18:24:07 +08:00
1 parent e5bf361c6d
commit 65a875ada9
4 files changed
+132 -25

No files matched your search

+1
View File
@@ -132,6 +132,7 @@ pre{background:var(--inset-bg);color:var(--text);border:1px solid var(--line);bo
.issue-state.st-completed,.issue-state.st-merged{background:var(--done)}
.issue-state.st-failed,.issue-state.st-merge-failed{background:var(--danger)}
.issue-state.st-interrupted{background:var(--attention)}
.issue-first{flex:none;width:22px;height:22px;margin-top:1px;border:1px solid var(--line);border-radius:6px;background:var(--subtle-bg);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--muted);overflow:hidden}
.issue-title{font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.issue-meta{font-size:12px;color:var(--muted);line-height:1.5}
/* Conversation as a GitHub timeline / comments: white comment boxes