- Deleted 11 obsolete debug/isolation test files - Restored test_pkt_normalizer.c from git repository - Added test_ecc_encrypt and test_routing to Makefile (2 new functional tests) - Removed settings.o from PN_OBJS (settings.c deleted) - Added crc32.o to SC_LIB_OBJS and ETCP_OBJS to fix linker errors - Removed unused routing_get_stats() function (undefined routing_stats_t type) - Updated changelog with detailed cleanup summary Current test count: 16 tests in Makefile (14 original + 2 new)Active test files in tests/: 25 files (was 35)test_ecc_encrypt: PASStest_routing: Compilation OK
38 lines
4.4 KiB
Plaintext
Executable File
38 lines
4.4 KiB
Plaintext
Executable File
# AGENTS.md - uTun Development Guide
|
|
|
|
This document provides essential information for agentic coding assistants working on the uTun VPN tunnel project.
|
|
Совместимость со станым при доработках сохранять не надо. Вместо этого надо доработать остальной код чтобы работало. Важно своевременно чистить код от старых хвостов и проверять что ничего не сломалось. Т.е. код плохо нагромождать - надо стремиться к краткости, логичности и убирать то что стало неактуальным и ненужным.
|
|
|
|
Если не работает - добавляй отладочную информацию чтобы быстрее найти проблемное место и не рушить работающий код.
|
|
если отладочная информация будет флудить сделай ее отключаемой или подумай как ограничить ее вывод по возможности сохраняя информативность.
|
|
Добавляй в код структуры для статистики (например суммируй число ошибок, вызовов и других потенциально нужных для анализа при ошибках метрик).
|
|
добавляй в тест подсчет времени сколько каждый этап длился для лучшего понимания оптимизации
|
|
перед запуском тестов не забывай их пересобирать
|
|
|
|
веди changelog.txt: дата время: что поменялось
|
|
задача протокола - обеспечивать минимальную задержку при большом трафике. т.е. держать необходимый минимум данных в очередях.
|
|
дизайн - однопоточный асинхронный.
|
|
все ожидающие операции - через сокеты(дескрипторы) и таймауты -> u_async
|
|
все очереди через ll_queue
|
|
главный модуль обслуживания подключения - connection
|
|
unit-tests: для каждого теста в начале файла теста описывай что и как он тестирует - кратко но указыая на нюансы если они есть.
|
|
|
|
Перед реализацией нового модуля:
|
|
1. Проанализируй архитектуру проекта и существующие модули, их ответственность и точки взаимодействия.
|
|
2. Определи роль нового модуля в общей архитектуре и его границы ответственности.
|
|
3. Спроектируй API модуля (входные данные, выходные данные, побочные эффекты).
|
|
4. Мысленно смоделируй работу модуля в нескольких типовых сценариях, включая:
|
|
корректный поток выполнения
|
|
граничные случаи
|
|
возможные ошибки
|
|
5. Сверь получившуюся логику с архитектурой проекта и существующими модулями.
|
|
6. Если обнаружены противоречия, нарушения ответственности или избыточные зависимости — доработай API и логику модуля.
|
|
Только после этого приступай к реализации.
|
|
|
|
## Code Style Guidelines
|
|
|
|
комменты в коде на русском
|
|
Приоритет - простое (логически понятное, минималистичное api, но функциональное). Всегда надо думать как сделать проще и красивее. не надо нагромождать лишнего - сперва подумай действительно ли оно нужно.
|
|
|
|
рассуждай на английском, остальное лучше на русском (отчёты, дальшейшие шаги и ответы на запросы всегда на русском)
|