authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-03-05 22:07:20-08:00
committergravatar for jmarminge@gmail.comJulius Marminge <jmarminge@gmail.com> 2026-03-05 23:00:41-08:00
logf8886e874d43fe591fa50d28e9a8983632ba7e45
treed786bad354359b61d3a45c7e298342ce227658f6
parent2435a9cd58d697332f304833770febec0ff01262

rm task lifecycle events from ui


3 files changed, 38 insertions(+), 11 deletions(-)

apps/web/src/session-logic.test.ts+29
......@@ -343,6 +343,35 @@ describe("deriveWorkLogEntries", () => {
343343 expect(entries.map((entry) => entry.id)).toEqual(["tool-complete"]);
344344 });
345345
346 it("omits task start and completion lifecycle entries", () => {
347 const activities: OrchestrationThreadActivity[] = [
348 makeActivity({
349 id: "task-start",
350 createdAt: "2026-02-23T00:00:01.000Z",
351 kind: "task.started",
352 summary: "default task started",
353 tone: "info",
354 }),
355 makeActivity({
356 id: "task-progress",
357 createdAt: "2026-02-23T00:00:02.000Z",
358 kind: "task.progress",
359 summary: "Updating files",
360 tone: "info",
361 }),
362 makeActivity({
363 id: "task-complete",
364 createdAt: "2026-02-23T00:00:03.000Z",
365 kind: "task.completed",
366 summary: "Task completed",
367 tone: "info",
368 }),
369 ];
370
371 const entries = deriveWorkLogEntries(activities, undefined);
372 expect(entries.map((entry) => entry.id)).toEqual(["task-progress"]);
373 });
374
346375 it("filters by turn id when provided", () => {
347376 const activities: OrchestrationThreadActivity[] = [
348377 makeActivity({ id: "turn-1", turnId: "turn-1", summary: "Tool call", kind: "tool.started" }),
apps/web/src/session-logic.ts+1
......@@ -394,6 +394,7 @@ export function deriveWorkLogEntries(
394394 return ordered
395395 .filter((activity) => (latestTurnId ? activity.turnId === latestTurnId : true))
396396 .filter((activity) => activity.kind !== "tool.started")
397 .filter((activity) => activity.kind !== "task.started" && activity.kind !== "task.completed")
397398 .filter((activity) => activity.summary !== "Checkpoint captured")
398399 .map((activity) => {
399400 const payload =
packages/contracts/src/model.ts+8-11
......@@ -1,4 +1,5 @@
11import { Schema } from "effect";
2import { ProviderKind } from "./orchestration";
23
34export const CODEX_REASONING_EFFORT_OPTIONS = ["xhigh", "high", "medium", "low"] as const;
45export type CodexReasoningEffort = (typeof CODEX_REASONING_EFFORT_OPTIONS)[number];
......@@ -27,15 +28,14 @@ export const MODEL_OPTIONS_BY_PROVIDER = {
2728 { slug: "gpt-5.2-codex", name: "GPT-5.2 Codex" },
2829 { slug: "gpt-5.2", name: "GPT-5.2" },
2930 ],
30} as const satisfies Record<"codex", readonly ModelOption[]>;
31} as const satisfies Record<ProviderKind, readonly ModelOption[]>;
3132
32type BuiltInModelSlug =
33 (typeof MODEL_OPTIONS_BY_PROVIDER)[keyof typeof MODEL_OPTIONS_BY_PROVIDER][number]["slug"];
33type BuiltInModelSlug = (typeof MODEL_OPTIONS_BY_PROVIDER)[ProviderKind][number]["slug"];
3434export type ModelSlug = BuiltInModelSlug | (string & {});
3535
3636export const DEFAULT_MODEL_BY_PROVIDER = {
37 codex: "gpt-5.3-codex",
38} as const satisfies Record<keyof typeof MODEL_OPTIONS_BY_PROVIDER, ModelSlug>;
37 codex: "gpt-5.4",
38} as const satisfies Record<ProviderKind, ModelSlug>;
3939
4040// Backward compatibility for existing Codex-only call sites.
4141export const MODEL_OPTIONS = MODEL_OPTIONS_BY_PROVIDER.codex;
......@@ -49,15 +49,12 @@ export const MODEL_SLUG_ALIASES_BY_PROVIDER = {
4949 "5.3-spark": "gpt-5.3-codex-spark",
5050 "gpt-5.3-spark": "gpt-5.3-codex-spark",
5151 },
52} as const satisfies Record<keyof typeof MODEL_OPTIONS_BY_PROVIDER, Record<string, ModelSlug>>;
52} as const satisfies Record<ProviderKind, Record<string, ModelSlug>>;
5353
5454export const REASONING_EFFORT_OPTIONS_BY_PROVIDER = {
5555 codex: CODEX_REASONING_EFFORT_OPTIONS,
56} as const satisfies Record<
57 keyof typeof MODEL_OPTIONS_BY_PROVIDER,
58 readonly CodexReasoningEffort[]
59>;
56} as const satisfies Record<ProviderKind, readonly CodexReasoningEffort[]>;
6057
6158export const DEFAULT_REASONING_EFFORT_BY_PROVIDER = {
6259 codex: "high",
63} as const satisfies Record<keyof typeof MODEL_OPTIONS_BY_PROVIDER, CodexReasoningEffort | null>;
60} as const satisfies Record<ProviderKind, CodexReasoningEffort | null>;