- Add h2 0.4.13 dependency
- Add httpdate 1.0.3 dependency
- Update hyper to include h2 and httpdate features
- Update tokio-util with additional futures and hashbrown dependencies
Rewrite the system prompt for production Rust codebase assistance.
Key changes:
- Add Priority Resolution (Section 0) implementing "Boy Scout Rule" with
explicit scope control: coordinated style fixes are always in scope,
architectural changes require explicit approval
- Add role definition as senior Rust systems engineer with strict code
review responsibilities
- Rewrite negative constraints ("DO NOT") as positive instructions
throughout all sections for better model adherence
- Add structured decision process for complex changes (Section 8):
clarify → assess → propose → implement → verify
- Add context awareness rules (Section 9) for partial code handling
- Add mandatory response format (Section 10) with two-section structure:
Reasoning (Russian) and Changes (English code)
- Add language policy: code/comments/commits in English,
reasoning in Russian
- Add out-of-scope observations reporting mechanism — model reports
issues it finds but is not allowed to fix
- Add splitting protocol for responses exceeding output limits
- Add file size thresholds for full-file vs contextual-diff responses
(200 lines boundary)
- Preserve permission for todo!() and unimplemented!() as idiomatic
Rust markers
- Preserve all existing rules: file size limits, formatting preservation,
warning/dead-code protection, architectural integrity, git discipline
Add new 'announce' field to ListenerConfig that accepts both IP addresses
and hostnames for proxy link generation. The old 'announce_ip' field is
deprecated but still supported via automatic migration.
Changes:
- Add 'announce: Option<String>' field to ListenerConfig
- Add migration logic: announce_ip → announce if announce not set
- Update main.rs to use announce field for link generation
- Support both hostnames (e.g., 'proxy.example.com') and IPs
Backward compatible: existing configs using announce_ip continue to work.
- Replace procedural logic with TelegramDCChecker class
- Introduce frozen DCServer dataclass with slots for DC option parsing
- Add full type hints
- Add docstrings to all classes and methods
- Use itertools.groupby for DC grouping instead of manual dict building
- Use pathlib.Path for file output