Skip to content

Conversation

@chromy
Copy link
Contributor

@chromy chromy commented Oct 13, 2025

Sentry projects have both ids (numerical) and slugs (string) here we
were using slugs but all the variables were named projectId which was
confusing.

@github-actions github-actions bot added the Scope: Frontend Automatically applied to PRs that change frontend components label Oct 13, 2025
@chromy chromy force-pushed the chromy/2025-10-13-rename-projectId-projectSlug branch from 8bb29a0 to a8398a6 Compare October 13, 2025 12:57
Sentry projects have both ids (numerical) and slugs (string) here we
were using slugs but all the variables were named projectId which was
confusing.
@chromy chromy force-pushed the chromy/2025-10-13-rename-projectId-projectSlug branch from a8398a6 to e40d7fe Compare October 14, 2025 11:19
<BuildDetailsHeaderContent
buildDetailsQuery={buildDetailsQuery}
projectId={projectId}
projectSlug={projectId}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rename the local projectid variable too

buildDetailsData={selectedBuildDetail}
artifactId={selectedBuildId}
projectId={null}
projectSlug={undefined}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be able to just leave out since undefined

obostjancic and others added 22 commits October 17, 2025 15:12
The work to derive code mappings for Java fell short of supporting multi
module directory structure.

This adds support for multi module directory structure behind a feature
flag.
Adds a route for `/activity-logs`, which is the same as `/usage-log`,
but allows us to render `Subscription > Activity Logs` instead of
`Subscription > Usage Log` when that route is hit.

