All checks were successful
Deploy yourpart (blue-green) / deploy (push) Successful in 1m48s
2.2 KiB
2.2 KiB
Repository Guidelines
Project Structure & Module Organization
- Daemon-Worker Architecture: A standalone Rust daemon for the Falukant game backend, managing game mechanics through background workers.
- Workers (
./src/worker/): Modular task handlers (e.g.,PoliticsWorker,FalukantFamilyWorker,EventsWorker) that execute periodic game logic ("ticks"). Most workers extend theBaseWorkerlogic. - Database Layer: Uses PostgreSQL for persistence. Core SQL queries are centralized in
./src/worker/sql.rs, while connection management resides in./src/db/. - Real-time Communication:
./src/websocket_server.rsmanages client connections, broadcasting game state updates via./src/message_broker.rs. - Migrations: Database schema changes are managed manually via SQL scripts in
./migrations/. - Documentation: Detailed technical specs and handoff notes are located in
./docs/.
Build, Test, and Development Commands
cargo build: Compile the project.cargo clippy: Run the linter to ensure code quality.cargo run: Start the daemon.cargo fmt: Format the codebase according to Rust standards.cargo check: Rapidly check for compilation errors.
Coding Style & Naming Conventions
- Rust Standards: Follows idiomatic Rust conventions (snake_case for variables/functions, PascalCase for types).
- Linter: Enforced via
clippy. Usecargo clippybefore committing. - Database Logic: Prefer centralizing complex SQL queries in
./src/worker/sql.rsrather than inlining them in worker logic.
Testing Guidelines
- Manual Verification: No automated test suite exists (
cargo testreturns no results). Verify changes by running the daemon and inspecting database state or WebSocket output. - Smoke Tests: Follow instructions in
./docs/for feature-specific manual testing (e.g.,./docs/FALUKANT_DEATH_SUCCESSION_SMOKE_TEST.md).
Commit & Pull Request Guidelines
- Commit Messages: Primarily written in German, though English is acceptable. Messages typically start with an imperative verb (e.g., "Füge", "Verbessere", "Behebe", "Refactor", "Enhance").
- Context: Reference specific features or workers in the commit subject to maintain clarity in the history.