Commit 2e3fa20
committed
fix(a2a): usar UUID do contato como userId (corrige 500 Session not found)
Segunda metade do fix de chaveamento de sessão (o commit anterior corrigiu o
session_id via contextId; este corrige o user_id).
A sessão ADK do Processor é chaveada por (app_name, user_id, session_id). O
SessionSync do CRM pré-cria/persiste essa sessão usando o UUID do contato como
user_id. Mas o bot_runtime enviava o ContactID numérico como userId, então o run
a2a buscava a sessão com user_id numérico enquanto a linha persistida tinha o
UUID do contato. Resultado: get_session_by_id (que ignora user_id) achava a
sessão e logava o histórico, mas o runner do ADK (que exige user_id) levantava
"Session not found" → 500 → o agente nunca respondia, mesmo com a sessão e o
histórico existindo.
Correção: extrair o UUID do contato de metadata.evoai_crm_data.contact.id e
usá-lo como userId, com fallback para o ContactID numérico quando o metadata
estiver ausente. Mesmo padrão de extração e fallback do fix do contextId. Isso
alinha os três pontos: escrita do SessionSync, criação e leitura do runner.
O caller Rails (http_request_service) já enviava o contact UUID (sender.id);
este fix alinha o bot_runtime ao mesmo padrão.
Testes: pkg/ai/service passa, cobrindo userId UUID e fallback numérico.1 parent dfe6b2b commit 2e3fa20
2 files changed
Lines changed: 56 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
60 | 69 | | |
61 | 70 | | |
62 | 71 | | |
63 | 72 | | |
64 | 73 | | |
65 | 74 | | |
66 | | - | |
| 75 | + | |
67 | 76 | | |
68 | 77 | | |
69 | 78 | | |
| |||
187 | 196 | | |
188 | 197 | | |
189 | 198 | | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
20 | | - | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
21 | 22 | | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
27 | 32 | | |
28 | 33 | | |
29 | 34 | | |
| |||
58 | 63 | | |
59 | 64 | | |
60 | 65 | | |
61 | | - | |
62 | | - | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
63 | 69 | | |
64 | 70 | | |
65 | 71 | | |
| |||
86 | 92 | | |
87 | 93 | | |
88 | 94 | | |
89 | | - | |
| 95 | + | |
90 | 96 | | |
91 | 97 | | |
92 | 98 | | |
| |||
108 | 114 | | |
109 | 115 | | |
110 | 116 | | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
111 | 121 | | |
112 | 122 | | |
113 | 123 | | |
| |||
122 | 132 | | |
123 | 133 | | |
124 | 134 | | |
| 135 | + | |
125 | 136 | | |
126 | 137 | | |
127 | | - | |
| 138 | + | |
128 | 139 | | |
129 | 140 | | |
130 | 141 | | |
| |||
0 commit comments