minor2026-10-04

2026.10.04 — My CallPage tab redesign

What’s Changed

New

  • /my-callpage is now three tabs: 📞 Calls & Voicemails, 🛍️ My Products, 🔥 Popular Products — with hash routing (#calls, #products, #popular) and lazy loading per tab.
  • Call-detail view: tapping any call card opens a modal with the full summary, complete transcript, discussed products (photos + stable links), duration, outcome, and a store link.
  • Voicemails on the Calls tab: audio player (/api/customer/voicemails/:id/audio), transcript, unread badge, and mark-as-read on first play.
  • New API: GET /api/customer/products-all — the customer’s engaged products (viewed, called about, discussed) across all pages, enriched with photo, price, page info, and stable product URL, grouped by store.
  • New API: GET /api/customer/call-target — the best store for a general call (most recent call → most-viewed store → any active store).
  • General-call mode in the dialer backend: POST /api/p/:slug/mint accepts mode: "general", forcing no focus product and injecting the full-catalog general-call instruction.

Fixed

  • The /my-callpage hero “Call” button showed a dead alert() — it now opens the customer’s store dialer (/p/:slug) so one tap starts a real AI call with full catalog context.
  • Popular-product cards lacked photos and linked to the store instead of the product — every card now shows a photo (with photos[] fallback) and links to the stable product URL (/p/:slug/:productId/:name-slug).

Tests

  • New src/mycallpage-tabs.test.js: 15 unit tests for the tab helpers (pickGeneralCallTarget, groupProductsByPage, buildGeneralModeSection, resolveMyCallPageTab, voicemail URL builders). Full suite: 57/57 passing.

Create your call page

Turn your website visitors into phone conversations — set up in under two minutes.

Create your call page →

← All releases