diff --git a/static/app/views/insights/llmMonitoring/views/llmMonitoringDetailsPage.tsx b/static/app/views/insights/llmMonitoring/views/llmMonitoringDetailsPage.tsx
index ae6071da2d9a92..b4e5b87da53bd6 100644
--- a/static/app/views/insights/llmMonitoring/views/llmMonitoringDetailsPage.tsx
+++ b/static/app/views/insights/llmMonitoring/views/llmMonitoringDetailsPage.tsx
@@ -1,3 +1,5 @@
+import {Fragment} from 'react';
+
import FeatureBadge from 'sentry/components/badge/featureBadge';
import {Breadcrumbs} from 'sentry/components/breadcrumbs';
import * as Layout from 'sentry/components/layouts/thirds';
@@ -146,7 +148,20 @@ export function LLMMonitoringPage({params}: Props) {
{isInDomainView && (
-
+
+ {spanDescription}
+
+
+ }
+ breadcrumbs={[
+ {
+ label: t('Pipeline Summary'),
+ },
+ ]}
+ module={ModuleName.AI}
+ />
)}
diff --git a/static/app/views/insights/llmMonitoring/views/llmMonitoringLandingPage.tsx b/static/app/views/insights/llmMonitoring/views/llmMonitoringLandingPage.tsx
index 1951d97653f000..f91c5d2e7ad84f 100644
--- a/static/app/views/insights/llmMonitoring/views/llmMonitoringLandingPage.tsx
+++ b/static/app/views/insights/llmMonitoring/views/llmMonitoringLandingPage.tsx
@@ -1,3 +1,5 @@
+import {Fragment} from 'react';
+
import FeatureBadge from 'sentry/components/badge/featureBadge';
import {Breadcrumbs} from 'sentry/components/breadcrumbs';
import ButtonBar from 'sentry/components/buttonBar';
@@ -65,7 +67,18 @@ export function LLMMonitoringPage() {
)}
{isInDomainView && (
-
+
+ {MODULE_TITLE}
+
+
+ }
+ module={ModuleName.AI}
+ />
)}
diff --git a/static/app/views/insights/mobile/screens/views/screensLandingPage.spec.tsx b/static/app/views/insights/mobile/screens/views/screensLandingPage.spec.tsx
index cdf079c6b19269..3ac21d5fa72690 100644
--- a/static/app/views/insights/mobile/screens/views/screensLandingPage.spec.tsx
+++ b/static/app/views/insights/mobile/screens/views/screensLandingPage.spec.tsx
@@ -83,7 +83,7 @@ describe('Screens Landing Page', function () {
action: 'PUSH',
hash: '',
key: '',
- pathname: '/organizations/org-slug/performance/mobile/mobile-screens',
+ pathname: '/organizations/org-slug/insights/mobile/mobile-screens',
query: {
project: project.id,
},
diff --git a/static/app/views/insights/mobile/screens/views/screensLandingPage.tsx b/static/app/views/insights/mobile/screens/views/screensLandingPage.tsx
index cd0dc9e594aac6..c4353014a7b836 100644
--- a/static/app/views/insights/mobile/screens/views/screensLandingPage.tsx
+++ b/static/app/views/insights/mobile/screens/views/screensLandingPage.tsx
@@ -1,4 +1,4 @@
-import {useCallback, useState} from 'react';
+import {Fragment, useCallback, useState} from 'react';
import styled from '@emotion/styled';
import omit from 'lodash/omit';
@@ -314,7 +314,21 @@ export function ScreensLandingPage() {
)}
- {isInDomainView && }
+ {isInDomainView && (
+
+ {MODULE_TITLE}
+
+
+ }
+ headerActions={isProjectCrossPlatform && }
+ module={ModuleName.MOBILE_SCREENS}
+ />
+ )}
diff --git a/static/app/views/insights/pages/ai/aiOverviewPage.tsx b/static/app/views/insights/pages/ai/aiOverviewPage.tsx
index e18ea160f3557d..aa517302178c1e 100644
--- a/static/app/views/insights/pages/ai/aiOverviewPage.tsx
+++ b/static/app/views/insights/pages/ai/aiOverviewPage.tsx
@@ -24,6 +24,7 @@ import * as ModuleLayout from 'sentry/views/insights/common/components/moduleLay
import {ToolRibbon} from 'sentry/views/insights/common/components/ribbon';
import {useOnboardingProject} from 'sentry/views/insights/common/queries/useOnboardingProject';
import {AiHeader} from 'sentry/views/insights/pages/ai/aiPageHeader';
+import {AI_LANDING_TITLE} from 'sentry/views/insights/pages/ai/settings';
import {OVERVIEW_PAGE_TITLE} from 'sentry/views/insights/pages/settings';
import {generateGenericPerformanceEventView} from 'sentry/views/performance/data';
import {TripleChartRow} from 'sentry/views/performance/landing/widgets/components/widgetChartRow';
@@ -124,7 +125,7 @@ function AiOverviewPage() {
renderDisabled={NoAccess}
>
-
+
diff --git a/static/app/views/insights/pages/ai/aiPageHeader.tsx b/static/app/views/insights/pages/ai/aiPageHeader.tsx
index 094ccc3d499fae..89fe16ac060ee0 100644
--- a/static/app/views/insights/pages/ai/aiPageHeader.tsx
+++ b/static/app/views/insights/pages/ai/aiPageHeader.tsx
@@ -4,17 +4,22 @@ import {
AI_LANDING_SUB_PATH,
AI_LANDING_TITLE,
} from 'sentry/views/insights/pages/ai/settings';
-import {DomainViewHeader} from 'sentry/views/insights/pages/domainViewHeader';
+import {
+ DomainViewHeader,
+ type Props as HeaderProps,
+} from 'sentry/views/insights/pages/domainViewHeader';
import {DOMAIN_VIEW_BASE_URL} from 'sentry/views/insights/pages/settings';
import {ModuleName} from 'sentry/views/insights/types';
type Props = {
- headerActions?: React.ReactNode;
- module?: ModuleName;
+ headerTitle: HeaderProps['headerTitle'];
+ breadcrumbs?: HeaderProps['additionalBreadCrumbs'];
+ headerActions?: HeaderProps['additonalHeaderActions'];
+ module?: HeaderProps['selectedModule'];
};
// TODO - add props to append to breadcrumbs and change title
-export function AiHeader({module, headerActions}: Props) {
+export function AiHeader({module, headerTitle, headerActions, breadcrumbs}: Props) {
const {slug} = useOrganization();
const aiBaseUrl = normalizeUrl(
@@ -26,10 +31,12 @@ export function AiHeader({module, headerActions}: Props) {
return (
);
}
diff --git a/static/app/views/insights/pages/backend/backendPageHeader.tsx b/static/app/views/insights/pages/backend/backendPageHeader.tsx
index 9b85bc8359e55a..9c14bd0f3a89e8 100644
--- a/static/app/views/insights/pages/backend/backendPageHeader.tsx
+++ b/static/app/views/insights/pages/backend/backendPageHeader.tsx
@@ -25,6 +25,7 @@ export function BackendHeader({module, headerActions}: Props) {
return (
- } />
+ }
+ />
diff --git a/static/app/views/insights/pages/mobile/mobilePageHeader.tsx b/static/app/views/insights/pages/mobile/mobilePageHeader.tsx
index 8202e9868aa87b..d279da1e05b487 100644
--- a/static/app/views/insights/pages/mobile/mobilePageHeader.tsx
+++ b/static/app/views/insights/pages/mobile/mobilePageHeader.tsx
@@ -1,7 +1,9 @@
-import type {Crumb} from 'sentry/components/breadcrumbs';
import normalizeUrl from 'sentry/utils/url/normalizeUrl';
import useOrganization from 'sentry/utils/useOrganization';
-import {DomainViewHeader} from 'sentry/views/insights/pages/domainViewHeader';
+import {
+ DomainViewHeader,
+ type Props as HeaderProps,
+} from 'sentry/views/insights/pages/domainViewHeader';
import {
MOBILE_LANDING_SUB_PATH,
MOBILE_LANDING_TITLE,
@@ -11,15 +13,14 @@ import {isModuleEnabled} from 'sentry/views/insights/pages/utils';
import {ModuleName} from 'sentry/views/insights/types';
type Props = {
- breadcrumbs?: Crumb[];
- headerActions?: React.ReactNode;
- headerTitle?: React.ReactNode;
- hideDefaultTabs?: boolean;
- module?: ModuleName;
- tabs?: {onTabChange: (key: string) => void; tabList: React.ReactNode; value: string};
+ headerTitle: HeaderProps['headerTitle'];
+ breadcrumbs?: HeaderProps['additionalBreadCrumbs'];
+ headerActions?: HeaderProps['additonalHeaderActions'];
+ hideDefaultTabs?: HeaderProps['hideDefaultTabs'];
+ module?: HeaderProps['selectedModule'];
+ tabs?: HeaderProps['tabs'];
};
-// TODO - add props to append to breadcrumbs and change title
export function MobileHeader({
module,
hideDefaultTabs,
@@ -43,7 +44,8 @@ export function MobileHeader({
return (