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) — контекст, порти, перевірка агентів, типові виправлення
|
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"
|
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 — Операції та контекст
|
# NODA1 — Операції та контекст
|
||||||
@@ -29,7 +29,7 @@ alwaysApply: false
|
|||||||
| RAG | 9500 | `/health` |
|
| RAG | 9500 | `/health` |
|
||||||
| Swapper | 8890 | `/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`.
|
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 з токенами на сервері.
|
3. **Агент без prompt/token** — перевірити `gateway-bot/http_api.py` (AGENT_REGISTRY) і наявність `*_prompt.txt` та env з токенами на сервері.
|
||||||
4. **Зміни в коді** — задеплоїти на NODA1 (git pull, rebuild, restart відповідних контейнерів згідно з проектом).
|
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:
|
on:
|
||||||
push:
|
push:
|
||||||
|
branches: [main]
|
||||||
paths:
|
paths:
|
||||||
- "services/**"
|
- "services/**"
|
||||||
- "gateway-bot/**"
|
- "gateway-bot/**"
|
||||||
- ".github/workflows/python-services-ci.yml"
|
- ".github/workflows/python-services-ci.yml"
|
||||||
pull_request:
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
paths:
|
paths:
|
||||||
- "services/**"
|
- "services/**"
|
||||||
- "gateway-bot/**"
|
- "gateway-bot/**"
|
||||||
@@ -33,11 +35,16 @@ jobs:
|
|||||||
python-version: "3.11"
|
python-version: "3.11"
|
||||||
cache: "pip"
|
cache: "pip"
|
||||||
|
|
||||||
- name: Install deps (locked)
|
- name: Install deps
|
||||||
working-directory: ${{ matrix.service }}
|
working-directory: ${{ matrix.service }}
|
||||||
run: |
|
run: |
|
||||||
python -m pip install --upgrade pip
|
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
|
- name: Pip check
|
||||||
working-directory: ${{ matrix.service }}
|
working-directory: ${{ matrix.service }}
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -67,3 +67,4 @@ Thumbs.db
|
|||||||
.cursor/noda1-credentials.local.mdc
|
.cursor/noda1-credentials.local.mdc
|
||||||
._*
|
._*
|
||||||
**/._*
|
**/._*
|
||||||
|
logs/
|
||||||
|
|||||||
Reference in New Issue
Block a user