Skip to content

Commit ce209e2

Browse files
committed
Merge branch 'dev' into opencode-remote-voice
2 parents 56fa267 + 33b2795 commit ce209e2

File tree

156 files changed

+7458
-2876
lines changed

Some content is hidden

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

156 files changed

+7458
-2876
lines changed

bun.lock

Lines changed: 59 additions & 153 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
@@ -236,7 +236,6 @@ new sst.cloudflare.x.SolidStart("Console", {
236236
SALESFORCE_INSTANCE_URL,
237237
ZEN_BLACK_PRICE,
238238
ZEN_LITE_PRICE,
239-
new sst.Secret("ZEN_LITE_COUPON_FIRST_MONTH_100_INVITEES"),
240239
new sst.Secret("ZEN_LIMITS"),
241240
new sst.Secret("ZEN_SESSION_SECRET"),
242241
...ZEN_MODELS,

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-GjpBQhvGLTM6NWX29b/mS+KjrQPl0w9VjQHH5jaK9SM=",
4-
"aarch64-linux": "sha256-F5h9p+iZ8CASdUYaYR7O22NwBRa/iT+ZinUxO8lbPTc=",
5-
"aarch64-darwin": "sha256-jWo5yvCtjVKRf9i5XUcTTaLtj2+G6+T1Td2llO/cT5I=",
6-
"x86_64-darwin": "sha256-LzV+5/8P2mkiFHmt+a8zDeJjRbU8z9nssSA4tzv1HxA="
3+
"x86_64-linux": "sha256-i9TxYwWkJAR+kW6pbvhgQbRW9UYPtdrPQAGic4zPoa4=",
4+
"aarch64-linux": "sha256-RYc/OYlETXUwkWBRDas+/P4cBW6zde4FqxxnMARu5vs=",
5+
"aarch64-darwin": "sha256-jIhUOIRIQEa2WT62TVIedmRIhl/edhK8sbiAFvU3yCM=",
6+
"x86_64-darwin": "sha256-xLGzaX7OofFlZzVgpORJR5QXD2u+54hp+t3cCfUtO84="
77
}
88
}

