Spotted during a UI review. File: simalytics/Components/RatingView.swift + the rating onChange sync in the detail views.
Two related issues:
- No way to clear a rating.
updateRating(to:) only ever assigns whole indices 1...maxRating; there is no gesture anywhere to return to 0. Once you tap a star you can't remove the rating. Suggested: re-tapping the current star toggles to 0 — if rating.wrappedValue == Double(index) { rating.wrappedValue = 0 } else { … }.
Note: the onChange sync (MovieDetailView ~231, Show/Anime equivalents) POSTs to Simkl /sync/ratings; 0 is not a valid Simkl rating, so a value of 0 must route to /sync/ratings/remove instead, or clearing will silently fail.
- 5-star display vs input mismatch. In 5-star mode the views pass
.roundToHalfStar and seed localRating = simklRating/2, so an odd Simkl rating (e.g. 7 → 3.5) is displayed as a half star — but tapping only sets whole stars, mapped back via *2 to even values (2/4/6/8/10). So odd Simkl ratings (1/3/5/7/9) can't be set in 5-star mode, and tapping a half-filled star snaps to a whole star. Either drop half-star rounding in 5-star mode (display = input) or support half-star tap input (detect tap x-position within the star cell).
Source: multi-agent UI review, 2026-07-02.
Spotted during a UI review. File:
simalytics/Components/RatingView.swift+ the ratingonChangesync in the detail views.Two related issues:
updateRating(to:)only ever assigns whole indices1...maxRating; there is no gesture anywhere to return to 0. Once you tap a star you can't remove the rating. Suggested: re-tapping the current star toggles to 0 —if rating.wrappedValue == Double(index) { rating.wrappedValue = 0 } else { … }.Note: the
onChangesync (MovieDetailView~231, Show/Anime equivalents) POSTs to Simkl/sync/ratings;0is not a valid Simkl rating, so a value of0must route to/sync/ratings/removeinstead, or clearing will silently fail..roundToHalfStarand seedlocalRating = simklRating/2, so an odd Simkl rating (e.g. 7 → 3.5) is displayed as a half star — but tapping only sets whole stars, mapped back via*2to even values (2/4/6/8/10). So odd Simkl ratings (1/3/5/7/9) can't be set in 5-star mode, and tapping a half-filled star snaps to a whole star. Either drop half-star rounding in 5-star mode (display = input) or support half-star tap input (detect tap x-position within the star cell).Source: multi-agent UI review, 2026-07-02.