feat(roundtable): 历史卡片显示所用业务链(自由模式) + 诊断只收报错日志
- 历史「分析记录」卡片/侧边栏列表:把「第X步」改为本次会商所用业务链名, 无链条显示「自由模式」。后端 list 轻量 meta 从 step2 正则抽取 chain_title (不整体解析大块 JSON),个人草稿 + task 草稿两个 store 都覆盖。 - 会商诊断改为只收集报错日志:record_diagnostic 写库前丢弃 level==info 运行日志(begin/consensus/gather/job_started),只留 warning/error。 单点收口覆盖前台/后台/recorder 全部写路径;诊断页标题改「会商报错日志」。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
e28277b21b
commit
7748661963
11 files changed
+85
-13
No files matched your search
@@ -71,9 +71,10 @@ function StatusBadge({ draft }: { draft: DraftMeta }) {
|
||||
if (draft.status === "error") {
|
||||
return <span className="text-[10px] font-medium text-rose-500">出错</span>;
|
||||
}
|
||||
// 非进行中/待澄清/出错时,展示本次会商所用业务链(无链条 → 自由模式)。
|
||||
return (
|
||||
<span className="text-[10px] font-medium text-muted-foreground">
|
||||
第 {draft.furthestStep} 步
|
||||
{draft.chainTitle || "自由模式"}
|
||||
</span>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -225,9 +225,9 @@ export default function RoundtableDiagnosticsPage() {
|
||||
返回
|
||||
</Button>
|
||||
<div>
|
||||
<h1 className="text-base font-semibold text-slate-800 dark:text-foreground">会商诊断日志</h1>
|
||||
<h1 className="text-base font-semibold text-slate-800 dark:text-foreground">会商报错日志</h1>
|
||||
<p className="text-xs text-slate-400 dark:text-muted-foreground">
|
||||
多智能体会商全流程报错与关键事件(含后台挂起卡死、超时、产物缺失等)
|
||||
多智能体会商全流程报错日志(席位失败 / 空交付 / 超时 / 模型容错 / 产物缺失 / 崩溃等;运行进度类 info 不再收集)
|
||||
</p>
|
||||
</div>
|
||||
<Button
|
||||
|
||||
@@ -188,6 +188,11 @@ export interface DraftMeta {
|
||||
/** Auto-derived task summary (objective → first user message → timestamp). */
|
||||
title: string;
|
||||
furthestStep: 1 | 2 | 3;
|
||||
/**
|
||||
* 本次会商所用业务链名(历史卡片展示)。无业务链(自由/recommend 模式)→ null/undefined,
|
||||
* 由前端展示为「自由模式」。后端从 step2 快照里抽取(见 roundtable_drafts/sql.py)。
|
||||
*/
|
||||
chainTitle?: string | null;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
/**
|
||||
@@ -250,6 +255,7 @@ export interface ServerDraftMeta {
|
||||
task_id?: string | null;
|
||||
title: string;
|
||||
furthest_step: number;
|
||||
chain_title?: string | null;
|
||||
created_at: string | null;
|
||||
updated_at: string | null;
|
||||
status?: string | null;
|
||||
@@ -269,6 +275,7 @@ export function toMeta(s: ServerDraftMeta): DraftMeta {
|
||||
taskId: s.task_id ?? null,
|
||||
title: s.title ?? "",
|
||||
furthestStep: step,
|
||||
chainTitle: s.chain_title ?? null,
|
||||
createdAt: s.created_at ?? "",
|
||||
updatedAt: s.updated_at ?? "",
|
||||
status: (s.status as JobStatus | null | undefined) ?? null,
|
||||
|
||||
@@ -3168,13 +3168,16 @@ function RoundtableEntryRail({
|
||||
{completed ? "已完成" : "未完成"}
|
||||
</span>
|
||||
</div>
|
||||
{/* 下:时间(左下) + 步骤(右下) */}
|
||||
<div className="mt-2 flex items-center justify-between">
|
||||
<span className="font-mono text-[10px] text-neutral-400">
|
||||
{/* 下:时间(左下) + 业务链(右下,无链条显示「自由模式」) */}
|
||||
<div className="mt-2 flex items-center justify-between gap-2">
|
||||
<span className="font-mono text-[10px] text-neutral-400 shrink-0">
|
||||
{formatTime(rec.updatedAt)}
|
||||
</span>
|
||||
<span className="rounded-[5px] bg-neutral-100 px-1.5 py-0.5 text-[10px] font-medium text-neutral-500">
|
||||
第 {rec.furthestStep} 步
|
||||
<span
|
||||
className="max-w-[60%] truncate rounded-[5px] bg-neutral-100 px-1.5 py-0.5 text-[10px] font-medium text-neutral-500"
|
||||
title={rec.chainTitle || "自由模式"}
|
||||
>
|
||||
{rec.chainTitle || "自由模式"}
|
||||
</span>
|
||||
</div>
|
||||
</button>
|
||||
|
||||
Reference in new issue
Block a user