Skip to content

bug: Technology Stack filter has no effect - project_matches_tech is never called (regression of #1285/#936) #1870

Description

@ionfwsrijan

Summary

The Technology Stack dropdown on the recommendation page does nothing. get_recommendations accepts a tech_stack parameter, and the route + frontend both send it, but the parameter is never applied to the results. project_matches_tech — the function built to filter by tech stack — has zero callers. This is a regression of #1285 (which fixed the double get_recommendations call but never wired the filter itself) and means the feature requested in #936 is still non-functional.

Evidence

src/utils/recommender.py:618-644 defines project_matches_tech(project, tech_stack) with strict-boundary matching. A repo-wide grep shows the only occurrence of the name is its definition — it is never invoked.

src/utils/recommender.py:646-651:

def get_recommendations(skills_string, level, interest, time_availability, tech_stack="all", max_results=None):

The entire body (verified lines 646-821) iterates all_projects, scores each, and filters on is_relevant / final_score > 0tech_stack is never read.

The parameter is passed all the way through:

  • src/routes/main_routes.py:229-259tech_stack = (payload.get("tech_stack") or "").strip() and passed positionally to get_recommendations.
  • src/static/script.js:1044, 1087-1093 — the dropdown value is included in the POST body.

Impact

Suggested Fix

Apply project_matches_tech(project, tech_stack) inside get_recommendations (skip non-matching projects when tech_stack is not "all"), and add a test asserting the dropdown value changes the returned set.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions