Skip to content

perf(cli): Skip adjacent-event lookups on project event details - #1712

Merged
BYK merged 2 commits into
mainfrom
perf/cli-project-event-collapse
Oct 29, 2026
Merged

BYK merged 2 commits into
mainfrom
perf/cli-project-event-collapse

Conversation

@sentry-junior

@sentry-junior sentry-junior Bot commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

@sentry/api 0.423.0, which #1713 bumped on main, defaults collapse=adjacentEvents on getOrganizationIssueEvent and getProjectEvent (getsentry/sentry-api-schema#112 and #113). With it, Sentry skips the next/previous-event lookups. Nothing in the CLI reads nextEventID or previousEventID.

Requests that change:

A tier test confirms that project event URLs with the param stay volatile.

Behavior notes

--

View Junior Session in Sentry

@vercel

vercel Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
sentry-local Skipped Skipped Oct 29, 2026 11:24am UTC

Request Review

@github-actions github-actions Bot added the risk: medium PR risk score: medium label Oct 29, 2026
BYK added a commit that referenced this pull request Oct 29, 2026
Task 8.2 of the `unify-sentry-api-layer` change (#1669): the MCP's issue
and event reads in `SentryApiService` now call `@sentry/api` operations
instead of building `requestJSON(apiPath`...`)` URLs by hand.

The calls go through the existing `sdkClient()` bridge, the same one the
organization, team, and project lists use. The SDK only builds the path
and query. The MCP still owns auth, host and region routing, retries,
the `ApiError` mapping (HTTP status kept), and Zod parsing. The bridge
also rejects any URL that doesn't match the `apiPath` result, so
path-traversal protection is unchanged. When 6.1 lands, that bridge is
the one place to swap in the injected fetch. Tool output and snapshots
don't change.

**Events**
- `getEventForIssue` → `getOrganizationIssueEvent`. Since 0.421.0,
`@sentry/api` sends `collapse=adjacentEvents` by default
(getsentry/sentry-api-schema#112, server side getsentry/sentry#129094),
so the hand-added `?collapse=adjacentEvents` from #1705 is gone. The
existing request test still checks the parameter for `latest`, `oldest`,
`recommended`, and a hex ID. The generated `event_id` type lists only
the three aliases, so a hex ID needs a narrow cast.
- `listEventsForIssue` → `listOrganizationIssueEvents`. It no longer
sends `sort`. The generated operation has no such parameter, and
`GroupEventsEndpoint` ignores it: results always come back `-timestamp`
first. `search_issue_events` still uses its sort for the Discover link.
Tests now check that link instead of the ignored query parameter.
- `listEventAttachments` → `listProjectEventAttachments`.
`getEventAttachment` reuses it for the metadata lookup.
- The MCP never calls the project event details endpoint, so there was
no explicit `collapse` to keep. `getProjectEvent` defaults it anyway as
of 0.423.0 (getsentry/sentry-api-schema#113).

**Issues**
- `listIssues`, `getIssue`, `getIssueTagValues`,
`getIssueExternalLinks`, `listIssueIntegrations`, and `getAutofixState`
now use their operations. `listIssues` still sends `query=` when it's
empty, because Sentry applies `is:unresolved` only when the parameter is
missing. A new test covers this. The two link lists share a small
`collectAllPages` walker with `listIssueLinkPages`, which the Sentry App
lists still use. The external-issues operation has no `per_page`, so
that call relies on Sentry's default page size of 100, which is what it
used to send.

**Still on `requestJSON`/`request()`**
- No `@sentry/api` operation: issue notes (`createIssueComment`,
`listIssueComments`), `getIssueActivity`, `getIssueUserReports`,
`getEventCommitters`.
- Writes: `updateIssue`, `linkNativeExternalIssue`,
`unlinkNativeExternalIssue`, `unlinkSentryAppExternalIssue`,
`startAutofix`. `sdkClient()` only forwards GETs. Letting it forward
write bodies now would be replaced by the 6.1 transport anyway. The
generated types also don't fit yet: `updateOrganizationIssue` marks
every body field required, and `deleteOrganizationIssueIntegration`
types `externalIssue` as a number.
- The attachment download (`?download=1`) and its redirect probe stay on
`request()`, because they read binary data or the redirect URL rather
than JSON.

The pnpm catalog moves `@sentry/api` from 0.420.0 to 0.423.0, the latest
published version. #1712 makes the same bump, so either PR can land
first. Regenerating the CLI's `api-schema.json` and
`idempotent-operations.json` against 0.423.0 produced no changes.

<!-- junior-request-attribution:start -->
via **BYK**.
<!-- junior-request-attribution:end -->

<!-- junior-session-footer:start -->
<!-- junior-conversation-id:agent%3A707535afec19b080fa2f8ef966a9edba -->

--

[View Junior Session in
Sentry](https://sentry.sentry.io/explore/conversations/agent%3A707535afec19b080fa2f8ef966a9edba/?project=4510944073809921)

<!-- junior-session-footer:end -->

---------

Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com>
Co-authored-by: BYK <burak.kaya@sentry.io>
@sentry/api 0.423.0 (bumped in #1713) defaults `collapse=adjacentEvents`
on getOrganizationIssueEvent and getProjectEvent. CLI getEvent() now
sends it on the project event-details endpoint too (supported since
getsentry/sentry#129123), and getLatestEvent() drops the explicit param
it added in #1705 in favor of the SDK default. Tests assert both
requests still carry the param.

Co-Authored-By: BYK <burak.kaya@sentry.io>
@sentry-junior
sentry-junior Bot force-pushed the perf/cli-project-event-collapse branch from 5675344 to 1b0b9e0 Compare October 29, 2026 10:57
Comment thread packages/cli/test/lib/api-client.coverage.test.ts Outdated
@BYK
BYK enabled auto-merge (squash) October 29, 2026 11:27
@BYK
BYK merged commit 6b5c859 into main Oct 29, 2026
45 of 47 checks passed
@BYK
BYK deleted the perf/cli-project-event-collapse branch October 29, 2026 11:42

This branch was previously deployed

1 inactive deployment
Preview — 471694e6 Deployed Oct 29, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk: medium PR risk score: medium

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant