From 3f305abc8cc27896c109a3ccea68197f4331bee5 Mon Sep 17 00:00:00 2001 From: Andrew Liu <159852527+aliu39@users.noreply.github.com> Date: Mon, 17 Nov 2025 14:40:59 -0800 Subject: [PATCH 1/2] feat(explorer): support caseInsensitive param --- src/sentry/seer/explorer/tools.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/sentry/seer/explorer/tools.py b/src/sentry/seer/explorer/tools.py index 8b57892a364dd6..77d1d3ebb863da 100644 --- a/src/sentry/seer/explorer/tools.py +++ b/src/sentry/seer/explorer/tools.py @@ -190,6 +190,7 @@ def execute_table_query( project_ids: list[int] | None = None, project_slugs: list[str] | None = None, sampling_mode: SAMPLING_MODES = "NORMAL", + case_insensitive: bool | None = None, ) -> dict[str, Any] | None: """ Execute a query to get table data by calling the events endpoint. @@ -222,6 +223,10 @@ def execute_table_query( "referrer": Referrer.SEER_RPC, } + # Add boolean params only if provided. + if case_insensitive is not None: + params["caseInsensitive"] = "1" if case_insensitive else "0" + # Remove None values params = {k: v for k, v in params.items() if v is not None} @@ -247,7 +252,8 @@ def execute_timeseries_query( project_ids: list[int] | None = None, project_slugs: list[str] | None = None, sampling_mode: SAMPLING_MODES = "NORMAL", - partial: Literal["0", "1"] | None = None, + partial: bool | None = None, + case_insensitive: bool | None = None, ) -> dict[str, Any] | None: """ Execute a query to get chart/timeseries data by calling the events-stats endpoint. @@ -281,7 +287,6 @@ def execute_timeseries_query( "projectSlug": project_slugs, "sampling": sampling_mode, "referrer": Referrer.SEER_RPC, - "partial": partial, "excludeOther": "0", # Always include "Other" series } @@ -289,6 +294,13 @@ def execute_timeseries_query( if group_by and get_dataset(dataset) in TOP_EVENTS_DATASETS: params["topEvents"] = 5 + # Add boolean params only if provided. + if partial is not None: + params["partial"] = "1" if partial else "0" + + if case_insensitive is not None: + params["caseInsensitive"] = "1" if case_insensitive else "0" + # Remove None values params = {k: v for k, v in params.items() if v is not None} @@ -714,7 +726,7 @@ def _get_issue_event_timeseries( stats_period=stats_period, interval=interval, project_ids=[project_id], - partial="1", + partial=True, ) if data is None: From 435c40929847e5ebe116bf706fba575238f68fab Mon Sep 17 00:00:00 2001 From: Andrew Liu <159852527+aliu39@users.noreply.github.com> Date: Wed, 19 Nov 2025 12:37:43 -0800 Subject: [PATCH 2/2] lint --- src/sentry/seer/explorer/tools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sentry/seer/explorer/tools.py b/src/sentry/seer/explorer/tools.py index 1620cd91f35d49..f102b235483d70 100644 --- a/src/sentry/seer/explorer/tools.py +++ b/src/sentry/seer/explorer/tools.py @@ -1,7 +1,7 @@ import logging import uuid from datetime import UTC, datetime, timedelta, timezone -from typing import Any, Literal, cast +from typing import Any, cast from sentry import eventstore, features from sentry.api import client