fix: improve workbench triad analysis drilldown
This commit is contained in:
@@ -2219,6 +2219,9 @@ function renderMarkdown(report) {
|
||||
const loadingSummary = loading.summary || {};
|
||||
const sessionRailTitles = report.sampleMetrics?.sessionRailTitles || {};
|
||||
const sessionRailTitleSummary = sessionRailTitles.summary || {};
|
||||
const workbenchTurnStateTriad = report.sampleMetrics?.workbenchTurnStateTriad || {};
|
||||
const workbenchTurnStateTriadSummary = workbenchTurnStateTriad.summary || {};
|
||||
const workbenchTurnStateTriadDrilldown = workbenchTurnStateTriad.drilldown || {};
|
||||
const codeAgentCardTiming = report.sampleMetrics?.codeAgentCardTiming || {};
|
||||
const codeAgentCardTimingSummary = codeAgentCardTiming.summary || {};
|
||||
const roundCompletion = codeAgentCardTiming.roundCompletion || {};
|
||||
@@ -2312,6 +2315,18 @@ function renderMarkdown(report) {
|
||||
const sessionRailTitleExampleLines = Array.isArray(sessionRailTitles.examples) && sessionRailTitles.examples.length > 0
|
||||
? sessionRailTitles.examples.slice(0, 80).map((item) => "- firstSeq=" + (item.firstSeq ?? "-") + " role=" + (item.pageRole || "-") + " active=" + String(item.active === true) + " sessionPrefix=" + (item.sessionIdPrefix || "-") + " titleHash=" + (item.titleHash || "-") + " preview=" + escapeMarkdownCell(item.titlePreview || "")).join("\n")
|
||||
: "- 无 fallback 标题示例。";
|
||||
const workbenchTurnStateTriadGroupLines = Array.isArray(workbenchTurnStateTriadDrilldown.groups) && workbenchTurnStateTriadDrilldown.groups.length > 0
|
||||
? workbenchTurnStateTriadDrilldown.groups.slice(0, 80).map((item) => "- mismatch=" + (item.mismatchKind || "-") + " tuple=" + (item.statusTuple || "-") + " traceId=" + (item.traceId || "-") + " session=" + (item.sessionIdPrefix || "-") + " role=" + (item.pageRole || "-") + " count=" + (item.count ?? 0) + " spanMs=" + (item.observedSpanMs ?? 0) + " seq=" + (item.firstSeq ?? "-") + ".." + (item.lastSeq ?? "-") + " commands=" + ((Array.isArray(item.commandIds) ? item.commandIds : []).slice(0, 4).join(",") || "-") + " railRaw=" + ((Array.isArray(item.rawRailStatuses) ? item.rawRailStatuses : []).slice(0, 4).join(",") || "-") + " cardRaw=" + ((Array.isArray(item.rawCardStatuses) ? item.rawCardStatuses : []).slice(0, 4).join(",") || "-") + " finalBytes=" + ((Array.isArray(item.finalResponseTextBytes) ? item.finalResponseTextBytes : []).slice(0, 4).join(",") || "-")).join("\n")
|
||||
: "- 无三态不一致聚合分组。";
|
||||
const workbenchTurnStateTriadOtelLines = Array.isArray(workbenchTurnStateTriadDrilldown.otelDrilldown?.commands) && workbenchTurnStateTriadDrilldown.otelDrilldown.commands.length > 0
|
||||
? workbenchTurnStateTriadDrilldown.otelDrilldown.commands.slice(0, 16).map((item) => "- command=" + String(item).replaceAll(String.fromCharCode(96), "'")).join("\n")
|
||||
: "- 无可用 traceId 生成 OTel drill-down 命令。";
|
||||
const workbenchTurnStateTriadStaticLines = Array.isArray(workbenchTurnStateTriadDrilldown.staticSourceHints) && workbenchTurnStateTriadDrilldown.staticSourceHints.length > 0
|
||||
? workbenchTurnStateTriadDrilldown.staticSourceHints.map((item) => "- " + (item.repo || "-") + " " + (item.path || "-") + ": " + escapeMarkdownCell(item.reason || "")).join("\n")
|
||||
: "- 无静态源码候选。";
|
||||
const workbenchTurnStateTriadUnitLines = Array.isArray(workbenchTurnStateTriadDrilldown.unitTestReproHints) && workbenchTurnStateTriadDrilldown.unitTestReproHints.length > 0
|
||||
? workbenchTurnStateTriadDrilldown.unitTestReproHints.map((item) => "- " + escapeMarkdownCell(item)).join("\n")
|
||||
: "- 无单元测试复现提示。";
|
||||
const provenanceLines = Array.isArray(report.pageProvenance?.segments) && report.pageProvenance.segments.length > 0
|
||||
? report.pageProvenance.segments.slice(0, 40).map((item) => "- fingerprint=" + (item.assetFingerprint || "-") + " samples=" + item.sampleCount + " seq=" + (item.firstSeq ?? "-") + ".." + (item.lastSeq ?? "-") + " ts=" + (item.firstAt || "-") + ".." + (item.lastAt || "-") + " scripts=" + (item.scriptCount ?? "-") + " styles=" + (item.stylesheetCount ?? "-") + " urlPaths=" + (Array.isArray(item.urlPaths) ? item.urlPaths.slice(0, 4).join(",") : "-")).join("\n")
|
||||
: "- 无页面 provenance segment。";
|
||||
@@ -2471,6 +2486,19 @@ function renderMarkdown(report) {
|
||||
+ "- policy: 可见 session 列表中 'Session ses_...' fallback 标题超过一半必须报警;修复应让上游 session list projection 直接携带名称,不能靠点击详情后下游修补。\n\n"
|
||||
+ "#### Session rail fallback samples\n\n" + sessionRailTitleSampleLines + "\n\n"
|
||||
+ "#### Session rail fallback examples\n\n" + sessionRailTitleExampleLines + "\n\n"
|
||||
+ "### Workbench turn-state triad\n\n"
|
||||
+ "- rowCount: " + (workbenchTurnStateTriadSummary.rowCount ?? 0) + "\n"
|
||||
+ "- invalidRowCount: " + (workbenchTurnStateTriadSummary.invalidRowCount ?? 0) + "\n"
|
||||
+ "- invalidFullTriadCount: " + (workbenchTurnStateTriadSummary.invalidFullTriadCount ?? 0) + "\n"
|
||||
+ "- cardFinalResponseMismatchCount: " + (workbenchTurnStateTriadSummary.cardFinalResponseMismatchCount ?? 0) + "\n"
|
||||
+ "- invalidGroupCount: " + (workbenchTurnStateTriadSummary.invalidGroupCount ?? workbenchTurnStateTriadDrilldown.summary?.groupCount ?? 0) + "\n"
|
||||
+ "- invalidTraceIdCount: " + (workbenchTurnStateTriadSummary.invalidTraceIdCount ?? workbenchTurnStateTriadDrilldown.summary?.traceIds?.length ?? 0) + "\n"
|
||||
+ "- invalidMaxObservedSpanMs: " + (workbenchTurnStateTriadSummary.invalidMaxObservedSpanMs ?? workbenchTurnStateTriadDrilldown.summary?.maxObservedSpanMs ?? 0) + "\n"
|
||||
+ "- allowedTuples: completed/completed/final-present 或 running/running/final-absent;其他组合都应按 projection seal/read-model 合同处理,禁止 UI fallback repair。\n\n"
|
||||
+ "#### Triad mismatch groups\n\n" + workbenchTurnStateTriadGroupLines + "\n\n"
|
||||
+ "#### Triad OTel drill-down\n\n" + workbenchTurnStateTriadOtelLines + "\n\n"
|
||||
+ "#### Triad static source hints\n\n" + workbenchTurnStateTriadStaticLines + "\n\n"
|
||||
+ "#### Triad unit-test repro hints\n\n" + workbenchTurnStateTriadUnitLines + "\n\n"
|
||||
+ "### Page provenance\n\n"
|
||||
+ "- segmentCount: " + (report.pageProvenance?.summary?.segmentCount ?? 0) + "\n"
|
||||
+ "- controlSegmentCount: " + (report.pageProvenance?.summary?.controlSegmentCount ?? 0) + "\n\n"
|
||||
|
||||
Reference in New Issue
Block a user