legacy-arrflix/testing
s8n d9d6bdba64 testing/ folder: theme-edit guides + error catalog + headless recipes
7 docs in /testing/ — institutional memory after 6+ regressions in
24-48h on the v6 theme. Read before any edit.

  README.md           — index + quickstart
  THEMING.md          — safe-edit checklist + layer/specificity tables
  ERROR-PATTERNS.md   — 12 cataloged patterns (Symptom/Cause/Diag/Fix/Prev)
  HEADLESS-PROBE.md   — 11 playwright recipes (md5 chain, darkPct,
                        ancestor bg sample, dropdown listItem probe)
  ROLLBACK.md         — 8 emergency revert recipes (overlay, branding,
                        encoding, full-from-repo, dev-clone-prod,
                        git-revert, pw-reset, bind-mount inode-swap)
  SMOKE-TEST.md       — manual + headless verify checklist
  DEPLOY.md           — dev → prod promotion workflow with backup +
                        chown root + restart inode-swap

Empty subdirs: snipUSER-Es/, recipes/, incidents/ (post-mortems land here).

Goal: stop reinventing the same fixes. Catalog every error class,
codify the recovery, build a skills folder for future ARRFLIX work.
2026-05-10 00:47:20 +01:00
..
incidents testing/ folder: theme-edit guides + error catalog + headless recipes 2026-05-10 00:47:20 +01:00
recipes testing/ folder: theme-edit guides + error catalog + headless recipes 2026-05-10 00:47:20 +01:00
snippets testing/ folder: theme-edit guides + error catalog + headless recipes 2026-05-10 00:47:20 +01:00
DEPLOY.md testing/ folder: theme-edit guides + error catalog + headless recipes 2026-05-10 00:47:20 +01:00
ERROR-PATTERNS.md testing/ folder: theme-edit guides + error catalog + headless recipes 2026-05-10 00:47:20 +01:00
HEADLESS-PROBE.md testing/ folder: theme-edit guides + error catalog + headless recipes 2026-05-10 00:47:20 +01:00
README.md testing/ folder: theme-edit guides + error catalog + headless recipes 2026-05-10 00:47:20 +01:00
ROLLBACK.md testing/ folder: theme-edit guides + error catalog + headless recipes 2026-05-10 00:47:20 +01:00
SMOKE-TEST.md testing/ folder: theme-edit guides + error catalog + headless recipes 2026-05-10 00:47:20 +01:00
THEMING.md testing/ folder: theme-edit guides + error catalog + headless recipes 2026-05-10 00:47:20 +01:00

testing/

Manual + automated verification + recovery for the ARRFLIX overlay (web-overrides/index.html) + branding.xml + system.xml. Read this folder before any theme edit, deployment, or recovery.

Index

File Purpose
THEMING.md Safe-edit checklist + layer model + specificity rules (links to docs/31)
ERROR-PATTERNS.md Catalog of every theme/deploy error so far + fixes
HEADLESS-PROBE.md Playwright + DOM-probe recipes for verifying changes
ROLLBACK.md Emergency revert procedures (overlay, branding, full prod)
SMOKE-TEST.md Manual 4-step verify checklist before/after deploy
DEPLOY.md Dev → prod promotion workflow (overlay swap + restart + verify)
snipUSER-Es/ Reusable bash, sqlite, playwright, ssh snipUSER-Es
recipes/ Step-by-step recipes for common tasks (apply theme variant, fix pw, etc)
incidents/ Post-mortems for past + future bugs (referenced from docs/26, 28, 30, 31)

Quickstart for "I want to edit the theme"

  1. Read THEMING.md — pay attention to the layer model + L1/L2 paired rules
  2. Edit bin/inject-middle-theme.py. Keep it dev-only, scoped under body.arrflix-themed
  3. python3 bin/inject-middle-theme.py to regenerate web-overrides/index.html
  4. scp the regenerated file to dev's overlay path (NOT prod)
  5. docker restart jellyfin-dev — bind-mount inode swap requires restart
  6. Run SMOKE-TEST.md checklist on dev
  7. Hard-refresh the browser (Ctrl+Shift+R) — defeats Service Worker + HTTP cache
  8. If green: promote per DEPLOY.md. If red: revert per ROLLBACK.md

Why this exists

Five+ regressions in 24 hours during 2026-05-09 (docs/26 INC1-5, docs/28 INC7, docs/30 v6-stable). Each one was the same anti-pattern: an opaque CSS rule painted over the video. Combined with bind-mount inode + browser-cache + XML-parse-silent-failures + Cineplex CSS shadow specificity → debugging nightmare. This folder is the institutional memory.