Skip to content

Commit 9da0a3b

Browse files
tarik02juliusmarmingecodexclaudestromseng
authored
sync: update from upstream with type fixes (#21)
* Rework message metadata, timestamps, and tool work log rows (pingdotgg#3022) Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * [codex] Sync app-server protocol, service tiers, and provider startup (pingdotgg#3036) Co-authored-by: codex <codex@users.noreply.github.com> * [codex] Reduce Git status polling churn (pingdotgg#3037) Co-authored-by: codex <codex@users.noreply.github.com> * Fix turn fold proejctions (pingdotgg#3041) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(git): disable external diff for patch output (pingdotgg#2553) Co-authored-by: Julius Marminge <julius0216@outlook.com> * [codex] Refine inline tool call timeline UI (pingdotgg#3052) Co-authored-by: codex <codex@users.noreply.github.com> * [codex] fix slow websocket shutdown (pingdotgg#2869) Co-authored-by: Julius Marminge <julius@macmini.local> * Handle non-resumable pending user input (pingdotgg#2766) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix: avoid sending composer during IME enter (pingdotgg#2817) Co-authored-by: Julius Marminge <julius0216@outlook.com> --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Magnus Alexander Strømseng <magnus.stromseng@gmail.com> Co-authored-by: Julius Marminge <julius@macmini.local> Co-authored-by: Mika Cohen <mjc@kernel.org> Co-authored-by: Huakun <huakun.shen@huakunshen.com> Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent ce6fa59 commit 9da0a3b

67 files changed

Lines changed: 7935 additions & 3089 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.

apps/desktop/src/backend/tailscaleEndpointProvider.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ export const resolveTailscaleAdvertisedEndpoints = Effect.fn("resolveTailscaleAd
121121
input.readMagicDnsName ??
122122
readTailscaleStatus.pipe(
123123
Effect.map((status) => status.magicDnsName),
124-
Effect.catch(() => Effect.succeed<string | null>(null)),
124+
Effect.orElseSucceed(() => null),
125125
);
126126
const dnsName =
127127
input.statusJson === undefined

apps/mobile/src/app/settings/index.tsx

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useAuth, useUser, useUserProfileModal } from "@clerk/expo";
1+
import { useAuth, useUser } from "@clerk/expo";
22
import * as Notifications from "expo-notifications";
33
import { Link, Stack, useRouter } from "expo-router";
44
import { SymbolView } from "expo-symbols";
@@ -68,7 +68,6 @@ function ConfiguredSettingsRouteScreen() {
6868
const { push } = useRouter();
6969
const { getToken, isLoaded, isSignedIn } = useAuth({ treatPendingAsSignedOut: false });
7070
const { user } = useUser();
71-
const { isAvailable: isUserProfileModalAvailable, presentUserProfile } = useUserProfileModal();
7271
const { savedConnectionsById } = useRemoteEnvironmentState();
7372
const [notificationStatus, setNotificationStatus] = useState<NotificationStatus>("checking");
7473
const [liveActivityStatus, setLiveActivityStatus] = useState<LiveActivityStatus>("checking");
@@ -266,15 +265,11 @@ function ConfiguredSettingsRouteScreen() {
266265
push("/settings/waitlist");
267266
return;
268267
}
269-
if (isUserProfileModalAvailable) {
270-
void presentUserProfile();
271-
return;
272-
}
273268
Alert.alert(
274269
"T3 Cloud unavailable",
275270
"Native T3 Cloud account management is not available in this build.",
276271
);
277-
}, [isLoaded, isSignedIn, isUserProfileModalAvailable, presentUserProfile, push]);
272+
}, [isLoaded, isSignedIn, push]);
278273

279274
return (
280275
<View collapsable={false} className="flex-1 bg-sheet">

apps/server/scripts/acp-mock-agent.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ const emitXAiAskUserQuestion = process.env.T3_ACP_EMIT_XAI_ASK_USER_QUESTION ===
2222
const failSetConfigOption = process.env.T3_ACP_FAIL_SET_CONFIG_OPTION === "1";
2323
const exitOnSetConfigOption = process.env.T3_ACP_EXIT_ON_SET_CONFIG_OPTION === "1";
2424
const promptResponseText = process.env.T3_ACP_PROMPT_RESPONSE_TEXT;
25+
const promptDelayMs = Number(process.env.T3_ACP_PROMPT_DELAY_MS ?? "0");
2526
const permissionOptionIds = {
2627
allowOnce: process.env.T3_ACP_ALLOW_ONCE_OPTION_ID ?? "allow-once",
2728
allowAlways: process.env.T3_ACP_ALLOW_ALWAYS_OPTION_ID ?? "allow-always",
@@ -364,6 +365,10 @@ const program = Effect.gen(function* () {
364365
Effect.gen(function* () {
365366
const requestedSessionId = String(request.sessionId ?? sessionId);
366367

368+
if (Number.isFinite(promptDelayMs) && promptDelayMs > 0) {
369+
yield* Effect.sleep(`${promptDelayMs} millis`);
370+
}
371+
367372
if (emitInterleavedAssistantToolCalls) {
368373
const toolCallId = "tool-call-1";
369374

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { assert, it } from "@effect/vitest";
2+
3+
import { ProviderInstanceId } from "@t3tools/contracts";
4+
import { createModelSelection } from "@t3tools/shared/model";
5+
6+
import { getCodexServiceTierOptionValue } from "./codexModelOptions.ts";
7+
8+
it("returns the selected Codex service tier id", () => {
9+
const selection = createModelSelection(ProviderInstanceId.make("codex"), "gpt-5.5", [
10+
{ id: "serviceTier", value: "flex" },
11+
]);
12+
13+
assert.equal(getCodexServiceTierOptionValue(selection), "flex");
14+
});
15+
16+
it("keeps legacy persisted fast mode selections working", () => {
17+
const selection = createModelSelection(ProviderInstanceId.make("codex"), "gpt-5.4", [
18+
{ id: "fastMode", value: true },
19+
]);
20+
21+
assert.equal(getCodexServiceTierOptionValue(selection), "fast");
22+
});
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import type { ModelSelection } from "@t3tools/contracts";
2+
import {
3+
getModelSelectionBooleanOptionValue,
4+
getModelSelectionStringOptionValue,
5+
} from "@t3tools/shared/model";
6+
7+
export function getCodexServiceTierOptionValue(
8+
modelSelection: ModelSelection | null | undefined,
9+
): string | undefined {
10+
return (
11+
getModelSelectionStringOptionValue(modelSelection, "serviceTier") ??
12+
(getModelSelectionBooleanOptionValue(modelSelection, "fastMode") === true ? "fast" : undefined)
13+
);
14+
}

apps/server/src/git/GitManager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -747,7 +747,7 @@ export const makeGitManager = Effect.fn("makeGitManager")(function* () {
747747
);
748748
const readRemoteStatus = Effect.fn("readRemoteStatus")(function* (cwd: string) {
749749
const details = yield* gitCore
750-
.statusDetails(cwd)
750+
.statusDetailsRemote(cwd)
751751
.pipe(Effect.catchIf(isNotGitRepositoryError, () => Effect.succeed(null)));
752752
if (details === null || !details.isRepo) {
753753
return null;

0 commit comments

Comments
 (0)