feat(issues): Two-column activity icons, colors#115958
Conversation
feedback needed the extra bottom space on the scroll container, not tucked inside the activity section. Also narrows the activity section variant prop to sidebar vs standalone. the drawer can ask for md text size separately, which keeps feedback from needing a fake inline variant. Co-Authored-By: Codex GPT-5 <[email protected]>
The feedback activity work made these components shared, but a bunch of names still said Streamlined and lived under the streamline sidebar folder. Move the shared activity section and compact comment input into neutral homes, and rename the comment actions menu so it says what it is. Co-Authored-By: Codex GPT-5 <[email protected]>
Use the Text primitive for non-note activity messages instead of wiring font-size by hand. keeps the activity section closer to the design system now that it is shared outside the old sidebar. Co-Authored-By: Codex GPT-5 <[email protected]>
Feedback spam activity was falling through the shared issue activity copy and showing up as archived forever. Pass the issue category into the activity formatter so feedback keeps the spam label, with a test covering the regression. Co-Authored-By: Codex GPT-5 <[email protected]>
Adds a FlagPole flag for the updated issue activity row treatment. When enabled, activity rows split actor markers from action icons, color the action icon, and carry that same color onto user avatar rings or system dots. When disabled, the existing one-column activity layout stays in place. Co-Authored-By: Codex GPT-5 <[email protected]>
|
🚨 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 |
📊 Type Coverage Diff✅ No new type safety issues introduced. Coverage: 93.58% |
Point the activity row UI at activity-feed-v2 and drop the backend flag registration from this stacked branch. The flag itself now lives in the standalone master PR. Co-Authored-By: Codex GPT-5 <[email protected]>
Make archived activity use the default grey state and move avatar rings to a 2px inset border. Keeps the activity-feed-v2 flag check in place after local testing. Co-Authored-By: Codex GPT-5 <[email protected]>
| const Icon = | ||
| !useTwoColumnLayout && iconMapping?.componentFunction | ||
| ? iconMapping.componentFunction({ | ||
| data: item.data, | ||
| user: item.user, | ||
| sentry_app: item.sentry_app, | ||
| }) | ||
| : (iconMapping?.Component ?? null); |
There was a problem hiding this comment.
Bug: In the two-column layout, CREATE_ISSUE activities display a generic add icon instead of the correct integration-specific icon (e.g., GitHub, Jira) because iconMapping.componentFunction is bypassed.
Severity: LOW
Suggested Fix
Adjust the icon selection logic to ensure iconMapping.componentFunction is executed for GroupActivityType.CREATE_ISSUE activities, even when useTwoColumnLayout is true. The logic that bypasses the component function should be limited to only the activity types it was intended for, such as GroupActivityType.NOTE.
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: static/app/views/issueDetails/activitySection/index.tsx#L151-L158
Potential issue: In the two-column layout, the logic for selecting an activity icon
incorrectly bypasses `iconMapping.componentFunction` for all activity types. While this
is intended for note activities, it also affects `GroupActivityType.CREATE_ISSUE`. For
`CREATE_ISSUE` activities, the `componentFunction` is responsible for returning
integration-specific icons, such as `IconGithub` or `IconJira`. By skipping this
function, the UI defaults to displaying a generic `IconAdd`, removing the visual context
of the integration used to create the issue.
Did we get this right? 👍 / 👎 to inform future reviews.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit fde9e8e. Configure here.
| ...defaultConfig, | ||
| icon: theme.tokens.graphics.success.vibrant, | ||
| iconBorder: theme.tokens.border.success.vibrant, | ||
| }; |
There was a problem hiding this comment.
SET_RESOLVED_IN_PULL_REQUEST missing from success color config
Medium Severity
The getActivityColorConfig switch statement includes all SET_RESOLVED_* activity types (SET_RESOLVED, SET_RESOLVED_BY_AGE, SET_RESOLVED_IN_RELEASE, SET_RESOLVED_IN_COMMIT) in the success/green color group — but omits GroupActivityType.SET_RESOLVED_IN_PULL_REQUEST. This means resolved-by-PR activities won't receive the green icon and border that all other resolved activity types get, resulting in an inconsistent visual treatment.
Reviewed by Cursor Bugbot for commit fde9e8e. Configure here.
| const ActivityInputFrame = styled('div')` | ||
| color: ${p => p.theme.tokens.content.primary}; | ||
| `; | ||
|
|
There was a problem hiding this comment.
Sidebar "View more" row misaligned with marker rows
Medium Severity
When the issue-activity-feed-v2 feature flag is enabled, activity items in the sidebar render with a 4-column grid (22px 22px minmax(50px,1fr) auto) via the marker prop, but the "View X more" ActivityTimelineItem doesn't pass a marker, so it gets a 3-column grid. This causes its icon and title to be horizontally misaligned with the activity rows above it — the icon sits where markers are, and the title text shifts left by one column.
Reviewed by Cursor Bugbot for commit fde9e8e. Configure here.


adds a two column layout based on figma
after