Area: Forums (audit p2) · Surface: POST /thread/{threadId}/move (ForumController@moveThread), mod tooling · Dimension: competitor-gap · Severity: major
Thread merge (combine duplicate discussions into one) and split (break a derailed tangent into its own thread) are core Discourse moderator tools and are present in vBulletin/XenForo/Discourse alike. Without them, the only remedy for duplicate threads is lock-and-link, which fragments the conversation and the SEO signal, and the only remedy for a hijacked thread is deleting posts. For a community product that competes with Discourse on moderator depth, this is a conspicuous missing capability — moderators routinely hit it on day one of running a busy forum.
Evidence
Only relocation exists: platform/src/routes.php:1426 `$router->post('/thread/{threadId}/move', 'ForumController@moveThread');` and ForumController.php:5137 `public function moveThread(...)`. grep for merge|split scoped to thread/post across ForumController, AdminForumController, and ForumThread model returns only unrelated array_merge/preg_split — no merge-threads or split-thread handler, route, or model method exists.
Suggested fix. Add mergeThread (re-parent all posts of thread B under thread A in chronological order, leave a redirect stub at B's slug) and splitThread (select posts from a thread, create a new thread, re-parent selected posts). Reuse the existing redirect/slug-history machinery already used elsewhere for renamed slugs.
Filed by the automated tenant-app audit and adversarially evidence-verified. Status: verified. Open — not yet actioned.
Patrick Bass
@mobieus