Skip to content

Changelog

The changelog reflects what’s live on production. For unreleased work, the platform’s Linear board is the source of truth — engineering@handbid.com can point you at the right ticket.

  • GET /v3/bidder/notifications + PUT /v3/bidder/notifications/read-all shipped (HAN-1881). Paginated notifications list with a limit=0 count-only mode for badge polling. Instagram-style bulk mark-as-read. Whitelabel-gated. See Notifications endpoint reference.
  • Every V3 response that surfaces an auction now carries guid (auction-shape responses) or auctionGuid (item-shape responses). Clients use {guid}_v2 as the Socket.IO room name to receive auction-scoped events. HAN-1878.
  • featuredItems[] on auction cards now always returns up to 4 items. Manager-curated items come first; backfill items follow, ranked by validated bid count. Affects /v3/auctions, /v3/auctions/{id}, /v3/auction/{id}/items, /v3/bidder/my-auctions. HAN-1877.
  • The previously-stubbed V3RestController::enforceRateLimit() is now a real fixed-window throttle. Per-endpoint budgets, IP-keyed anonymous, userId-keyed authenticated. Over-budget responses return 429 with both a Retry-After header and a retryAfter body field. See Rate limiting. HAN-1867.
  • DELETE /v3/bidder/favorite/{itemId} was returning 405 due to a verbs() map gap. Fixed; the endpoint works as documented. HAN-1876.
  • POST /v3/bidder/favorite/{itemId} + DELETE /v3/bidder/favorite/{itemId} shipped. Idempotent on both verbs. HAN-1864.

The pre-2026-05-19 changelog lives in the platform repo’s PR history. Material entry points:

  • V3 auction surface launch (HAN-1573, HAN-1574)
  • Auth flow with SMS-PIN (HAN-1576)
  • Phase-2 item endpoints (HAN-1685, HAN-1686, HAN-1687)
  • Bidder home rebuild (HAN-1843 / 1847 / 1848 / 1849)

If you’re looking for a specific shipped behavior and don’t see it here, email engineering@handbid.com — we can usually pull the ticket and the PR that shipped it.