Skip to content

Commit 132174b

Browse files
fix(mobile): use canonical Codex config
Generated-By: PostHog Code Task-Id: c1bbe3cf-742b-4b24-bf96-d11a18b4cf22
1 parent 6b1dae2 commit 132174b

3 files changed

Lines changed: 22 additions & 8 deletions

File tree

apps/mobile/src/app/task/[id].tsx

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import { Text } from "@components/text";
2-
import {
3-
DEFAULT_CLAUDE_EXECUTION_MODE,
4-
getDefaultExecutionModeForAdapter,
5-
} from "@posthog/core/sessions/executionModes";
2+
import { getCloudReasoningConfigOptionId } from "@posthog/core/sessions/cloudSessionConfig";
3+
import { getDefaultExecutionModeForAdapter } from "@posthog/core/sessions/executionModes";
64
import {
75
countUserMessages,
86
getSessionActivityPhase,
@@ -187,7 +185,7 @@ export default function TaskDetailScreen() {
187185
: composerConfig.adapter === composerAdapter;
188186
const composerMode: ExecutionMode =
189187
(composerConfigMatchesAdapter ? composerConfig?.mode : undefined) ??
190-
DEFAULT_CLAUDE_EXECUTION_MODE;
188+
getDefaultExecutionModeForAdapter(composerAdapter);
191189
const composerModel =
192190
(composerConfigMatchesAdapter ? composerConfig?.model : undefined) ??
193191
task?.latest_run?.model ??
@@ -559,10 +557,14 @@ export default function TaskDetailScreen() {
559557
(value: SupportedReasoningEffort) => {
560558
if (!taskId) return;
561559
setComposerConfig(taskId, { reasoning: value });
562-
setConfigOption(taskId, "effort", value).catch(() => {});
560+
setConfigOption(
561+
taskId,
562+
getCloudReasoningConfigOptionId(composerAdapter),
563+
value,
564+
).catch(() => {});
563565
usePreferencesStore.getState().setLastUsedReasoningEffort(value);
564566
},
565-
[taskId, setComposerConfig, setConfigOption],
567+
[taskId, composerAdapter, setComposerConfig, setConfigOption],
566568
);
567569

568570
const handleStop = useCallback(() => {

packages/core/src/sessions/cloudSessionConfig.test.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
addMissingCloudRuntimeConfigOptions,
55
buildCloudDefaultConfigOptions,
66
extractLatestConfigOptionsFromEntries,
7+
getCloudReasoningConfigOptionId,
78
} from "./cloudSessionConfig";
89

910
function configUpdateEntry(
@@ -19,6 +20,13 @@ function configUpdateEntry(
1920
} as unknown as StoredLogEntry;
2021
}
2122

23+
it.each([
24+
["claude", "effort"],
25+
["codex", "reasoning_effort"],
26+
] as const)("uses the %s reasoning config id", (adapter, expected) => {
27+
expect(getCloudReasoningConfigOptionId(adapter)).toBe(expected);
28+
});
29+
2230
describe("extractLatestConfigOptionsFromEntries", () => {
2331
it("returns undefined when no config_option_update entries exist", () => {
2432
expect(extractLatestConfigOptionsFromEntries([])).toBeUndefined();

packages/core/src/sessions/cloudSessionConfig.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ import {
55
getDefaultExecutionModeForAdapter,
66
} from "./executionModes";
77

8+
export function getCloudReasoningConfigOptionId(adapter: Adapter): string {
9+
return adapter === "codex" ? "reasoning_effort" : "effort";
10+
}
11+
812
/**
913
* Pure derivations of cloud session config options. No store or host access —
1014
* just shaping the config-option list the mode switcher renders.
@@ -101,7 +105,7 @@ export function addMissingCloudRuntimeConfigOptions(
101105

102106
if (initialReasoningEffort && !categories.has("thought_level")) {
103107
extras.push({
104-
id: adapter === "codex" ? "reasoning_effort" : "effort",
108+
id: getCloudReasoningConfigOptionId(adapter),
105109
name: adapter === "codex" ? "Reasoning" : "Effort",
106110
type: "select",
107111
currentValue: initialReasoningEffort,

0 commit comments

Comments
 (0)