Skip to content

Commit 79ebee3

Browse files
authored
Merge branch 'dev' into fix/billing-refund-amount
2 parents 4a8f40f + 387c5a0 commit 79ebee3

203 files changed

Lines changed: 4645 additions & 1374 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.

bun.lock

Lines changed: 22 additions & 19 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

infra/console.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,6 @@ new sst.cloudflare.x.SolidStart("Console", {
278278
//VITE_API_URL: gateway.url.apply((url) => url!),
279279
VITE_AUTH_URL: auth.url.apply((url) => url!),
280280
VITE_STRIPE_PUBLISHABLE_KEY: STRIPE_PUBLISHABLE_KEY.value,
281-
PLACEHOLDER: "keepalive",
282281
},
283282
transform: {
284283
server: {

nix/desktop.nix

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
stdenv,
44
bun,
55
nodejs,
6+
darwin,
67
electron_41,
78
makeWrapper,
89
writableTmpDirAsHomeHook,
@@ -14,7 +15,12 @@ let
1415
in
1516
stdenv.mkDerivation (finalAttrs: {
1617
pname = "opencode-desktop";
17-
inherit (opencode) version src node_modules;
18+
inherit (opencode)
19+
version
20+
src
21+
node_modules
22+
patches
23+
;
1824

1925
nativeBuildInputs = [
2026
bun
@@ -23,6 +29,9 @@ stdenv.mkDerivation (finalAttrs: {
2329
writableTmpDirAsHomeHook
2430
] ++ lib.optionals stdenv.hostPlatform.isLinux [
2531
autoPatchelfHook
32+
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
33+
# Ad-hoc sign the .app: --config.mac.identity=null below skips signing.
34+
darwin.autoSignDarwinBinariesHook
2635
];
2736

2837
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [

nix/hashes.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"nodeModules": {
3-
"x86_64-linux": "sha256-1RiaZQHzIhdtcOJUMsLagpP+nBBL/Qu6zQgrAXMHDCI=",
4-
"aarch64-linux": "sha256-5QZhtkWuNpY/qUxlKRHcGbILOAVnuyzu+h8VDIuMQcU=",
5-
"aarch64-darwin": "sha256-9w3QA22XNc1itGLyhikYU90xGH/iLUUM+SSGXla7lhw=",
6-
"x86_64-darwin": "sha256-cSYiyhhSqIYiTeK1uWHDkHbYstQYD5jEB7JaYjWjgi4="
3+
"x86_64-linux": "sha256-pbVW7cOLT76Q7f++xaYYrwuN7eS6FRen80xoaVog3M4=",
4+
"aarch64-linux": "sha256-nk/q4PezhQSf/UHhJuL/188q6e+Gr+PFgrlhEEG5ouo=",
5+
"aarch64-darwin": "sha256-IfIJwgvsonrfjG+btK/5YedzX+MJtf/5bYuLrAmnHvU=",
6+
"x86_64-darwin": "sha256-Cwd9gEymjFn6XAgkkyX4ZmRTAE1JiurxF4VvVws9C/E="
77
}
88
}

packages/app/package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@opencode-ai/app",
3-
"version": "1.15.7",
3+
"version": "1.15.10",
44
"description": "",
55
"type": "module",
66
"exports": {
@@ -42,10 +42,10 @@
4242
},
4343
"dependencies": {
4444
"@kobalte/core": "catalog:",
45-
"@sentry/solid": "catalog:",
45+
"@opencode-ai/core": "workspace:*",
4646
"@opencode-ai/sdk": "workspace:*",
4747
"@opencode-ai/ui": "workspace:*",
48-
"@opencode-ai/core": "workspace:*",
48+
"@sentry/solid": "catalog:",
4949
"@shikijs/transformers": "3.9.2",
5050
"@solid-primitives/active-element": "2.1.3",
5151
"@solid-primitives/audio": "1.4.2",
@@ -54,6 +54,7 @@
5454
"@solid-primitives/i18n": "2.2.1",
5555
"@solid-primitives/media": "2.3.3",
5656
"@solid-primitives/resize-observer": "2.1.5",
57+
"@solid-primitives/scheduled": "1.5.3",
5758
"@solid-primitives/scroll": "2.1.3",
5859
"@solid-primitives/storage": "catalog:",
5960
"@solid-primitives/timer": "1.4.4",

packages/app/src/app.tsx

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -48,22 +48,17 @@ import { ErrorPage } from "./pages/error"
4848
import { useCheckServerHealth } from "./utils/server-health"
4949

5050
const HomeRoute = lazy(() => import("@/pages/home"))
51-
const loadSession = () => import("@/pages/session")
52-
const Session = lazy(loadSession)
53-
const Loading = () => <div class="size-full" />
51+
const Session = lazy(() => import("@/pages/session"))
5452

55-
if (typeof location === "object" && /\/session(?:\/|$)/.test(location.pathname)) {
56-
void loadSession()
57-
}
58-
59-
const SessionRoute = () => (
60-
<SessionProviders>
61-
<Session />
62-
</SessionProviders>
53+
const SessionRoute = Object.assign(
54+
() => (
55+
<SessionProviders>
56+
<Session />
57+
</SessionProviders>
58+
),
59+
{ preload: Session.preload },
6360
)
6461

65-
const SessionIndexRoute = () => <Navigate href="session" />
66-
6762
function UiI18nBridge(props: ParentProps) {
6863
const language = useLanguage()
6964
return <I18nProvider value={{ locale: language.intl, t: language.t }}>{props.children}</I18nProvider>
@@ -317,7 +312,7 @@ export function AppInterface(props: {
317312
>
318313
<Route path="/" component={HomeRoute} />
319314
<Route path="/:dir" component={DirectoryLayout}>
320-
<Route path="/" component={SessionIndexRoute} />
315+
<Route path="/" component={() => <Navigate href="session" />} />
321316
<Route path="/session/:id?" component={SessionRoute} />
322317
</Route>
323318
</Dynamic>

packages/app/src/components/dialog-connect-provider.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,7 @@ export function DialogConnectProvider(props: { provider: string }) {
4141
})
4242

4343
const provider = createMemo(
44-
() =>
45-
providers.all().find((x) => x.id === props.provider) ??
46-
globalSync.data.provider.all.find((x) => x.id === props.provider)!,
44+
() => providers.all().get(props.provider) ?? globalSync.data.provider.all.get(props.provider)!,
4745
)
4846
const fallback = createMemo<ProviderAuthMethod[]>(() => [
4947
{
@@ -526,7 +524,7 @@ export function DialogConnectProvider(props: { provider: string }) {
526524
const code = createMemo(() => {
527525
const instructions = store.authorization?.instructions
528526
if (instructions?.includes(":")) {
529-
return instructions.split(":")[1]?.trim()
527+
return instructions.split(":").pop()?.trim()
530528
}
531529
return instructions
532530
})

packages/app/src/components/dialog-custom-provider.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ export function DialogCustomProvider(props: Props) {
106106
form,
107107
t: language.t,
108108
disabledProviders: globalSync.data.config.disabled_providers ?? [],
109-
existingProviderIDs: new Set(globalSync.data.provider.all.map((p) => p.id)),
109+
existingProviderIDs: new Set(globalSync.data.provider.all.keys()),
110110
})
111111
batch(() => {
112112
setForm("err", output.err)

packages/app/src/components/dialog-select-model-unpaid.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ export const DialogSelectModelUnpaid: Component<{ model?: ModelState }> = (props
9191
<div class="w-full">
9292
<List
9393
class="w-full px-0"
94-
key={(x) => x?.id}
94+
key={(p) => p.id}
9595
items={providers.popular}
9696
activeIcon="plus-small"
9797
sortBy={(a, b) => {

packages/app/src/components/dialog-select-provider.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export const DialogSelectProvider: Component = () => {
3535
key={(x) => x?.id}
3636
items={() => {
3737
language.locale()
38-
return [{ id: CUSTOM_ID, name: customLabel() }, ...providers.all()]
38+
return [{ id: CUSTOM_ID, name: customLabel() }, ...providers.all().values()]
3939
}}
4040
filterKeys={["id", "name"]}
4141
groupBy={(x) => (popularProviders.includes(x.id) ? popularGroup() : otherGroup())}

0 commit comments

Comments
 (0)