Skip to content
This repository was archived by the owner on Aug 6, 2026. It is now read-only.

Commit a505535

Browse files
committed
Merge origin/main into claude/new-ui-thread-scroll-lag-6033mk
Both sides added an import at the same spot in ChatThread.tsx: keep the branch's useSessionViewActions (collapse-mode overrides) alongside main's useThreadScrollRequest (activity-pane scroll bridge, #3909).
2 parents 8a5305f + a52ddb0 commit a505535

273 files changed

Lines changed: 18095 additions & 4815 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/stale.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ jobs:
1717
steps:
1818
- uses: actions/stale@eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899 # v10.3.0
1919
with:
20+
operations-per-run: 300
2021
days-before-pr-stale: 7
2122
days-before-pr-close: 7
2223
days-before-issue-stale: -1

apps/code/snapshots.yml

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -72,30 +72,6 @@ snapshots:
7272
hash: v1.k4693efd2.1d199b2c4bba8034cb18fb5b49866b64a6eb3311591add5f58ec288710dce2e9.FCc9egSaO1Onih417yciSYKNROe8zqDZyyS6xuXCZGw
7373
billing-usagemeter--zero-spend-limit--light:
7474
hash: v1.k4693efd2.b50c18736bbde45fc89f4c0ac7fd616286e5c1ecc2a56910fffca13eaa13d8a2.31z4F0JmvMeR4yqk5pjs_OQ3MypnM2miZI9al4wuc8c
75-
channels-taskfeedrow--agent-origin--dark:
76-
hash: v1.k4693efd2.82f8c70a399c9ea768201933e202fcc2fde74332c5153aeabf6835ace79beee6.-SVboDRIZ_-nh4PtMliCv7e7iCtdUm-1m2xQ9Xzcdfw
77-
channels-taskfeedrow--agent-origin--light:
78-
hash: v1.k4693efd2.4c1db3470d5ec9b4db9872d0e048314d0078979e8fbdb602b8c648ba70d7209f._KPUvj46p33u7A4Xndz-git-4rp7VKca1MpeTztlB6w
79-
channels-taskfeedrow--human-email-only--dark:
80-
hash: v1.k4693efd2.0f4dece4643b7375b77746347658f4fe65b37817cdfa9ad1ba697067e619f428.f0jKZ4OYqsmeJjXffjt-amK9cwE81JF0lgSMqtn37PA
81-
channels-taskfeedrow--human-email-only--light:
82-
hash: v1.k4693efd2.14db0510f7ea5c57985cf0cb60ab08f5e146c7243eeb1b0b963f74e85c7d60f4.ijHQLK0lZjjUlOQuzYzisImU9DWsNmZM7i5GYfWU4E0
83-
channels-taskfeedrow--human-started--dark:
84-
hash: v1.k4693efd2.e0abdae2e8ac2ef29793ea7afc2a2580c6610e07a3c640ad782af7fd3c12592a.YUgF_BTPzZoqnWXvyLBRs3w9C_P3Yfh4-cP4mUqs2NQ
85-
channels-taskfeedrow--human-started--light:
86-
hash: v1.k4693efd2.84c26deb1a587fe061238b3982b555167575893bacc9cd2667d4d3f74646261f.abqc0Voe6FIQFflzDJTv1KewcZ4XxcDz1a0mFlJu7oM
87-
channels-taskfeedrow--long-prompt--dark:
88-
hash: v1.k4693efd2.876d34660bc267af79d39a971a681ba279a870061dba10b905412112c2a5e4dd.rSw1X068udMs8Arglu_WgX5RL8WZlpAc8_kVONPQhF4
89-
channels-taskfeedrow--long-prompt--light:
90-
hash: v1.k4693efd2.d0d6e4b6bfa257c3f46d991777f72c345437b0be2ee16a182fa925d3ece7dc9e.6PGeOlMxVauJSQia0FAIirzaYio79-I7H4x-9LvEUbw
91-
channels-taskfeedrow--no-prompt--dark:
92-
hash: v1.k4693efd2.9fa967f1a9acdeba0c50a9e45ae649f118ee26938037dbefd1bb0577067b03d4.va1lGsscqLW86-5yCKc3H6pQ8Az7_HBItkgGTnTQiYU
93-
channels-taskfeedrow--no-prompt--light:
94-
hash: v1.k4693efd2.a02339aecdb6fc327fdf6586e28ceeebf8490442fe217eb8bb46f1ce66bff78a.2l7XdvdW3D0GlLmPwDdTFgjZWdav68bZX_LYResVKwo
95-
channels-taskfeedrow--no-starter--dark:
96-
hash: v1.k4693efd2.66fff212f14afa9dd3bc532698a042383014a0cabd4331d30eff878148e1773d.RiectZxFTqk1husLYI-UV5ko1uZ4lpbjWstE7Hy3MJE
97-
channels-taskfeedrow--no-starter--light:
98-
hash: v1.k4693efd2.9ee4ad64ed7d2c5c62d0cd682d903b09da643d462d49aae0858afa500e92256b.OhGj64l-o7iWtxzJo1qt0A_CU9ME0ZRr_5e455RGUJQ
9975
components-permissions-permissionselector--create-new-file--dark:
10076
hash: v1.k4693efd2.c54203a4e636b83b3d24d7ed9c4ace8659db87cd8f231d9dc2ecc03320e31646.epDm7LebiLzlp0uuZBrE-Obt_anAn0xsE8bHFnm5vos
10177
components-permissions-permissionselector--create-new-file--light:
@@ -708,6 +684,30 @@ snapshots:
708684
hash: v1.k4693efd2.cfff4c6bbb0acef1c9941b21d2f69c24b234c2c206282acf6fcada0cb2bd2386.xILjVPp8ecQmGbPjGDdhbRyi9KFPpA_1nfYF3bfjwuc
709685
skill-buttons-skillbuttonsmenu--default--light:
710686
hash: v1.k4693efd2.eb9bd49b9700641f6f3c90653447c9767c52e997afec9843e8649b90752faad3.VdxEtBwtkU3ioy2evcNbrEKxPjQ1GDUpZAQzFe-Uho4
687+
spaces-taskfeedrow--agent-origin--dark:
688+
hash: v1.k4693efd2.82f8c70a399c9ea768201933e202fcc2fde74332c5153aeabf6835ace79beee6.yEZq_qnKxItv5u0Ydcqa1B4VCwv8lwXUvcaFScE2XO0
689+
spaces-taskfeedrow--agent-origin--light:
690+
hash: v1.k4693efd2.4c1db3470d5ec9b4db9872d0e048314d0078979e8fbdb602b8c648ba70d7209f.wt_Ufkw30jHFnxEMFXE0wQG8ignuCURuUUYIvNMnJ6U
691+
spaces-taskfeedrow--human-email-only--dark:
692+
hash: v1.k4693efd2.611794921d5c6270a211f4a6bc3d91fd63a74a58f0c905a79271cbc7d9c73eb8.balV69yNKs9biJzweJYwpk5e1UjZ11fFersE9UMhvEU
693+
spaces-taskfeedrow--human-email-only--light:
694+
hash: v1.k4693efd2.961288ce410b6376bab92428ad148b881c768e9edea4821db4818d13682f50c4.79pzkpuXwARCmUS4HtZRvb2n7dM8HUZZs-ErIXX4wwg
695+
spaces-taskfeedrow--human-started--dark:
696+
hash: v1.k4693efd2.6e1cf0720234b1c64ba04f6f3af965d32438551771bc3680c4391bb8463b8eee.4O-iWXxbDv-L9MsuPt6KoDvK7C95R0Jj6LTYjDwwEhk
697+
spaces-taskfeedrow--human-started--light:
698+
hash: v1.k4693efd2.7156c1e5b2359b5f792529aa9041ad9277842d51c3423bda4f0c029c58dcef28.PF-JYrCTfHxEzFG9dnabJxDYS47wQXnxurx8Ev_LfkY
699+
spaces-taskfeedrow--long-prompt--dark:
700+
hash: v1.k4693efd2.00acb2487749ee5a1db2c95da8ae0e2fb2de0815d653973e60c7ceb3ff808135.pdV864kTAUM1IgcuME846VwInafp3f-WFFxxxE4H_oY
701+
spaces-taskfeedrow--long-prompt--light:
702+
hash: v1.k4693efd2.8a6b372abdf9c60a558c59a703f8e7c8f65fcb55fd99e6c97c6eca23e6a76781.HbZ7kfuE60F5SWucdbYLhy98POhk8MPPX2TLA_r2hz8
703+
spaces-taskfeedrow--no-prompt--dark:
704+
hash: v1.k4693efd2.ff77770c9b5c656b213c139270322defa38306d714abeee6b5fe4e17e2056f88.KnYgUDb_jYEfH5aSoJbt1cwyJXAfDo_eKmIfn0fxjjc
705+
spaces-taskfeedrow--no-prompt--light:
706+
hash: v1.k4693efd2.d3d755ee7ea6eccbed93ea18e6dcbccbd9f77f019f5c153cb0278131b08c324f.l_KwHWHFTzODefftPGtlWsXLFi6tbH78ZRQeeY7X4Z0
707+
spaces-taskfeedrow--no-starter--dark:
708+
hash: v1.k4693efd2.66fff212f14afa9dd3bc532698a042383014a0cabd4331d30eff878148e1773d.-FvbS5RpndI7QXNTpQhbQShDktPrOV_jdcWDY4MUYF4
709+
spaces-taskfeedrow--no-starter--light:
710+
hash: v1.k4693efd2.9ee4ad64ed7d2c5c62d0cd682d903b09da643d462d49aae0858afa500e92256b.lCc1Q5KBHSLnYp7N9k6HEBxDPjf0SblH9zDLHQ7dYo8
711711
task-detail-continueclisessions--importing--dark:
712712
hash: v1.k4693efd2.3196e21b9daa2f183c79eaf2c70a5775365dbee3f1d920c64927e20a0fadcbf9.FjHhjEX3urGbycQiDehA9JQ7H2zfyl1id9rDSVjrtoI
713713
task-detail-continueclisessions--importing--light:

apps/code/src/renderer/platform-adapters/auth-side-effects.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
} from "@posthog/ui/features/auth/authQueries";
77
import { useAuthUiStateStore } from "@posthog/ui/features/auth/authUiStateStore";
88
import type { IAuthSideEffects } from "@posthog/ui/features/auth/identifiers";
9+
import { resetCurrentChannel } from "@posthog/ui/features/canvas/stores/currentChannelStore";
910
import { useOnboardingStore } from "@posthog/ui/features/onboarding/onboardingStore";
1011
import { resetSessionService } from "@posthog/ui/features/sessions/sessionServiceHost";
1112
import { openTaskInput } from "@posthog/ui/router/useOpenTask";
@@ -30,6 +31,9 @@ export class RendererAuthSideEffects implements IAuthSideEffects {
3031
onProjectSelected(): void {
3132
clearAuthScopedQueries();
3233
void refreshAuthStateQuery();
34+
// Before openTaskInput, which files a new task into the scoped channel —
35+
// a channel id from the project we just left.
36+
resetCurrentChannel();
3337
openTaskInput();
3438
}
3539

@@ -40,6 +44,7 @@ export class RendererAuthSideEffects implements IAuthSideEffects {
4044
if (previousRegion) {
4145
useAuthUiStateStore.getState().setStaleRegion(previousRegion);
4246
}
47+
resetCurrentChannel();
4348
openTaskInput();
4449
useOnboardingStore.getState().resetSelections();
4550
}

apps/mobile/src/features/chat/utils/thinkingMessages.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ export const THINKING_MESSAGES = [
6060
"Blooming",
6161
"Sparking",
6262
"Nesting",
63-
"Looping",
6463
"Wiring",
6564
"Snipping",
6665
"Zoning",

apps/web/src/web-auth-side-effects.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55
} from "@posthog/ui/features/auth/authQueries";
66
import { useAuthUiStateStore } from "@posthog/ui/features/auth/authUiStateStore";
77
import type { IAuthSideEffects } from "@posthog/ui/features/auth/identifiers";
8+
import { resetCurrentChannel } from "@posthog/ui/features/canvas/stores/currentChannelStore";
89
import { useOnboardingStore } from "@posthog/ui/features/onboarding/onboardingStore";
910
import { openTaskInput } from "@posthog/ui/router/useOpenTask";
1011
import { injectable } from "inversify";
@@ -24,6 +25,9 @@ export class WebAuthSideEffects implements IAuthSideEffects {
2425
onProjectSelected(): void {
2526
clearAuthScopedQueries();
2627
void refreshAuthStateQuery();
28+
// Before openTaskInput, which files a new task into the scoped channel —
29+
// a channel id from the project we just left.
30+
resetCurrentChannel();
2731
openTaskInput();
2832
}
2933

@@ -32,6 +36,7 @@ export class WebAuthSideEffects implements IAuthSideEffects {
3236
if (previousRegion) {
3337
useAuthUiStateStore.getState().setStaleRegion(previousRegion);
3438
}
39+
resetCurrentChannel();
3540
openTaskInput();
3641
useOnboardingStore.getState().resetSelections();
3742
}

packages/agent/src/adapters/base-acp-agent.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ import {
2626
isAnthropicModel,
2727
isCloudflareModel,
2828
isCloudflareModelId,
29+
isModalModel,
30+
isModalModelId,
2931
pickAllowedModel,
3032
} from "../gateway-models";
3133
import { Logger } from "../utils/logger";
@@ -152,7 +154,12 @@ export abstract class BaseAcpAgent implements Agent {
152154
const adapterModels = this.gatewayModels
153155
// Cloudflare models are servable on the Claude adapter too — the gateway translates the
154156
// `@cf/` path onto its Anthropic-Messages surface — so include them alongside Anthropic models.
155-
.filter((model) => isAnthropicModel(model) || isCloudflareModel(model));
157+
.filter(
158+
(model) =>
159+
isAnthropicModel(model) ||
160+
isCloudflareModel(model) ||
161+
isModalModel(model),
162+
);
156163

157164
const options = adapterModels
158165
.map((model) => ({
@@ -171,7 +178,8 @@ export abstract class BaseAcpAgent implements Agent {
171178
const isClaudeAdapterModelId = (modelId: string): boolean =>
172179
modelId.startsWith("claude-") ||
173180
modelId.startsWith("anthropic/") ||
174-
isCloudflareModelId(modelId);
181+
isCloudflareModelId(modelId) ||
182+
isModalModelId(modelId);
175183

176184
let currentModelId = currentModelOverride ?? DEFAULT_GATEWAY_MODEL;
177185

packages/agent/src/adapters/claude/session/model-config.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ describe("applyAvailableModelsAllowlist", () => {
2626
"claude-opus-4-8",
2727
]).options,
2828
).toEqual([
29-
{ value: "claude-sonnet-4-6", name: "Claude Sonnet 4.6" },
3029
{ value: "claude-opus-4-8", name: "Claude Opus 4.8" },
30+
{ value: "claude-sonnet-4-6", name: "Claude Sonnet 4.6" },
3131
]);
3232
});
3333

packages/agent/src/adapters/codex-app-server/local-tools-mcp-server.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ if (!ctxEnv) {
3434
let parsed: {
3535
cwd: string;
3636
taskId?: string;
37+
taskRunId?: string;
3738
token?: string;
3839
baseBranch?: string;
3940
};
@@ -51,6 +52,7 @@ const ctx: LocalToolCtx = {
5152
cwd: parsed.cwd,
5253
token: parsed.token ?? readGithubTokenFromEnv(),
5354
taskId: parsed.taskId,
55+
taskRunId: parsed.taskRunId,
5456
baseBranch: parsed.baseBranch,
5557
};
5658

Lines changed: 6 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,6 @@
1-
import type { Adapter } from "@posthog/shared";
2-
import { getEffortOptions as getClaudeEffortOptions } from "./claude/session/models";
3-
import { getReasoningEffortOptions as getCodexReasoningEffortOptions } from "./codex-app-server/models";
4-
5-
export type SupportedReasoningEffort =
6-
| "low"
7-
| "medium"
8-
| "high"
9-
| "xhigh"
10-
| "max";
11-
12-
export interface ReasoningEffortOption {
13-
value: SupportedReasoningEffort;
14-
name: string;
15-
}
16-
17-
export function getReasoningEffortOptions(
18-
adapter: Adapter,
19-
modelId: string,
20-
): ReasoningEffortOption[] | null {
21-
const options =
22-
adapter === "codex"
23-
? getCodexReasoningEffortOptions(modelId)
24-
: getClaudeEffortOptions(modelId);
25-
26-
return options as ReasoningEffortOption[] | null;
27-
}
28-
29-
export function isSupportedReasoningEffort(
30-
adapter: Adapter,
31-
modelId: string,
32-
value: string,
33-
): value is SupportedReasoningEffort {
34-
return (
35-
getReasoningEffortOptions(adapter, modelId)?.some(
36-
(option) => option.value === value,
37-
) ?? false
38-
);
39-
}
1+
export {
2+
getReasoningEffortOptions,
3+
isSupportedReasoningEffort,
4+
type ReasoningEffortOption,
5+
type SupportedReasoningEffort,
6+
} from "@posthog/shared";

0 commit comments

Comments
 (0)