fix(api): surface each device's own catalog category per-match
The per-device entries in an upload's matched_devices list were labelled with the ML overall predicted_category, producing contradictions like "Acurite Tower Sensor -> Fan Controller". The engine now preserves each DeviceMatch's true catalog category in match_details["device_category"], and the API surfaces that per device. The headline device_category still reflects the ML overall call, so the honest gate-metric category is unchanged. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -87,7 +87,14 @@ class SignatureMatcher:
|
||||
manufacturer=device_match.manufacturer or "Unknown",
|
||||
confidence=device_match.confidence,
|
||||
match_method=device_match.match_method,
|
||||
match_details=device_match.details
|
||||
# Preserve each device's own catalog category so the API can
|
||||
# surface it per-device (e.g. an Acurite sensor stays
|
||||
# "Weather Sensor"); the ML overall call remains in the
|
||||
# match_details' predicted_category.
|
||||
match_details={
|
||||
**device_match.details,
|
||||
"device_category": device_match.category,
|
||||
}
|
||||
))
|
||||
|
||||
return match_results
|
||||
|
||||
Reference in New Issue
Block a user