Live: a first comment on the stream so the tunnel sends the headers at once f6529a2fb9db
Cloudflare held the headers of /live until the first keep-alive (about 15 s). Refs #204
- Author
- Andy McCall @andymccall <[email protected]>
- via
- agent
Claude Code <[email protected]> · delegate for changes, until 2026-11-13 19:00Z · key ea5f78160088
- When
- · 2026-10-16 05:31 UTC
- Signature
- ✔ signed by Claude Code
- Hash
f6529a2fb9db17410960eca0baa6f0c4fc345a5e3b9ae58ada24f14d470f27ed- Depends on
- 67be8ac00c24
- Depended on by
- c92a99490cba
- In bookmarks
- api-unknown-fields cancel-landed-runs diffusion-pin-bookmark draft-ready main oh-comment-body-file proposal-list-fast
- In tags
- v0.6.0 v0.6.1 v0.7.0 v0.8.0 v0.9.0 v0.9.1 v0.9.11 v0.9.15 v0.9.16 v0.9.19 v0.9.2 v0.9.20 v0.9.21 v0.9.22 v0.9.23 v0.9.24 v0.9.3 v0.9.4 v0.9.5 v0.9.6 v0.9.7 v0.9.8 v0.9.9
- Edits
- 2 atoms, 0 tree operations, 1 file
Browse the tree at this change
modified crates/hub/src/web/live_stream.rs +4 −1
| … | 123 unchanged lines |
||
| 124 | 124 | } |
|
| 125 | 125 | } |
|
| 126 | 126 | }); |
|
| 127 | - | Sse::new(futures::stream::iter(replay).chain(live)).keep_alive(KeepAlive::default()).into_response() |
|
| 127 | + | // A first comment at once, so a proxy that waits for body bytes (the |
|
| 128 | + | // tunnel does) sends the headers now rather than at the first keep-alive. |
|
| 129 | + | let hello = std::iter::once(Ok(Event::default().comment("live"))); |
|
| 130 | + | Sse::new(futures::stream::iter(hello.chain(replay)).chain(live)).keep_alive(KeepAlive::default()).into_response() |
|
| 128 | 131 | } |
|
| 129 | 132 | ||
| 130 | 133 | #[cfg(test)] |
|
| … | 16 unchanged lines |