server.js — /api/albums now fetches owned + shared in parallel via Promise.all, adds unprotected /admin/login route
public/index.html — rewritten to match CSS class names
public/css/style.css — consistent class names, touch zones, float animation
public/js/app.js — shared badge rendering in album picker
README.md — v1.4.1 changelog entry
## v1.4.1 — Shared Albums
### What's new
- ✅ Album picker now shows **shared albums** alongside owned albums
- ✅ Shared albums marked with a purple **Shared** badge and 🔗 icon
- ✅ Deduplication — albums shared with yourself only appear once
### Bug fixes
- 🐛 Fixed admin login redirect loop (`/admin/login.html` → `/admin/login`)
- 🐛 Fixed main display not rendering — `index.html` and `style.css` class names were mismatched
- 🐛 Restored touch zones, polaroid float animation, and setup screen layout
### Files changed
- `server.js` — `/api/albums` now fetches owned + shared in parallel via `Promise.all`, adds unprotected `/admin/login` route
- `public/index.html` — rewritten to match CSS class names
- `public/css/style.css` — consistent class names, touch zones, float animation
- `public/js/app.js` — shared badge rendering in album picker
- `README.md` — v1.4.1 changelog entry
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
v1.4.1 — Shared Albums
What's new
Bug fixes
/admin/login.html→/admin/login)index.htmlandstyle.cssclass names were mismatchedFiles changed
server.js—/api/albumsnow fetches owned + shared in parallel viaPromise.all, adds unprotected/admin/loginroutepublic/index.html— rewritten to match CSS class namespublic/css/style.css— consistent class names, touch zones, float animationpublic/js/app.js— shared badge rendering in album pickerREADME.md— v1.4.1 changelog entry