fix: scope web-probe turn timing by page (#676)
Co-authored-by: Codex <codex@noreply.local>
This commit is contained in:
@@ -3241,7 +3241,9 @@ function buildTurnTimingTable(samples, timeline) {
|
|||||||
lastPromptIndex: metric.promptIndex ?? null,
|
lastPromptIndex: metric.promptIndex ?? null,
|
||||||
traceId: metric.traceId ?? null,
|
traceId: metric.traceId ?? null,
|
||||||
messageId: metric.messageId ?? null,
|
messageId: metric.messageId ?? null,
|
||||||
domIndex: metric.domIndex ?? null
|
domIndex: metric.domIndex ?? null,
|
||||||
|
pageRole: metric.pageRole ?? sample.pageRole ?? null,
|
||||||
|
pageId: metric.pageId ?? sample.pageId ?? null
|
||||||
};
|
};
|
||||||
registry.set(metric.key, column);
|
registry.set(metric.key, column);
|
||||||
columns.push(column);
|
columns.push(column);
|
||||||
@@ -3258,6 +3260,9 @@ function buildTurnTimingTable(samples, timeline) {
|
|||||||
status: metric.status ?? null,
|
status: metric.status ?? null,
|
||||||
promptIndex: metric.promptIndex ?? null,
|
promptIndex: metric.promptIndex ?? null,
|
||||||
source: metric.source,
|
source: metric.source,
|
||||||
|
pageRole: metric.pageRole ?? sample.pageRole ?? null,
|
||||||
|
pageId: metric.pageId ?? sample.pageId ?? null,
|
||||||
|
sampleGroupSeq: sample.sampleGroupSeq ?? null,
|
||||||
traceId: metric.traceId ?? null,
|
traceId: metric.traceId ?? null,
|
||||||
messageId: metric.messageId ?? null,
|
messageId: metric.messageId ?? null,
|
||||||
textHash: metric.textHash ?? null
|
textHash: metric.textHash ?? null
|
||||||
@@ -3266,6 +3271,9 @@ function buildTurnTimingTable(samples, timeline) {
|
|||||||
rows.push({
|
rows.push({
|
||||||
ts: sample.ts ?? null,
|
ts: sample.ts ?? null,
|
||||||
seq: sample.seq ?? null,
|
seq: sample.seq ?? null,
|
||||||
|
sampleGroupSeq: sample.sampleGroupSeq ?? null,
|
||||||
|
pageRole: sample.pageRole ?? null,
|
||||||
|
pageId: sample.pageId ?? null,
|
||||||
promptIndex: timelineItem.promptIndex ?? 0,
|
promptIndex: timelineItem.promptIndex ?? 0,
|
||||||
routeSessionId: sample.routeSessionId ?? null,
|
routeSessionId: sample.routeSessionId ?? null,
|
||||||
activeSessionId: sample.activeSessionId ?? null,
|
activeSessionId: sample.activeSessionId ?? null,
|
||||||
@@ -3322,6 +3330,8 @@ function detectTurnTimingNonMonotonic(columns, rows) {
|
|||||||
messageId: cell.messageId ?? column.messageId ?? null,
|
messageId: cell.messageId ?? column.messageId ?? null,
|
||||||
promptIndex: cell.promptIndex ?? row.promptIndex ?? null,
|
promptIndex: cell.promptIndex ?? row.promptIndex ?? null,
|
||||||
source: cell.source ?? column.source ?? null,
|
source: cell.source ?? column.source ?? null,
|
||||||
|
pageRole: cell.pageRole ?? column.pageRole ?? null,
|
||||||
|
pageId: cell.pageId ?? column.pageId ?? null,
|
||||||
valuesRedacted: true
|
valuesRedacted: true
|
||||||
};
|
};
|
||||||
anomalies.push(event);
|
anomalies.push(event);
|
||||||
@@ -3352,6 +3362,8 @@ function detectTurnTimingNonMonotonic(columns, rows) {
|
|||||||
messageId: cell.messageId ?? column.messageId ?? null,
|
messageId: cell.messageId ?? column.messageId ?? null,
|
||||||
promptIndex: cell.promptIndex ?? row.promptIndex ?? null,
|
promptIndex: cell.promptIndex ?? row.promptIndex ?? null,
|
||||||
source: cell.source ?? column.source ?? null,
|
source: cell.source ?? column.source ?? null,
|
||||||
|
pageRole: cell.pageRole ?? column.pageRole ?? null,
|
||||||
|
pageId: cell.pageId ?? column.pageId ?? null,
|
||||||
valuesRedacted: true
|
valuesRedacted: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -3377,6 +3389,8 @@ function detectTurnTimingNonMonotonic(columns, rows) {
|
|||||||
messageId: cell.messageId ?? column.messageId ?? null,
|
messageId: cell.messageId ?? column.messageId ?? null,
|
||||||
promptIndex: cell.promptIndex ?? row.promptIndex ?? null,
|
promptIndex: cell.promptIndex ?? row.promptIndex ?? null,
|
||||||
source: cell.source ?? column.source ?? null,
|
source: cell.source ?? column.source ?? null,
|
||||||
|
pageRole: cell.pageRole ?? column.pageRole ?? null,
|
||||||
|
pageId: cell.pageId ?? column.pageId ?? null,
|
||||||
valuesRedacted: true
|
valuesRedacted: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -3408,6 +3422,8 @@ function detectTurnTimingNonMonotonic(columns, rows) {
|
|||||||
messageId: cell.messageId ?? column.messageId ?? null,
|
messageId: cell.messageId ?? column.messageId ?? null,
|
||||||
promptIndex: cell.promptIndex ?? row.promptIndex ?? null,
|
promptIndex: cell.promptIndex ?? row.promptIndex ?? null,
|
||||||
source: cell.source ?? column.source ?? null,
|
source: cell.source ?? column.source ?? null,
|
||||||
|
pageRole: cell.pageRole ?? column.pageRole ?? null,
|
||||||
|
pageId: cell.pageId ?? column.pageId ?? null,
|
||||||
valuesRedacted: true
|
valuesRedacted: true
|
||||||
});
|
});
|
||||||
if (increase < 0) {
|
if (increase < 0) {
|
||||||
@@ -3428,6 +3444,8 @@ function detectTurnTimingNonMonotonic(columns, rows) {
|
|||||||
messageId: cell.messageId ?? column.messageId ?? null,
|
messageId: cell.messageId ?? column.messageId ?? null,
|
||||||
promptIndex: cell.promptIndex ?? row.promptIndex ?? null,
|
promptIndex: cell.promptIndex ?? row.promptIndex ?? null,
|
||||||
source: cell.source ?? column.source ?? null,
|
source: cell.source ?? column.source ?? null,
|
||||||
|
pageRole: cell.pageRole ?? column.pageRole ?? null,
|
||||||
|
pageId: cell.pageId ?? column.pageId ?? null,
|
||||||
valuesRedacted: true
|
valuesRedacted: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -3452,6 +3470,8 @@ function detectTurnTimingNonMonotonic(columns, rows) {
|
|||||||
messageId: cell.messageId ?? column.messageId ?? null,
|
messageId: cell.messageId ?? column.messageId ?? null,
|
||||||
promptIndex: cell.promptIndex ?? row.promptIndex ?? null,
|
promptIndex: cell.promptIndex ?? row.promptIndex ?? null,
|
||||||
source: cell.source ?? column.source ?? null,
|
source: cell.source ?? column.source ?? null,
|
||||||
|
pageRole: cell.pageRole ?? column.pageRole ?? null,
|
||||||
|
pageId: cell.pageId ?? column.pageId ?? null,
|
||||||
valuesRedacted: true
|
valuesRedacted: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -3484,7 +3504,9 @@ function isTerminalTurnStatus(value) {
|
|||||||
|
|
||||||
function turnMetricItems(sample, timelineItem) {
|
function turnMetricItems(sample, timelineItem) {
|
||||||
const promptIndex = timelineItem.promptIndex ?? 0;
|
const promptIndex = timelineItem.promptIndex ?? 0;
|
||||||
const sessionKey = sample?.routeSessionId || sample?.activeSessionId || "unknown-session";
|
const pageRole = sample?.pageRole || "control";
|
||||||
|
const pageId = sample?.pageId || "unknown-page";
|
||||||
|
const sessionKey = pageRole + ":" + pageId + ":" + (sample?.routeSessionId || sample?.activeSessionId || "unknown-session");
|
||||||
const roundKey = String(promptIndex);
|
const roundKey = String(promptIndex);
|
||||||
const items = [];
|
const items = [];
|
||||||
if (Array.isArray(sample?.turns) && sample.turns.length > 0) {
|
if (Array.isArray(sample?.turns) && sample.turns.length > 0) {
|
||||||
@@ -3503,6 +3525,8 @@ function turnMetricItems(sample, timelineItem) {
|
|||||||
items.push({
|
items.push({
|
||||||
key,
|
key,
|
||||||
source: "turn",
|
source: "turn",
|
||||||
|
pageRole,
|
||||||
|
pageId,
|
||||||
promptIndex,
|
promptIndex,
|
||||||
traceId,
|
traceId,
|
||||||
messageId,
|
messageId,
|
||||||
@@ -3531,6 +3555,8 @@ function turnMetricItems(sample, timelineItem) {
|
|||||||
? "message:" + sessionKey + ":id-" + stableId
|
? "message:" + sessionKey + ":id-" + stableId
|
||||||
: "message:" + sessionKey + ":round-" + roundKey + ":dom-index-" + String(domIndex),
|
: "message:" + sessionKey + ":round-" + roundKey + ":dom-index-" + String(domIndex),
|
||||||
source: "message",
|
source: "message",
|
||||||
|
pageRole,
|
||||||
|
pageId,
|
||||||
promptIndex,
|
promptIndex,
|
||||||
traceId,
|
traceId,
|
||||||
messageId,
|
messageId,
|
||||||
@@ -3548,6 +3574,8 @@ function turnMetricItems(sample, timelineItem) {
|
|||||||
return [{
|
return [{
|
||||||
key: "aggregate:" + sessionKey + ":round-" + roundKey,
|
key: "aggregate:" + sessionKey + ":round-" + roundKey,
|
||||||
source: "aggregate",
|
source: "aggregate",
|
||||||
|
pageRole,
|
||||||
|
pageId,
|
||||||
promptIndex,
|
promptIndex,
|
||||||
traceId: null,
|
traceId: null,
|
||||||
messageId: null,
|
messageId: null,
|
||||||
|
|||||||
Reference in New Issue
Block a user