fix: 完善既有会话刷新证据合同
This commit is contained in:
@@ -176,6 +176,14 @@ function renderWebObserveStatusTable(value: Record<string, unknown>): string {
|
||||
]]),
|
||||
"",
|
||||
] : []),
|
||||
...(exactCommand.type === "validateExistingSessionRefresh" && exactReplayEvidence !== null ? [
|
||||
...renderExistingSessionRefreshEvidence(
|
||||
exactReplayEvidence,
|
||||
exactResult?.reportSha256 ?? exactErrorDetails?.reportSha256,
|
||||
record(exactResult?.screenshot ?? exactErrorDetails?.screenshot)?.sha256,
|
||||
),
|
||||
"",
|
||||
] : []),
|
||||
...(exactCommand.type === "validateWorkbenchKafkaDebugReplay" && exactReplayEvidence !== null ? [
|
||||
...renderWorkbenchKafkaDebugReplayEvidence(
|
||||
exactReplayEvidence,
|
||||
@@ -236,6 +244,69 @@ function renderWebObserveStatusTable(value: Record<string, unknown>): string {
|
||||
return lines.join("\n");
|
||||
}
|
||||
|
||||
function renderExistingSessionRefreshEvidence(
|
||||
evidence: Record<string, unknown>,
|
||||
reportSha: unknown,
|
||||
screenshotSha: unknown,
|
||||
): string[] {
|
||||
const before = record(evidence.before);
|
||||
const after = record(evidence.after);
|
||||
const replay = record(evidence.refreshReplay);
|
||||
const counts = record(replay?.counts);
|
||||
const product = record(evidence.productSse);
|
||||
const failure = nullableRecord(evidence.failure);
|
||||
const traceIds = Array.isArray(evidence.traceIds) ? evidence.traceIds.slice(0, 4).join(",") : "";
|
||||
const partitions = Array.isArray(replay?.topicPartitions) ? replay.topicPartitions.slice(0, 8).join(",") : "";
|
||||
const barrier = Array.isArray(replay?.barrier)
|
||||
? replay.barrier.slice(0, 8).map((item) => {
|
||||
const row = record(item);
|
||||
return `${webObserveText(row.partition)}:${webObserveText(row.endOffset)}`;
|
||||
}).join(",")
|
||||
: "";
|
||||
return [
|
||||
"Workbench 既有 Session 刷新:",
|
||||
webObserveTable(["SESSION", "TRACE_IDS", "PHASE", "CODE", "MSG_BEFORE", "MSG_AFTER", "SOURCES", "OPEN", "CONNECTED", "BUSINESS", "FAILURES", "FORBIDDEN", "REPORT_SHA", "SCREENSHOT_SHA"], [[
|
||||
webObserveShort(webObserveText(evidence.sessionId), 32),
|
||||
webObserveShort(webObserveText(traceIds), 40),
|
||||
evidence.phase,
|
||||
evidence.code,
|
||||
before?.messageCount,
|
||||
after?.messageCount,
|
||||
product?.browserSourceCount,
|
||||
product?.openCount,
|
||||
product?.connectedEventCount,
|
||||
product?.businessEventCount,
|
||||
product?.typedFailureCount,
|
||||
evidence.forbiddenRequestCount,
|
||||
webObserveShort(webObserveText(reportSha), 32),
|
||||
webObserveShort(webObserveText(screenshotSha), 32),
|
||||
]]),
|
||||
"Kafka refresh handoff:",
|
||||
webObserveTable(["TOPIC", "PARTITIONS", "BARRIER", "MATCHED", "REPLAYED", "BUFFERED", "BUFFERED_DELIVERED", "LIVE_DELIVERED", "DEDUPLICATED", "LIVE"], [[
|
||||
webObserveShort(webObserveText(replay?.topic), 32),
|
||||
webObserveShort(webObserveText(partitions), 24),
|
||||
webObserveShort(webObserveText(barrier), 56),
|
||||
counts?.matched,
|
||||
counts?.replayed,
|
||||
counts?.buffered,
|
||||
counts?.bufferedDelivered,
|
||||
counts?.liveDelivered,
|
||||
counts?.deduplicated,
|
||||
product?.livePhase,
|
||||
]]),
|
||||
...(failure !== null ? [
|
||||
"Typed failure:",
|
||||
webObserveTable(["PHASE", "CODE", "STREAM_PHASE", "STREAM_CODE", "MESSAGE"], [[
|
||||
failure.phase,
|
||||
failure.code,
|
||||
failure.streamPhase,
|
||||
failure.streamCode,
|
||||
webObserveShort(webObserveText(failure.message), 96),
|
||||
]]),
|
||||
] : []),
|
||||
];
|
||||
}
|
||||
|
||||
function renderWorkbenchKafkaDebugReplayEvidence(
|
||||
evidence: Record<string, unknown>,
|
||||
reportSha: unknown,
|
||||
@@ -391,6 +462,14 @@ function renderWebObserveCommandTable(value: Record<string, unknown>): string {
|
||||
replayScreenshot?.sha256 ?? resultScreenshot?.sha256,
|
||||
),
|
||||
] : []),
|
||||
...(observerCommand?.type === "validateExistingSessionRefresh" && replayEvidence !== null ? [
|
||||
"",
|
||||
...renderExistingSessionRefreshEvidence(
|
||||
replayEvidence,
|
||||
result?.reportSha256 ?? details?.reportSha256,
|
||||
replayScreenshot?.sha256 ?? resultScreenshot?.sha256,
|
||||
),
|
||||
] : []),
|
||||
...(observerCommand?.type === "validateWorkbenchTraceReadability" && replayEvidence !== null ? [
|
||||
"",
|
||||
...renderWorkbenchTraceReadabilityEvidence(
|
||||
|
||||
Reference in New Issue
Block a user