Files
microdao-daarion/docs/HUMANIZED_STEPAN_v2.9_CHANGELOG.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

4.4 KiB
Raw Blame History

Humanized Stepan — CHANGELOG v2.9

Version: v2.9
Date: 2026-02-25
Базується на: v2.8 (Multi-user FarmProfile, lazy migration, PII-safe telemetry)


Summary

Memory Consolidation — детермінована, ідемпотентна очистка UserProfile і FarmProfile:

  • Профілі не "розростаються" нескінченно з часом.
  • Запускається автоматично кожні 25 взаємодій (або раніше при hard trigger).
  • Без LLM. Без зміни Light/Deep логіки і текстів відповідей.
  • Fail-safe: будь-яка помилка → профіль залишається незміненим, tlog warning.
  • PII-safe: всі telemetry логи через tlog з анонімізацією user_id/chat_id.

Що обрізається і чому це safe

Поле Ліміт Метод
context_notes ≤ 20 dedup + trim (останні N)
known_intents ≤ 30 dedup + trim (останні N)
preferences whitelist keys видалення невідомих ключів
tone_constraints bool-ключі нормалізація типів + видалення невідомих
interaction_summary ≤ 220 символів cap без обрізки посередині слова
recent_topics ≤ 5 dedup (вже є horizon, для безпеки)
field_ids ≤ 200 dedup + trim
crop_ids ≤ 100 dedup + trim
active_integrations ≤ 20 dedup + trim

Whitelist preferences keys: units, report_format, tone_constraints, language

Consolidation зберігає останні N записів (не перші) — найновіші теми/поля мають пріоритет.


Тригери

Тип Умова
Periodic interaction_count % 25 == 0 (25, 50, 75…)
Hard trigger (user) len(context_notes) > 30 або len(known_intents) > 45
Hard trigger (farm) len(field_ids) > 300, len(crop_ids) > 150, або len(active_integrations) > 30

Telemetry events

AGX_STEPAN_METRIC memory_consolidated entity=user_profile user_id=h:... changed=true reason=periodic
AGX_STEPAN_METRIC memory_consolidated entity=farm_profile chat_id=h:... changed=false reason=hard_trigger
AGX_STEPAN_METRIC memory_consolidation_error entity=user_profile user_id=h:... error=...

Grep у проді:

docker logs dagi-gateway-node1 --since 60m 2>&1 | grep "AGX_STEPAN_METRIC memory_consolidated"

Що НЕ змінюється

  • classify_depth / depth_classifier — без змін
  • light_reply банки фраз і поведінка — без змін
  • reflection_engine — без змін
  • Тексти відповідей агента — без змін
  • recent_topics semantics (horizon 5) — без змін
  • FarmProfile chat_id key (v2.8) — без змін

Backward Compatibility

  • Поля яких немає в профілі (наприклад context_notes) — ігноруються (не створюються)
  • preferences без whitelist-ключів — тільки видаляються зайві, наявні зберігаються
  • tone_constraints з невалідними типами (int замість bool) — нормалізуються до bool

Tests

Результат: 203/203 зелених

Файл Нових тестів Опис
tests/test_stepan_v29_consolidation.py 42 Limits, dedup, triggers, idempotency, fail-safe, telemetry
# Тільки v2.9 consolidation тести
python3 -m pytest tests/test_stepan_v29_consolidation.py -v

# Всі Stepan тести (203)
python3 -m pytest tests/test_stepan_v29_consolidation.py tests/test_stepan_v28_farm.py \
  tests/test_stepan_telemetry.py tests/test_stepan_invariants.py \
  tests/test_stepan_acceptance.py tests/test_stepan_light_reply.py \
  tests/test_stepan_memory_followup.py -v

Rollback

git checkout HEAD~1 -- crews/agromatrix_crew/memory_manager.py
docker compose -f docker-compose.node1.yml up -d --build dagi-gateway-node1

Після rollback: consolidation не запускається, профілі накопичуються як раніше. Існуючі профілі не ламаються.