<img width="725" height="210" alt="Screenshot 2025-10-10 at 2 47 08 PM"
src="https://github.com/user-attachments/assets/781a3120-fa2c-46c5-a96e-c389f118f77d"
/>
…mes (#101357)

Auto-opens the `Reserve additional volume` substep for customers that
already have at least one category reserved above platform volume.
Now that we've returned the `changedReason` column from the widget and
saved query apis we're creating the UI for these dropped fields
warnings. This is an example of what they look like:

Explore:
<img width="944" height="213" alt="image"
src="https://github.com/user-attachments/assets/5e4cfc09-a79f-4bd3-ad45-40417407ce3e"
/>

Widgets:
<img width="508" height="242" alt="image"
src="https://github.com/user-attachments/assets/19ee5b90-4012-4bad-8dbb-89cb83f404d6"
/>
…ult (#101408)

Turn off missing instrumentation warnings in the trace waterfall by
default.
<img width="740" height="41" alt="Screenshot 2025-10-13 at 15 28 38"
src="https://github.com/user-attachments/assets/03d6318f-dd9b-47a7-88d1-ff2bf57194dc"
/>

Co-authored-by: Daniel Griesser <[email protected]>
…101438)

Am1 customers should not see laravel/nextjs pages, I believe any
customers that doesn't have eap (which is only am1), should not see
laravel/nextjs.
<img width="469" height="716" alt="Screenshot 2025-10-10 at 1 43 32 PM"
src="https://github.com/user-attachments/assets/6b92d745-585c-46bd-b225-eafdad30f017"
/>

<img width="854" height="1652" alt="Screenshot 2025-10-10 at 11 27
32 AM"
src="https://github.com/user-attachments/assets/f6aa6082-bb6e-4b5a-a95c-c8b340d87283"
/>
Adds some nicer handling for `http.client` spans!

1. Uses semantic attributes (`"url.full"`, `"http.request.method"`) for
formatting
2. Adds a button to open the URL in a new tab, if possible
3. Adds the "source", so if the request has a known line number and file
name, it appears

If semantic attributes are not available, falls back to plain ho-hum
formatting.

Awaiting #101340 for the
`wordBreak` support.

**e.g.,**
<img width="680" height="331" alt="Screenshot 2025-10-09 at 4 55 16 PM"
src="https://github.com/user-attachments/assets/b8535b49-dcb3-44cf-a118-f0a457d09fc6"
/>
# before
<img width="403" height="509" alt="Screenshot 2025-10-14 at 10 10 46 AM"
src="https://github.com/user-attachments/assets/acb4dd30-a9bb-482f-9d8c-0cf260ef1e40"
/>

# after
<img width="420" height="491" alt="Screenshot 2025-10-14 at 10 10 35 AM"
src="https://github.com/user-attachments/assets/eee79083-49fc-41be-878b-c6e7875bd607"
/>
- Removed the `Trial available` tag as it was redundant with the trial
starter button
- Moved the `x days left` tag to the same column as the trial starter
button
- Renamed column key to be more accurate to column contents

<img width="1350" height="732" alt="Screenshot 2025-10-14 at 10 20
52 AM"
src="https://github.com/user-attachments/assets/ba523f61-05b3-4217-85b7-ea4fa79a6a2f"
/>
rm the feature flag CTA (was only ever shown to LD users)
Receives new query mode param from
getsentry/seer#3595 to correctly determine which
mode to use. The previous condition was not correct logic in all cases
- This makes the response of the timeseries endpoint consistent with
whether there's projects or not
- Without this the frontend would crash since it expects a valid
StatsResponse
- Closes ENG-5712
Quickly adding in a tooltip (and fixing backwards color states), to help
inform users what will result when clicking on the button.
### Summary
Span fields should probably be eventually removed, but for the time
being we still shouldn't show hidden attribute names
… backend (#101439)

two things in this pr: 
1. we're making sure that all updated migrated saved queries in explore
have the `spans` dataset instead of saving with the `segment_spans`
dataset
2. we're passing in `USER` as the dataset source for spans widgets so
that when they're updated we can set the dropped fields to null (backend
change to follow)
- Removes spans and logs columns
- Add call to discover endpoint to get error counts by trace ID
- Renders timestamp using the same renderer as logs

Closes LOGS-407
Delayed workflows tasks are currently all scheduled every minute.
This frequency (60s) is what we want, but running them all at once makes
our load bursty, and causes some rate limits to be frequently hit in
Snuba querying.

This change establishes "cohorts" and schedules one cohort at a time,
allowing us to smoothly transition to N groups of `delayed_workflow`
tasks per minute, one every 1/Nth of a minute, smoothing out our
workload.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Introduce cohort-sharded scheduling for delayed workflows, persisting
cohort run timestamps in Redis and refactoring processing/cleanup; add
pydantic-based Redis helpers and a new num_cohorts option.
> 
> - **Workflow Engine (Scheduling & Processing)**
> - Introduce cohort-sharded scheduling via `ProjectChooser` and
`chosen_projects`, selecting projects per run based on
`workflow_engine.num_cohorts`.
> - Persist cohort run timestamps in Redis as `CohortUpdates` using
`DelayedWorkflowClient.fetch_updates/persist_updates`.
> - Refactor cleanup into `mark_projects_processed`; compute
`max_project_timestamp` and use conditional delete or range clear
accordingly.
> - **Buffer Layer**
> - Add `RedisHashSortedSetBuffer.get_parsed_key/put_parsed_key` for
pydantic models; extend supported ops and expiry handling.
> - Extend `DelayedWorkflowClient` with `_COHORT_UPDATES_KEY` and cohort
update helpers.
> - **Options**
>   - Add `workflow_engine.num_cohorts` (Int, default `1`).
> - **Tests**
> - Convert to pytest-style and add coverage for cohort selection, Redis
parsed key helpers, and new scheduling/cleanup flows.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
87a09d0. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: getsantry[bot] <66042841+getsantry[bot]@users.noreply.github.com>
)

- This adds a test for doing case insensitivity with wildcards
- Requires getsentry/snuba#7452 to pass
scttcper and others added 24 commits October 17, 2025 15:12
)

We were adding `event.type:transactions` to transaction detectors, but
it doesn't seem necessary and displays an error in the filter..

<img width="509" height="113" alt="image"
src="https://github.com/user-attachments/assets/c8f7a288-7ec5-45c7-9478-3c88876dce25"
/>
Improves the ASCII "screenshot" we capture alongside user queries.
- hooks into e-charts to render ASCII graphs
- mirrors text truncation and wrapping done in the UI to match the real
layout more closely
- excludes Sentry left nav from the screenshot

<img width="658" height="430" alt="Screenshot 2025-10-13 at 10 55 38 AM"
src="https://github.com/user-attachments/assets/dc658130-61ce-4e11-be09-ffb44e948df4"
/>
Register custom copy for trace query tool

<img width="1030" height="608" alt="Screenshot 2025-10-11 at 7 08 45 PM"
src="https://github.com/user-attachments/assets/ba4e9fdf-36d1-450d-b809-92e1c4ed140e"
/>
…101489)

Since, going forward, we are only branding issue debugging features as
Seer, let's remove the Seer icons from the user feedback AI summaries &
categories and the replay AI summary.

Also, replay AI summary is using a different badge component. Let's
switch over to using the same one as UF for consistency.

Before:
<img width="683" height="99" alt="Screenshot 2025-10-14 at 3 04 24 PM"
src="https://github.com/user-attachments/assets/337eda93-96ff-4e77-bc0a-d3ed9291bdd1"
/>

<img width="462" height="98" alt="Screenshot 2025-10-14 at 3 06 36 PM"
src="https://github.com/user-attachments/assets/d5250d1a-5966-4940-a66a-a4cee7fa06f1"
/>

After: 
<img width="685" height="89" alt="Screenshot 2025-10-14 at 3 24 43 PM"
src="https://github.com/user-attachments/assets/e961ac97-01c4-4283-ada7-95c4445c3eab"
/>

<img width="462" height="98" alt="Screenshot 2025-10-14 at 3 04 50 PM"
src="https://github.com/user-attachments/assets/0a368164-b18a-434d-b68e-38e33e029b17"
/>
Try to point people towards the router returned from render, has no use
in the new test environment.
Apply the formatting we use for single metric charts to those with
group-bys as well. This will fix a bug where charts are not getting
processed in Seer correctly
**Problem**

When creating a new project, users can configure alerts to be sent to a
Slack, Discord, or Microsoft Teams channel. Currently, the channel name
is entered manually in a text field, with no pre-validation to verify
that the channel actually exists.

As a result, users may enter an invalid or non-existent channel. The
issue is only detected after the form is submitted, when Sentry attempts
to validate the channel. If the channel is invalid, an error is returned
and the project creation fails.

The experience is further complicated when projects are created via the
modal (for example, when a user selects a vanilla platform like
JavaScript, a modal is displayed asking if they want to use a more
specific framework, and they can submit the form from there). If project
creation fails due to an invalid channel, the resulting error appears
beneath the modal and is difficult to see. (This UI issue will be
addressed in a separate PR.)


**Solution**

To improve the user experience, we propose replacing the manual text
field with a searchable Select field where users can choose a channel
from a list (This will be done in multiple PRs and this is the first
one).

This PR introduces a new endpoint:
`/integrations/(slack/discord/msteams)/channels/`


- For Slack, the API supports cursor-based pagination and limit
parameter
- For Microsoft Teams and Discord, which return the full channel list
without pagination, we implement cursor and limit manually and cache
results to reduce repeated API requests.

This helps users select an existing channel and reduces the likelihood
of project creation failing due to invalid channel.


