Architecture: How to fix 6 WhatsApp UX issues and make Vitto feel intellig...
Documentation for Sessions
🏗️ Architecture: How to fix 6 WhatsApp UX issues and make Vitto feel intellig...
Date: 2026-03-13
Time: 15:11:31 UTC
Session: gspace1-214.2
Agent: angular
Confidence: 92%
Status: ✅ Documented
📋 Decision Context
Question:
How to fix 6 WhatsApp UX issues and make Vitto feel intelligent rather than robotic?
Task: Execute S211.4 Vitto Conversational Intelligence plan
🎯 Decision Made
Chosen:
Three-layer fix: (1) Consolidate message flow — ACK/progress/quick-reply share a budget of max 2 pre-response messages, emitter created AFTER ACK. (2) Add query_system_status tool inline in tool-registry — Vitto can access its own alerts/health data via ProactiveMonitorService. (3) Context-aware responses — skip agent loop for greetings (saves ~500 tokens), suppress generic quick reply buttons for short/greeting responses, contextual button labels instead of "Go deeper", language-boundary persona directive, MessageSid dedup guard, digest memory persistence.
Options Considered:
- No alternatives documented
💭 Reasoning
Root causes from real WhatsApp conversation: duplicate greeting = ACK + LLM response for fast tier (fixed by reordering emitter after ACK with shared budget); "What next?" spam = enricher always fires for >20 chars (raised to 80, suppressed for greetings/fast tier); can't query alerts = no tool bridges ProactiveMonitorService to agent loop (added inline in tool-registry following existing pattern); "Mira mijo" = humorLevel:2 + formality:1 + no language guard (reduced humor to 1, raised formality to 2, added language boundary directive); "Go deeper" useless = triggers same loop (replaced with contextual labels). Anticipated: greeting wastes agent loop (added fast-path), digest not in memory (added persistence after delivery).
📁 Files Involved
APIs/backend-vitto-api/src/app/engine/channel-processing.service.tsAPIs/backend-vitto-api/src/app/engine/channel-response-enricher.service.tsAPIs/backend-vitto-api/src/app/engine/vitto-expression.service.tsAPIs/backend-vitto-api/src/app/engine/vitto.controller.tsAPIs/backend-vitto-api/src/app/engine/persona.service.tsAPIs/backend-vitto-api/src/app/tools/tool-registry.service.tsAPIs/backend-vitto-api/src/app/tools/definitions/query-system-status.tool.tsAPIs/backend-vitto-api/src/app/proactive/daily-digest.service.ts
🔗 Related
- Decision ID:
dev_1773414691724_fm2fvbj - Session: 214
- Workspace: gspace1
Auto-generated by MCP Smart Consolidation