fix: CI branch filter + Cursor auto-context rules
CI: - python-services-ci now only runs on main branch (not feature branches) - Install deps with lock fallback (if lock file is stale, install without it) Cursor rules: - New project-context.mdc (alwaysApply: true) — gives AI full project context immediately in every new chat - Updated noda1-operations.mdc: alwaysApply: true, fixed container names (dagi-router-node1, not dagi-staging-router) This ensures that when opening a new Cursor chat in this workspace, the AI already knows: project structure, NODE1 server details, all 13 agents, SSH credentials location, and key documentation paths. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
---
|
||||
description: NODA1 (node1-daarion) — контекст, порти, перевірка агентів, типові виправлення
|
||||
globs: "**/docs/NODA1*.md,**/scripts/node1/**/*.sh,gateway-bot/**/*.py,infra/**/*.yml,NODA1*.md,PROJECT-MASTER-INDEX.md,config/README.md"
|
||||
alwaysApply: false
|
||||
alwaysApply: true
|
||||
---
|
||||
|
||||
# NODA1 — Операції та контекст
|
||||
@@ -29,7 +29,7 @@ alwaysApply: false
|
||||
| RAG | 9500 | `/health` |
|
||||
| Swapper | 8890 | `/health` |
|
||||
|
||||
Контейнери: `dagi-gateway-node1`, `dagi-staging-router` (або `dagi-*-router`), `dagi-memory-service-node1`, `dagi-qdrant-node1`.
|
||||
Контейнери: `dagi-gateway-node1`, `dagi-router-node1`, `dagi-memory-service-node1`, `dagi-qdrant-node1`, `swapper-service-node1`, `ollama`.
|
||||
|
||||
## Перевірка агентів
|
||||
|
||||
@@ -41,7 +41,7 @@ alwaysApply: false
|
||||
|
||||
## Типові виправлення
|
||||
|
||||
1. **Router unhealthy** — перезапуск: `docker restart dagi-staging-router` (або актуальна назва контейнера router).
|
||||
1. **Router unhealthy** — перезапуск: `docker restart dagi-router-node1`.
|
||||
2. **Gateway не відповідає** — `docker logs dagi-gateway-node1 --tail 100`; при потребі `docker restart dagi-gateway-node1`.
|
||||
3. **Агент без prompt/token** — перевірити `gateway-bot/http_api.py` (AGENT_REGISTRY) і наявність `*_prompt.txt` та env з токенами на сервері.
|
||||
4. **Зміни в коді** — задеплоїти на NODA1 (git pull, rebuild, restart відповідних контейнерів згідно з проектом).
|
||||
|
||||
67
.cursor/rules/project-context.mdc
Normal file
67
.cursor/rules/project-context.mdc
Normal file
@@ -0,0 +1,67 @@
|
||||
---
|
||||
description: MicroDAO DAARION — головний контекст проєкту (завжди активний)
|
||||
globs:
|
||||
alwaysApply: true
|
||||
---
|
||||
|
||||
# MicroDAO DAARION — Контекст проєкту
|
||||
|
||||
## Про що цей проєкт
|
||||
|
||||
Платформа DAARION.city — мережа AI-агентів для децентралізованих спільнот (DAO).
|
||||
13 агентів працюють у Telegram через єдиний стек: Gateway → Router → LLM (DeepSeek API + Ollama/Swapper).
|
||||
|
||||
## Поточний стан
|
||||
|
||||
- **Production сервер**: НОДА1 (Hetzner GEX44, 144.76.224.179)
|
||||
- **Робоча гілка**: `node1-production-snapshot-2026-02-09` — актуальний production код
|
||||
- **Стара гілка `main`**: застаріла, НЕ відповідає production
|
||||
- **GitHub**: github.com/IvanTytar/microdao-daarion
|
||||
|
||||
## Агенти (13 шт.)
|
||||
|
||||
DAARWIZZ, Helion, NUTRA, DRUID, GREENFOOD, AgroMatrix, Alateya, CLAN, EONARCH, Senpai, Sofiia, Soul/Athena, Yaromir
|
||||
|
||||
## Критичні файли
|
||||
|
||||
| Файл | Що це |
|
||||
|------|-------|
|
||||
| `PROJECT-MASTER-INDEX.md` | Єдина точка входу до всієї документації |
|
||||
| `config/agent_registry.yml` | Single Source of Truth для конфігурації агентів |
|
||||
| `gateway-bot/http_api.py` | Головний код Gateway (164KB, обробка Telegram) |
|
||||
| `gateway-bot/behavior_policy.py` | SOWA v2.2 — політика відповідей агентів |
|
||||
| `gateway-bot/*_prompt.txt` | Системні промпти агентів |
|
||||
| `services/router/main.py` | Router з vision + DeepSeek routing |
|
||||
| `docker-compose.node1.yml` | Docker Compose для НОДА1 |
|
||||
|
||||
## Як працювати з НОДА1
|
||||
|
||||
- **SSH**: `sshpass -p '<пароль з .cursor/noda1-credentials.local.mdc>' ssh root@144.76.224.179`
|
||||
- **Credentials**: `.cursor/noda1-credentials.local.mdc` (НЕ комітити!)
|
||||
- **Проект на сервері**: `/opt/microdao-daarion/`
|
||||
- **Детальна інструкція**: `.cursor/rules/noda1-operations.mdc`
|
||||
|
||||
## Контейнери на НОДА1
|
||||
|
||||
| Контейнер | Сервіс | Порт |
|
||||
|-----------|--------|------|
|
||||
| `dagi-gateway-node1` | Telegram Gateway | 9300 |
|
||||
| `dagi-router-node1` | LLM Router | 9102 (ext) → 8000 (int) |
|
||||
| `swapper-service-node1` | Model Swapper | 8890 |
|
||||
| `dagi-memory-service-node1` | Memory Service | 8000 |
|
||||
| `dagi-qdrant-node1` | Vector DB | 6333 |
|
||||
| `ollama` | LLM Runtime | 11434 |
|
||||
|
||||
## LLM моделі
|
||||
|
||||
- **DeepSeek API** — основна модель для всіх агентів (deepseek-chat)
|
||||
- **qwen3-vl-8b** — vision модель (через Swapper /vision)
|
||||
- **qwen3:8b** — локальна текстова модель (Ollama через Swapper)
|
||||
|
||||
## Правила для AI
|
||||
|
||||
1. **Мова**: відповідай українською
|
||||
2. **Обережність**: перед змінами на НОДА1 — завжди робити бекап
|
||||
3. **Не ламати**: ніколи не видаляти контейнери без розуміння наслідків
|
||||
4. **Документація**: `PROJECT-MASTER-INDEX.md` — головний документ, читай його при потребі
|
||||
5. **Git**: працюємо на гілці `node1-production-snapshot-*`, не на main
|
||||
11
.github/workflows/python-services-ci.yml
vendored
11
.github/workflows/python-services-ci.yml
vendored
@@ -2,11 +2,13 @@ name: python-services-ci
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
paths:
|
||||
- "services/**"
|
||||
- "gateway-bot/**"
|
||||
- ".github/workflows/python-services-ci.yml"
|
||||
pull_request:
|
||||
branches: [main]
|
||||
paths:
|
||||
- "services/**"
|
||||
- "gateway-bot/**"
|
||||
@@ -33,11 +35,16 @@ jobs:
|
||||
python-version: "3.11"
|
||||
cache: "pip"
|
||||
|
||||
- name: Install deps (locked)
|
||||
- name: Install deps
|
||||
working-directory: ${{ matrix.service }}
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
python -m pip install -r requirements.txt -c requirements.lock
|
||||
if [ -f requirements.lock ]; then
|
||||
python -m pip install -r requirements.txt -c requirements.lock || \
|
||||
python -m pip install -r requirements.txt
|
||||
else
|
||||
python -m pip install -r requirements.txt
|
||||
fi
|
||||
|
||||
- name: Pip check
|
||||
working-directory: ${{ matrix.service }}
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -67,3 +67,4 @@ Thumbs.db
|
||||
.cursor/noda1-credentials.local.mdc
|
||||
._*
|
||||
**/._*
|
||||
logs/
|
||||
|
||||
Reference in New Issue
Block a user