Skip to content

Commit c761eee

Browse files
committed
Merge commit 'd36a2d898' into sync/upstream-v1.18.4
2 parents 89f8ffc + d36a2d8 commit c761eee

1,858 files changed

Lines changed: 302451 additions & 110296 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.

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ blank_issues_enabled: false
22
contact_links:
33
- name: 💬 Discord Community
44
url: https://discord.gg/opencode
5-
about: For quick questions or real-time discussion. Note that issues are searchable and help others with the same question.
5+
about: For support, troubleshooting, how-to questions, and real-time discussion.

.github/ISSUE_TEMPLATE/question.yml

Lines changed: 0 additions & 10 deletions
This file was deleted.

.github/TEAM_MEMBERS

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
adamdotdevin
2+
arvsrn
23
Brendonovich
34
fwang
45
Hona
@@ -7,11 +8,14 @@ jayair
78
jlongster
89
kitlangton
910
kommander
11+
ludvigrask
1012
MrMushrooooom
1113
nexxeln
1214
R44VC0RP
1315
rekram1-node
1416
thdxr
1517
simonklee
18+
Slickstef11
19+
usrnk1
1620
vimtor
17-
starptech
21+
StarpTech

.github/actions/setup-bun/action.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,13 @@ inputs:
88
runs:
99
using: "composite"
1010
steps:
11+
# node-gyp@latest (invoked via bunx for native install scripts) requires Node >=22;
12+
# some runner images ship an older system Node on PATH
13+
- name: Setup Node
14+
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
15+
with:
16+
node-version: "24"
17+
1118
- name: Get baseline download URL
1219
id: bun-url
1320
shell: bash

.opencode/command/translate.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
description: translate English to other languages
3-
model: opencode/claude-opus-4-8
3+
model: opencode/gpt-5.6-sol
44
---
55

66
run git diff and translate changed english doc and UI copy files to other international languages. Translate all languages in parallel to save time.

.opencode/tool/github-triage.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { tool } from "@opencode-ai/plugin"
44
const TEAM = {
55
tui: ["kommander", "simonklee"],
66
desktop_web: ["Hona", "Brendonovich"],
7-
core: ["jlongster", "rekram1-node", "nexxeln", "kitlangton", "starptech"],
7+
core: ["jlongster", "rekram1-node", "nexxeln", "kitlangton"],
88
inference: ["fwang", "MrMushrooooom", "starptech"],
99
windows: ["Hona"],
1010
} as const

.prettierignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
sst-env.d.ts
22
packages/desktop/src/bindings.ts
3+
packages/client/src/generated/
4+
packages/client/src/generated-effect/

AGENTS.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
- To regenerate the JavaScript SDK, run `./packages/sdk/js/script/build.ts`.
1+
- To regenerate the legacy JavaScript SDK, run `./packages/sdk/js/script/build.ts`.
2+
- After changing the public Protocol or Server `HttpApi`, run `bun run generate` from `packages/client`. Do not edit `src/generated` or `src/generated-effect` directly.
3+
- Keep runtime dependencies directed from Schema to Core and Protocol, then from Core and Protocol to Server. Client runtime code may depend on Schema and Protocol but never Core or Server; `sdk-next` composes Client, Core, and Server.
24
- ALWAYS USE PARALLEL TOOLS WHEN APPLICABLE.
35
- Prefer automation: execute requested actions without confirmation unless blocked by missing info or safety/irreversibility.
46
- The default branch in this fork is `main`; upstream's default branch is `dev`.
@@ -29,6 +31,7 @@ Examples: `fix(tui): simplify thinking toggle styling`, `docs: update contributi
2931
- Rely on type inference when possible; avoid explicit type annotations or interfaces unless necessary for exports or clarity
3032
- Prefer functional array methods (flatMap, filter, map) over for loops; use type guards on filter to maintain type inference downstream
3133
- In `src/config`, follow the existing self-export pattern at the top of the file (for example `export * as ConfigAgent from "./agent"`) when adding a new config module.
34+
- In Effect generators, bind services to named variables before calling methods. Do not use nested service yields such as `yield* (yield* Foo.Service).bar()`.
3235

3336
Reduce total variable count by inlining when a value is only used once.
3437

@@ -138,7 +141,7 @@ const table = sqliteTable("session", {
138141

139142
## Testing
140143

141-
- Avoid mocks as much as possible
144+
- Avoid mocks as much as possible, you shouldn't be using globalThis.\* at all unless it's the only option.
142145
- Test actual implementation, do not duplicate logic into tests
143146
- Tests cannot run from repo root (guard: `do-not-run-tests-from-root`); run from package dirs like `packages/opencode`.
144147

@@ -226,7 +229,7 @@ runs this filtered command.
226229
- Keep `SessionExecution` process-global and Session-ID based. Its local implementation owns the process-local Session coordinator and discovers placement through `SessionStore` plus `LocationServiceMap.get(session.location)` only when a drain starts; no layer should take a Session ID. V2 interruption targets the active process-local ownership chain for that Session; idle or missing interruption is a no-op.
227230
- Keep `SessionRunner`, model resolution, tool registry, permissions, and filesystem Location-scoped. Omitted `Location.workspaceID` means implicit-local placement; explicit workspace identity remains reserved for future placement semantics.
228231
- Preserve one explicit `llm.stream(request)` call per provider turn and reload projected history before durable continuation. Do not bridge through legacy `SessionPrompt.loop(...)` or delegate orchestration to an in-memory tool loop.
229-
- Keep local Session drains process-local until clustering is implemented. `SessionRunCoordinator` joins explicit same-Session resumes, coalesces prompt wakeups, and allows different Sessions to run concurrently. Advisory wakes drain eligible durable inbox rows only; post-crash activity recovery requires a separate explicit design before it may retry provider work.
230-
- Keep delivery vocabulary explicit. Prompts steer by default and coalesce into the active activity at the next safe provider-turn boundary. Explicit `queue` inputs open FIFO future activities one at a time after the active activity settles.
232+
- Keep local Session drains process-local until clustering is implemented. `SessionRunCoordinator` joins explicit same-Session resumes, coalesces prompt wakeups, and allows different Sessions to run concurrently. Advisory wakes drain eligible durable inbox rows only; post-crash continuation recovery requires a separate explicit design before it may retry provider work. A drain has no durable identity or transcript boundary.
233+
- Keep delivery vocabulary explicit. Prompts steer by default and promote at the next safe provider-turn boundary while the current drain requires continuation. An explicit `queue` input remains pending until the Session would otherwise become idle; promote one queued input at that boundary, then reevaluate continuation before promoting another. Promoting any new user input resets the selected agent's provider-turn allowance; a batch of steers resets it once.
231234
- Keep EventV2 replay owner claims separate from clustered Session execution ownership.
232235
- Keep the System Context algebra, registry, and built-ins in `src/system-context`; keep Context Source producers with their observed domains, and keep Session History selection plus Context Epoch persistence Session-owned.

0 commit comments

Comments
 (0)