diff --git a/tests/test_static_vendor.py b/tests/test_static_vendor.py index 57e006a..181dc45 100644 --- a/tests/test_static_vendor.py +++ b/tests/test_static_vendor.py @@ -46,6 +46,9 @@ class StaticVendorTests(unittest.TestCase): self.assertIn("深入分析", source) self.assertIn("查看结果", source) self.assertIn("Job ID", source) + self.assertIn("工程关系:${escapeHtml(workspaceRelation)}", source) + self.assertIn("续接自 Job ${sourceJobId.slice(0, 8)}", source) + self.assertIn("
来源 Job
", source) self.assertIn("refreshCurrentTaskAfterSoftwareJob(job.task_id)", source) self.assertIn("job.execution_runtime", source) self.assertIn("执行版本未记录", source) diff --git a/web/static/js/software_jobs.js b/web/static/js/software_jobs.js index d115bdb..4e4b2bf 100644 --- a/web/static/js/software_jobs.js +++ b/web/static/js/software_jobs.js @@ -261,6 +261,10 @@ function jobCard(job) { const formats = (summary.formats || []).filter(Boolean).join("、"); const elapsed = elapsedText(job); const shortId = String(job.job_id || "").slice(0, 8); + const sourceJobId = String(job.source_job_id || ""); + const workspaceRelation = sourceJobId + ? `续接自 Job ${sourceJobId.slice(0, 8)}` + : (job.workspace_id ? "新建工程" : "独立任务"); return `
${escapeHtml(summary.display_name || job.capability)}
${statusIcon(job.status)}${escapeHtml(statusLabel[job.status] || job.status)}
@@ -269,12 +273,14 @@ function jobCard(job) { ${active ? `
` : ""}
${inputNames ? `输入:${escapeHtml(inputNames)}` : ""} + 工程关系:${escapeHtml(workspaceRelation)} ${job.status === "succeeded" ? `${job.workspace_id ? `预览:${previews.length} 个 · 工程保存在节点` : `输出:${artifacts.length} 个文件${formats ? ` · ${escapeHtml(formats)}` : ""}`}` : ""} 完成方式:${escapeHtml(followupLabel(job))} ${active ? `创建于 ${escapeHtml(fmtDate(job.created_at))}` : `${elapsed ? `耗时 ${escapeHtml(elapsed)} · ` : ""}${job.terminal_at ? `完成于 ${escapeHtml(fmtDate(job.terminal_at))}` : `创建于 ${escapeHtml(fmtDate(job.created_at))}`}`}
任务详情
Job ID
${escapeHtml(job.job_id)}
+
来源 Job
${sourceJobId ? `${escapeHtml(sourceJobId)}` : "—(新建工程)"}
Capability
${escapeHtml(job.capability)}
${job.workspace_id ? "Workspace ID" : "输出目录"}
${escapeHtml(job.workspace_id || job.output_dir || "—")}
执行版本
${escapeHtml(jobRuntimeText(job))}