40f8f37ca4
- viewer playwright.config: third webServer boots admin dev (5176, reuseExisting) so one config serves both frontends - journey.spec.ts: admin UI (login, zh+en album, real-jpeg banner via file chooser, category, staffB invite by account search, logout) -> staffB API uploads x3 (init/presign-PUT/complete) -> worker PublishService.processPhoto x3 -> public list verify -> viewer UI (banner bytes, zh->en switch, waterfall 3, chip filter 1, lightbox zoom/close, deep link) -> admin hide -> viewer 2 + hidden deep-link 404 notice -> empty album state - cleanup: journey album domain rows + staffB account via Prisma Co-Authored-By: Claude Code <noreply@anthropic.com>