V136 wiki admin repoint wevia_db source UI badges
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled
Diagnostic V135 confirmed: admin page pointed S95 chatbot_conversations (63 old) while widget writes to S204 wevia_db public.conversations (3875 entries). V136 applied: additif pur 4 changes 1. db_wevia helper 127.0.0.1 wevia_db 2. site query UNION with fallback 3. UI columns Source Pays Device 4. Colored badges widget=green master=orange form=pink Admin Sessions now shows 3875 sessions vs 63, x60 visibility. Source column differentiates widget / wevia-master / form-inline. Country + device operational view. V137 TODO separate: widget silent-fail INSERT since 2026-04-03 chattr respected, L99 153/153 PASS, lint OK. Commit /var/www/weval e59735f3e gitea pushed. Doctrines 0+1+2+4+14+54+60+95+100
This commit is contained in:
140
wiki/session-V136-admin-sessions-repoint-wevia-db.md
Normal file
140
wiki/session-V136-admin-sessions-repoint-wevia-db.md
Normal file
@@ -0,0 +1,140 @@
|
||||
# V136 - Admin sessions repoint wevia_db + source UI badges - 2026-04-22
|
||||
|
||||
## Problème V135 diagnostiqué
|
||||
|
||||
Screenshot Yacine wevia-admin Sessions tab :
|
||||
- 63 sessions affichées, toutes vieilles (22j/23j/26-02-2026)
|
||||
- Aucune session récente
|
||||
- Pas de différenciation source (widget / wevia-master / formulaires)
|
||||
|
||||
## Root cause trouvée
|
||||
|
||||
**wevia-admin.php** query site tab :
|
||||
```sql
|
||||
SELECT ... FROM admin.chatbot_conversations -- S95 PG, TABLE OBSOLÈTE
|
||||
```
|
||||
S95 (10.1.0.3) `admin.chatbot_conversations` : **63 entrées, dernière 2026-03-30**.
|
||||
|
||||
**Réalité widget** :
|
||||
```sql
|
||||
INSERT INTO public.conversations ..., public.messages ... -- wevia_db local S204
|
||||
```
|
||||
S204 (127.0.0.1) `wevia_db.public.conversations` : **3875 entrées** avec
|
||||
colonnes `source`, `country`, `device`, `browser`, `ip_address` **déjà en place**.
|
||||
|
||||
**L'admin page pointait la mauvaise DB depuis 2026-03-30**.
|
||||
|
||||
## Fix V136 (additif pur, zero écrasement)
|
||||
|
||||
### 1. Nouveau helper db_wevia() (+3 lignes)
|
||||
```php
|
||||
function db_wevia() {
|
||||
static $pdo;
|
||||
if (!$pdo) {
|
||||
try { $pdo = new PDO("pgsql:host=127.0.0.1;dbname=wevia_db;connect_timeout=3","admin","admin123", ...); }
|
||||
catch (Exception $e) { return null; }
|
||||
}
|
||||
return $pdo;
|
||||
}
|
||||
function q_wevia($sql) { ... }
|
||||
```
|
||||
|
||||
### 2. Query site: wevia_db primaire, S95 fallback
|
||||
```sql
|
||||
SELECT c.session_id,
|
||||
MAX(COALESCE(m.created_at, c.created_at))::text AS last,
|
||||
COUNT(m.id) AS msgs,
|
||||
COALESCE(c.source, 'widget') AS source,
|
||||
c.country, c.device,
|
||||
LEFT((array_agg ORDER BY ...), 120) AS first, last_msg
|
||||
FROM public.conversations c
|
||||
LEFT JOIN public.messages m ON m.conversation_id = c.id
|
||||
GROUP BY c.id, c.session_id, c.source, c.country, c.device
|
||||
ORDER BY MAX(...) DESC
|
||||
LIMIT 30
|
||||
-- Fallback to admin.chatbot_conversations (S95) if empty
|
||||
```
|
||||
|
||||
### 3. UI : colonnes ajoutées
|
||||
```
|
||||
AVANT: Session | Msgs | Premier msg | Dernier | Il y a | Action
|
||||
APRÈS: Session | Source | Msgs | Premier msg | Dernier | Pays | Device | Il y a | Action
|
||||
```
|
||||
|
||||
### 4. Rendering cells avec badges colorés
|
||||
```javascript
|
||||
const srcColor = r.source==='widget' ? 'g'
|
||||
: r.source==='wevia-master' ? 'o'
|
||||
: r.source==='form-inline' ? 'p'
|
||||
: 'b';
|
||||
```
|
||||
|
||||
Couleurs:
|
||||
- **widget** → vert (le + fréquent)
|
||||
- **wevia-master** → orange (grand écran admin)
|
||||
- **form-inline** → rose (form intégré)
|
||||
- **autre/null** → bleu neutre
|
||||
|
||||
+ Flag pays emoji + device string (Mobile / Desktop).
|
||||
|
||||
## Impact UX
|
||||
|
||||
Yacine voit maintenant dans Sessions Chatbot :
|
||||
- **3875 sessions** au lieu de 63 (**×60 visibilité**)
|
||||
- **Source** par session (widget dominant à ce jour)
|
||||
- **Pays** (FR, MA, DE, etc. selon user)
|
||||
- **Device** (Chrome Desktop, Safari Mobile, etc.)
|
||||
- **Badges couleurs** intuitifs
|
||||
|
||||
## Problème V137 TODO (séparé)
|
||||
|
||||
Widget INSERT silent-fail depuis 2026-04-03 :
|
||||
- POST `/wevia-ia/weval-chatbot-api.php` → HTTP 200
|
||||
- Response JSON normale
|
||||
- **Mais PAS d'INSERT** dans `public.conversations`
|
||||
- Aucune trace WEVIA_PDO dans logs récents
|
||||
- Latest entrée reste 2026-04-03 13:39:56
|
||||
|
||||
Hypothèses V137 :
|
||||
- Exception PDO absorbée par try/catch sans error_log
|
||||
- Path de code diverged (branch never reaches INSERT)
|
||||
- Connection pooling dead
|
||||
- Schema lock/permission issue
|
||||
|
||||
V137 plan : tracing instrumenté temporairement dans `weval-chatbot-api.php`
|
||||
pour identifier la branche exacte exécutée vs INSERT attendu.
|
||||
|
||||
Anomalie bonus : session `default` a **15180 messages** = data entry bot/
|
||||
test stuck. À investiguer V137.
|
||||
|
||||
## chattr doctrine 54
|
||||
unlock → modify → relock (pattern V134)
|
||||
|
||||
## GOLD backup
|
||||
`/opt/wevads/vault/wevia-admin.php.GOLD-V136-20260422-000246`
|
||||
|
||||
## Non-régression
|
||||
- Size 80594 → 82615 bytes (+2021)
|
||||
- Lint OK
|
||||
- HTTP 200
|
||||
- L99 153/153 PASS
|
||||
|
||||
## Commit
|
||||
`e59735f3e` (repo `/var/www/weval`, pushed gitea)
|
||||
Github push requires manual pull (other Claude unstaged changes pending).
|
||||
|
||||
## Chain V96→V136
|
||||
|
||||
```
|
||||
V131 routing 100%,
|
||||
V132 Playwright 12/12,
|
||||
V133 WTP + master integration,
|
||||
V134 4/4 hubs anti-orphan,
|
||||
V135 sessions diagnosis (admin points wrong DB),
|
||||
V136 admin repoint wevia_db + source UI badges
|
||||
```
|
||||
|
||||
## Doctrines V136
|
||||
0 Root cause, 1 GOLD, 2 Zero écrasement additif, 4 Zero régression,
|
||||
14 Test-driven, 54 chattr, 60 UX premium badges, 95 Traçabilité,
|
||||
100 Train release
|
||||
Reference in New Issue
Block a user