Some checks failed
Architecture Governance / architecture (push) Has been cancelled
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
3.0 KiB
3.0 KiB
Changelog
Recent work, newest first. Scoped to what changed and why — see BACKEND-API-REFERENCE.md for the backend-dependency detail on anything marked "depends on backend."
2026-08-15 — Admin purchase notifications
Admin gets notified when a new order lands: a toast (click-to-navigate) plus an unread badge + order list on the topbar bell icon (previously an unused "no notifications" placeholder). Poll-based — the backend has no WebSocket/SSE, so this follows the same polling pattern already used for payment status.
AdminOrderWatcherService(new) pollsAdminOrdersGateway.loadOrders()on an admin-editable interval (default 15s, editable in Admin Settings), diffs against persisted "last notified"/"last acknowledged" order pointers, and fires toasts only for genuinely new orders — never spams on first load.UserNotificationServicegained an optional click-to-navigaterouteso a toast can jump straight to the order detail page.- Reactively stops/starts polling off
AdminAuthService.isAuthenticated()— a first attempt at this (tying it to component destruction) turned out not to work because logout never navigates or destroys the admin shell; caught and corrected before merge. - Depends on backend: the mock
AdminOrdersLocalGatewayhas no create path, so this feature is functionally inert until Orders CRUD gets a real backend gateway. SeeBACKEND-API-REFERENCE.md§12.8. - Design/plan:
docs/superpowers/specs/2026-08-15-admin-purchase-notifications-design.md,docs/superpowers/plans/2026-08-15-admin-purchase-notifications.md.
2026-08-14 — Currency conversion (client-side)
Switching currency (RUB/USD/EUR/AMD) now actually converts displayed prices, instead of just swapping the currency label next to an unchanged number.
CurrencyRatesService(new) holds RUB-based conversion rates, admin-editable in Admin Settings → Currency rates, persisted tolocalStorage.CurrencyConvertPipe(new) applies the selected currency's rate wherever a storefront price renders: product cards, product detail page, quick-view dialog, delivery pricing, compare table, cart line items and totals, delivery selector.- Admin backoffice screens intentionally keep showing raw stored-currency values — that's the existing convention for every other admin price display.
- Fixed a follow-on bug: the cart's delivery-selector component was using the item's source currency as both the display label and the conversion target, so the amount never actually converted (only the label matched) — same number shown in every currency.
- Depends on backend: rates are a manually-typed admin number today, not a live exchange rate, because the backend doesn't return per-currency pricing. See
BACKEND-API-REFERENCE.md§12.7 for the two proposed backend directions (server-side conversion, or a live FX-rate endpoint) — raised because bank settlement totals weren't reconciling against order counts, which points at a real pricing-accuracy gap, not just a display one.
Earlier history: git log.