Repository navigation
test(e2e): Add node-flue-send-to-sentry test app - #25550
Open
RulaKhaled wants to merge 3 commits into
Open
RulaKhaled wants to merge 3 commits into
RulaKhaled wants to merge 3 commits into
Conversation
RulaKhaled
added this pull request to stack #25551
October 20, 2026 10:34
A Flue app on Node that runs real OpenRouter turns and reads the gen_ai
spans back from a real Sentry project, with a `latest` variant. Also
checks in `node-flue` that each turn sits under the request that sent it,
and fixes its weather tool to read `({ data })`, the way Flue 2 passes
tool input.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ry apps Use the conventions search aliases and op constants, assert token usage, cost and the tool's arguments and result rather than presence alone, check that every chat span sits under the agent span, put the parent relationships into the wait conditions so the checks cannot run before the spans land, give the polls a 400s timeout, and report the response body when a turn is not admitted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
RulaKhaled
force-pushed
the
test/node-flue-send-to-sentry-e2e
branch
from
October 20, 2026 11:57
357d873 to
c062e1f
Compare
Collaborator
Author
|
bugbot run |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want reviews to match your repository better? Bugbot Learning can learn team-specific rules from PR activity. A team admin can enable Learning in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit c062e1f. Configure here.
…span tests The model chooses the `get_weather` argument and may send `Berlin, Germany` as well as `Berlin`, so match on the city name rather than the exact string, as the Paris check already does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
RulaKhaled
marked this pull request as ready for review
October 20, 2026 12:36
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

An e2e app that uses the Flue integration the way a user does and sends the data to a real Sentry project, per #24753. Cloudflare already has one (
cloudflare-flue-send-to-sentry, #24816), so this covers Node.Stacked on #25549. Without that fix every turn after the first lands in the first request's trace, which these tests catch. This PR targets its branch and retargets to
developonce it merges.The app. A built Flue server, with
Sentry.initimported first and@sentry/node/importpreloaded, runs real tool-calling turns through OpenRouter. The router answers202before a turn runs, so the tests find each trace by thegen_ai.conversation.idFlue reports back, as the Cloudflare app does.@flue/runtimeis pinned to 2.0.5 likenode-flue, with a(latest)variant.node-fluenow checks that each turn sits under the request that sent it. Its weather tool also reads({ data }), the way Flue 2 passes tool input, so it stops answering "sunny in undefined".Closes #24753
🤖 Generated with Claude Code