Files
LazyBearWorks/memory-bank/activeContext.md

148 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Active Context — Текущее состояние работы
## 📍 Где мы находимся
### Состояние проекта
**LazyBear MCP Server** находится на этапе **Development**. Сервер предоставляет MCP инструменты для работы с:
-**Jira** — Issues, JQL, комментарии
-**Confluence** — Страницы, пространства
-**Kubernetes** — Deployments, Pods, Services, Ingress
-**TUI** — Интерактивная консольная панель
### Последнее обновление кода
**Commit**: `d12e9873f0964f2c275a634cda80b161c83f9bbb`
### Текущий фокус
**Активная разработка**: Инициализация Memory Bank для поддержания документации между сессиями.
**Следующие шаги**:
1. ✅ Создать Memory Bank структуру
2. 🔄 Продолжить документирование архитектуры и паттернов
3. ⏳ Обновлять Memory Bank после значимых изменений
4. ⏳ Добавить Qdrant в Memory Bank
## 🔍 Важные решения
### Архитектурные паттерны
| Паттерн | Описание | Где используется |
|---------|----------|------------------|
| **Single HTTP Server** | Один транспорт MCP | Program.cs — один AddMcpServer |
| **Tool Registry** | Регистрация модулей | ToolRegistryService.RegisterModule |
| **Client Provider** | Factory для клиентов | K8sClientProvider, JiraClientProvider |
| **TUI First** | TUI как основной UI | RazorConsole<App> в Program.cs |
### Технические решения
- **MCP Protocol 1.2.0** — HTTP transport
- **.NET 10 SDK** — Пин в global.json
- **ASP.NET Core 9** — HTTP server
- **RazorConsole** — TUI framework
- **Kubernetes Client** — Через kubeconfig
### Конфигурация
**appsettings.json**:
```json
{
"Kubernetes": {
"KubeconfigPath": "", // Fallback к defaults
"DefaultNamespace": "default"
},
"Jira": {
"Url": "", // Требуется для Jira tools
"Token": "",
"Project": ""
},
"Confluence": {
"Url": "",
"Token": "",
"Username": "",
"SpaceKey": ""
},
"Qdrant": {
"Url": "", // URL Qdrant сервера
"ApiKey": "", // Опционально для авторизации
"DefaultCollection": "knowledge" // Default коллекция для векторного поиска
}
}
```
## 🚧 Текущая работа
### Что работает
- ✅ MCP HTTP transport активен
- ✅ TUI запуск через RazorConsole
- ✅ Инструменты Jira/Confluence/Kubernetes зарегистрированы
- ✅ Локализация RU/EN (клавиша L)
### Что в разработке/тестировании
- 🔄 Memory Bank инициализация
- ⏳ Тестирование через MCP Inspector
- ⏳ Интеграция с IDE (Codex, VS Code)
### Известные проблемы
- Jira требует настройки `Jira:Url`
- Kubernetes: пустой `KubeconfigPath` использует fallback
- Razor Pages в `Pages/` не активирован (не используется)
## 📋 Следующие действия
### Приоритет 1: Конфигурация
```bash
# Настроить Jira
Jira:Url=https://your-jira.url
Jira:Token=your-token
Jira:Project=LAZYBEAR
# Настроить K8s
Kubernetes:KubeconfigPath=~/.kube/config
```
### Приоритет 2: Тестирование
```bash
# Запустить сервер
dotnet run --project LazyBear.MCP
# Открыть MCP Inspector
npx @modelcontextprotocol/inspector dotnet run --project LazyBear.MCP
```
### Приоритет 3: Документация
- 📝 Обновлять activeContext.md после значимых изменений
- 📝 Добавлять секции в systemPatterns.md при введении новых паттернов
## 💡 Выводы и наблюдения
### Изученное о проекте
1. **Проект уже полностью функционален** — все модули готовы
2. **TUI First подход** — основной UI консольный, HTTP в фоне
3. **Minimal API Style** — чистый код, DI через сервисы
4. **Локализация встроена** — RU/EN переключение через клавишу
### Предпочтения проекта
- **Комментарии и сообщения**: Русский язык
- **Код и переменные**: Английский язык
- **Style**: Clean code, minimal abstractions
- **Documentation**: Markdown в memory-bank/
### Важные уроки
- MCP tools авт. регистрируются из assembly через `WithToolsFromAssembly()`
- IToolModule интерфейсы — способ добавлять новые инструменты
- RazorConsole управляет консолью, HTTP host работает в фоне
---
*Файл автоматически обновляется при значимых изменениях проекта. Читать при начале новой сессии.*