ActivityFeedItemDTO gains a nullable commentPreview field (plain-text, 120 chars max). DashboardService.getActivity() now calls findDataByIds() once instead of findAnnotationIdsByIds(), halving DB round-trips for the Chronik page load. Empty-string previews are normalised to null so the frontend can use ?? cleanly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>