docs: de ce nu raspund ambele punti in chatul "Eu", si re-legarea fara QR

Corectie la ce am scris mai devreme in aceeasi zi: ambele punti chiar PRIMESC
mesajele din self-chat, dar Echo le arunca pe toate cu `fromMe && !isGroup`, iar
in self-chat tot ce scrii e fromMe. Deci raspunde doar Maria; Echo foloseste "Eu"
in celalalt sens, ca destinatie de notificari prin /send. Echilibrul e insa
accidental — scoaterea acelui `continue` aduce doua raspunsuri la fiecare mesaj.

Adaugat si cum se re-leaga o punte prin cod, nu prin QR (ambele au /pair), si de
ce nu se poate ocoli slotul de dispozitiv: doua procese cu acelasi auth/ folosesc
aceleasi chei si se dau afara reciproc.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4uzvgm7AyJch5WH8QHRhY
This commit is contained in:
Claude Agent
2026-08-31 21:28:15 +00:00
parent 7a1d2a2073
commit ecf5f2fa7a

View File

@@ -147,22 +147,48 @@ poate ajunge la ambele. Dacă primești două răspunsuri, două punți sunt act
### Chatul „Eu" (self-chat) le vede amândouă
Ambele punți sunt *dispozitive conectate* ale aceluiași cont, deci **amândouă primesc și
Ambele punți sunt *dispozitive conectate* ale aceluiași cont, deci **amândouă primesc
mesajele din chatul cu tine însuți**. Nu există o setare care să dea self-chat-ul doar
uneia — separarea trebuie făcută oprind una din punți.
uneia. Că nu răspund amândouă ține de un singur rând din puntea lui Echo:
Starea la 2026-08-31, verificată: puntea lui Echo era asociată ca dispozitiv `:11` al
numărului (`auth/creds.json` → `me.id = 40723197939:11`) și a răspuns în „Eu" până
dimineața, când sesiunea i-a căzut (`registered: false`, `connected: false`). Serviciul
rulează în continuare și `echo-core` îi cere mesajele la câteva minute — dacă cineva îl
reasociază, Echo revine în „Eu" lângă Maria, fără niciun avertisment.
```js
if (msg.key.fromMe && !isGroup) continue; // bridge/whatsapp/index.js
```
Pentru a-l scoate definitiv din WhatsApp (Telegram și Discord rămân neatinse):
În self-chat **tot ce scrii e `fromMe`**, deci Echo aruncă mesajele și doar Maria
răspunde (ea are `TEST_MODE_SELF_CHAT_ONLY` și compară explicit cu `ownJid`/`ownLid`).
Echo folosește „Eu" în celălalt sens: ca **destinație de notificări**, prin `/send` — de
aici mesajele lui care apar acolo fără să fi întrebat nimeni nimic.
Concluzia practică: cele două punți coexistă, dar **echilibrul e accidental**. Dacă
cineva scoate acel `continue` din Echo, sau pornește un al treilea bot fără filtru,
ajungi cu două răspunsuri la fiecare mesaj din „Eu".
Pentru a scoate complet Echo din WhatsApp (Telegram și Discord rămân neatinse):
```bash
ssh root@10.0.20.200 "pct exec 110 -- sudo -u moltbot XDG_RUNTIME_DIR=/run/user/1000 \
systemctl --user disable --now echo-whatsapp-bridge"
```
### Re-legarea unei punți fără cod QR
Fiecare punte Baileys **este** un dispozitiv conectat și consumă unul din cele 4 sloturi
ale contului; nu se poate ocoli (două procese cu același `auth/` folosesc aceleași chei
și se dau afară reciproc — simptomul e `No matching sessions found for message` în log).
Ambele punți acceptă însă asociere prin cod, ceea ce scutește de dus un ecran în fața
telefonului:
```bash
# Maria (LXC 171) — sau din dashboard, cardul „Conectare WhatsApp"
curl -s -X POST -H 'Content-Type: application/json' \
-d '{"phone":"40723197939"}' http://127.0.0.1:8099/pair
# Echo (LXC 110), după ce i-ai golit auth/ și ai repornit serviciul
ssh root@10.0.20.200 "pct exec 110 -- curl -s -X POST -H 'Content-Type: application/json' \
-d '{\"phone\":\"40723197939\"}' http://127.0.0.1:8098/pair"
```
Codul e valabil ~3 minute. Pe telefon: Dispozitive conectate → Conectează un dispozitiv →
**Conectează cu număr de telefon**.
**Atenție la scope-ul systemd pe LXC 110:** serviciile lui Echo sunt unități de
**utilizator** (`moltbot`, uid 1000). Un `systemctl is-active echo-core` rulat ca root
răspunde `inactive` deși botul rulează — exact genul de răspuns care trimite diagnosticul