# План разработки ## Этап 0 — фундамент - [x] переименовать проект в Server Monitor Manager; - [x] разделить мониторинг, терминал и Links в архитектуре; - [x] определить безопасный контракт установки агента; - [ ] выбрать лицензию; - [ ] настроить CI, форматирование, тесты и релизные checksum. ## Этап 1 — Windows MVP - [x] установить .NET SDK и официальный WinUI 3 toolchain; - [x] создать packaged WinUI 3 приложение с воспроизводимым CLI-запуском через WinApp; - [x] реализовать shell: Overview, Servers, Links, Sessions, Settings; - [x] добавить локальные demo-данные и адаптивный dashboard; - [x] генерировать отдельный Ed25519 SSH-ключ и хранить его в локальном каталоге packaged-приложения; - [x] сохранять профили серверов локально без паролей; - [x] собрать и реально запустить x64-приложение. ## Этап 2 — мониторинг одного сервера - [x] первый бездемонный Linux endpoint через SSH forced-command; - [ ] статический постоянный Linux agent для amd64/arm64; - [ ] control node с SQLite, mTLS enrollment и WebSocket событиями; - [ ] CPU, RAM, disk, network, uptime и systemd units; - [ ] ограниченный локальный буфер и downsampling; - [ ] installer, update, rollback и uninstall; - [ ] предупреждения о диске, памяти и недоступности. ## Этап 3 — несколько серверов и терминал - [ ] группы, теги, поиск и сводные статусы; - [ ] прямой SSH из Windows-клиента; - [ ] known_hosts pinning и отдельные profiles; - [ ] типизированные безопасные действия с аудитом; - [ ] экспорт диагностики без секретов. ## Этап 4 — Links и Hermes - [ ] WireGuard peer helper с минимальными привилегиями; - [ ] policies по CIDR, протоколу, порту и TTL; - [ ] connect/disconnect с подтверждением обоих узлов; - [ ] обязательное отключение после reconnect; - [ ] отдельная automation identity для Hermes; - [ ] интеграционные тесты kill switch и частичных отказов. ## Этап 5 — другие платформы - [ ] macOS и Linux desktop clients после стабилизации Core/API; - [ ] Android/iOS как companion-клиенты; - [ ] push-уведомления без передачи административных секретов стороннему push-провайдеру.