From e84fa6793dfd3635bd8e7d1218de06a1766563bb Mon Sep 17 00:00:00 2001 From: Luci <22126563+LuciNyan@users.noreply.github.com> Date: Fri, 25 Apr 2025 02:08:52 +0800 Subject: [PATCH] fix(agent-loop): notify type (#608) ## Description The `as AppConfig` type assertion in the constructor may introduce potential type safety risks. Removing the assertion and making `notify` an optional parameter could enhance type robustness and prevent unexpected runtime errors. close: #605 --- codex-cli/src/components/chat/terminal-chat.tsx | 2 +- codex-cli/src/utils/agent/agent-loop.ts | 10 ++++------ codex-cli/src/utils/config.ts | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/codex-cli/src/components/chat/terminal-chat.tsx b/codex-cli/src/components/chat/terminal-chat.tsx index 6a1cfe1b..e3638ac3 100644 --- a/codex-cli/src/components/chat/terminal-chat.tsx +++ b/codex-cli/src/components/chat/terminal-chat.tsx @@ -141,7 +141,7 @@ export default function TerminalChat({ additionalWritableRoots, fullStdout, }: Props): React.ReactElement { - const notify = config.notify; + const notify = Boolean(config.notify); const [model, setModel] = useState(config.model); const [provider, setProvider] = useState(config.provider || "openai"); const [lastResponseId, setLastResponseId] = useState(null); diff --git a/codex-cli/src/utils/agent/agent-loop.ts b/codex-cli/src/utils/agent/agent-loop.ts index 6f7b8828..aff0e38c 100644 --- a/codex-cli/src/utils/agent/agent-loop.ts +++ b/codex-cli/src/utils/agent/agent-loop.ts @@ -272,12 +272,10 @@ export class AgentLoop { // defined object. We purposefully copy over the `model` and // `instructions` that have already been passed explicitly so that // downstream consumers (e.g. telemetry) still observe the correct values. - this.config = - config ?? - ({ - model, - instructions: instructions ?? "", - } as AppConfig); + this.config = config ?? { + model, + instructions: instructions ?? "", + }; this.additionalWritableRoots = additionalWritableRoots; this.onItem = onItem; this.onLoading = onLoading; diff --git a/codex-cli/src/utils/config.ts b/codex-cli/src/utils/config.ts index 7085b6fc..e837c3a5 100644 --- a/codex-cli/src/utils/config.ts +++ b/codex-cli/src/utils/config.ts @@ -132,7 +132,7 @@ export type AppConfig = { fullAutoErrorMode?: FullAutoErrorMode; memory?: MemoryConfig; /** Whether to enable desktop notifications for responses */ - notify: boolean; + notify?: boolean; /** Disable server-side response storage (send full transcript each request) */ disableResponseStorage?: boolean;