All notable changes per Keep a Changelog. Versions follow Semantic Versioning.
Patch reducing D2 false-positive rate and fixing JSON parse failures on malformed moderation API responses.
/admin/metrics now computes correctly was reading from wrong collection after v0.4.0 schema renameFull 7-category AI moderation, BullMQ queue, admin review UI with keyboard shortcuts, appeal flow, and IP cluster detection.
moderation_audit_log/admin/queue split-panel UI with flagged evidence spans highlighted amber, cohort mini-chart, account history, keyboard shortcuts A/R/E/P/N/admin/metrics precision, recall estimate, appeals upheld rate, queue depth, Flash vs Pro split, P95 latencySHA-256(ip + daily_rotating_salt)) for cluster detection. Rate limit: 5 profiles/24h = flag, 20/24h = HTTP 429moderation_unavailable status and routed to human review no data lossaction field values rejected and shadow-flaggedmoderation_status = approved posts. Previously showed all submitted posts pending manual reviewPOST /api/v1/submissions returns HTTP 202 in <500ms processing is fully async. Dashboard updates optimisticallyCommunity feed, SSE live updates, 3-step onboarding wizard, share slugs, histogram, dot map, and community insights panel.
/community paginated approved-only posts with SSE new-post notification bar (5-second delivery target)/t/{adjective}-{noun}-{stream}-{aordate}. Read-only. Copy / WhatsApp / PNG card (1200×630 server-generated)SHA-256 hashing, PIPEDA deletion, animated SVG progress ring, P25–P75 PPR window, cohort progress bars, magic-link resume.
POST /api/v1/auth/resume single-use HMAC-signed JWT, 24h TTL, Redis invalidation. Works from any device for email-registered users/stats stream leaderboard with p25–p75 confidence bars, WES verification table, data source labels on all statisticsnotifications_blob for transactional email raw email never persisted anywhereSHA-256(ip + daily_rotating_salt) raw IPs never logged to any persistent storePatch fixing cohort key collision that caused FSW General and CEC General data to merge incorrectly.
FSW_GENERAL:2:2026:inland and CEC_GENERAL:2:2026:inland due to missing stream-type prefix check. FSW estimates were inflated by ~30 days. All affected records re-indexed and cohort stats recomputedThe first public version core tracker, MongoDB schema, cohort key design, and basic dashboard.
/track stream dropdown, inland/outland type, optional email, form validation, 202 responseusers collection with cohort key format {stream}:{aor_month}:{aor_year}:{type}. Fallback to annual key when cohort n < 30source:community and type:[bug/feature/data]. feedback_queue collection for API failure fallback