Update CLAUDE.md: primary goal, auto-bump docs, architecture

- Document primary purpose: Claude Code manages servers via /ssh skill by alias only
- Update versioning section: auto-bump in build.py, remove outdated release.py refs
- Add terminal features, session pool, keyboard layout independence
- Update project structure to reflect current architecture

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
chrome-storm-c442
2026-02-24 04:37:20 -05:00
parent c778e2bdba
commit 831fb66110

119
CLAUDE.md
View File

@@ -1,41 +1,112 @@
# CLAUDE.md — инструкции для Claude Code
## Текущая версия: 1.6.2
## Основная цель проекта
ServerManager создан чтобы **Claude Code мог управлять серверами через глобальный скилл `/ssh`**, зная только алиасы серверов. Claude **никогда не видит логины и пароли** — скрипт `ssh.py` сам читает credentials из зашифрованного `servers.json`.
```
Claude Code → /ssh investor "uptime" → ssh.py → servers.json (encrypted) → SSH
↑ ↓
Видит только alias + команду Пароли остаются локально Результат
```
## Как пользоваться /ssh
```bash
# Выполнить команду на сервере
/ssh investor "uptime"
/ssh main-ovh "systemctl status nginx"
# Список серверов (без паролей)
/ssh --list
# Статус всех серверов
/ssh --status
# Загрузить файл
/ssh investor --upload /local/file /remote/path
# Скачать файл
/ssh investor --download /remote/file /local/path
# Проверить доступность
/ssh investor --ping
```
## Как настроить на новой машине
1. Клонировать: `git clone https://git.sensey24.ru/aibot777/server-manager.git`
2. `pip install -r requirements.txt`
3. `python main.py` → вкладка Setup → "Install Everything"
4. Добавить серверы через GUI → Claude Code сразу видит их через `/ssh --list`
Setup устанавливает:
- `ssh.py``~/.server-connections/`
- `encryption.py``~/.server-connections/`
- `/ssh` skill → `~/.claude/commands/ssh.md`
- SSH-ключ (ed25519)
## Версионирование
**Автоматическое.** `build.py` сам инкрементирует patch-версию при каждой сборке.
```bash
python build.py # автобамп 1.8.9 → 1.8.10, сборка
python build.py --no-bump # сборка без изменения версии
python build.py --clean # очистка артефактов + сборка
```
Файл версии: `version.py``__version__`
Semver: **MAJOR** (ломающие изменения) | **MINOR** (новая фича) | **PATCH** (багфикс, мелкие правки)
Semver: **MAJOR** (ломающие) | **MINOR** (новая фича) | **PATCH** (багфикс — автобамп)
**ВАЖНО:** При любых изменениях в коде — ВСЕГДА бампить версию перед сборкой:
- Багфикс → `patch`
- Новая фича → `minor`
- Ломающие изменения → `major`
Для minor/major бампа — вручную изменить version.py перед сборкой.
**Порядок релиза:**
1. Внести изменения в код и закоммитить
2. `python release.py patch` (или `minor` / `major` / `2.0.0`) — **ОБЯЗАТЕЛЬНО перед сборкой**
3. `python build.py --clean`
4. Закоммитить изменения версии, поставить тег и запушить:
```bash
git add version.py CHANGELOG.md README.md CLAUDE.md
git commit -m "vX.Y.Z: описание"
git tag vX.Y.Z
git push sensey master --tags
```
## Git — коммит и пуш
Скрипт `release.py` автоматически обновляет все 4 файла (`version.py`, `CHANGELOG.md`, `README.md`, `CLAUDE.md`) и генерирует changelog из git log.
## Git — автокоммит и пуш
**ОБЯЗАТЕЛЬНО:** После завершения любых изменений в коде — коммить и пуши в sensey:
**ОБЯЗАТЕЛЬНО:** После завершения изменений — коммить и пуши:
```bash
git add <изменённые файлы>
git commit -m "описание"
git commit -m "vX.Y.Z: описание"
git push sensey master
```
- Не оставляй незакоммиченные изменения в конце сессии
- Remote: `sensey` (https://git.sensey24.ru/aibot777/server-manager.git)
- Ветка: `master`
## Архитектура
```
ServerManager/
├── main.py # Entry point
├── version.py # Version (auto-bumped by build.py)
├── build.py # PyInstaller + auto version bump
├── core/ # Business logic
│ ├── server_store.py # CRUD + encrypted JSON + backups
│ ├── encryption.py # Fernet encryption
│ ├── ssh_client.py # Paramiko SSH/SFTP/ShellSession
│ ├── session_pool.py # LRU session pool (max 5 concurrent)
│ ├── claude_setup.py # Claude Code integration installer
│ ├── status_checker.py # Background monitoring
│ ├── totp.py # TOTP/2FA (pyotp)
│ ├── i18n.py # EN/RU/ZH translations
│ └── logger.py # Rotating file logger
├── gui/ # CustomTkinter UI
│ ├── app.py # Main window
│ ├── sidebar.py # Server list + session indicators
│ ├── tabs/ # Terminal, Files, Info, Keys, 2FA, Setup
│ └── widgets/ # TerminalWidget (pyte), FileList, StatusBadge
├── tools/ # CLI tools (installed to ~/.server-connections/)
│ ├── ssh.py # SSH utility for Claude Code
│ └── skill-ssh.md # /ssh skill template
└── releases/ # Built executables
```
## Ключевые особенности терминала
- **pyte** эмулятор + tkinter Text виджет
- **Session pool** — сессии живут при переключении серверов, буфер сохраняется через pickle
- **Auto-sudo** — детекция `[sudo] password for` в выводе, автоматическая отправка пароля
- **Ctrl+C** — double-press (1.5s) для SIGINT, single = copy (если есть выделение)
- **Keyboard layout independent** — Ctrl+C/V/D/L/Z работают через keycode, не зависят от раскладки
- **Copy/Paste** — Ctrl+C/Ctrl+Shift+C/правый клик для копирования, Ctrl+V для вставки (с bracketed paste)