# UI sweep coverage (plan ยง7.5) Gate: every line below executes for BOTH personas unless marked "admin-only". Status: โœ… swept+green ยท ๐Ÿ”ฒ pending (future sweep runs). | # | Page / control | admin | restricted | |---|---|---|---| | 1 | Login: bad password rejected; good login lands authed; logout | โœ… | โœ… | | 2 | Dashboard: sections render (Recently Added / Not Started) | โœ… | โœ… (hidden lib absent) | | 3 | Dashboard: hidden library visibility (Audiobooks) | โœ… visible | โœ… absent | | 4 | Search: results scoped (`/api/media-items/search`) | โœ… | โœ… no leaks | | 5 | Media list: no hidden items in payloads | โœ… | โœ… | | 6 | Library browse grid + pagination | ๐Ÿ”ฒ | ๐Ÿ”ฒ | | 7 | Library create / edit / delete (admin) | ๐Ÿ”ฒ | n/a | | 8 | Admin visibility toggle roundtrip (hide โ†’ restricted loses โ†’ unhide) | ๐Ÿ”ฒ | ๐Ÿ”ฒ | | 9 | Media detail: edit metadata / archive / delete | ๐Ÿ”ฒ | n/a | | 10 | Reader: open, page turn, TOC, bookmark, highlight, note, settings | ๐Ÿ”ฒ | ๐Ÿ”ฒ | | 11 | Collections: CRUD, add/remove items, smart-rule editor | ๐Ÿ”ฒ | ๐Ÿ”ฒ | | 12 | Series: list/detail | ๐Ÿ”ฒ | ๐Ÿ”ฒ | | 13 | Stats screens + range filters | ๐Ÿ”ฒ | ๐Ÿ”ฒ | | 14 | Admin: users CRUD, visibility matrix, settings toggles, processing issues | ๐Ÿ”ฒ | n/a | | 15 | Upload: EPUB generated at runtime, upload โ†’ appears โ†’ delete | ๐Ÿ”ฒ | n/a | | 16 | Auth edges: restricted โ†’ admin URL; anonymous โ†’ media URL | ๐Ÿ”ฒ | โœ… (detail/404) | | 17 | OPDS / KOReader | API-covered (invariant test) | API-covered |