Kit Langton
cb588ab4b9
fix(bus): acquire PubSub subscription eagerly to close /event race
...
`bus.subscribe(def)` and `bus.subscribeAll()` previously returned a
`Stream` whose underlying `PubSub.subscribe` ran lazily on first pull
(via `Stream.unwrap`). When a Stream was built in one place and consumed
in another — e.g. the `/event` SSE handler, which returns the stream
inside `HttpServerResponse.stream` for the body-pump fiber to consume
later — any publish in the hand-off window was lost.
The `/event` handler's `Stream.concat(server.connected, events)` shape
made this concrete: the events stream's PubSub.subscribe was only run
*after* `server.connected` was emitted and flushed to the socket, so
publishes that landed between the client receiving `server.connected`
and the body-pump fiber pulling from `events` were silently dropped.
SDK consumers (`client.event.subscribe()`, the Slack bot,
`opencode run --attach`) hit this routinely because they typically
subscribe and then trigger something that publishes (e.g.
`sdk.part.update`).
Change the bus interface so subscribe / subscribeAll return
`Effect<Stream, never, Scope>`. The subscription is now acquired
eagerly when the caller yields the effect, lives in the caller's
scope, and is released by the scope's finalizer. Any publish after
`yield*` is buffered into the subscription queue regardless of when
the consumer activates.
Migrated callers:
- /event handler (handlers/event.ts)
- plugin/index.ts
- project/project.ts
- project/vcs.ts
- share/share-next.ts
Regression tests added:
- test/bus/bus-effect.test.ts — 3 unit tests for eager subscribe,
including the /event-shape Stream.concat pattern.
- test/server/httpapi-event-diagnostics.test.ts — 7 diagnostic
tests (D1-D7) isolating each variable in the publisher chain. D7
(no-op AppRuntime warmup) is the smallest regression trigger.
- test/server/httpapi-sdk.test.ts — end-to-end SDK subscription
through /event during a sync.run-driven publish.
2026-05-16 22:32:55 -04:00
Dax Raad
77db212a0a
fix read stream byte cap
2026-05-16 09:20:35 -04:00
Dax
53849bd866
fix(sync): publish events on injected project bus ( #27825 )
compliance-close / close-non-compliant (push) Has been cancelled
beta / sync (push) Has been cancelled
docs-update / update-docs (push) Has been cancelled
deploy / deploy (push) Has been cancelled
generate / generate (push) Has been cancelled
nix-eval / nix-eval (push) Has been cancelled
nix-hashes / compute-hash (blacksmith-4vcpu-ubuntu-2404, x86_64-linux) (push) Has been cancelled
nix-hashes / compute-hash (blacksmith-4vcpu-ubuntu-2404-arm, aarch64-linux) (push) Has been cancelled
nix-hashes / compute-hash (macos-15-intel, x86_64-darwin) (push) Has been cancelled
nix-hashes / compute-hash (macos-latest, aarch64-darwin) (push) Has been cancelled
nix-hashes / update-hashes (push) Has been cancelled
publish / version (push) Has been cancelled
publish / build-cli (push) Has been cancelled
publish / sign-cli-windows (push) Has been cancelled
publish / build-electron (map[bun_install_flags:--os=darwin --cpu=arm64 host:macos-26 platform_flag:--mac --arm64 target:aarch64-apple-darwin]) (push) Has been cancelled
publish / build-electron (map[bun_install_flags:--os=darwin --cpu=x64 host:macos-26-intel platform_flag:--mac --x64 target:x86_64-apple-darwin]) (push) Has been cancelled
publish / build-electron (map[host:blacksmith-4vcpu-ubuntu-2404 platform_flag:--linux target:x86_64-unknown-linux-gnu]) (push) Has been cancelled
publish / build-electron (map[host:blacksmith-4vcpu-ubuntu-2404-arm platform_flag:--linux --arm64 target:aarch64-unknown-linux-gnu]) (push) Has been cancelled
publish / build-electron (map[host:blacksmith-4vcpu-windows-2025 platform_flag:--win target:x86_64-pc-windows-msvc]) (push) Has been cancelled
publish / build-electron (map[host:windows-2025 platform_flag:--win --arm64 target:aarch64-pc-windows-msvc]) (push) Has been cancelled
publish / publish (push) Has been cancelled
storybook / storybook build (push) Has been cancelled
test / unit (linux) (push) Has been cancelled
test / unit (windows) (push) Has been cancelled
test / e2e (linux) (push) Has been cancelled
test / e2e (windows) (push) Has been cancelled
typecheck / typecheck (push) Has been cancelled
containers / build (push) Has been cancelled
stats / stats (push) Has been cancelled
close-prs / close (push) Has been cancelled
close-issues / close (push) Has been cancelled
2026-05-16 05:56:49 +00:00
Sebastian
cc9c0b15c7
Revert "add dialog prompt submit keybind ( #27807 )" ( #27815 )
2026-05-16 04:44:32 +02:00
Kit Langton
f3b0d3d7ac
fix(tui): dedupe consecutive prompt history entries ( #27816 )
2026-05-16 02:36:35 +00:00
Sebastian
d441e931f9
add dialog prompt submit keybind ( #27807 )
2026-05-16 03:11:46 +02:00
opencode-agent[bot]
d6b23fd8f6
chore: generate
2026-05-16 00:44:10 +00:00
Kit Langton
5911bd532d
fix(tui): show config error details on startup ( #27803 )
2026-05-15 20:42:56 -04:00
Sebastian
0f31fd631b
Fix multiline mentions ( #27649 )
2026-05-15 23:04:20 +02:00
Shoubhit Dash
65f96a5851
refactor(instance): retire WithInstance adapter ( #27782 )
2026-05-16 01:30:07 +05:30
Aiden Cline
48122b31cc
fix(tool): bridge custom tool zod metadata ( #27770 )
2026-05-15 14:50:21 -05:00
opencode-agent[bot]
0df2f5b45f
chore: generate
2026-05-15 19:48:45 +00:00
Shoubhit Dash
499e8e4b78
test(instance): add effect-native fixture helpers ( #27781 )
2026-05-16 01:17:37 +05:30
Shoubhit Dash
0c9cfe923f
refactor(instance): remove legacy runtime fallback ( #27757 )
2026-05-15 23:05:44 +05:30
opencode-agent[bot]
9975c1ed1c
chore: generate
2026-05-15 15:12:20 +00:00
Aiden Cline
ef7d801271
fix(tool): preserve custom tool arg descriptions ( #27750 )
...
Co-authored-by: khimaros <231498+khimaros@users.noreply.github.com >
2026-05-15 10:11:01 -05:00
Shoubhit Dash
1c7c03332e
test(workspace): avoid legacy instance reads ( #27727 )
2026-05-15 17:07:21 +05:30
opencode-agent[bot]
984eefa6f8
chore: generate
2026-05-15 11:02:14 +00:00
Shoubhit Dash
bf64f8cbb5
refactor(cli): dispose bootstrap instance explicitly ( #27721 )
2026-05-15 16:30:54 +05:30
Shoubhit Dash
e65383810a
refactor(tool): read repo overview directory from instance state ( #27717 )
2026-05-15 16:14:49 +05:30
Shoubhit Dash
356f684186
refactor(flags): migrate skip migrations flag ( #27705 )
2026-05-15 14:54:29 +05:30
Shoubhit Dash
7b370406a9
refactor(flags): migrate lsp download flag ( #27699 )
2026-05-15 14:35:31 +05:30
Shoubhit Dash
202cc863b4
refactor(flags): migrate claude code prompt flag ( #27690 )
2026-05-15 14:17:04 +05:30
Shoubhit Dash
22cb0395e2
refactor(flags): migrate external skills flag ( #27685 )
2026-05-15 13:24:56 +05:30
Shoubhit Dash
2d6bedecd4
refactor(flags): migrate output token max to runtime flags ( #27680 )
2026-05-15 13:07:35 +05:30
opencode-agent[bot]
2080390ca6
chore: generate
2026-05-15 07:36:10 +00:00
Kagura
1ac3f09468
fix(watcher): resolve symlinked .git path before subscribing ( #27016 )
...
Co-authored-by: Simon Klee <hello@simonklee.dk >
2026-05-15 09:34:53 +02:00
Dax Raad
7a012cac08
fix(tool): ignore invalid custom tool exports
2026-05-14 23:36:28 -04:00
Dax
e11e089e42
Add Effect-native core event system ( #27415 )
2026-05-15 00:50:23 +00:00
Kit Langton
195f592640
refactor(server): simplify listener lifecycle ( #27413 )
2026-05-15 00:00:52 +00:00
opencode-agent[bot]
78769010a1
chore: generate
2026-05-14 23:46:57 +00:00
Kit Langton
4e143e3a3e
test(lib): promote pollWithTimeout/awaitWithTimeout helpers ( #27626 )
2026-05-14 23:45:32 +00:00
opencode-agent[bot]
dab567aa2d
chore: generate
2026-05-14 23:34:42 +00:00
Kit Langton
9d35b04e13
test(acp): replace fixed sleeps with pollUntil in event-subscription ( #27624 )
2026-05-14 23:33:06 +00:00
Kit Langton
273ab56949
test(bus): fix flaky subscriber races with readiness latch ( #27625 )
2026-05-14 19:32:25 -04:00
Kit Langton
302ba0ca0b
test(session): de-flake shell-cancel tests by waiting for busy state ( #27622 )
2026-05-14 19:24:09 -04:00
Shoubhit Dash
d35e09f1fc
test(workspace): use runtime flags in workspace tests ( #27612 )
2026-05-15 04:19:39 +05:30
Shoubhit Dash
fc34c74567
refactor(flags): move channel db flag to runtime flags ( #27615 )
2026-05-15 04:09:10 +05:30
Shoubhit Dash
cb4f5cdea9
refactor(flags): move auto share to runtime flags ( #27611 )
2026-05-15 03:58:26 +05:30
nv-kasikritc
d34a0194ec
feat(provider): add NVIDIA endpoints origin header ( #27394 )
2026-05-14 17:21:58 -05:00
Shoubhit Dash
43310f4d8c
refactor(flags): move embedded web ui flag to runtime flags ( #27613 )
2026-05-15 03:51:29 +05:30
Shoubhit Dash
e22cfa435a
refactor(lsp): move ty flag to runtime flags ( #27610 )
2026-05-15 03:40:30 +05:30
opencode-agent[bot]
93b1ccc029
chore: generate
2026-05-14 22:00:48 +00:00
Shoubhit Dash
faca2b90c1
refactor(flags): migrate icon discovery runtime flag ( #27609 )
2026-05-15 03:24:14 +05:30
Shoubhit Dash
76ff18afde
refactor(format): move oxfmt flag to runtime flags ( #27608 )
2026-05-15 03:03:37 +05:30
opencode-agent[bot]
9914c9af17
chore: generate
2026-05-14 21:32:52 +00:00
Shoubhit Dash
f202226bbc
refactor(flags): move bash timeout to runtime flags ( #27607 )
2026-05-15 02:49:14 +05:30
Shoubhit Dash
34198f422c
refactor(provider): use runtime flag for experimental models ( #27606 )
2026-05-15 02:48:01 +05:30
Shoubhit Dash
cccdeef294
refactor(flags): migrate claude code skills flag to RuntimeFlags ( #27605 )
2026-05-15 02:47:26 +05:30
Kit Langton
d353a6bc24
fix(worktree): accept missing create payload ( #27582 )
2026-05-14 14:25:22 -04:00