Skip to content

Commit bffac69

Browse files
Merge remote-tracking branch 'fork/feat/hot-reload-smooth' into feat/hot-reload-smooth
2 parents 088e798 + 6d38185 commit bffac69

File tree

105 files changed

+6063
-1219
lines changed

Some content is hidden

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

105 files changed

+6063
-1219
lines changed

.opencode/command/commit.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,12 @@ wip:
1616

1717
For anything in the packages/web use the docs: prefix.
1818

19-
For anything in the packages/app use the ignore: prefix.
20-
2119
prefer to explain WHY something was done from an end user perspective instead of
2220
WHAT was done.
2321

2422
do not do generic messages like "improved agent experience" be very specific
2523
about what user facing changes were made
2624

27-
if there are changes do a git pull --rebase
2825
if there are conflicts DO NOT FIX THEM. notify me and I will fix them
2926

3027
## GIT DIFF
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
github-policies:
2+
runners:
3+
allowed_groups:
4+
- "GitHub Actions"
5+
- "blacksmith runners 01kbd5v56sg8tz7rea39b7ygpt"

AGENTS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,3 +110,4 @@ const table = sqliteTable("session", {
110110

111111
- Avoid mocks as much as possible
112112
- Test actual implementation, do not duplicate logic into tests
113+
- Tests cannot run from repo root (guard: `do-not-run-tests-from-root`); run from package dirs like `packages/opencode`.

bun.lock

Lines changed: 323 additions & 258 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-FsFTitxnN2brebZDBRGJB0NWTOVYDa/QcNRH0ip/Gk4=",
4-
"aarch64-linux": "sha256-knSEqEPyonBUfmGZKTq5Om4HikItWbfPdfT7p6iljzs=",
5-
"aarch64-darwin": "sha256-uRgWfuOlLECRCOszm8XhySiWxu9IdDhpSbosPZPAZVI=",
6-
"x86_64-darwin": "sha256-gHuA+Ud9L+XLvKm5Vp5jCXfZWOtunnmX/lB8vczHsG0="
3+
"x86_64-linux": "sha256-hVf8rBEqy3q4xexOqyKDtKmlMydl1hFoDV0JiEvmfgs=",
4+
"aarch64-linux": "sha256-4m3UZllEmfJXB70cOgIoyWRIYMXxGzzenyOfF3kEQKk=",
5+
"aarch64-darwin": "sha256-27xGR9+FVnC0rsUIyepk2tCP1eEUmGvqWUGAZ+rk7IQ=",
6+
"x86_64-darwin": "sha256-+At7bHSeg6QJu6yGawyvzt53Tu/fddDg6Ms+xhaMLhY="
77
}
88
}

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@
4040
"@tailwindcss/vite": "4.1.11",
4141
"diff": "8.0.2",
4242
"dompurify": "3.3.1",
43+
"drizzle-kit": "1.0.0-beta.12-a5629fb",
44+
"drizzle-orm": "1.0.0-beta.12-a5629fb",
4345
"ai": "5.0.124",
4446
"hono": "4.10.7",
4547
"hono-openapi": "1.1.2",

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.1.65",
3+
"version": "1.2.1",
44
"description": "",
55
"type": "module",
66
"exports": {

packages/app/src/context/global-sync/event-reducer.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,24 @@ export function applyDirectoryEvent(input: {
231231
}
232232
break
233233
}
234+
case "message.part.delta": {
235+
const props = event.properties as { messageID: string; partID: string; field: string; delta: string }
236+
const parts = input.store.part[props.messageID]
237+
if (!parts) break
238+
const result = Binary.search(parts, props.partID, (p) => p.id)
239+
if (!result.found) break
240+
input.setStore(
241+
"part",
242+
props.messageID,
243+
produce((draft) => {
244+
const part = draft[result.index]
245+
const field = props.field as keyof typeof part
246+
const existing = part[field] as string | undefined
247+
;(part[field] as string) = (existing ?? "") + props.delta
248+
}),
249+
)
250+
break
251+
}
234252
case "vcs.branch.updated": {
235253
const props = event.properties as { branch: string }
236254
if (input.store.vcs?.branch === props.branch) break

packages/console/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/console-app",
3-
"version": "1.1.65",
3+
"version": "1.2.1",
44
"type": "module",
55
"license": "MIT",
66
"scripts": {

packages/console/app/src/routes/zen/util/handler.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ export async function handler(
110110
providerInfo.modifyBody({
111111
...createBodyConverter(opts.format, providerInfo.format)(body),
112112
model: providerInfo.model,
113+
...(providerInfo.payloadModifier ?? {}),
113114
}),
114115
)
115116
logger.debug("REQUEST URL: " + reqUrl)
@@ -274,8 +275,8 @@ export async function handler(
274275
part = part.trim()
275276
usageParser.parse(part)
276277

277-
if (providerInfo.bodyModifier) {
278-
for (const [k, v] of Object.entries(providerInfo.bodyModifier)) {
278+
if (providerInfo.responseModifier) {
279+
for (const [k, v] of Object.entries(providerInfo.responseModifier)) {
279280
part = part.replace(k, v)
280281
}
281282
c.enqueue(encoder.encode(part + "\n\n"))
@@ -285,7 +286,7 @@ export async function handler(
285286
}
286287
}
287288

288-
if (!providerInfo.bodyModifier && providerInfo.format === opts.format) {
289+
if (!providerInfo.responseModifier && providerInfo.format === opts.format) {
289290
c.enqueue(value)
290291
}
291292

0 commit comments

Comments
 (0)