Repository navigation
Conversation
The issues export has a row for every occurrence. In a grouped report each repeated occurrence carries a "Duplicate Issue of" link to its main issue, and the dashboard leaves those rows out of its issue count. startAccessibilityScan and fetchAccessibilityIssues counted every row, so a scan the dashboard shows as 79 issues was reported as "We found 122 issues". The parser now returns main issues only, folds each duplicate into the issue its link points at (duplicate_count), and returns how many duplicates it left out; both tools state that number next to the total. A duplicate whose main issue cannot be identified is counted only there. Reports without the "Duplicate Issue of" column are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The scan and issue tools return one text block per message. A client that joins the blocks with no separator (Claude Code does) runs the report link into the next block's first word: "...&Key-Pair-Id=KWDR32L2KWU1BWe found 122 issues". The key pair id is opaque, so an agent copying the link takes the "W" with it and the download fails with 403 InvalidKey. Each block now ends with a newline. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…low Analyzer reports fetchAccessibilityIssues read only Website Scanner runs, so an agent that ran an SDK test with accessibility on, or was handed a Workflow Analyzer report, had no way to read its issues. The API already exports both the same way as a scan run: start a CSV export, poll the same route with the task id, download the link. Only the route and its parameter names differ. The tool now takes exactly one source: scanId with scanRunId, buildId (the Accessibility build id, thBuildId in the report link), or workflowReportId. The fetcher builds each source's export URLs; the parser, duplicate folding and paging are unchanged. A build the API does not find (the Automate build id is one) gets a message naming the id to pass instead, and the next-page hint repeats the source's own arguments. Rows now carry affected_page, since builds and Workflow Analyzer reports span several pages, and source_test when the export has a "Source test" column (Automated Tests builds). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…V link An agent handed a dashboard report link had to find the ids itself, and fetchAccessibilityIssues returned parsed issues but not the CSV. Both now go through the tool. reportUrl takes a Website Scanner or Automated Tests report link. An Automated Tests link carries its build id. A Website Scanner link carries one run's thBuildId, which only the scan list can map to ids: each scan there carries its latest run's link, so the newest scans are walked (15 pages) for a match. A link to an older run is reported as such, with the scan's id, rather than guessed at. The list is walked at its default page size: at limit=50 or 100 its cursor skips scans. Every answer now includes the CSV's download link, as startAccessibilityScan already does. When a link was resolved the answer says to what, and the next-page hint uses the ids, so later pages skip the lookup. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ading its issues
An agent that fetched an SDK build's issues right after the test run got 14
issues, called final ("All issues retrieved"); the build completed minutes
later with 27. After the tests end a build stays "finalizing" (advanced
issue processing, for an advanced scan) and the export serves whatever
exists so far.
fetchAccessibilityIssues now reads the report's status first: a scan run's
status endpoint, a Workflow Analyzer report's summary, and for a build its
project's build list, since the build overview carries no status. While it
is queued, running, processing or finalizing, a first read waits, polling
every 10 s for up to 5 min with progress notifications, then reads the
issues and says it waited. If processing outlasts the wait, the answer
says the issues are only those found so far and to fetch again, instead of
"All issues retrieved". A later page does not wait again, and a status
that cannot be read is not waited on.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
Collaborator
Author
|
Superseded by #503, the same change raised from a branch in this repo instead of a fork, so the stacked PRs show only their own changes. |
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 agent that fetched an SDK build's accessibility issues right after the test run reported 14 issues as final ("✅ All issues retrieved"). The build completed minutes later with 27. After the tests end, a build stays
finalizing, which on an advanced scan is the dashboard's "advanced issue processing", and the export serves whatever exists so far.Recorded on a fresh build, polling every 5 s:
list_builds)runningfinalizingcompletedChange
fetchAccessibilityIssuesreads the report's status before reading its issues:GET …/scans/{id}/scan_runs/{run}/statusGET …/reports/{id}→summary.statuslist_buildsrow (the build overview has no status), found by id in the newest buildsqueued/running/processing/finalizing), a first read waits: it polls every 10 s for up to 5 min, the same budgetstartAccessibilityScanuses, and sends progress notifications. Then it reads the issues and says it waited.Verification
Ran a fresh SDK test (accessibility + advanced on) and called this branch's build over MCP the moment the run ended:
Without this change the same call returns 14. New tests cover each source's status read (including a build found on the second page of its project's list, and an unreadable status), no wait when complete, waiting through
finalizing(fake timers), the warning when processing outlasts the wait, no wait on later pages, and progress notifications.npm run build(lint, format, 1336 tests, tsc) passes.API follow-up (optional): the Automated Tests build overview (
GET /api/automated-tests/v1/builds/{id}) has nostatus, so the MCP reads it from the project's build list.get_build_summaryalready holds the TestHub objectlist_buildstakes it from, so adding it there is one line and would make this a single call.🤖 Generated with Claude Code