fix(monitor): clarify workbench read-model root causes
This commit is contained in:
@@ -1527,10 +1527,10 @@ function buildSessionInvariantFindings(control, manifest = {}) {
|
||||
const traceIds = arrayStrings(messageOrder.traceIds).slice(0, 12);
|
||||
const findingId = stringOrNull(detail.findingId) ?? "workbench-message-order-user-clustered-after-navigation";
|
||||
const severity = stringOrNull(detail.severity) ?? "amber";
|
||||
const rootCause = "workbench-message-order-projection-drops-terminal-cards-after-navigation";
|
||||
const rootCauseStatus = "confirmed-from-controlled-refresh-dom;otel-read-model-comparison-required";
|
||||
const rootCause = "session_message_role_clustered";
|
||||
const rootCauseStatus = "confirmed-from-controlled-refresh-dom;check-otel-session_messages_read-role-sequence";
|
||||
const rootCauseConfidence = "medium";
|
||||
const nextAction = "Use OTel session_messages_read/session detail for the same canarySessionId and traceIds. If the read model is interleaved but DOM is clustered, fix Workbench renderer/hydration ordering; if the read model is already clustered, fix session message projection/read-model ordering.";
|
||||
const nextAction = "Use OTel session_messages_read/session detail for the same canarySessionId and traceIds. Compare roleSequencePrefix and adjacentSameRoleCount; if the read model is already clustered, fix Workbench projection/read-model timeline ordering before changing renderer code.";
|
||||
findings.push({
|
||||
id: findingId,
|
||||
severity,
|
||||
@@ -2373,10 +2373,10 @@ function buildFindings(samples, control, network, errors, sampleMetrics, promptN
|
||||
id: "session-rail-title-fallback-root-cause",
|
||||
severity: "red",
|
||||
summary: "INV-02 root cause visible: session rail is rendering fallback Session ses_* titles, so list projection/read model or rail binding is missing stable title/preview data before DOM render",
|
||||
rootCause: "session-list-title-projection-missing-or-not-bound",
|
||||
rootCause: "session_title_fallback_from_facts",
|
||||
rootCauseStatus: "confirmed-from-dom-session-rail",
|
||||
rootCauseConfidence: "high",
|
||||
nextAction: "Check OTel session_list_read fallbackTitleCount/fallbackTitleRatio for the same run; fix session list projection/read model title/firstUserMessagePreview before changing DOM fallback text.",
|
||||
nextAction: "Check OTel session_list_read fallbackTitleCount/fallbackTitleRatio and emptyPreviewCount for the same run; fix session list projection/read model title/preview before changing DOM fallback text.",
|
||||
count: sessionRailTitleSummary.overThresholdSampleCount ?? sessionRailTitleSummary.majorityFallbackSampleCount,
|
||||
thresholdRatio: alertThresholds.sessionRailFallbackRatio,
|
||||
maxFallbackRatio: sessionRailTitleSummary.maxFallbackRatio,
|
||||
@@ -2398,7 +2398,7 @@ function buildFindings(samples, control, network, errors, sampleMetrics, promptN
|
||||
id: "trace-events-page-read-404-root-cause",
|
||||
severity: "red",
|
||||
summary: "INV-07 root cause visible: /v1/workbench/traces/:traceId/events returned HTTP 404 for a trace event page read, so the failure is in the trace-events API paging/read-model contract before DOM rendering",
|
||||
rootCause: "trace-events-api-page-read-returned-404",
|
||||
rootCause: "trace_events_paging_contract_mismatch",
|
||||
rootCauseStatus: "confirmed-from-browser-network",
|
||||
rootCauseConfidence: "high",
|
||||
nextAction: "Use OTel trace_events_read for the same trace to compare sinceSeq/afterProjectedSeq, returnedEvents, range, totalEvents, hasMore and fullTraceLoaded; fix backend paging contract or add missing instrumentation before changing renderer behavior.",
|
||||
|
||||
Reference in New Issue
Block a user