# 27 — ARRFLIX status snapshot (2026-05-09 02:15 UTC)

Point-in-time visual status after doc-26 incident. For ongoing roadmap see
`ROADMAP.md`. For incident detail see `docs/26-incident-2026-05-09-...md`.

```
┌─────────────────────────────────────────────────────────────────┐
│  ARRFLIX  arrflix.s8n.ru  ·  Jellyfin 10.10.3  ·  nullstone     │
│  HEAD e1720e3 @ git.s8n.ru/s8n/ARRFLIX  ·  20Mbps cap · 12 users │
└─────────────────────────────────────────────────────────────────┘
```

## Symptoms killed this session (8/8)

```
[✓] Page Unresponsive          INC1  index.html drift revert
[✓] No previews                INC1  :has() transparent-scope
[✓] Posters black              INC1
[✓] Abspielen German           INC1  Cineplex CSS content: override
[✓] Backdrops black            INC1+INC2+INC3  pin :fixed + sub-section transparent
[✓] Black band carousels       INC4  .emby-scroller transparent
[✓] Slow first-frame (4K HDR)  INC4  EnableTonemapping=false + 20Mbps cap
[✓] Grey scrollbar strip       INC5  ::-webkit-scrollbar themed
[✓] MNS AV1 black              INC5  re-encode H.264/AAC sources
[~] MNS fmp4-HLS black again   INC6  Clear-Site-Data:"cache" — verify pending
```

## Roadmap

```
┌─ DONE this session ──────────────────────────────────────────────┐
│ ✓ docs/26 incident post-mortem (1500+ lines, 5 iterations)       │
│ ✓ bin/headless-test.py + headless-test-v2.py (multi-user+Play)   │
│ ✓ bin/apply-26-incident-fixes.sh (idempotent re-apply INC1-5)    │
│ ✓ web-overrides/index.html INC5 fmp4=false shim                  │
│ ✓ branding.xml INC1-5 CustomCss patches                          │
│ ✓ encoding.xml throttling+segdeletion+tonemapping all off        │
│ ✓ 12 user policies @20Mbps cap                                   │
│ ✓ MNS S1E2/E4/E5 AV1→H.264 re-encode (originals @ /tmp .bak)    │
│ ✓ 18-item don't-repeat checklist                                 │
└──────────────────────────────────────────────────────────────────┘

┌─ PENDING verification ───────────────────────────────────────────┐
│ ⧗ INC6 Clear-Site-Data wipes user cache → fresh shim → MNS plays │
│   then: remove clear-cache-only middleware                        │
└──────────────────────────────────────────────────────────────────┘

┌─ HIGH-VALUE OPEN (next session) ─────────────────────────────────┐
│ H1  OpenSubtitles creds (owner sign up at .com)                   │
│ H2  GPU transcode (nvidia driver + container toolkit + SecureBoot)│
│     → unlocks 4K HDR realtime instead of 0.5x                    │
│ H3  Off-host backup of /home/docker/jellyfin/config              │
└──────────────────────────────────────────────────────────────────┘

┌─ MEDIUM-VALUE OPEN ──────────────────────────────────────────────┐
│ M1  Library AV1 sweep + Sonarr/Radarr penalty so future grabs    │
│     don't re-trigger jellyfin#15646                              │
│ M2  4K HDR pre-transcode batch (R&M masters → 1080p H.264 SDR)   │
│ M3  v2 test allowlist: filter off-viewport (#reactRoot y=-490    │
│     and .mainDrawer x=-320 false-positives)                      │
│ M4  Promote /tmp/*-av1-original-*.mkv.bak to real archive dir    │
│ M5  Per-library themes (Movies=Netflix, Anime=Crunchy, Music=Spo)│
│ M6  PWA manifest bind-mount (kill "Jellyfin" name on Android)    │
└──────────────────────────────────────────────────────────────────┘

┌─ DEFERRED (with reason) ─────────────────────────────────────────┐
│ ⊘ Pixel-perfect Netflix/Crunchy/Spotify per-library — needs 3    │
│   separate Jellyfin instances, ~100x maintenance                  │
│ ⊘ Custom Jellyfin Docker image — bind-mount works                │
│ ⊘ 4 TB HDD activation — wait for library > 500 GB                │
│ ⊘ Jellyfin-Vue web client — would replace whole UI               │
└──────────────────────────────────────────────────────────────────┘

┌─ STRATEGIC (separate planned migrations) ────────────────────────┐
│ ⚑ 10.11.8 upgrade (CVE coverage + TMDB scrape #14922 fix)        │
│   Plan: dev first, EF Core DB migration snapshot, theme swap     │
│   Cineplex→ElegantFin (10.11 supported), promote prod            │
│ ⚑ FlexHub/Forgejo CI: lint compose, shellcheck bin/, render docs │
│ ⚑ ARRFLIX wordmark high-res for splash (currently 235x85 soft)   │
└──────────────────────────────────────────────────────────────────┘
```

## Library

```
TV                      eps    codec        DirectPlay
  Futurama S1-S4        72+9   1080p HEVC   transcode→x264
  American Dad S1-S4    58     1080p        ✓
  Rick&Morty S1         11     4K HEVC HDR  transcode (slow until M2)
  Maul S1               10     1080p        ✓
  Obi-Wan S1            6+4    1080p        ✓
  Mike Nolan S1         2-5    1080p H.264  ✓ (just re-encoded INC5)
  Mandalorian S1-S3     18/24  -             scrape in flight
Movies
  Dark Knight 2008      4K HEVC HDR        transcode
  Hulk 2008             1080p              ✓
  Idiocracy 2006        1080p              ✓
```

## Files in repo

```
ARRFLIX/
├── docker-compose.yml              ← jellyfin/jellyfin:10.10.3 + Traefik labels
├── compose-dev/                    ← jellyfin-dev sibling
├── web-overrides/
│   ├── index.html                  ← INC5 enableHlsFmp4=false shim + ARRFLIX brand
│   └── ENGLISH-LOCKDOWN.md
├── bin/
│   ├── add-jellyfin-user.sh        ← canonical user creation
│   ├── apply-26-incident-fixes.sh  ← idempotent INC1-5 re-apply ★ NEW
│   ├── force-english-all-users.sh  ← (now superseded by Cineplex CSS fix)
│   ├── headless-test.py            ← v1 smoke test
│   ├── headless-test-v2.py         ← v2 multi-user+click-play+bg-sweep ★ NEW
│   └── inject-shim.py
├── docs/
│   ├── 00-overview.md
│   ├── 01..25-*.md                 ← prior audits + research docs
│   ├── 26-incident-2026-05-09-page-unresponsive-and-playback.md  ★ NEW
│   └── 27-status-snapshot-2026-05-09.md  ★ THIS DOC
├── ADMIN-GUIDE.md
├── ROADMAP.md
└── README.md
```

## Next click

```
1. Hard-reload browser → MNS S1E4 → confirm plays
2. Tell me: works → I remove INC6 Clear-Site-Data middleware
3. Plan B: 10.11.8 + ElegantFin migration on dev (~45 min)
```
