Décisions d'architecture (ADR) — Toveli
ADR-1 · Quatrième plateforme autonome, lecture seule sur les sources
Toveli possède son dépôt (toveli.git sur spbgit), son nœud (M3U96b), son port (8460), son domaine, sa base (data/toveli.db) et ses secrets. Les trois plateformes ne sont ni modifiées ni interrogées en production : des instantanés sqlite3 ATTACH … CREATE TABLE AS SELECT sont pris sur le nœud source puis rapatriés (≈ 1,5 Go/nuit sur le LAN). Seul effet de bord : une clé publique ajoutée à M4M64a:~/.ssh/authorized_keys (ligne commentée toveli-sync-depuis-M3U96b-2026-10-17, sauvegarde authorized_keys.bak-20261017).
ADR-2 · SQLite canonique reconstruite chaque nuit plutôt que Postgres synchronisé
Les sources sont elles-mêmes en SQLite et changent par lots ; une reconstruction complète (≈ 2 min) avec bascule atomique est plus simple et plus sûre qu'une réplication incrémentale. Le handle better-sqlite3 est rouvert quand l'inode change. Limite : pas d'écriture utilisateur dans cette base → les favoris sont locaux (v1) ; l'identité/annonces directes iront dans une base PostgreSQL séparée (extension).
ADR-3 · Modèle canonique « annonce ≠ propriété »
property (clé rôle / adresse / coordonnées + confiance), listing (provenance JSON), price_event, valuation (modèle, version, méthode, verdict), sale_transaction, role_unit, market_metric, neighbourhood_score, source. Les unités en copropriété ne sont pas fusionnées automatiquement.
ADR-4 · Estimation : réutiliser le moteur pur de Vrai-Prix, recalculer en direct
engine.ts copié tel quel (attribution en en-tête). En direct sur chaque fiche quand l'unité du rôle est connue, sinon estimation manuelle par comparables ; valuations nocturnes vp_eval comme repli. Toujours : fourchette, confiance A–D, méthode, version, date, limites, avertissement OEAQ.
ADR-5 · Cartes libres
MapLibre GL + style OpenFreeMap (positron) : aucune clé, attribution OSM/OpenMapTiles. Mapbox exclu (jeton Groupe Ka).
ADR-6 · Assistant IA
Anthropic côté serveur, boucle d'outils (recherche, fiche, marché, estimation, hypothèque) ; réponses citant les uid des annonces (cartes affichées) ; limitation 30 req/10 min/IP ; aucun stockage des conversations. Abstraction fournisseur par variables d'environnement.
ADR-7 · Interface
Français québécois, mobile-first (navigation basse 5 onglets, cartes 2 colonnes, carte plein écran), ordre du DOM = ordre visuel, aucune mention des marques sources dans l'interface (crédit = site d'origine), pas de console d'administration publique.