- Create tests/e2e/test_port_autofill.py - headless chromium test for PRNT-03 - Verifies IP->port_name auto-derivation via Alpine @input handler at /printers - Update 09-VALIDATION.md: mark UX-02 tasks green, cite test file as evidence
- Add pytest-playwright and playwright to requirements-dev.txt - Create tests/e2e/__init__.py package marker - Create tests/e2e/conftest.py with session-scoped live_server fixture