Repository navigation
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
|
🏷 The following changes will be made to the repository labels |
jaydgoss
force-pushed
the
jaygoss/vdy-307-onboarding-evals-ai-evals-label-workflow-in-sentry-docs
branch
from
October 23, 2026 20:35
24d89cc to
4494c9e
Compare
jaydgoss
force-pushed
the
jaygoss/vdy-307-onboarding-evals-ai-evals-label-workflow-in-sentry-docs
branch
from
October 23, 2026 20:53
6ff3ac3 to
fe82fea
Compare
jaydgoss
force-pushed
the
jaygoss/vdy-307-onboarding-evals-ai-evals-label-workflow-in-sentry-docs
branch
from
October 23, 2026 22:06
0e1b2fb to
3cdc6d4
Compare
jaydgoss
marked this pull request as ready for review
October 23, 2026 23:44
jaydgoss
added a commit
that referenced
this pull request
Oct 26, 2026
…#20225) ## DESCRIBE YOUR PR Production build URLs (`sentry-docs-<hash>.sentry.dev`) now serve their own pages to requests that have an `x-sentry-evals-pin` header, instead of 308ing them to docs.sentry.io. Everyone else is still redirected as in #19033, and these responses still get `X-Robots-Tag: noindex`. [sentry-for-ai-evals](https://github.com/getsentry/sentry-for-ai-evals) compares a docs PR's preview with the docs at the PR's merge base, and that commit's production build is the only copy of those. The redirect sends the evals to the live docs instead, so a PR that's behind master gets everything master gained since counted as its own change. The evals' docs proxy sends the header, and #20214 points the base at the merge base's build. Like the redirect, the header isn't a security boundary: previews are already public, and an old build only has docs that were once live. Only builds made after this merges check for the header, so older merge bases keep reading the live docs. Refs [VDY-307](https://linear.app/getsentry/issue/VDY-307/onboarding-evals-ai-evals-label-workflow-in-sentry-docs) ## IS YOUR CHANGE URGENT? Help us prioritize incoming PRs by letting us know when the change needs to go live. Select exactly one option. For deadlines, replace `YYYY-MM-DD` with the due date. You can update this information later by editing the PR description. - [ ] Urgent deadline (GA date, etc.): YYYY-MM-DD - [ ] Other deadline: YYYY-MM-DD - [x] No deadline: Not urgent, can wait up to 1 week+ ## SLA - Teamwork makes the dream work, so please add a reviewer to your PRs. - Please give the docs team up to 1 week to review your PR unless you've supplied a deadline. Thanks in advance for your help! ## PRE-MERGE CHECKLIST _Make sure you've checked the following before merging your changes:_ - [ ] Checked Vercel preview for correctness, including links - [ ] PR was reviewed and approved by any necessary SMEs (subject matter experts) - [ ] PR was reviewed and approved by a member of the [Sentry docs team](https://github.com/orgs/getsentry/teams/docs) 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
An ai-evals:<mark>[:<models>] label runs the sentry-for-ai-evals suites with sentry-for-ai's main skills on both sides. The head reads docs.sentry.io from the PR's Vercel preview and the base from the live docs, so the comparison shows what the PR's docs change. The plan job waits for the preview before it creates the runs on evals.sentry.dev, and fails with a clear message when Vercel builds no sentry-docs preview, as for a PR that only changes develop-docs. The live docs follow master, so a head that is behind master is missing what master gained since. The workflow's PR comment says how many commits behind the head was; updating the branch reruns the evals against master plus only the PR. The labels go in labels.yml, since the label sync deletes any label missing from it. Fixes VDY-307 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ai-evals:nextjs:opus-5.5 runs only the Next.js products test, once getsentry/sentry-for-ai-evals#88 gives it a nextjs mark. Refs VDY-307 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Both were created on the repo without an entry here, so the next label sync would delete them. Good First Issue is on open issues. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ai-evals:no_tools:opus-5.5 runs the tests that give the agent no Sentry skills or MCP, only the docs, so base and head differ only in the docs. They come from getsentry/sentry-for-ai-evals#79 and need getsentry/sentry-for-ai-evals#75 to get runs on evals.sentry.dev. The PR comment no longer says the skills read the docs, since these tests install none. Refs VDY-307 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ai-evals:llms_txt:opus-5.5 runs only the no-tools test that starts from docs.sentry.io/llms.txt, for PRs that change llms.txt. It needs the llms_txt mark from getsentry/sentry-for-ai-evals#89. Refs VDY-307 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A label's tests ran one after another in one container per target and side, so the llms.txt test waited behind the other no-tools openings and each saw what the one before it left behind. sentry-for-ai-evals' create-runs now lists a job per test, target and side, and the matrix runs those.
Drops the Opus 5.5 labels for the products, no-tools and llms.txt evals and adds `ai-evals:llms_txt:sonnet-5.5`, so the eval labels are `ai-evals:products` and that one.
sentry-for-ai-evals labels can end in `:x<count>` to repeat each test, so the llms.txt label becomes `ai-evals:llms_txt:sonnet-5.5:x3`, and a docs change gets three samples per side instead of one.
sentry-evals[bot] already comments on the PR with each label's runs, so the workflow's own comment repeated them, and a newly added label replaced the earlier labels' links in it. The one thing only it said, that a head behind master counts master's changes as the PR's, is now a warning from the plan job, and the workflow no longer has a token that can write to the PR.
The plan job's `runs` and `count` outputs had no reader, since the eval job checks `docs-url`, and actions/checkout already outputs the commit it checked out, so the step that ran git rev-parse for it is gone.
The base read today's live docs, so a head behind master had the commits it was missing counted as part of the PR. The plan job now finds the merge base's production deploy and gives its URL to the base jobs, whose docs proxy sends the header that keeps it from redirecting to docs.sentry.io. A deploy built before middleware.ts checked for that header still redirects, so for those, or a merge base with no production deploy, the base reads the live docs and the plan job warns as before. Refs VDY-307
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
pull_request.base.sha is a snapshot from the event and can lag the base branch, so behind_by stayed 0 and the fallback never warned. Compare against base.ref and record the tip it resolves to. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
sentry-for-ai-evals is internal, and this repo's checks and logs listed its test names: in each job's name, and in run-evals' `test:` input, which GitHub prints at the top of the step. The jobs now pass the test's number (`test-index`) and count, which run-evals turns back into the test, and are named `test <n>`. evals.sentry.dev has each test's result. Needs getsentry/sentry-for-ai-evals#97. Refs VDY-312
run-evals checks it against the tests it collects, so a job fails rather than run another test than create-runs numbered. Needs getsentry/sentry-for-ai-evals#97. Refs VDY-312
jaydgoss
force-pushed
the
jaygoss/vdy-307-onboarding-evals-ai-evals-label-workflow-in-sentry-docs
branch
from
October 26, 2026 19:21
db89678 to
a40ad2c
Compare
ai-evals:products runs both products tests on every model, at both the head and the base, so 8 jobs each time it's added and again on every push. The llms.txt label on Sonnet stays, and with no products label in labels.yml the sync won't create one.
The base reads the merge base's production deploy since #20225, not the live docs.
Sentry Evalssentry-for-ai-evals:llms_txt:sonnet-5.5:x3 (Comparison)
|
jaydgoss
deleted the
jaygoss/vdy-307-onboarding-evals-ai-evals-label-workflow-in-sentry-docs
branch
October 26, 2026 20:01
This branch was successfully 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.
DESCRIBE YOUR PR
Adds an
AI Evalsworkflow that runs the sentry-for-ai-evals suites on a PR labeledai-evals:<mark>[:<models>][:x<count>], the same labels sentry-for-ai uses. Both sides use the skills from sentry-for-ai'smain, so only the docs differ. The head reads docs.sentry.io from the PR's Vercel preview (sentry-for-ai-evals#77), and the base reads the production deploy of the PR's merge base. Results go to evals.sentry.dev, whose bot comments on the PR with each label's runs, and a new push reruns every eval label still on the PR.:x<count>runs each test that many times (sentry-for-ai-evals#94). Jobs are named by the test's number and pass run-evalstest-index,test-totalandcount, so this repo's logs don't name the internal repo's tests (sentry-for-ai-evals#97).master's commits the head is missing. Updating the branch reruns the evals.labels.ymlgetsai-evals:llms_txt:sonnet-5.5:x3, which runs the test that starts from llms.txt three times per side on Sonnet 5.5, for PRs that change llms.txt. That test gives the agent no Sentry skills or MCP, only the docs (sentry-for-ai-evals#92, #89). Unlike sentry-for-ai there's noai-evals:productslabel, since it starts 8 jobs on every push. The label sync deletes any label missing from that file, so it also addsGood First Issueandjs-v11-docs, which exist on the repo but not in the file.Tested through #20217, #20116's diff on top of this branch:
ai-evals:llms_txt:opus-5.5completed with the head reading the preview's llms.txt, andai-evals:llms_txt:x3passed 6 of 6 on each side. Then on this PR, rebased on #20225:ai-evals:llms_txt:sonnet-5.5:x3passed 3 of 3 on each side, with the base reading the merge base's production deploy and the jobs namedtest 1totest 3. The fallback ran locally: #20116's merge base, built before #20225, gets the live docs and the warning (102 commits behind).Fixes VDY-307
IS YOUR CHANGE URGENT?
Help us prioritize incoming PRs by letting us know when the change needs to go live.
Select exactly one option. For deadlines, replace
YYYY-MM-DDwith the due date. You can update this information later by editing the PR description.SLA
Thanks in advance for your help!
PRE-MERGE CHECKLIST
Make sure you've checked the following before merging your changes:
🤖 Generated with Claude Code