{"overall":"operational","service":"@pokerbase/api","version":"1.5.2","env":"dev","uptimeSeconds":6970,"checkedAt":"2026-05-15T00:23:54.780Z","components":[{"name":"API server","state":"operational","details":{"nodeVersion":"v22.22.2","pid":29}},{"name":"Currency rates","state":"operational","details":{"lastRefreshAt":"2026-05-14T22:27:54.261Z"}},{"name":"Database","state":"operational","details":{"latencyMs":3}}],"recentChanges":[{"version":"1.5.2","date":"2026-05-14","bump":"patch","changes":["fix(api): sanitizer was flattening Date values to {} — broke MCP timestamps (#686)"]},{"version":"1.5.1","date":"2026-05-14","bump":"patch","changes":["fix(api): prod boot crash — inline @pokerbase/branding status constants (#685)"]},{"version":"1.5.0","date":"2026-05-14","bump":"minor","changes":["feat: MCP API endpoint with key management — pro-gated, silent launch (#683)"]},{"version":"1.4.0","date":"2026-05-14","bump":"minor","changes":["feat: aggregated status pages (web /status + apps/statuspage) (#681)"]},{"version":"1.3.3","date":"2026-05-14","bump":"patch","changes":["Prod API cutover: env, mobile endpoint, DBSession index (#674)"]},{"version":"1.3.2","date":"2026-05-13","bump":"patch","changes":["Revert \"fix dormancy logic to use heartbeat instead of session\""]},{"version":"1.3.1","date":"2026-05-13","bump":"patch","changes":["fix dormancy logic to use heartbeat instead of session"]},{"version":"1.3.0","date":"2026-05-13","bump":"minor","changes":["feat(api): configurable Loops cron schedules + admin trigger/queue endpoints"]},{"version":"1.2.0","date":"2026-05-12","bump":"minor","changes":["feat(api): venueBySlug / publicVenues queries + venueSlug calendar filter","fix(api): curated predicate counts the scraped catalogue; fix hidden filter on the public stop query","feat(analytics): register calendar.* Loops marketing events","chore(api-types): regenerate GraphQL types — publicTournamentStop + calendar filter enums","chore(web): point the local web app at the local API on `pnpm dev`","fix(api): load reflect-metadata in ts-node scripts (backfill-curated-stops was unrunnable)","feat(api): seed-venues script — link curated stops to first-class venues","feat(api): server-side region / game-type / buy-in-band filters on tournamentCalendar","feat(api): publicTournamentStop query — the public-safe /e/{stopRef} detail resolver","feat(api): DBVenue model + nullable venueId on tournament stops","feat(api): continentForCountryCode util for the public calendar region filter","feat(api): gate featuredTournamentStops on curated for anonymous callers","feat(api): curated flag on tournament stops + public-exposure gate"]},{"version":"1.1.1","date":"2026-05-12","bump":"patch","changes":["fix(api): reconcile pushes accurate session counts to Loops (#668)"]}]}