All external services (database, Discord/GitHub OAuth, S3) can now be individually disabled by omitting their environment variables. The server gracefully degrades functionality when services are unavailable. Partial configuration of any service group triggers a clear error at startup.
- Database: Falls back to dummy pool when DATABASE_URL is unset
- OAuth: Providers only registered when credentials are complete
- S3: Image storage disabled when credentials are missing
- Health checks reflect actual configuration state
Organize recipes into dedicated Justfiles for pacman, server, and web components. Root Justfile now serves as a thin facade with common aliases pointing to submodule recipes.
- Group recipes by purpose (Quality, Testing, Performance, Web, Server)
- Add check/quick/ci recipes for standard workflows
- Add format-check, audit, and smoke test utilities
- Simplify docker commands and improve UX
The render dirty flag was being reset instead of accumulated, causing
the game to become stuck and unplayable in web builds. Changed from
assignment to bitwise OR to preserve all dirty state updates.
Also adds game layout component and updates Justfile to build frontend.
Update GitHub Actions workflows to use correct Cargo.toml/Cargo.lock paths
in root directory instead of pacman/ subdirectory. Fix Justfile web command
to serve from web/dist/client instead of pacman/dist.