Area: Forums (audit p2) · Surface: GET /thread/{slug} related-threads sidebar (ForumController@findRelatedThreads) · Dimension: existing-feature-improve · Severity: minor
Discourse's 'Suggested/Related Topics' and Circle's related content use body + tag signals, not just the title, which is why their sidebars actually surface relevant next-reads and lift session depth. Our title-only approach degrades exactly where it matters most — short or generic titles — and ignores the tag taxonomy we already maintain. Better related-content is a direct lever on pages-per-session and time-on-site, the metrics community platforms sell on.
Evidence
platform/src/Controllers/ForumController.php:4212 findRelatedThreads runs `MATCH(t.title) AGAINST(:q ...)` using ONLY the current thread's TITLE as the query, with a LIKE-on-title fallback. It never considers post body, flair, or tags despite the platform having tags (Tag model, ForumThread tags) and full post-body FULLTEXT indexing used elsewhere (SearchController:538). So a thread titled 'Help!' or 'Quick question' yields near-random or empty related results.
Suggested fix. Broaden the relevance query to include the first post body and shared tags: blend MATCH(t.title, first_post.body) with a shared-tag boost (count of overlapping tag_ids). When semantic search lands, reuse the thread embedding here for true 'more like this'.
Filed by the automated tenant-app audit and adversarially evidence-verified. Status: verified. Open — not yet actioned.
Patrick Bass
@mobieus