DOCS/status/roadmap-canaux.md
2026-09-03 14:00:51 +02:00

8.3 KiB

5. Roadmap produit — nouveaux canaux & IA

← Section §5 du tableau de bord : STATUS.md

Plans détaillés, pas encore démarrés en dev (sauf mention contraire) :

Chantier Détail Statut
Kiosk web (Flutter Web, extension tablet-app) architecture-web-saas.md 📦 V2 (2026-08-07) — pas commencé, ~2-3j estimés. Aucun client ne l'attend, et tablet-app ne compile même pas aujourd'hui
Visiteur web (Next.js, app.myinfomate.be/[slug]) architecture-web-saas.md ⚠️ V1, presque finivisitapp-web existe, build , les 13 types de section sont rendus, assistant IA inclus. Il ne manque que le Dockerfile + l'entrée app.myinfomate.be dans le compose. Bloquant : le plan Essentiel vendu par l'onboarding est web-only
Export PDF stats — à la demande plan-import-ia-stats-subsides.md §1 Livré le 2026-08-07, généré côté client (paquet pdf Dart), aucun changement backend. Inclus dans tous les plans qui ont les stats (décidé le 09/08) — la différenciation vient du contenu, pas d'un verrou
Historique des stats — 13 mois pour tous idem · todo-features.md § Plans & Quotas Décidé et appliqué le 2026-08-09. L'axe « durée » disparaît, HasAdvancedStats devient le seul différenciateur stats. Migration UnifyStatsRetentionTo13Months à appliquer. Purge codée mais inactive jusqu'au pg_dump
Export PDF stats — envoi mensuel automatique idem v2. C'est là que QuestPDF + Hangfire reprennent leur sens. Manquent : config destinataires/fréquence, méthode d'envoi avec pièce jointe, et libfontconfig1 au Dockerfile
Import IA de contenu + RAG (pgvector) plan-import-ia-stats-subsides.md, v2/rag-pgvector-integration-plan.md Priorité 2 — chantier fusionné, ~4-6 semaines. Le schéma part avec la migration v3, voir §1ter
Médias & stockage (compression, IStorageService, quota) v2/media-storage-plan.md Prérequis à la release de migration — voir §1ter
Visite hors ligne — remise en état v2/offline-visit-plan.md Bugs, pas de la roadmap — voir §1ter
Écran Guide IA (manager-app) v2/guide-ia-screen-plan.md V1, spécifié et maquetté — voir §1ter
Écran Statistiques — refonte v2/stats-screen-plan.md Livré le 2026-08-07, export PDF à la demande compris — les 7 défauts corrigés. Pas encore ouvert dans un navigateur : test-plan.md §8bis et §8ter
TTS pré-généré (audioguide multilingue) v2/tts-pregenerated-plan.md Priorité 3. ⚠️ Trois corrections posées le 2026-09-02 (en-tête du fichier) : le moteur est Gemini TTS, pas Cloud TTS — le document disait les deux, le code tranche ; « le visiteur choisit entre Viva et Marco » est remplacé par un guide adressable + N narrateurs ; et le stockage s'en trouve divisé par deux, pas multiplié. Source de vérité sur les personnages : v2/studio-plan.md §3.8
Talking head (avatar animé) v2/talking-head-plan.md ABANDONNÉ le 2026-09-02. Son lipsync repose sur enable_time_pointing de Google Cloud TTS, or le code livré tourne sur Gemini TTS (GeminiTtsEngine, gemini-2.5-flash-preview-tts) : aucune source de timestamps. Le plan était sans fondation, pas « à faire ». Remplacé par le portrait canon statique d'un Persona, puis une boucle vidéo 6-8 s. En-tête d'abandon posé sur le fichier
Médiathèque — refonte de l'onglet Ressources v1-mediatheque-plan.md — spec autonome et exécutable, écrite le 2026-09-02 V1 — prêt à implémenter, sans rien lire du plan Studio. Rien à voir avec l'IA : renommage en Médiathèque, rail de facettes cumulables (type/usage/origine/configuration), filtre « jamais utilisée », tri, groupement, sélection multiple, et le détail en panneau latéral avec la liste « Utilisée dans » — presque gratuite, GetReferencedResourceIds existe déjà sur les 13 sous-types. 🐛 Corrige deux bugs : le téléchargement forcé en .json quel que soit le type (show_resource_popup.dart:91) et Resource.FileName absent de ToDTO(). Aucune clé API, aucun coût variable — meilleur ratio valeur/risque du chantier
Module Studio — génération IA d'images/vidéos/3D v2/studio-plan.md 📦 V2 — conception arrêtée le 2026-09-02, rien de codé. Le produit n'est pas l'accès aux modèles, c'est la cohérence visuelle à l'échelle d'un projet : une VisualIdentity par instance + surcharge par configuration, injectée côté serveur dans chaque prompt. La génération se greffe sur le sélecteur de ressource existant (showSelectResourceModal embarque déjà ResourcesScreen) — un seul branchement couvre les 13 types de section, les POI et les étapes. MVP = escape game, images seulement. Prérequis dur : le backend ne sait pas écrire dans le bucket (IResourceBlobService n'a que DeleteAsync) — lot 0 partagé avec le TTS pré-généré. ⚠️ Trois pièges tranchés : URL Firebase à jeton publique (préfixe studio-drafts/ + proxy authentifié), CheckQuota avant/après ne tient pas sur des jobs Hangfire parallèles (réservation en deux temps sur CreditLedger), et GuidedStep.ImageUrl est une URL — les images de l'escape game ne partiraient pas offline. 🚫 Pas de watermark gravé : provenance + badge UI
Personnages — un guide adressable + N narrateurs v2/studio-plan.md §3.8 📦 V2 — arrêté le 2026-09-02. Trois plans décrivaient le même objet sans se croiser : le canon visuel (studio-plan), les frames de lipsync (talking-head), et PersonaConfig { WakewordId, GuideName, PersonaPrompt, VoiceName } (tts-pregenerated). Une entité Persona les remplace, et les 4 colonnes Instance.Guide* deviennent une ligne. ⚠️ « Le visiteur choisit entre Viva et Marco » était un choix de voix déguisé en choix de guide : le besoin réel (modèle Bastogne War Museum) est N narrateurs assignés par le conservateur via NarratorPersonaId — ce qui divise le stockage TTS par deux au lieu de le multiplier. Le wakeword devient une exigence du canal mains-libres, pas une propriété du personnage : ça corrige le bug latent où le visiteur dirait « Marco » à quelqu'un qui se présente comme « Léon ». À ajouter : Persona.VoicePrompt (l'intonation, aujourd'hui la constante de build kGeminiTtsPrompt) et une table TtsVoice — deux constantes ne suffisent pas à quatre narrateurs
AI Persona par venue (guide IA personnalisable) v2/myinfomate-ai-persona-analysis.md Architecture de référence pour les chantiers IA ci-dessus
Lunettes Ray-Ban Meta roadmap.md (section XR), rayban-meta-integration.md 🔨 POC fonctionnel — bien plus avancé que ce que cette ligne disait jusqu'au 2026-08-09. Voir §5bis
VR Meta Quest (borne office tourisme) v2/vr-quest-unity-plan.md · roadmap.md (section XR) 📦 V2⚠️ « zéro ligne de code » était faux (corrigé le 2026-08-31, relevé dans le code). Le canal VR est déjà dans le modèle : AppType.VR, Instance.IsVR en base depuis juillet 2025, sous-menu « VR » branché dans main_screen.dart:65, filtre stats + i18n statsChannelVR prêts. Ce qui manque : l'écran de flotte (main_screen.dart:704 = Text("TODO vr")), un Device.AppType (le DeviceController est hardcodé sur Tablet), et l'app Unity. Back-office XR : 8-12 j. App Unity : 3-4 mois. La landing annonce « Meta Quest — Bientôt » en 4 langues (translations.ts, clé mode4Desc)
Canal subsides plan-import-ia-stats-subsides.md Actions administratives/réseau, pas de dev