Related commits learn to tell subject from sentiment
The rail under a commit now matches posts the way search does, then asks a model whether the subjects actually connect. A "that's so cool" about a dog photo no longer lands under your feature announcement.

You open a thread, scroll past the replies, and the Related commits rail waits at the bottom with three posts from other threads. This week the rail stops rewarding a familiar tone. A "that's so cool" under a dog photo no longer appears beneath your feature announcement, while a skeptical post about that same feature can.
Credit goes to paulinevos, who taught the rail to borrow the search box's matching and then ask a harder question. It takes the commit's stored embedding, with no fresh embedding call, finds the six nearest top-level posts from other threads, keeps the closest three, and sends those to a model. The model keeps the ones it rates at least 30 percent likely to share a concrete subject. The old 0.60 distance cutoff is gone, so a distant post with a real connection can now show.
One catch remains. The verdict is best-effort. The classifier gets one second to connect and two seconds total, and if it times out or errors, the rail keeps every semantic candidate, so a tone-only match can slip back in.
Key files · #1299
- app/
Queries/ RelatedCommitsQuery.php - app/
Queries/ CommitSearchQuery.php - app/
Services/ OpenAIRelevanceProvider.phpRelevanceProviders/ - app/
Contracts/ RelevanceProvider.phpServices/ - app/
Http/ RelatedCommitController.phpControllers/ - resources/
js/ related-commits.tsxcomponents/ - tests/
Unit/ RelatedCommitsQueryTest.phpQueries/ - app/
Providers/ AppServiceProvider.php