contributes to
https://linear.app/getsentry/issue/TET-1229/implement-dropdown-or-validation-for-slack-field
…date_project_config (#101331)"

This reverts commit 06aedf6.

Co-authored-by: shellmayr <[email protected]>
…irection (#101065)

This changes the way how the "NoProjectMessage" is shown on mobile and
tablet. A little padding is always added, so that the corners are not
touching the browser borders.

<details>
<summary>
Before on various mobile devices:
</summary>
<img width="300" height="940" alt="iPhonePro12_b"
src="https://github.com/user-attachments/assets/556db191-0162-4ea2-8a70-c77c75f3c36a"
/>

<img width="300" height="1119" alt="iPadMini_b"
src="https://github.com/user-attachments/assets/b1ce2569-52de-49cf-9304-9d99223257cf"
/>

<img width="300" height="1145" alt="iPadAir_b"
src="https://github.com/user-attachments/assets/5e331af2-f417-48ab-8f59-c7c407d97edf"
/>

</details>

<details>
<summary>
After on various mobile devices:
</summary>

<img width="300" height="928" alt="iPhonePro12"
src="https://github.com/user-attachments/assets/1714fbbf-9599-4a6c-a595-e39de992d87e"
/>

<img width="300" height="1114" alt="iPadMini"
src="https://github.com/user-attachments/assets/2e1ef4ea-c43c-42f3-be49-68d9f609ce2f"
/>

<img width="300" height="1142" alt="iPadAir"
src="https://github.com/user-attachments/assets/50e775cc-bfd6-458c-b294-1d1f0e3fcdee"
/>

</details>
**Problem**
Users who have paginated a table (with tableCursor in the URL) may
encounter an empty page when they change the project, environment, or
date. This happens because the pagination cursor points to a page that
may not exist in the new context, even though results are available.

**Solution**
We should follow the behaviour of Discover tables and reset pagination
cursors whenever the project, environment, or date changes.
This PR makes `contains` the default operator for string filters.

Ticket EXP-499
This makes the granularity of the stack root consistent rather than
trying to optimize number of created code mappings.

This also removes the option and old code path from #101288.
Enable the SDK flag to add code source attributes to spans representing slow HTTP requests.

Closes #101500

---------

Co-authored-by: getsantry[bot] <66042841+getsantry[bot]@users.noreply.github.com>
Tweaks the Usage Overview table to make it more obvious when you can
click a row. Changes:
- changes row background on hover
- surfaces button on hover
- add-on dropdown behavior now occurs on whole row, as opposed to just
on a button in the first column for that add-on
- adjusted some column widths for larger screens
- opening a new drawer should replace the browser URL instead of adding
to the browser history


https://github.com/user-attachments/assets/a9f2087e-f751-4733-a4c8-df63e5478bd9

Closes BIL-1671 and BIL-1679
Closes BIL-1681, BIL-1682, BIL-1683:
- hides PAYG and Next Bill card for free plans

<img width="2278" height="432" alt="Screenshot 2025-10-14 at 4 43 55 PM"
src="https://github.com/user-attachments/assets/180d1dd2-b62d-4cda-8ca7-abff3dd16c76"
/>

- Shows empty bar for 0% Seer usage
<img width="719" height="157" alt="Screenshot 2025-10-14 at 4 45 26 PM"
src="https://github.com/user-attachments/assets/358f7cee-d697-410f-b5f3-6d2a53dcedec"
/>
- Start replay recording every time any of the Usage & Billing settings
pages are navigated to
- Remove `trackSubscriptionView`; this event has been removed and we can
use the automated Page View events instead
- Add route analytics param for whether the page view is with the new UI
flag
- Automatically add analytics params for new checkout and new UI for all
events defined in `trackGetsentryAnalytics`, instead of needing to
manually add these flags for every relevant event
- Adds some missing analytics events
- Add feedback form button to every Usage & Billing settings page

Closes BIL-1594, BIL-1595, and BIL-1640
Sentry projects have both ids (numerical) and slugs (string) here we
were using slugs but all the variables were named projectId which was
confusing.
@github-actions github-actions bot added the Scope: Backend Automatically applied to PRs that change backend components label Oct 17, 2025
@github-actions
Copy link
Contributor

🚨 Warning: This pull request contains Frontend and Backend changes!

It's discouraged to make changes to Sentry's Frontend and Backend in a single pull request. The Frontend and Backend are not atomically deployed. If the changes are interdependent of each other, they must be separated into two pull requests and be made forward or backwards compatible, such that the Backend or Frontend can be safely deployed independently.

Have questions? Please ask in the #discuss-dev-infra channel.

@getsantry
Copy link
Contributor

getsantry bot commented Nov 8, 2025

This issue has gone three weeks without activity. In another week, I will close it.

But! If you comment or otherwise update it, I will reset the clock, and if you remove the label Waiting for: Community, I will leave it alone ... forever!


"A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀

@getsantry getsantry bot added the Stale label Nov 8, 2025
@getsantry getsantry bot closed this Nov 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Backend Automatically applied to PRs that change backend components Scope: Frontend Automatically applied to PRs that change frontend components Stale

Projects

None yet

Development

Successfully merging this pull request may close these issues.