Files
microdao-daarion/docs/HUMANIZED_STEPAN_v2.7_RELEASE_CHECKLIST.md
Apple 67225a39fa docs(platform): add policy configs, runbooks, ops scripts and platform documentation
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
2026-03-03 07:14:53 -08:00

5.8 KiB
Raw Blame History

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=inproc
    • TZ=Europe/Kyiv
    • AGX_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 (3060 хв після деплою)

# 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