From f8886e874d43fe591fa50d28e9a8983632ba7e45 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Thu, 5 Mar 2026 22:07:20 -0800 Subject: [PATCH] rm task lifecycle events from ui --- apps/web/src/session-logic.test.ts | 29 +++++++++++++++++++++++++++++ apps/web/src/session-logic.ts | 1 + packages/contracts/src/model.ts | 19 ++++++++----------- 3 files changed, 38 insertions(+), 11 deletions(-) diff --git a/apps/web/src/session-logic.test.ts b/apps/web/src/session-logic.test.ts index c814b796f4981f54672640c73f4a34739a9481a6..289d2c0cb2c16210b15603f87a608117fed015b0 100644 --- a/apps/web/src/session-logic.test.ts +++ b/apps/web/src/session-logic.test.ts @@ -343,6 +343,35 @@ describe("deriveWorkLogEntries", () => { expect(entries.map((entry) => entry.id)).toEqual(["tool-complete"]); }); + it("omits task start and completion lifecycle entries", () => { + const activities: OrchestrationThreadActivity[] = [ + makeActivity({ + id: "task-start", + createdAt: "2026-02-23T00:00:01.000Z", + kind: "task.started", + summary: "default task started", + tone: "info", + }), + makeActivity({ + id: "task-progress", + createdAt: "2026-02-23T00:00:02.000Z", + kind: "task.progress", + summary: "Updating files", + tone: "info", + }), + makeActivity({ + id: "task-complete", + createdAt: "2026-02-23T00:00:03.000Z", + kind: "task.completed", + summary: "Task completed", + tone: "info", + }), + ]; + + const entries = deriveWorkLogEntries(activities, undefined); + expect(entries.map((entry) => entry.id)).toEqual(["task-progress"]); + }); + it("filters by turn id when provided", () => { const activities: OrchestrationThreadActivity[] = [ makeActivity({ id: "turn-1", turnId: "turn-1", summary: "Tool call", kind: "tool.started" }), diff --git a/apps/web/src/session-logic.ts b/apps/web/src/session-logic.ts index 6a94c49737f50ca45903f9182d99b62513cc3773..9519b7a46df6a138877fda12b1ebbdd6f49fd61a 100644 --- a/apps/web/src/session-logic.ts +++ b/apps/web/src/session-logic.ts @@ -394,6 +394,7 @@ export function deriveWorkLogEntries( return ordered .filter((activity) => (latestTurnId ? activity.turnId === latestTurnId : true)) .filter((activity) => activity.kind !== "tool.started") + .filter((activity) => activity.kind !== "task.started" && activity.kind !== "task.completed") .filter((activity) => activity.summary !== "Checkpoint captured") .map((activity) => { const payload = diff --git a/packages/contracts/src/model.ts b/packages/contracts/src/model.ts index 8c68690dfc250a439b0d655c277a59b08a5f96ee..ee2e2106ac71a21279f97c7be94d0375487d37b2 100644 --- a/packages/contracts/src/model.ts +++ b/packages/contracts/src/model.ts @@ -1,4 +1,5 @@ import { Schema } from "effect"; +import { ProviderKind } from "./orchestration"; export const CODEX_REASONING_EFFORT_OPTIONS = ["xhigh", "high", "medium", "low"] as const; export type CodexReasoningEffort = (typeof CODEX_REASONING_EFFORT_OPTIONS)[number]; @@ -27,15 +28,14 @@ export const MODEL_OPTIONS_BY_PROVIDER = { { slug: "gpt-5.2-codex", name: "GPT-5.2 Codex" }, { slug: "gpt-5.2", name: "GPT-5.2" }, ], -} as const satisfies Record<"codex", readonly ModelOption[]>; +} as const satisfies Record; -type BuiltInModelSlug = - (typeof MODEL_OPTIONS_BY_PROVIDER)[keyof typeof MODEL_OPTIONS_BY_PROVIDER][number]["slug"]; +type BuiltInModelSlug = (typeof MODEL_OPTIONS_BY_PROVIDER)[ProviderKind][number]["slug"]; export type ModelSlug = BuiltInModelSlug | (string & {}); export const DEFAULT_MODEL_BY_PROVIDER = { - codex: "gpt-5.3-codex", -} as const satisfies Record; + codex: "gpt-5.4", +} as const satisfies Record; // Backward compatibility for existing Codex-only call sites. export const MODEL_OPTIONS = MODEL_OPTIONS_BY_PROVIDER.codex; @@ -49,15 +49,12 @@ export const MODEL_SLUG_ALIASES_BY_PROVIDER = { "5.3-spark": "gpt-5.3-codex-spark", "gpt-5.3-spark": "gpt-5.3-codex-spark", }, -} as const satisfies Record>; +} as const satisfies Record>; export const REASONING_EFFORT_OPTIONS_BY_PROVIDER = { codex: CODEX_REASONING_EFFORT_OPTIONS, -} as const satisfies Record< - keyof typeof MODEL_OPTIONS_BY_PROVIDER, - readonly CodexReasoningEffort[] ->; +} as const satisfies Record; export const DEFAULT_REASONING_EFFORT_BY_PROVIDER = { codex: "high", -} as const satisfies Record; +} as const satisfies Record; -- 2.54.0