Area: Forums (re-run) (audit p2r) · Surface: GET /forums/{slug}/new-thread — templates/forums/create-thread.php · Dimension: competitor-gap · Severity: major
Discourse's single most-cited dedup feature is the 'Your topic is similar to…' panel that appears live as you type the title on the new-topic screen, surfacing existing answers before a duplicate is created. Stack Overflow and Zendesk's community do the same. Mobieus only shows related threads once you are already reading an existing one — too late to prevent the duplicate. The data + ranking already exist (findRelatedThreads); they are just not wired to the compose flow, so this is mostly a surfacing gap.
Evidence
Related-thread discovery runs only AFTER a thread exists, on the show page: ForumController.php:1780 `$relatedThreads = $this->findRelatedThreads($thread);` inside showThread, passed to the template at :1915 `'relatedThreads' => $relatedThreads`. The helper findRelatedThreads is defined at :4211 and called nowhere else. The compose page has zero similar-topic logic: `grep -niE 'similar|duplicate|existing.?thread|keyup.*title' templates/forums/create-thread.php` returns no matches. There is no /api/forum/similar endpoint in src/routes.php.
Suggested fix. Add a debounced as-you-type lookup on the title/body fields in create-thread.php that hits a new GET /api/forum/similar?q=… reusing the FEAT-25 findRelatedThreads ranking (or the FULLTEXT title MATCH from SearchController), rendering up to 5 'Already discussed?' links above the submit button.
Filed by the automated tenant-app audit and adversarially evidence-verified. Status: verified. Open — not yet actioned.
Patrick Bass
@mobieus