nix/opencode.nix

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
sysctl,
88
makeBinaryWrapper,
99
models-dev,
10+
ripgrep,
1011
installShellFiles,
1112
versionCheckHook,
1213
writableTmpDirAsHomeHook,
@@ -51,25 +52,25 @@ stdenvNoCC.mkDerivation (finalAttrs: {
5152
runHook postBuild
5253
'';
5354

54-
installPhase =
55-
''
56-
runHook preInstall
57-
58-
install -Dm755 dist/opencode-*/bin/opencode $out/bin/opencode
59-
install -Dm644 schema.json $out/share/opencode/schema.json
60-
''
61-
# bun runs sysctl to detect if dunning on rosetta2
62-
+ lib.optionalString stdenvNoCC.hostPlatform.isDarwin ''
63-
wrapProgram $out/bin/opencode \
64-
--prefix PATH : ${
65-
lib.makeBinPath [
66-
sysctl
55+
installPhase = ''
56+
runHook preInstall
57+
58+
install -Dm755 dist/opencode-*/bin/opencode $out/bin/opencode
59+
install -Dm644 schema.json $out/share/opencode/schema.json
60+
61+
wrapProgram $out/bin/opencode \
62+
--prefix PATH : ${
63+
lib.makeBinPath (
64+
[
65+
ripgrep
6766
]
68-
}
69-
''
70-
+ ''
71-
runHook postInstall
72-
'';
67+
# bun runs sysctl to detect if dunning on rosetta2
68+
++ lib.optional stdenvNoCC.hostPlatform.isDarwin sysctl
69+
)
70+
}
71+
72+
runHook postInstall
73+
'';
7374

7475
postInstall = lib.optionalString (stdenvNoCC.buildPlatform.canExecute stdenvNoCC.hostPlatform) ''
7576
# trick yargs into also generating zsh completions

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"packageManager": "bun@1.3.11",
88
"scripts": {
99
"dev": "bun run --cwd packages/opencode --conditions=browser src/index.ts",
10-
"dev:desktop": "bun --cwd packages/desktop tauri dev",
10+
"dev:desktop": "bun --cwd packages/desktop-electron dev",
1111
"dev:web": "bun --cwd packages/app dev",
1212
"dev:console": "ulimit -n 10240 2>/dev/null; bun run --cwd packages/console/app dev",
1313
"dev:storybook": "bun --cwd packages/storybook storybook",

packages/app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@opencode-ai/app",
3-
"version": "1.4.10",
3+
"version": "1.14.18",
44
"description": "",
55
"type": "module",
66
"exports": {
Binary file not shown.

packages/app/src/components/settings-general.tsx

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ import {
1919
sansDefault,
2020
sansFontFamily,
2121
sansInput,
22+
terminalDefault,
23+
terminalFontFamily,
24+
terminalInput,
2225
useSettings,
2326
} from "@/context/settings"
2427
import { decode64 } from "@/utils/base64"
@@ -181,6 +184,7 @@ export const SettingsGeneral: Component = () => {
181184
const soundOptions = [noneSound, ...SOUND_OPTIONS]
182185
const mono = () => monoInput(settings.appearance.font())
183186
const sans = () => sansInput(settings.appearance.uiFont())
187+
const terminal = () => terminalInput(settings.appearance.terminalFont())
184188

185189
const soundSelectProps = (
186190
enabled: () => boolean,
@@ -451,6 +455,29 @@ export const SettingsGeneral: Component = () => {
451455
/>
452456
</div>
453457
</SettingsRow>
458+
459+
<SettingsRow
460+
title={language.t("settings.general.row.terminalFont.title")}
461+
description={language.t("settings.general.row.terminalFont.description")}
462+
>
463+
<div class="w-full sm:w-[220px]">
464+
<TextField
465+
data-action="settings-terminal-font"
466+
label={language.t("settings.general.row.terminalFont.title")}
467+
hideLabel
468+
type="text"
469+
value={terminal()}
470+
onChange={(value) => settings.appearance.setTerminalFont(value)}
471+
placeholder={terminalDefault}
472+
spellcheck={false}
473+
autocorrect="off"
474+
autocomplete="off"
475+
autocapitalize="off"
476+
class="text-12-regular"
477+
style={{ "font-family": terminalFontFamily(settings.appearance.terminalFont()) }}
478+
/>
479+
</div>
480+
</SettingsRow>
454481
</SettingsList>
455482
</div>
456483
)

packages/app/src/components/terminal.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { useLanguage } from "@/context/language"
1111
import { usePlatform } from "@/context/platform"
1212
import { useSDK } from "@/context/sdk"
1313
import { useServer } from "@/context/server"
14-
import { monoFontFamily, useSettings } from "@/context/settings"
14+
import { terminalFontFamily, useSettings } from "@/context/settings"
1515
import type { LocalPTY } from "@/context/terminal"
1616
import { disposeIfDisposable, getHoveredLinkText, setOptionIfSupported } from "@/utils/runtime-adapters"
1717
import { terminalWriter } from "@/utils/terminal-writer"
@@ -300,7 +300,7 @@ export const Terminal = (props: TerminalProps) => {
300300
})
301301

302302
createEffect(() => {
303-
const font = monoFontFamily(settings.appearance.font())
303+
const font = terminalFontFamily(settings.appearance.terminalFont())
304304
if (!term) return
305305
setOptionIfSupported(term, "fontFamily", font)
306306
scheduleFit()
@@ -360,7 +360,7 @@ export const Terminal = (props: TerminalProps) => {
360360
cols: restoreSize?.cols,
361361
rows: restoreSize?.rows,
362362
fontSize: 14,
363-
fontFamily: monoFontFamily(settings.appearance.font()),
363+
fontFamily: terminalFontFamily(settings.appearance.terminalFont()),
364364
allowTransparency: false,
365365
convertEol: false,
366366
theme: terminalColors(),

packages/app/src/context/settings.tsx

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ export interface Settings {
3939
fontSize: number
4040
mono: string
4141
sans: string
42+
terminal: string
4243
}
4344
keybinds: Record<string, string>
4445
permissions: {
@@ -50,13 +51,17 @@ export interface Settings {
5051

5152
export const monoDefault = "System Mono"
5253
export const sansDefault = "System Sans"
54+
export const terminalDefault = "JetBrainsMono Nerd Font Mono"
5355

5456
const monoFallback =
5557
'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace'
5658
const sansFallback = 'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif'
59+
const terminalFallback =
60+
'"JetBrainsMono Nerd Font Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace'
5761

5862
const monoBase = monoFallback
5963
const sansBase = sansFallback
64+
const terminalBase = terminalFallback
6065

6166
function input(font: string | undefined) {
6267
return font ?? ""
@@ -89,6 +94,14 @@ export function sansFontFamily(font: string | undefined) {
8994
return stack(font, sansBase)
9095
}
9196

97+
export function terminalInput(font: string | undefined) {
98+
return input(font)
99+
}
100+
101+
export function terminalFontFamily(font: string | undefined) {
102+
return stack(font, terminalBase)
103+
}
104+
92105
const defaultSettings: Settings = {
93106
general: {
94107
autoSave: true,
@@ -110,6 +123,7 @@ const defaultSettings: Settings = {
110123
fontSize: 14,
111124
mono: "",
112125
sans: "",
126+
terminal: "",
113127
},
114128
keybinds: {},
115129
permissions: {
@@ -233,6 +247,10 @@ export const { use: useSettings, provider: SettingsProvider } = createSimpleCont
233247
setUIFont(value: string) {
234248
setStore("appearance", "sans", value.trim() ? value : "")
235249
},
250+
terminalFont: withFallback(() => store.appearance?.terminal, defaultSettings.appearance.terminal),
251+
setTerminalFont(value: string) {
252+
setStore("appearance", "terminal", value.trim() ? value : "")
253+
},
236254
},
237255
keybinds: {
238256
get: (action: string) => store.keybinds?.[action],

0 commit comments

Comments
 (0)