You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

3.7 KiB

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: для каждого теста в начале файла теста описывай что и как он тестирует - кратко но указыая на нюансы если они есть. Если код не собирается и в этом месте написано #указание <текст> - то это указание надо выполнить в приоритетном порядке.

не используй shell для редактирования - много ошибок допускаешь. есть встроенные инструменты.

Code Style Guidelines

комменты в коде на русском используй по возможности структуры а не typedef, пример: struct STRUCT_NAME {...}; - прототипы структур ЗАГЛАВНЫМИ БУКВАМИ

Приоритет - простое (логически понятное, минималистичное api, но функциональное). Всегда надо думать как сделать проще и красивее. не надо нагромождать лишнего - сперва подумай действительно ли оно нужно.

рассуждай на английском, остальное лучше на русском (отчёты, дальшейшие шаги и ответы на запросы всегда на русском)