1.7 KiB
1.7 KiB
AGENTS.md
** Use general system promt from AGENTS_SYSTEM_PROMT.md ** ** Additional techiques and architectury details are here **
This file provides guidance to agents when working with code in this repository.
Build & Test Commands
cargo build --release # Production build
cargo test # Run all tests
cargo test --lib error # Run tests for specific module (error module)
cargo bench --bench crypto_bench # Run crypto benchmarks
cargo clippy -- -D warnings # Lint with clippy
Project-Specific Conventions
Rust Edition
- Uses Rust edition 2024 (not 2021) - specified in Cargo.toml
Error Handling Pattern
- Custom
Recoverabletrait distinguishes recoverable vs fatal errors HandshakeResult<T,R,W>returns streams on bad client for masking - do not drop them- Always use
ProxyErrorfromsrc/error.rsfor proxy operations
Configuration Auto-Migration
ProxyConfig::load()mutates config with defaults and migrations- DC203 override is auto-injected if missing (required for CDN/media)
show_linktop-level migrates togeneral.links.show
Middle-End Proxy Requirements
- Requires public IP on interface OR 1:1 NAT with STUN probing
- Falls back to direct mode on STUN/interface mismatch unless
stun_iface_mismatch_ignore=true - Proxy-secret from Telegram is separate from user secrets
TLS Fronting Behavior
- Invalid handshakes are transparently proxied to
mask_hostfor DPI evasion fake_cert_lenis randomized at startup (1024-4096 bytes)mask_unix_sockandmask_hostare mutually exclusive