fix: store quick-verify request-rate curves

This commit is contained in:
Codex
2026-07-02 05:48:07 +00:00
parent c83f4994f5
commit c502b341e9
@@ -834,11 +834,11 @@ function compactQuickVerifyRecordBrowserProcess(value: Record<string, unknown>):
function compactQuickVerifyRecordRequestRate(summaryValue: Record<string, unknown>, curveValue: Record<string, unknown>): Record<string, unknown> | null {
const source = Object.keys(curveValue).length > 0 ? curveValue : summaryValue;
const summary = record(curveValue.summary);
const summary = record(source.summary);
const effectiveSummary = Object.keys(summary).length > 0 ? summary : summaryValue;
const pageCurves = Array.isArray(curveValue.pageCurves) ? curveValue.pageCurves.map((item) => compactQuickVerifyRecordRequestRateCurve(item, "page")).filter((item) => item.buckets.length > 0).slice(0, 12) : [];
const apiPathCurves = Array.isArray(curveValue.apiPathCurves) ? curveValue.apiPathCurves.map((item) => compactQuickVerifyRecordRequestRateCurve(item, "apiPath")).filter((item) => item.buckets.length > 0).slice(0, 16) : [];
const buckets = Array.isArray(curveValue.buckets) ? curveValue.buckets.map(compactQuickVerifyRecordRequestRateBucket).filter((item) => item.startAt !== null && item.requestPerMinute !== null).slice(-120) : [];
const pageCurves = Array.isArray(source.pageCurves) ? source.pageCurves.map((item) => compactQuickVerifyRecordRequestRateCurve(item, "page")).filter((item) => item.buckets.length > 0).slice(0, 12) : [];
const apiPathCurves = Array.isArray(source.apiPathCurves) ? source.apiPathCurves.map((item) => compactQuickVerifyRecordRequestRateCurve(item, "apiPath")).filter((item) => item.buckets.length > 0).slice(0, 16) : [];
const buckets = Array.isArray(source.buckets) ? source.buckets.map(compactQuickVerifyRecordRequestRateBucket).filter(hasCompactRequestRateBucketPoint).slice(-120) : [];
if (Object.keys(source).length === 0 && pageCurves.length === 0 && apiPathCurves.length === 0 && buckets.length === 0) return null;
return {
summary: compactQuickVerifyRecordRequestRateSummary(effectiveSummary),
@@ -878,7 +878,7 @@ function compactQuickVerifyRecordRequestRateSummary(value: Record<string, unknow
function compactQuickVerifyRecordRequestRateCurve(value: unknown, scope: string): Record<string, unknown> & { buckets: Record<string, unknown>[] } {
const item = record(value);
const buckets = Array.isArray(item.buckets) ? item.buckets.map(compactQuickVerifyRecordRequestRateBucket).filter((bucket) => bucket.startAt !== null && bucket.requestPerMinute !== null).slice(-120) : [];
const buckets = Array.isArray(item.buckets) ? item.buckets.map(compactQuickVerifyRecordRequestRateBucket).filter(hasCompactRequestRateBucketPoint).slice(-120) : [];
return {
pageKey: stringAtNullable(item, "pageKey"),
pageRole: stringAtNullable(item, "pageRole"),
@@ -902,14 +902,18 @@ function compactQuickVerifyRecordRequestRateBucket(value: unknown): Record<strin
return {
bucketStartMs: numberAtNullable(item, "bucketStartMs"),
bucketEndMs: numberAtNullable(item, "bucketEndMs"),
startAt: stringAtNullable(item, "startAt"),
endAt: stringAtNullable(item, "endAt"),
count: numberAtNullable(item, "count"),
requestPerMinute: numberAtNullable(item, "requestPerMinute"),
startAt: stringAtNullable(item, "startAt") ?? stringAtNullable(item, "t"),
endAt: stringAtNullable(item, "endAt") ?? stringAtNullable(item, "e"),
count: numberAtNullable(item, "count") ?? numberAtNullable(item, "c"),
requestPerMinute: numberAtNullable(item, "requestPerMinute") ?? numberAtNullable(item, "rpm"),
valuesRedacted: true,
};
}
function hasCompactRequestRateBucketPoint(value: Record<string, unknown>): boolean {
return stringAtNullable(value, "startAt") !== null && numberAtNullable(value, "requestPerMinute") !== null;
}
function compactQuickVerifyRecordRequestRatePeak(value: unknown): Record<string, unknown> {
const item = record(value);
return {