"""Frontend must be fully self-contained — no CDN (LAN page-freeze regression). The P0 batch's templates loaded Alpine.js from ``cdn.jsdelivr.net`` and Tailwind from ``cdn.tailwindcss.com``, so any demo client that cannot reach those CDNs (LAN-only devices, filtered networks) got a login page whose JS never engaged (a stuck form). Both libraries are now vendored under ``app/static/vendor/`` and served same-origin with no external ``script src`` in the HTML. HTML pages always revalidate (``Cache-Control: no-cache``); the vendored assets carry long-lived immutable caching (their URLs embed the version). """ from __future__ import annotations import re import pytest from httpx import AsyncClient pytestmark = pytest.mark.asyncio # Any