Skip to content

feat(conversations): Add conversation detail page with new design#112571

Merged
obostjancic merged 4 commits intomasterfrom
ognjenbostjancic/tet-2122-apply-marthas-new-conversations-design
Apr 10, 2026
Merged

feat(conversations): Add conversation detail page with new design#112571
obostjancic merged 4 commits intomasterfrom
ognjenbostjancic/tet-2122-apply-marthas-new-conversations-design

Conversation

@obostjancic
Copy link
Copy Markdown
Member

@obostjancic obostjancic commented Apr 9, 2026

Add standalone conversation detail page with breadcrumb navigation, summary header with aggregated stats, and split-panel conversation view. Refactor conversation drawer into reusable component shared between the detail page and trace drawer.

CleanShot 2026-04-09 at 12 56 49@2x

@linear-code
Copy link
Copy Markdown

linear-code bot commented Apr 9, 2026

@github-actions github-actions bot added the Scope: Frontend Automatically applied to PRs that change frontend components label Apr 9, 2026
@obostjancic obostjancic force-pushed the ognjenbostjancic/tet-2122-apply-marthas-new-conversations-design branch from e86158e to aab7c4a Compare April 9, 2026 11:01
@obostjancic obostjancic force-pushed the ognjenbostjancic/tet-2122-apply-marthas-new-conversations-design branch from aab7c4a to 95acf9e Compare April 9, 2026 14:13
@obostjancic obostjancic force-pushed the ognjenbostjancic/tet-2122-apply-marthas-new-conversations-design branch from 95acf9e to 6fa5c18 Compare April 9, 2026 14:17
@obostjancic obostjancic force-pushed the ognjenbostjancic/tet-2122-apply-marthas-new-conversations-design branch from 6fa5c18 to aedfbb5 Compare April 9, 2026 14:26
Add standalone conversation detail page with breadcrumb navigation,
summary header with aggregated stats, and split-panel conversation
view. Refactor conversation drawer into reusable ConversationView
component shared between the detail page and trace drawer.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@obostjancic obostjancic force-pushed the ognjenbostjancic/tet-2122-apply-marthas-new-conversations-design branch from aedfbb5 to 9978f7e Compare April 9, 2026 14:43
…wer files

- Add conversationId to ParamKeys for useParams type safety
- Remove unnecessary non-null assertions in conversationDetail and layout
- Fix Flex justify/align values to use design system tokens
- Fix IconUser to use variant prop instead of removed color prop
- Fix padding token from "none" to "0"
- Delete unused conversationDrawer and useUrlConversationDrawer files
- Remove unused useConversationDrawerQueryState export
@obostjancic obostjancic marked this pull request as ready for review April 10, 2026 08:09
@obostjancic obostjancic requested review from a team as code owners April 10, 2026 08:09
},
{history: 'replace'}
);
}
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.

Query param names start/end collide with page filters

High Severity

The useConversationDetailQueryState hook uses start and end as URL query parameter names, which directly collide with Sentry's global page filter URL params (URL_PARAM.START = 'start' and URL_PARAM.END = 'end' defined in pageFilters/constants.tsx). When navigating from the table via getConversationDetailUrl, integer timestamps like ?start=1700000000 get written to the URL, which the page filter system will try to interpret as date strings, corrupting filter state. The deleted code deliberately used prefixed names (conversationStart / conversationEnd) to avoid this exact collision.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit d2ecb9d. Configure here.

[conversationId, queryState.start, queryState.end]
);

const {nodes, nodeTraceMap, isLoading} = useConversation(conversation);
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.

Duplicate useConversation calls cause redundant computation

Low Severity

useConversation(conversation) is called in ConversationDetailContent (to feed ConversationSummary) and again inside ConversationViewContent with the same conversation object. While react-query deduplicates the network request, the useMemo node-creation logic (building AITraceSpanNode objects from API spans) runs independently in both instances, duplicating expensive computation. Lifting the data fetching to the parent and passing results down would avoid this.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit d2ecb9d. Configure here.

Copy link
Copy Markdown
Contributor

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

There are 3 total unresolved issues (including 2 from previous reviews).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit f829710. Configure here.

errorCount: number;
llmCalls: number;
toolCalls: number;
toolNames: string[];
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.

Computed toolCalls aggregate is never displayed

Low Severity

The toolCalls field is declared in ConversationAggregates, computed in calculateAggregates, and returned — but aggregates.toolCalls is never referenced anywhere in the component's JSX. The "Tool Calls" aggregate item was removed in this refactor, making this field dead code.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit f829710. Configure here.

@obostjancic obostjancic merged commit 955d0c0 into master Apr 10, 2026
65 checks passed
@obostjancic obostjancic deleted the ognjenbostjancic/tet-2122-apply-marthas-new-conversations-design branch April 10, 2026 08:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants