/feedback Command Architecture
/feedback is handled inline in telegram-listener — no new service, no event bus.
STATE: Redis key feedback_mode:{telegram_user_id} = JSON {session_id, started_at} with 24h TTL.
FLOW:
- /feedback in DM: set Redis key with new UUID session_id → send activation message → finish(routed_feedback_start)
- Message while mode active: INSERT user_feedback → ack "Feedback received" → finish(routed_feedback) — RPE bypassed
- /feedback again: del Redis key → send "session ended" → finish(routed_feedback_end)
- /feedback in group: reject with message → finish(drop_feedback_not_dm)
RPE EXCLUSION: relationship-profile-worker filters outcome != routed_feedback from both activePairs aggregate and allMessages window query — feedback messages never skew behavioral signals.
JOIN KEY: user_feedback.last_request_id = zoey_detail_log.request_id (same requestId from webhook entry).
DATA: telegram_system.user_feedback — session_id groups all messages in one /feedback session.
DASHBOARD: /system-ops/user-feedback in ops-tracker. Filter by ?session_id= or ?user=.