Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
ef7f712
fix slow queries
fwang Aug 3, 2026
28d0637
chore: generate
opencode-agent[bot] Aug 3, 2026
8de7a3c
fix slow queries
fwang Aug 3, 2026
3307f99
fix(ci): reuse imported macOS keychain (#40221)
opencode-agent[bot] Aug 3, 2026
6ff0ade
perf(app): fix composer lag via buffered blob draft storage (#40207)
Hona Aug 3, 2026
53fd029
fix slow queries
fwang Aug 3, 2026
9465a6c
Merge branch 'dev' of github.com:anomalyco/opencode into dev
fwang Aug 3, 2026
89130db
chore: update nix node_modules hashes
opencode-agent[bot] Aug 3, 2026
e917c12
docs: remove obsolete vouch system section (#40266)
MagnumGoYB Aug 3, 2026
9535a8f
fix(ui): update OpenRouter logo (#40313)
opencode-agent[bot] Aug 3, 2026
87481f2
fix: gpt-5.5+ in combination with azure fails with reasoningEffort (#…
frederiknsgo Aug 3, 2026
7becbbf
feat(app): refine diff viewer (#40285)
arvsrn Aug 3, 2026
b0b1149
test(opencode): cover Azure completion reasoning (#40340)
opencode-agent[bot] Aug 3, 2026
def14d9
Revert "fix slow queries"
fwang Aug 4, 2026
7fe9938
sync release versions for v1.18.12
Aug 4, 2026
7e94dda
fix(github): include pull request identity in context (#40363)
opencode-agent[bot] Aug 4, 2026
0efa33c
feat(desktop): expand and audit locale translations (#40362)
opencode-agent[bot] Aug 4, 2026
b005a15
chore: generate
opencode-agent[bot] Aug 4, 2026
638788f
fix(app): move markdown parsing to worker (#40356)
Hona Aug 4, 2026
26aefa6
chore: update nix node_modules hashes
opencode-agent[bot] Aug 4, 2026
0c380f3
feat(app): support locale plural rules (#40370)
opencode-agent[bot] Aug 4, 2026
60e23fe
chore: generate
opencode-agent[bot] Aug 4, 2026
6c32991
feat(app): add minimal RTL support (#40372)
opencode-agent[bot] Aug 4, 2026
e857350
feat(i18n): localize hardcoded application copy (#40377)
opencode-agent[bot] Aug 4, 2026
edc8d1d
chore: generate
opencode-agent[bot] Aug 4, 2026
c75e3b5
fix(app): supply fallback session titles (#40385)
Brendonovich Aug 4, 2026
8721a27
fix(app): complete shared RTL primitives (#40388)
opencode-agent[bot] Aug 4, 2026
c387fe1
feat(app): add debug layout direction toggle (#40393)
Hona Aug 4, 2026
6c97a46
fix(stats): hide zero-usage countries (#40400)
opencode-agent[bot] Aug 4, 2026
de1bd36
fix(app): correct RTL layout interactions (#40410)
Hona Aug 4, 2026
dc67b7a
docs: add Poolside provider setup (#39187)
amypoolside Aug 4, 2026
44614c7
fix(acp): drain updates before end turn (#40422)
nexxeln Aug 4, 2026
aefaf14
sync release versions for v1.18.13
Aug 4, 2026
703d09f
fix(server): don't forward host directory to remote workspace (#40136)
jamesmurdza Aug 4, 2026
f0afb67
fix(server): log upstream 5xx bodies from proxied workspace requests …
jamesmurdza Aug 4, 2026
98dd65c
fix(app): collapse deletion-only edit parts (#40536)
opencode-agent[bot] Aug 5, 2026
66fdd51
docs: add RTL development skill (#40543)
Hona Aug 5, 2026
cb88db6
tweak(opencode): make xAI OAuth device-only to reduce confusion w/ he…
rekram1-node Aug 5, 2026
5b4fb1f
chore: generate
opencode-agent[bot] Aug 5, 2026
9f38562
fix(opencode): include cache writes in ACP usage (#40450)
opencode-agent[bot] Aug 5, 2026
82a5796
test(app): harden flaky e2e synchronization (#40556)
Hona Aug 5, 2026
b8ea3ea
chore: generate
opencode-agent[bot] Aug 5, 2026
2f17fc9
docs(zen): add LongCat free model (#40585)
MrMushrooooom Aug 5, 2026
4a57013
fix(app): show pending tool details (#40603)
opencode-agent[bot] Aug 5, 2026
f929f8f
refactor(opencode): simplify retry error matching (#40694)
rekram1-node Aug 5, 2026
61aefc0
fix(opencode): expand retryable error patterns (#40707)
rekram1-node Aug 5, 2026
057b5a9
chore: generate
opencode-agent[bot] Aug 5, 2026
b84c63d
fix(stats): reduce html payloads
adamdotdevin Aug 5, 2026
3355b78
chore: generate
opencode-agent[bot] Aug 5, 2026
709c195
fix(opencode): preserve compatible stream errors (#40718)
rekram1-node Aug 5, 2026
082fe93
chore: generate
opencode-agent[bot] Aug 5, 2026
b1f8cc0
chore: update nix node_modules hashes
opencode-agent[bot] Aug 5, 2026
146720e
fix(stats): improve page speed
adamdotdevin Aug 5, 2026
04513d9
chore: generate
opencode-agent[bot] Aug 5, 2026
ebf6fc0
sync release versions for v1.18.14
Aug 5, 2026
23bbc5c
fix(server): allow blob attachments in web UI (#40692)
rexdotsh Aug 5, 2026
24470e5
fix(desktop): embed version in server sidecar (#40764)
Hona Aug 5, 2026
f1adabc
feat(app): export session as json from ui (#40781)
Hona Aug 6, 2026
b8bd889
chore: generate
opencode-agent[bot] Aug 6, 2026
847771f
fix log processor
fwang Aug 6, 2026
f6c5afe
fix(desktop): disable packaged console logging (#40794)
opencode-agent[bot] Aug 6, 2026
def7220
fix(tui): support copying over ssh with `set-clipboard on` tmux confi…
ayubun Aug 6, 2026
b379d71
fix(stats): update github stars
adamdotdevin Aug 6, 2026
03bff65
fix(app): update homepage stats
adamdotdevin Aug 6, 2026
dc898ca
sync
fwang Aug 6, 2026
69f2cba
chore: generate
opencode-agent[bot] Aug 6, 2026
b7f9363
fix(opencode): serialize orphaned compaction history (#40800)
opencode-agent[bot] Aug 7, 2026
8d65dbd
fix(app): complete translation coverage (#40981)
opencode-agent[bot] Aug 7, 2026
31c5c4e
fix(app): keep locale names native (#40985)
opencode-agent[bot] Aug 7, 2026
d468201
fix(opencode): use file times for truncation cleanup (#40987)
opencode-agent[bot] Aug 7, 2026
a54a693
fix(opencode): use chronological message boundaries (#40991)
opencode-agent[bot] Aug 7, 2026
db581e4
fix(opencode): order legacy message loop by time (#40990)
opencode-agent[bot] Aug 7, 2026
20750c3
fix(web): order shared messages by creation time (#40995)
opencode-agent[bot] Aug 7, 2026
8bf5062
feat(tui): add cursor style configuration (#32295)
dangooddd Aug 7, 2026
28bcc0e
fix(app): sort sessions by persisted time (#41000)
opencode-agent[bot] Aug 7, 2026
23cc677
fix(tui): order messages by creation time (#40994)
opencode-agent[bot] Aug 7, 2026
9113255
fix(app): order stored messages by creation time (#41001)
opencode-agent[bot] Aug 7, 2026
5aa5cb3
fix(app): use chronological message boundaries (#41006)
opencode-agent[bot] Aug 7, 2026
4abddbb
feat(go): promote DeepSeek V4 Flash usage (#40988)
MrMushrooooom Aug 7, 2026
741244b
feat(app): add global locale coverage (#40992)
opencode-agent[bot] Aug 7, 2026
3255297
sync
fwang Aug 7, 2026
265472e
fix(ui): use tokens for button loading state (#40884)
arvsrn Aug 7, 2026
1ec6bdc
sync release versions for v1.18.15
Aug 7, 2026
b467518
fix(desktop): preserve macOS app on window close (#40974)
opencode-agent[bot] Aug 7, 2026
5347b5e
fix(app): register new home projects (#41018)
Brendonovich Aug 7, 2026
be25c90
docs(zen): replace Ling Flash with Tiny (#41027)
MrMushrooooom Aug 7, 2026
b05a0d1
fix(i18n): use 词元 instead of 令牌 for token in zh locale (#40977)
Speechlessmanbilibili Aug 7, 2026
284214c
feat(app): open project menu on right-click (#41013)
arvsrn Aug 7, 2026
2ea728f
fix(app): populate project picker from home (#41158)
Brendonovich Aug 8, 2026
fe82a1b
chore: generate
opencode-agent[bot] Aug 8, 2026
38e10eb
fix(opencode): ignore unknown config fields (#41312)
opencode-agent[bot] Aug 8, 2026
0bff28d
fix(stats): fall back after full sync failure (#41411)
opencode-agent[bot] Aug 9, 2026
d90532a
sync release versions for v1.18.16
Aug 10, 2026
941e71d
fix(app): use current default model (#38603)
Brendonovich Aug 10, 2026
550d1ff
fix(i18n): use widely recognized developer terminology (#41532)
opencode-agent[bot] Aug 10, 2026
032c159
Merge remote-tracking branch 'upstream/dev' into chore/sync-upstream-…
pankaj4u4m Aug 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,7 @@ jobs:
working-directory: packages/desktop
env:
NODE_OPTIONS: --max-old-space-size=4096
OPENCODE_VERSION: ${{ needs.version.outputs.version }}
OPENCODE_CHANNEL: ${{ (github.ref_name == 'beta' && 'beta') || 'prod' }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ vars.SENTRY_ORG }}
Expand All @@ -339,8 +340,7 @@ jobs:
env:
OPENCODE_CHANNEL: ${{ (github.ref_name == 'beta' && 'beta') || 'prod' }}
GH_TOKEN: ${{ steps.committer.outputs.token }}
CSC_LINK: ${{ secrets.APPLE_CERTIFICATE }}
CSC_KEY_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
CSC_KEYCHAIN: build.keychain
APPLE_API_KEY: ${{ runner.temp }}/apple-api-key.p8
APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY }}
APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }}
Expand Down
63 changes: 63 additions & 0 deletions .opencode/skills/rtl-aware-development/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
name: rtl-aware-development
description: OpenCode Desktop should be RTL-aware. Use when implementing or reviewing RTL/LTR behavior in the web app, desktop app, CSS, menus, scrolling, resizing, icons, mixed-direction text, or Electron title bars.
---

# RTL-Aware Development

Treat direction as independent from language. Test English in both directions as well as real RTL and mixed-script content.

## Guidelines

- Set `lang` and `dir` on the document, and propagate direction through component providers used by portaled menus and popovers. Do not change the selected locale merely to force RTL.
- Keep DOM and focus order semantic. Flexbox and Grid already follow `dir`; do not add `row-reverse`, CSS `order`, or reversed markup just to mirror a layout.
- Prefer logical CSS for semantic layout. Reserve physical coordinates for pointer positions, canvas geometry, native window controls, and other genuinely physical placement.

```css
/* Avoid */
padding-left: 12px;
right: 0;
border-right: 1px solid;
text-align: left;

/* Prefer */
padding-inline-start: 12px;
inset-inline-end: 0;
border-inline-end: 1px solid;
text-align: start;
```

- Isolate mixed-direction text. Use `dir="auto"` or `<bdi>` for unknown text; keep code, URLs, IDs, and filesystem paths LTR without forcing the surrounding component LTR.

```html
<span class="file-row"><bdi dir="auto">README.md</bdi></span> <bdi dir="ltr"><code>C:\src\app.ts</code></bdi>
```

- Mirror directional meaning, not every image. Back/forward, previous/next, disclosure, indentation, and directional progress may need mirroring. Do not mirror brands, clocks, media controls, charts, or text. Reverse physical gradients, `translateX`, SVG transforms, and animation deltas explicitly.
- Map interactions through direction. `clientX` remains physical; resizing a logical edge needs an RTL-aware delta. Logical previous/next keyboard controls may swap ArrowLeft/ArrowRight. Follow the relevant WAI-ARIA widget pattern.
- Do not assume LTR scrolling. RTL `scrollLeft` can start at `0` and become negative. Prefer `scrollIntoView({ inline: "nearest" })` or a tested direction-normalizing helper.
- For Electron title bars, prefer native caption controls and use `titleBarOverlay` plus `env(titlebar-area-*)` for the safe content rectangle. Keep Windows/macOS native-control avoidance and `trafficLightPosition` physical; keep app navigation inside that rectangle logical. Mark interactive titlebar children `app-region: no-drag`.
- Verify behavior, not screenshots alone. Check computed styles, pseudo-element geometry, hit zones, focus order, keyboard behavior, submenu direction, zoom/scaling, and both LTR and RTL scroll endpoints.

## Test Matrix

- English + LTR
- English + forced RTL
- A real RTL locale + RTL
- Mixed RTL/LTR content, long labels, numbers, code, and paths
- Keyboard, pointer resize, scrolling, menus/submenus, and Electron titlebar controls in both directions

## References

- [RTL Styling 101, Ahmad Shadeed](https://rtlstyling.com/posts/rtl-styling/)
- [CSS-Tricks: RTL Styling 101](https://css-tricks.com/rtl-styling-101/)
- [CSS-Tricks: CSS Logical Properties and Values](https://css-tricks.com/css-logical-properties-and-values/)
- [W3C: Structural markup and right-to-left text](https://www.w3.org/International/questions/qa-html-dir)
- [W3C: Inline bidirectional markup](https://www.w3.org/International/articles/inline-bidi-markup/)
- [MDN: CSS logical properties and values](https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Logical_properties_and_values)
- [MDN: `dir`](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/dir)
- [MDN: `scrollLeft`](https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft)
- [web.dev: Logical properties](https://web.dev/learn/css/logical-properties/)
- [Electron: Custom title bar](https://www.electronjs.org/docs/latest/tutorial/custom-title-bar)
- [WAI-ARIA: Window splitter pattern](https://www.w3.org/WAI/ARIA/apg/patterns/windowsplitter/)
- [Kobalte: I18n Provider](https://kobalte.dev/docs/core/components/i18n-provider/)
27 changes: 0 additions & 27 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -252,33 +252,6 @@ These are not strictly enforced, they are just general guidelines:

For net-new functionality, start with a design conversation. Open an issue describing the problem, your proposed approach (optional), and why it belongs in OpenCode. The core team will help decide whether it should move forward; please wait for that approval instead of opening a feature PR directly.

## Trust & Vouch System

This project uses [vouch](https://github.com/mitchellh/vouch) to manage contributor trust. The vouch list is maintained in [`.github/VOUCHED.td`](.github/VOUCHED.td).

### How it works

- **Vouched users** are explicitly trusted contributors.
- **Denounced users** are explicitly blocked. Issues and pull requests from denounced users are automatically closed. If you have been denounced, you can request to be unvouched by reaching out to a maintainer on [Discord](https://opencode.ai/discord)
- **Everyone else** can participate normally — you don't need to be vouched to open issues or PRs.

### For maintainers

Collaborators with write access can manage the vouch list by commenting on any issue:

- `vouch` — vouch for the issue author
- `vouch @username` — vouch for a specific user
- `denounce` — denounce the issue author
- `denounce @username` — denounce a specific user
- `denounce @username <reason>` — denounce with a reason
- `unvouch` / `unvouch @username` — remove someone from the list

Changes are committed automatically to `.github/VOUCHED.td`.

### Denouncement policy

Denouncement is reserved for users who repeatedly submit low-quality AI-generated contributions, spam, or otherwise act in bad faith. It is not used for disagreements or honest mistakes.

## Issue Requirements

All issues **must** use one of our issue templates:
Expand Down
Loading