-
Notifications
You must be signed in to change notification settings - Fork 8.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(core): Flush responses for ai streaming endpoints #10633
Conversation
c6cd76f
to
b1b27c7
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can confirm that this works as expected but would like for somebody in the back-end team to take a look also.
A bit more context: This is a fix that enables AI Assistant intermediate steps streaming in Firefox (was working in Chrome without this).
You should be seeing something like this:
https://github.com/user-attachments/assets/324cbfa7-aa14-45bb-aedc-3a700fa1d5fd
In order to test in UI:
- Run n8n locally from this branch (ai-assistant-improvements)
- Start AI Assistant chat from any non-code node
n8n Run #6708
Run Properties:
|
Project |
n8n
|
Branch Review |
flush-streaming-ai-responses
|
Run status |
Passed #6708
|
Run duration | 04m 44s |
Commit |
61a2980967: 🌳 🖥️ browsers:node18.12.0-chrome107 🤖 netroy 🗃️ e2e/*
|
Committer | कारतोफ्फेलस्क्रिप्ट™ |
View all properties for this run ↗︎ |
Test results | |
---|---|
Failures |
0
|
Flaky |
0
|
Pending |
0
|
Skipped |
0
|
Passing |
422
|
View all changes introduced in this branch ↗︎ |
✅ All Cypress E2E specs passed |
b1b27c7
to
61a2980
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 🚀
✅ All Cypress E2E specs passed |
* master: fix(core): Flush responses for ai streaming endpoints (#10633) fix: Re-enable infra provisioning and teardown (no-changelog) (#10636) feat(core): Execution curation (#10342) fix(Webhook Node): Add tests for utils (no-changelog) (#10613) fix: Fixes to cloud benchmarks (no-changelog) (#10634) test: Add JS CodeNode benchmark scenario (#10632) refactor(editor): Migrate `MainSidebar.vue` to composition API (no-changelog) (#10538) build: Fix `cli` nodemon config (#10628) docs: Add 'benchmark' scope to PR Title Conventions documentation (#10624) ci: Fixes to benchmarks in cloud (#10626) test(editor): Increase test coverage for users settings page and modal (#10623) fix(Wait Node): Append n8n attribution option (#10585) refactor(editor): Migrate `NodeSettings.vue` to composition API (#10545) fix(editor): Add pinned data only to manual executions in execution view (#10605) ci: Omit benchmark scope commits from changelog (no-changelog) (#10618) fix: Disable errors obfuscation (no-changelog) (#10617) ci: Fix script name in gh workflow (#10619) ci: Fix nightly image not being pushed to ghcr (#10620)
Got released with |
Summary
When an endpoint in our current setup wants to stream responses, it needs to call
res.flush()
after every chunk is written.In the long run we should probably move this check into
ControllerRegistry
, and check that if a controller method returns aReadableStream
, then we automatically setup streaming. But that requires a bit more refactor that is beyond the scope of this PR.Review / Merge checklist