{"agent":"claude","input":"Add request ID logging to this FastAPI app. Read project/app/main.py, project/app/config.py, project/app/db.py, project/app/api/summaries.py, project/app/summarizer.py, project/tests/conftest.py, project/tests/test_summaries.py, project/requirements.txt, project/setup.cfg, project/.coveragerc, project/Dockerfile.prod, docker-compose.yml and .github/workflows/main.yml first. Add a pure ASGI middleware that reads X-Request-ID, accepts it only when it is short and made of safe characters and otherwise generates a uuid4, stores it in a ContextVar for the whole call including background tasks, and sets X-Request-ID on the response. Add a logging filter that puts the ID on every record and a dictConfig applied when the app is created so the uvicorn loggers and an app logger share one format with the ID. Log one access line per request from the middleware with method, path, status, duration and ID, and turn off uvicorn's own access log in the compose command and the gunicorn command. Write tests with the existing fixtures for the generated ID, an echoed valid ID, a rejected invalid ID, the ID on log records via caplog and the ID inside a background task. Run pytest, flake8, black --check and isort --check-only in the sandbox, fix anything until they pass, and open a pull request that documents the header and the log format.","resources":[{"url":"https://github.com/your-org/your-app"}]}