Skip to content

feat: dual-sort reviews — merge relevant + newest for ~10 reviews#64

Merged
cablate merged 1 commit intomainfrom
feat/dual-sort-reviews
Mar 21, 2026
Merged

feat: dual-sort reviews — merge relevant + newest for ~10 reviews#64
cablate merged 1 commit intomainfrom
feat/dual-sort-reviews

Conversation

@cablate
Copy link
Owner

@cablate cablate commented Mar 21, 2026

Summary

Google Places API (New) hard-limits responses to 5 reviews (sorted by relevance). This PR doubles the review count by fetching an additional 5 newest reviews via the Legacy Place Details API (reviews_sort=newest), then merging and deduplicating.

Before: 5 reviews (most relevant only)
After: ~10 reviews (5 most relevant + 5 newest, deduplicated)

How it works

  1. getPlaceDetails calls Places API (New) via gRPC → 5 most relevant reviews
  2. Concurrently calls Legacy Place Details REST API with reviews_sort=newest → 5 newest reviews
  3. Merges both sets, deduplicates by author_name + timestamp
  4. Returns ~8-10 unique reviews

Why two APIs?

  • Places API (New) places.get does NOT support reviews_sort parameter (returns 400)
  • Legacy Place Details API supports reviews_sort=newest and returns completely different reviews
  • Tested: 0% overlap between the two sets for Geography Bar (Taipei)

Cost impact

One additional Legacy Place Details API call per maps_place_details invocation. Only requests the reviews field, so it falls under the lowest billing tier.

Test result

Total reviews: 10
1 Dharun Arasu       2025-09-23 2★  (most relevant)
2 Desmond            2026-03-06 5★  (most relevant)
3 Thanyakorn Meephu  2025-11-07 5★  (most relevant)
4 Joshua Kingsland   2025-09-25 5★  (most relevant)
5 Chester Lee        2025-08-04 5★  (most relevant)
6 Kairos Tay         2026-03-20 5★  (newest)
7 Shreya Chaturvedi  2026-03-13 5★  (newest)
8 何柏霖              2026-03-07 5★  (newest)
9 Hennis Chuang      2026-03-07 5★  (newest)
10 TEN GAO           2026-03-07 5★  (newest)

Test plan

  • npm run format:check — passes
  • npm run build — passes
  • npm test — 168 passed, 0 failed
  • Manual test: Geography Bar returns 10 reviews (5 relevant + 5 newest, 0 overlap)

Related: #61 (Phase 4a)

🤖 Generated with Claude Code

… place

Google Places API (New) returns max 5 reviews sorted by relevance.
This change fetches an additional 5 newest reviews via Legacy Place
Details API (which supports reviews_sort=newest), then merges and
deduplicates by author+timestamp.

Result: place_details now returns ~10 reviews instead of 5, with both
high-quality relevant reviews and the most recent ones — enabling
better AI context classification and trend detection.

Also fixes Prettier formatting inconsistencies from PR #63 squash merge.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@cablate cablate merged commit 88e406a into main Mar 21, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant