[tox] envlist = lint, unit, integration no_package = true # ── Base ───────────────────────────────────────────────────────────────────── [testenv] allowlist_externals = timeout, perl, docker, mkdir, bash, grep, ruff, pytest, mypy, uvicorn sitepackages = true commands_pre = pip install -e ".[dev]" --quiet passenv = OLLAMA_URL setenv = TIMMY_TEST_MODE = 1 TIMMY_DISABLE_CSRF = 1 TIMMY_SKIP_EMBEDDINGS = 1 # ── Lint & Format ──────────────────────────────────────────────────────────── [testenv:lint] description = Check formatting, imports, security (ruff), no inline CSS commands_pre = deps = ruff>=0.8.0 commands = ruff check src/ tests/ ruff format --check src/ tests/ bash -c 'files=$(grep -rl "/dev/null); if [ -n "$files" ]; then echo "ERROR: inline