Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions src/sentry/features/temporary.py
Original file line number Diff line number Diff line change
Expand Up @@ -379,8 +379,6 @@ def register_temporary_features(manager: FeatureManager) -> None:
manager.add("organizations:issue-stream-batched-latest-event-attachments", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, default=True, api_expose=False)
# Remove trace and breadcrumbs from issue summary input
manager.add("organizations:issue-summary-experimental", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=False)
# Enable new issue stream progress views
manager.add("organizations:issue-stream-progress-ui", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=True)
# Show the "recommended" sort as an option in the issue stream sort dropdown

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Bug: Removing the issue-stream-progress-ui feature flag will cause the inbox page to render a NotFound error because the frontend still relies on this flag to render.
Severity: CRITICAL

Suggested Fix

This change has a deployment dependency on a frontend pull request. Ensure the frontend PR, which removes the dependency on the issue-stream-progress-ui flag, is merged and deployed before this backend change. Alternatively, coordinate the deployment of both PRs to happen simultaneously to avoid breaking the inbox page.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent. Verify if this is a real issue. If it is, propose a fix; if not, explain why it's
not valid.

Location: src/sentry/features/temporary.py#L382

Potential issue: The pull request removes the backend registration for the
`organizations:issue-stream-progress-ui` feature flag. However, the frontend code in
`static/app/views/issueList/pages/inbox.tsx` checks for the presence of this flag to
render the inbox page. If this backend change is deployed before the corresponding
frontend change that removes this check, the condition
`organization.features.includes('issue-stream-progress-ui')` will always be false. This
will cause the component to return a `NotFound` page, making the entire inbox feature
inaccessible to all users.

Also affects:

  • static/app/views/issueList/pages/inbox.tsx:151

Did we get this right? 👍 / 👎 to inform future reviews.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This is expected, the other PR changes the frontend pieces

manager.add("organizations:issue-stream-recommended-sort", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=True)
# Make the "recommended" sort the default sort in the issue stream
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ def build_activity_notification_data(
issue_url = group.get_absolute_url()
if ActivityType(activity.type) in SEER_ACTIVITY_TYPES:
issue_url = group.get_absolute_url(params={"seerDrawer": "true"})
if features.has("organizations:issue-stream-progress-ui", organization):
if features.has("organizations:issue-inbox", organization):
Comment thread
malwilley marked this conversation as resolved.
issue_url = organization.absolute_url(
f"organizations/{organization.slug}/issues/inbox/",
query=urlencode({"project": project.id, "preview": group.id}),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ def test_build_activity_notification_data_user_settings_url_channel_excluded(sel

assert data.user_settings_url is None

@with_feature("organizations:issue-stream-progress-ui")
@with_feature("organizations:issue-inbox")
def test_build_activity_notification_data_seer_activity_inbox_url(self) -> None:
activity = self.create_group_activity(
group=self.group, type=ActivityType.SEER_RCA_STARTED.value
Expand All @@ -213,7 +213,7 @@ def test_build_activity_notification_data_seer_activity_inbox_url(self) -> None:
)
assert absolute_uri(expected_inbox_url) == data.issue_url

@with_feature("organizations:issue-stream-progress-ui")
@with_feature("organizations:issue-inbox")
def test_build_activity_notification_data_non_seer_activity_uses_issue_url(self) -> None:
activity = self.create_group_activity(
group=self.group, type=ActivityType.SET_RESOLVED.value
Expand Down
Loading