.PHONY: install test lint run openapi migrate-validate deployed-smoke playwright-install visual-check UV ?= /home/worsch/.local/bin/uv PYTHONPATH ?= src install: $(UV) sync --extra dev test: PYTHONPATH=$(PYTHONPATH) $(UV) run --extra dev pytest lint: PYTHONPATH=$(PYTHONPATH) $(UV) run --extra dev ruff check . run: PYTHONPATH=$(PYTHONPATH) $(UV) run uvicorn core_hub.app:app --reload --host 127.0.0.1 --port 8010 openapi: PYTHONPATH=$(PYTHONPATH) $(UV) run python scripts/export_openapi.py contracts/openapi/core-hub.openapi.json migrate-validate: PYTHONPATH=$(PYTHONPATH) $(UV) run --extra dev python scripts/core_hub_migrate.py validate contracts/fixtures/migration/interhub-minimal.bundle.json deployed-smoke: PYTHONPATH=$(PYTHONPATH) $(UV) run --extra dev python scripts/core_hub_deployed_smoke.py playwright-install: $(UV) run --extra dev playwright install chromium visual-check: PYTHONPATH=$(PYTHONPATH) $(UV) run --extra dev python scripts/check_console_visual.py