Test that the server correctly reports missing certificate errors, rejects invalid hostnames, fails gracefully on port conflicts, and starts successfully with multiple virtual hosts configured.
1.3 KiB
1.3 KiB
AGENTS.md
Introduction
This is a modern Rust project for a Gemini server. Follow these guidelines for development, testing, and security.
Testing
- Use unit tests for individual components and integration tests for end-to-end features.
- Test at appropriate levels to ensure reliability.
Development Practices
- Do not remove features unless explicitly ordered, especially those mentioned in README.md.
- Pre-commit hooks run all tests before commits.
- Follow modern Rust best practices.
- Fix all compiler warnings before committing—they often indicate future bugs.
Security
- Cybersecurity is critical. Never remove guards for remote user input validation, such as URLs or file paths.
Planning and Tracking
- Use local BACKLOG.md to see planned work.
- For multi-phase changes, add TODO items below the user story with checkboxes and update them during implementation.
Tools
- Use cargo for building and testing.
- Run clippy for code quality checks.
- Use fmt for code formatting.
- Use --quiet flag to suppress startup output during testing.
- Follow project-specific tool usage as needed.
Logging
- Use tracing for logging in nginx/apache style.
- Output goes to stderr for journald/systemd handling.
- No custom log files or eprintln.