Skip to content

Commit 9d5aa46

Browse files
authored
Merge branch 'anomalyco:dev' into dev
2 parents 504d65c + 2a20822 commit 9d5aa46

File tree

143 files changed

+4468
-1206
lines changed

Some content is hidden

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

143 files changed

+4468
-1206
lines changed

.github/workflows/docs-locale-sync.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,14 @@ jobs:
4747
echo "EOF"
4848
} >> "$GITHUB_OUTPUT"
4949
50+
- name: Install OpenCode
51+
if: steps.changes.outputs.has_changes == 'true'
52+
run: curl -fsSL https://opencode.ai/install | bash
53+
5054
- name: Sync locale docs with OpenCode
5155
if: steps.changes.outputs.has_changes == 'true'
52-
uses: sst/opencode/github@latest
5356
env:
5457
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
55-
GITHUB_TOKEN: ${{ steps.committer.outputs.token }}
5658
OPENCODE_CONFIG_CONTENT: |
5759
{
5860
"permission": {
@@ -96,11 +98,8 @@ jobs:
9698
}
9799
}
98100
}
99-
with:
100-
model: opencode/gpt-5.3-codex
101-
agent: docs
102-
use_github_token: true
103-
prompt: |
101+
run: |
102+
opencode run --agent docs --model opencode/gpt-5.3-codex <<'EOF'
104103
Update localized docs to match the latest English docs changes.
105104
106105
Changed English doc files:
@@ -118,6 +117,7 @@ jobs:
118117
7. Keep locale docs structure aligned with their corresponding English pages.
119118
8. Do not modify English source docs in packages/web/src/content/docs/*.mdx.
120119
9. If no locale updates are needed, make no changes.
120+
EOF
121121
122122
- name: Commit and push locale docs updates
123123
if: steps.changes.outputs.has_changes == 'true'

.opencode/agent/translator.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
description: Translate content for a specified locale while preserving technical terms
33
mode: subagent
4-
model: opencode/gemini-3.1-pro
4+
model: opencode/gemini-3-pro
55
---
66

77
You are a professional translator and localization specialist.

README.ar.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
<a href="README.ja.md">日本語</a> |
2828
<a href="README.pl.md">Polski</a> |
2929
<a href="README.ru.md">Русский</a> |
30+
<a href="README.bs.md">Bosanski</a> |
3031
<a href="README.ar.md">العربية</a> |
3132
<a href="README.no.md">Norsk</a> |
3233
<a href="README.br.md">Português (Brasil)</a> |

bun.lock

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

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-dZoLhWe4smBsOF7WczMySLXSAB1YRO1vfhiOCL1rBf0=",
4-
"aarch64-linux": "sha256-J7nIz1xuVZEHun5WRZkYRySz29B0A8g5g0RRxnIWTYU=",
5-
"aarch64-darwin": "sha256-R2PuhX+EjUBuLE8MF0G0fcUwNaU+5n6V6uVeK89ulzw=",
6-
"x86_64-darwin": "sha256-Bvzfz9TsTpYriZNLSLgpNcNb+BgtkgpjoWqdOtF2IBg="
3+
"x86_64-linux": "sha256-2XLuizbG90QDUQL+1M90XxfVZxjkIQ1cFYS46nnVO7g=",
4+
"aarch64-linux": "sha256-hlckiGAtbpAlwgcE7KgzKKRq9T2FEOSq3Q1MhuHfZ2c=",
5+
"aarch64-darwin": "sha256-V/8Kay+5bDb/BSVgBQhSMwzmRmkNGl3U0HFMVbVcMak=",
6+
"x86_64-darwin": "sha256-duLDF88Q/hXK5jwBy4dVxMSiTTS0R4obp9MlTuOF/Pw="
77
}
88
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
"@tsconfig/bun": "1.0.9",
3636
"@cloudflare/workers-types": "4.20251008.0",
3737
"@openauthjs/openauth": "0.0.0-20250322224806",
38-
"@pierre/diffs": "1.1.0-beta.13",
38+
"@pierre/diffs": "1.1.0-beta.18",
3939
"@solid-primitives/storage": "4.3.3",
4040
"@tailwindcss/vite": "4.1.11",
4141
"diff": "8.0.2",

packages/app/src/components/dialog-release-notes.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { createSignal } from "solid-js"
22
import { Dialog } from "@opencode-ai/ui/dialog"
33
import { Button } from "@opencode-ai/ui/button"
44
import { useDialog } from "@opencode-ai/ui/context/dialog"
5+
import { useLanguage } from "@/context/language"
56
import { useSettings } from "@/context/settings"
67

78
export type Highlight = {
@@ -16,6 +17,7 @@ export type Highlight = {
1617

1718
export function DialogReleaseNotes(props: { highlights: Highlight[] }) {
1819
const dialog = useDialog()
20+
const language = useLanguage()
1921
const settings = useSettings()
2022
const [index, setIndex] = createSignal(0)
2123

@@ -83,16 +85,16 @@ export function DialogReleaseNotes(props: { highlights: Highlight[] }) {
8385
<div class="flex flex-col items-start gap-3">
8486
{isLast() ? (
8587
<Button variant="primary" size="large" onClick={handleClose}>
86-
Get started
88+
{language.t("dialog.releaseNotes.action.getStarted")}
8789
</Button>
8890
) : (
8991
<Button variant="secondary" size="large" onClick={handleNext}>
90-
Next
92+
{language.t("dialog.releaseNotes.action.next")}
9193
</Button>
9294
)}
9395

9496
<Button variant="ghost" size="small" onClick={handleDisable}>
95-
Don't show these in the future
97+
{language.t("dialog.releaseNotes.action.hideFuture")}
9698
</Button>
9799
</div>
98100

@@ -128,7 +130,7 @@ export function DialogReleaseNotes(props: { highlights: Highlight[] }) {
128130
{feature()!.media!.type === "image" ? (
129131
<img
130132
src={feature()!.media!.src}
131-
alt={feature()!.media!.alt ?? feature()?.title ?? "Release preview"}
133+
alt={feature()!.media!.alt ?? feature()?.title ?? language.t("dialog.releaseNotes.media.alt")}
132134
class="w-full h-full object-cover"
133135
/>
134136
) : (

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -449,7 +449,7 @@ export function DialogSelectFile(props: { mode?: DialogSelectFileMode; onOpenFil
449449
</div>
450450
<Show when={item.updated}>
451451
<span class="text-12-regular text-text-weak whitespace-nowrap ml-2">
452-
{getRelativeTime(new Date(item.updated!).toISOString())}
452+
{getRelativeTime(new Date(item.updated!).toISOString(), language.t)}
453453
</span>
454454
</Show>
455455
</div>

packages/app/src/components/session/session-header.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ const OPEN_APPS = [
3535
"terminal",
3636
"iterm2",
3737
"ghostty",
38+
"warp",
3839
"xcode",
3940
"android-studio",
4041
"powershell",
@@ -63,6 +64,7 @@ const MAC_APPS = [
6364
{ id: "terminal", label: "Terminal", icon: "terminal", openWith: "Terminal" },
6465
{ id: "iterm2", label: "iTerm2", icon: "iterm2", openWith: "iTerm" },
6566
{ id: "ghostty", label: "Ghostty", icon: "ghostty", openWith: "Ghostty" },
67+
{ id: "warp", label: "Warp", icon: "warp", openWith: "Warp" },
6668
{ id: "xcode", label: "Xcode", icon: "xcode", openWith: "Xcode" },
6769
{
6870
id: "android-studio",
@@ -428,7 +430,7 @@ export function SessionHeader() {
428430
<Spinner class="size-3.5 text-icon-base" />
429431
</Show>
430432
</div>
431-
<span class="text-12-regular text-text-strong">Open</span>
433+
<span class="text-12-regular text-text-strong">{language.t("common.open")}</span>
432434
</Button>
433435
<div class="self-stretch w-px bg-border-weak-base" />
434436
<DropdownMenu

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ export const SettingsProviders: Component = () => {
162162
when={canDisconnect(item)}
163163
fallback={
164164
<span class="text-14-regular text-text-base opacity-0 group-hover:opacity-100 transition-opacity duration-200 pr-3 cursor-default">
165-
Connected from your environment variables
165+
{language.t("settings.providers.connected.environmentDescription")}
166166
</span>
167167
}
168168
>
@@ -229,10 +229,12 @@ export const SettingsProviders: Component = () => {
229229
<div class="flex flex-col min-w-0">
230230
<div class="flex flex-wrap items-center gap-x-3 gap-y-1">
231231
<ProviderIcon id={icon("synthetic")} class="size-5 shrink-0 icon-strong-base" />
232-
<span class="text-14-medium text-text-strong">Custom provider</span>
232+
<span class="text-14-medium text-text-strong">{language.t("provider.custom.title")}</span>
233233
<Tag>{language.t("settings.providers.tag.custom")}</Tag>
234234
</div>
235-
<span class="text-12-regular text-text-weak pl-8">Add an OpenAI-compatible provider by base URL.</span>
235+
<span class="text-12-regular text-text-weak pl-8">
236+
{language.t("settings.providers.custom.description")}
237+
</span>
236238
</div>
237239
<Button
238240
size="large"

0 commit comments

Comments
 (0)