CI & load testing

CI: the loop runs on every push, not just your laptop

You've run pytest locally since module 27. A CI (continuous integration) pipeline runs the same checks automatically on every push โ€” lint, type-check, pytest, and now, build the Docker image โ€” so a regression is caught before it merges, not after a teammate pulls main and something's broken. PawWalk's own portfolio monorepo does exactly this: .github/workflows/ci.yml runs the loop (typecheck, lint, test) on every push and PR.

Adding "build the Docker image" as a CI step catches a whole category of bug that pytest alone can't: a Dockerfile typo, a missing file in COPY, a dependency that resolves locally but not in the container's base image.