5697d68e65
Enable the `ANN` (flake8-annotations) rule set to require return type and argument annotations on all function definitions. Pyright strict already enforces argument types but infers return types silently; this closes the gap so every function has an explicit return annotation. Configuration choices: - `ANN401` (any-type) is ignored: `Any` is sometimes the right answer and pyright strict already catches genuine misuse. - `allow-star-arg-any = true`: `*args: Any, **kwargs: Any` is a common valid pattern for pass-through wrappers. - Per-file ignores for `test_func_metadata.py` and `test_server.py` where untyped parameters are intentional (testing schema inference on unannotated signatures). - README code snippets (via pytest-examples) exempt — short doc examples shouldn't need full annotations. Auto-fix added `-> None` or inferred return types to ~910 functions. The remaining ~100 were annotated manually — mostly `@asynccontextmanager` generators, pytest fixtures, and ASGI handlers that Ruff couldn't infer.