Changelog

What's new

User-facing changes to Vesper, newest first. Hand-curated, not auto-generated.

# Changelog

All notable user-facing changes to Rallyve. Entries are written manually
at the end of each batch of related deploys. Format follows
[Keep a Changelog](https://keepachangelog.com/) loosely: `Added`,
`Changed`, `Fixed`, `Security`, `Deprecated`.

The newest entry is on top.

---

## 2026-05-15

### Added
- **Two-column login** with product pitch, customer testimonial, and
  trust badges (Phase 38).
- **Onboarding tour** — first-login card stack walks new users through
  Groups, tasks, AI import, and inviting teammates (Phase 40).
- **`/admin/integrations`** route — all organization-level integrations
  (API keys, outbound webhooks, Gemini API key, Google Calendar,
  Audit-log retention) moved out of personal `/settings` and into a
  dedicated admin-only page (Phase 44 audit #3).
- **`/admin/security`** route — admins can require MFA for every member
  and tighten the idle session timeout (1 h – 7 d) (Phase 43).
- **GDPR data export** — `/settings → Your data → Download JSON`.
- **Account deletion** — `/settings → Your data → Schedule account
  deletion`. 30-day grace; cancel by signing back in.
- **Feedback widget** — bottom-corner floating button on every
  dashboard page.
- **`/changelog`** + **`/help`** pages (this one).
- **External health probes** — `/api/health/db` and `/api/health/auth`
  for uptime monitors.
- **SEO foundation** — sitemap, robots, OG card, JSON-LD.

### Changed
- **`/settings/environments` → `/manage/groups`** — URL now matches
  the sidebar label and page heading. Old path 308-redirects (Phase 44
  audit #1).
- **Search input scoped to task pages only** — the always-on
  "Search tasks…" placeholder no longer shows on `/settings`,
  `/admin`, `/users`, `/audit`, `/analytics`, etc. (Phase 44 audit #2).
- **Workspace selector single source of truth** — sidebar and page
  header always agree; no more silent fallback to a different Group
  when no `?space=` param is set (Phase 44 audit #5 / #6).
- **Terminology unified** — `Organization`, `Group`, `Task`. Banned:
  `Workspace`, `Environment`, `Company`, `Tenant` (user-facing copy
  only; internal identifiers unchanged). See `docs/glossary.md`.
- **`/admin` subtitle** for Rallyve staff: `Cross-organization view` →
  `Organization overview · {org}` (Phase 44 audit #4).

### Fixed
- Page-wide horizontal "jump" when opening a status / workspace
  dropdown — react-remove-scroll's compensation padding is now
  blocked because we already reserve scrollbar space (Phase 44 audit).
- Sidebar disappearing on desktop in some locales after the RTL
  refactor — Phase 43.4 transform now scoped to mobile only.
- Column headers in tables no longer center-align while data starts at
  the column edge; both now use `text-start`.
- Calendar ID field now exposes a Copy button and validates the
  email-style format on save (Phase 44 audit #8).

### Security
- **Org-level MFA enforcement** (Phase 43).
- **Idle session timeout** enforced server-side (Phase 43).
- **SSRF guard** on outbound webhook URLs — private / loopback /
  link-local / cloud-metadata IPs rejected at create, update, and
  fire time (M-1).
- **Attachment MIME validation** — allow-list of safe types + magic-byte
  sniff that rejects executables disguised as images (M-2).
- **Audit log every change** to org-level settings (MFA toggle,
  timeout, integrations, retention).