Skip to content

Commit e98dba0

Browse files
committed
chore(code): put glm in cc behind flag
1 parent 15397d0 commit e98dba0

4 files changed

Lines changed: 47 additions & 4 deletions

File tree

packages/shared/src/flags.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ export const DISCOVERY_RUN_FLAG = "posthog-code-discovery-run";
88
// routes, channels and dashboards.
99
export const PROJECT_BLUEBIRD_FLAG = "project-bluebird";
1010
export const TASKS_PREWARM_SANDBOX_FLAG = "tasks-prewarm-sandbox";
11+
export const GLM_MODEL_FLAG = "posthog-code-glm-model";

packages/ui/src/features/sessions/components/ModelSelector.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ import {
1313
DropdownMenuTrigger,
1414
MenuLabel,
1515
} from "@posthog/quill";
16+
import { GLM_MODEL_FLAG } from "@posthog/shared";
17+
import { useFeatureFlag } from "@posthog/ui/features/feature-flags/useFeatureFlag";
18+
import { stripGlmModelOption } from "@posthog/ui/features/sessions/modelOptionFilters";
1619
import {
1720
flattenSelectOptions,
1821
useModelConfigOptionForTask,
@@ -34,7 +37,12 @@ export function ModelSelector({
3437
}: ModelSelectorProps) {
3538
const sessionService = useService<SessionService>(SESSION_SERVICE);
3639
const session = useSessionForTask(taskId);
37-
const modelOption = useModelConfigOptionForTask(taskId);
40+
const rawModelOption = useModelConfigOptionForTask(taskId);
41+
const glmEnabled = useFeatureFlag(GLM_MODEL_FLAG);
42+
const modelOption =
43+
glmEnabled || !rawModelOption
44+
? rawModelOption
45+
: stripGlmModelOption(rawModelOption);
3846

3947
const selectOption = modelOption?.type === "select" ? modelOption : undefined;
4048
const options = selectOption
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import type { SessionConfigOption } from "@agentclientprotocol/sdk";
2+
import { isSelectGroup } from "@posthog/shared";
3+
4+
export function stripGlmModelOption(
5+
option: SessionConfigOption,
6+
): SessionConfigOption {
7+
if (option.type !== "select") return option;
8+
9+
if (isSelectGroup(option.options)) {
10+
return {
11+
...option,
12+
options: option.options.map((group) => ({
13+
...group,
14+
options: group.options.filter(
15+
(o) => !o.value.toLowerCase().includes("glm"),
16+
),
17+
})),
18+
};
19+
}
20+
21+
return {
22+
...option,
23+
options: option.options.filter(
24+
(o) => !o.value.toLowerCase().includes("glm"),
25+
),
26+
};
27+
}

packages/ui/src/features/task-detail/hooks/usePreviewConfig.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@ import {
66
deriveInitialConfig,
77
} from "@posthog/core/task-detail/previewConfig";
88
import { useHostTRPCClient } from "@posthog/host-router/react";
9-
import { getCloudUrlFromRegion } from "@posthog/shared";
9+
import { GLM_MODEL_FLAG, getCloudUrlFromRegion } from "@posthog/shared";
10+
import { stripGlmModelOption } from "@posthog/ui/features/sessions/modelOptionFilters";
1011
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
1112
import { logger } from "../../../shell/logger";
1213
import { useAuthStateValue } from "../../auth/store";
14+
import { useFeatureFlag } from "../../feature-flags/useFeatureFlag";
1315
import { useSettingsStore } from "../../settings/settingsStore";
1416

1517
const log = logger.scope("preview-config");
@@ -42,6 +44,7 @@ export function usePreviewConfig(
4244
adapter: "claude" | "codex",
4345
): PreviewConfigResult {
4446
const hostClient = useHostTRPCClient();
47+
const glmEnabled = useFeatureFlag(GLM_MODEL_FLAG);
4548
const cloudRegion = useAuthStateValue((state) => state.cloudRegion);
4649
const apiHost = useMemo(
4750
() => (cloudRegion ? getCloudUrlFromRegion(cloudRegion) : null),
@@ -74,9 +77,13 @@ export function usePreviewConfig(
7477

7578
hostClient.agent.getPreviewConfigOptions
7679
.query({ apiHost, adapter }, { signal: abort.signal })
77-
.then((options) => {
80+
.then((serverOptions) => {
7881
if (abort.signal.aborted) return;
7982

83+
const options = glmEnabled
84+
? serverOptions
85+
: serverOptions.map(stripGlmModelOption);
86+
8087
const {
8188
defaultInitialTaskMode,
8289
lastUsedInitialTaskMode,
@@ -134,7 +141,7 @@ export function usePreviewConfig(
134141
return () => {
135142
abort.abort();
136143
};
137-
}, [adapter, apiHost, hostClient, hasHydrated]);
144+
}, [adapter, apiHost, hostClient, hasHydrated, glmEnabled]);
138145

139146
const setConfigOption = useCallback(
140147
(configId: string, value: string) => {

0 commit comments

Comments
 (0)