Config policies (16 files): alert_routing, architecture_pressure, backlog, cost_weights, data_governance, incident_escalation, incident_intelligence, network_allowlist, nodes_registry, observability_sources, rbac_tools_matrix, release_gate, risk_attribution, risk_policy, slo_policy, tool_limits, tools_rollout Ops (22 files): Caddyfile, calendar compose, grafana voice dashboard, deployments/incidents logs, runbooks for alerts/audit/backlog/incidents/sofiia/voice, cron jobs, scripts (alert_triage, audit_cleanup, migrate_*, governance, schedule), task_registry, voice alerts/ha/latency/policy Docs (30+ files): HUMANIZED_STEPAN v2.7-v3 changelogs and runbooks, NODA1/NODA2 status and setup, audit index and traces, backlog, incident, supervisor, tools, voice, opencode, release, risk, aistalk, spacebot Made-with: Cursor
5.8 KiB
5.8 KiB
Humanized Stepan — Release Checklist
Version: v3 (оновлено з v2.7) | Date: 2026-02-24
PRE-DEPLOY
-
Тести пройдені локально (232/232)
python3 -m pytest \ tests/test_stepan_invariants.py tests/test_stepan_acceptance.py \ tests/test_stepan_light_reply.py tests/test_stepan_memory_followup.py \ tests/test_stepan_telemetry.py tests/test_stepan_v28_farm.py \ tests/test_stepan_v29_consolidation.py \ tests/test_stepan_v3_session_proactivity_stability.py -v -
Diff review — перевірити, що змінені тільки:
crews/agromatrix_crew/session_context.py(новий файл — v3)crews/agromatrix_crew/proactivity.py(новий файл — v3)crews/agromatrix_crew/depth_classifier.py(stability guard +session=param)crews/agromatrix_crew/run.py(3 мінімальних гачки session/proactivity)tests/test_stepan_v3_session_proactivity_stability.py(новий файл)docs/*.md(документація, не runtime)
-
Env перевірка
# На НОДА1 (значення масковані — тільки наявність) ssh root@144.76.224.179 "docker exec dagi-gateway-node1 env \ | grep -E '^AGX_OPERATOR_IDS=|^AGX_STEPAN_MODE=|^TZ=' | sed 's/=.*/=***/' "AGX_STEPAN_MODE=inprocTZ=Europe/KyivAGX_OPERATOR_IDSне порожній
-
memory-service доступний
docker exec dagi-gateway-node1 curl -s http://memory-service:8000/health -
Rollback plan підготовлений — знати попередній image tag або commit hash
DEPLOY
cd /opt/microdao-daarion
# 1. Pull змін
git pull origin main # або потрібна гілка
# 2. Rebuild тільки gateway
docker compose -f docker-compose.node1.yml up -d --build dagi-gateway-node1
# 3. Перевірка старту (чекати ~30 сек)
sleep 30
docker logs dagi-gateway-node1 --since 1m 2>&1 | grep -E "Stepan mode|STEPAN_IMPORTS_OK" | tail -5
Очікувані рядки в логах після старту:
Stepan mode: inproc
STEPAN_IMPORTS_OK=True
POST-DEPLOY
Health перевірка
# Логи без помилок
docker logs dagi-gateway-node1 --since 5m 2>&1 \
| grep -E "ImportError|ModuleNotFoundError|Stepan disabled|ERROR" | wc -l
# Очікується: 0
5 Smoke сценаріїв (Telegram, від оператора)
| # | Повідомлення | Очікування | Лог-перевірка |
|---|---|---|---|
| 1 | Привіт |
≤80 символів, без "чим допомогти" | depth=light, crew_launch=false, session_updated |
| 2 | Зроби план на завтра по полю 12 |
Deep відповідь, crew запущений | depth=deep, crew_launch=true, topics_push=true, session_updated |
| 3 | а на післязавтра? |
Light, підхоплює тему без нового push; якщо попереднє було light — stability_guard_triggered |
depth=light, topics_push=false, session_updated |
| 4 | обприскування гербіцидом якщо дощ |
Light + disclaimer "за етикеткою"/"за регламентом" | depth=light |
| 5 | Дякую |
≤40 символів, без питань | depth=light, crew_launch=false |
Спостереження telemetry v3 (30–60 хв після деплою)
# Session events (перевірити що є, не занадто багато expired)
docker logs dagi-gateway-node1 --since 1h 2>&1 \
| grep "AGX_STEPAN_METRIC session_" | tail -80
# Stability guard (має бути, але не домінувати)
docker logs dagi-gateway-node1 --since 1h 2>&1 \
| grep "AGX_STEPAN_METRIC stability_guard_triggered" | tail -50
# Proactivity (має бути рідко)
docker logs dagi-gateway-node1 --since 1h 2>&1 \
| grep "AGX_STEPAN_METRIC proactivity_added" | tail -20
Memory validate
# Перевірити що profile зберігся після deep взаємодії
# (через memory-service API або логи)
docker logs dagi-gateway-node1 --since 10m 2>&1 | grep -E "UserProfile.*updated|FarmProfile.*updated" | tail -10
ROLLBACK TRIGGER CONDITIONS
Негайний rollback якщо:
Stepan disabledу логах після стартуModuleNotFoundErrorабоImportErrorу логах- Більше 3 помилок типу
500у gateway за 5 хв після деплою light_rate < 0.40за 30+ повідомлень (занадто багато deep)- ZZR disclaimer з'являється на не-ЗЗР контекст > 3 рази за сесію
v3-специфічні тригери:
proactivity_added> 3 рази за 30 хв в одному чаті → перевіритиinteraction_countлогікуstability_guard_triggeredдомінує і deep майже зник (light_rate > 0.90приtotal >= 30) → guard надто агресивнийsession_expired> 20/год на активному чаті → перевірити TZ контейнера (docker exec dagi-gateway-node1 date)
# Швидкий rollback (v3-файли)
cd /opt/microdao-daarion
git checkout HEAD~1 -- \
crews/agromatrix_crew/run.py \
crews/agromatrix_crew/depth_classifier.py
# Якщо потрібно прибрати нові модулі повністю:
# git checkout HEAD~1 -- crews/agromatrix_crew/session_context.py
# git checkout HEAD~1 -- crews/agromatrix_crew/proactivity.py
docker compose -f docker-compose.node1.yml up -d --build dagi-gateway-node1