- Migration: add UNIQUE(workspace_id, slug) to bio_pages
Old (subdomain_host, slug) unique allowed MySQL NULL bypass —
two free-plan bios with NULL subdomain_host + same slug were not caught
- Edit::save(): validate slug uniqueness before update, dispatch toast on conflict
- Edit::save(): validate slug format (alphanumeric + dash/underscore, max 64)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>