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.
38 lines
1.3 KiB
Markdown
38 lines
1.3 KiB
Markdown
# 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.
|