96057ba207
One spec chaining the whole business flow over public APIs only: seed-admin + real password login, album/category/member invite, same-filename double upload via presign PUT (idempotent complete), real BullMQ worker consumption publishing both photos (outbox has exactly two photo.published events), public feed with locale fallback, cursor pagination and signed-URL bytes, hide/remove/ soft-delete lifecycle with immediate permission loss, and full audit-trail assertions. Co-Authored-By: Claude Code <noreply@anthropic.com>