fix(runtime): derive unattributed cost from usage status

This commit is contained in:
ZacharyZhang-NY committed 2026-04-22 16:18:03 -04:00
1 parent f107415f4f
commit ebcc15c68d
8 files changed
+61 -7

No files matched your search

+8
View File
@@ -3,6 +3,7 @@ import {
classifyRunUsage,
deriveLegacyRunUsageStatus,
hasAttributableAssistantUsage,
isUsageStatusUnattributed,
} from "../../src/main/run-usage-status";
describe("run usage status", () => {
@@ -81,4 +82,11 @@ describe("run usage status", () => {
);
expect(deriveLegacyRunUsageStatus({ runStatus: "failed", unattributedCost: true })).toBe("pre_first_message");
});
it("derives the legacy unattributed-cost flag from usage status", () => {
expect(isUsageStatusUnattributed("ok")).toBe(false);
expect(isUsageStatusUnattributed("pre_first_message")).toBe(true);
expect(isUsageStatusUnattributed("error_stop")).toBe(true);
expect(isUsageStatusUnattributed("aborted_before_usage")).toBe(true);
});
});
+43
View File
@@ -0,0 +1,43 @@
import { describe, expect, it } from "vitest";
import { workerMessageSchema } from "../../src/main/worker/entry/types";
const RUN_ID = "00000000-0000-4000-8000-000000000001";
describe("worker message schema", () => {
it("accepts run-finished messages keyed by usage status", () => {
expect(
workerMessageSchema.safeParse({
type: "run-finished",
runId: RUN_ID,
status: "failed",
summary: null,
errorMessage: "Agent stopped with error.",
exitCode: null,
signal: null,
model: "gpt-5.4",
usageStatus: "error_stop",
inputTokens: 12,
outputTokens: 1,
}).success,
).toBe(true);
});
it("rejects legacy unattributed-cost truth in run-finished messages", () => {
expect(
workerMessageSchema.safeParse({
type: "run-finished",
runId: RUN_ID,
status: "failed",
summary: null,
errorMessage: "Agent stopped with error.",
exitCode: null,
signal: null,
model: "gpt-5.4",
usageStatus: "error_stop",
unattributedCost: false,
inputTokens: 12,
outputTokens: 1,
}).success,
).toBe(false);
});
});