Changelog
User-visible product updates, newest first. Infrastructure-only changes don't show up here — they live in our engineering log.
- Governance
Prompt + model versioning on every analysis
Every source check and researcher analysis now records the LLM model name, the formula version, and a SHA-256 hash of every prompt used. A CI gate fails the build if a prompt is edited without bumping PROMPT_VERSION — silent score drift is no longer possible.
- Security
Tier-aware rate limits on expensive endpoints
Source check, researcher analyze, and report generate now enforce per-user, per-tier burst caps (3/min free, 30/min pro, 120/min team). Anonymous requests get the strictest cap regardless of which endpoint they hit.
- Fix
Cross-org authorization on shared resources
Migration 0012 added an organization_id column to source checks, researcher profiles, and reports back in May. The 24 ownership checks across the routers now route through a single helper so team-tier admins can see their org's work once the role bit lands in Phase C.
- Fix
Admin user search debounce + race guard
Typing in the admin search box no longer fires one network request per keystroke. The tier dropdown disables itself while a PATCH is in flight, so a stray double-click can no longer fire duplicate updates.
- Infrastructure
Deep readiness probe at /api/health/deep
External uptime monitors can now hit a single endpoint that pings the database, Redis, Gemini, CrossRef, and OpenAlex in parallel with a 2s timeout each. The shallow /api/health still drives Railway's restart gate.
- Feature
Admin panel
Operators can now list and search users, change tiers, restore soft-deleted accounts, and review failed pipelines from a real UI. No more SQL sessions for support requests.
- Feature
Multi-source retraction lookup
Citation retraction checks now query both CrossRef and OpenAlex in parallel. If either source flags a DOI as retracted, the citation is marked — closes a credibility hole for editors.
- Feature
Email delivery
Password reset, email verification, and scheduled report emails now actually send (Resend integration). Local dev still falls back to a console-log stub when no API key is set.
- Feature
Account export, refresh, and logout
New /api/auth/refresh and /api/auth/logout endpoints make sessions properly revocable. Account export endpoint will land in Phase B for GDPR portability.
- Feature
Report templates + schedules + white-label branding
Reports gain templates (executive summary, comparison, institutional audit), recurring schedules with timezone awareness, and per-org branding (logo + colors). Team-tier feature.
- Feature
Researcher bulk analysis + compare + watchlist
Submit up to 50 researchers at a time, compare two profiles side-by-side, and watch up to 50 researchers for integrity score deltas between snapshots.