11 Commits

Author SHA1 Message Date
Thomas Fransolet
59939ddb87 Studio : lots 0 à 4 codés, décision 23, cartes 280 et 300 à jour
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-13 21:07:01 +02:00
Thomas Fransolet
d70d851b6f Plan Studio consolide, lot 0 livre
studio-plan.md : section 8 executable pour les lots 0 a 4 (prerequis, etapes,
verifications, gate) et section 9 catalogue v0 (styles, preambule, gabarits,
calibrage). Decisions 14 a 21 : upload par URL signee et ingestion serveur,
MVP texte + image source sur objets et lieux, prix differes et Grant manuel,
une recharge prolonge tout le solde, plafonds d'upload par type, catalogue
calibre fin de lot 3, lignage en colonnes, contrat fournisseur multi-fichier.

Corrige les contradictions laissees par les revisions : Kind retire de
Persona, talking head, API credits, webhook fal.ai signe en ED25519 et non en
HMAC, enum ResourceType deja etendu. Les noms suivent le code du lot 0
(ResourceIngestionService, GetInfoAsync, ReadAllAsync).

immersif-frontiere-plan.md : decisions 1, 4 et 6 marquees reportees.

Kanban : cartes 280 et 300 a jour, carte 305 sur le watermark inactif depuis
l'upload direct.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-13 17:51:23 +02:00
Thomas Fransolet
5eff5b1687 SEO/GEO : pages produit, blog, comparatifs et pages légales traduites
Suite du chantier ouvert le 09/09 : 20 des 21 actions de l'audit sont faites.
Depuis le dernier commit : pages /marches-publics, /borne-kiosk et
/visite-hors-ligne en 4 langues, blog /fr/ressources, comparatifs sourcés
Smartify et STQRY, pages légales passées sous /{lang}/, sharp en dépendance.

Deux arbitrages de Thomas consignés :
- témoignages clients écartés (il ne souhaite pas solliciter les clients) ;
- deux pages XR à prévoir, /lunettes-connectees ET /casque-vr, à écrire
  seulement quand chaque module sera démontrable (nouvelle carte kanban 335).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-10 18:03:18 +02:00
Thomas Fransolet
30c2f6c3e2 Visibilité : SEO/GEO de la landing, CGU publiées, série LinkedIn
Ouvre le chantier 5ter : actions 1 à 9 faites le 10/09 (titres, schema
Organization, llms.txt, prérendu statique rétabli, page /tarifs, page
/assistant-ia dans les 4 langues). Vitrine LinkedIn créée, série de
posts rédigée — en deux vagues, celle qui pousse à l'inscription
attend la prod et un onboarding testé.

Les CGU sont publiées, ce qui clôt le lien mort de la case de
consentement de /signup : ce fichier reste la source, la page de la
landing en est le rendu. Corrige au passage deux passages qui citaient
les plans abandonnés (Starter/Standard) et réservaient l'IA à
« Standard et Premium ». La validation juridique reste due — elle a
sa carte.

Frais de mise en place : arbitré, aucun montant affiché ; la note et
la FAQ disent que le chiffrage arrive avant signature.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-10 12:06:43 +02:00
Thomas Fransolet
d36394cabd Carte hors ligne : conception du plan illustré, 3e fournisseur
Ni Google ni Mapbox ne donnent un fond hors ligne gratuit, et Mapbox
se facture au nombre de tuiles, pas à la surface. Pour un musée de
plein air comme le Fourneau Saint-Michel, la réponse est son propre
plan dessiné : les repères se posent sur l'image, le plan est une
Resource, donc embarqué par le pipeline hors ligne existant.

Conception seule, rien n'est implémenté. Mapbox est passé fournisseur
par défaut le 04/09.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-10 12:05:31 +02:00
Thomas Fransolet
2824ca63c1 Plan de test : entrée du téléchargement hors ligne depuis la home v3
§21.1 bis — 9 cas ajoutés avec le portage du téléchargement dans le
bento (home_3.0.dart, 08/09), dont le piège du fetch qui échoue en
mode avion et laisse les visites téléchargées affichées en « ↓ ».

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-10 12:04:46 +02:00
Thomas Fransolet
c525a936c8 Sauvegardes : scripts livrés, destination GCP, médias copiés
Suivi de la session du 07/09 : scripts de dump dans manager-service,
bucket unov-myinfomate-backups en EU, versioning activé sur le bucket
des médias, 1,43 Go recopiés. rclone n'est pas installé sur le VPS :
rien ne part encore hors site, la case reste ouverte.

Clôt la carte « destination des sauvegardes », ouvre celle du
branchement de notify.sh sur un canal réel.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-10 12:04:33 +02:00
Thomas Fransolet
32c871ad52 Kanban : carte QR / nom d'app / page download / proximité
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-10 11:42:45 +02:00
Thomas Fransolet
b711e654b3 Kanban : le 403 du détail d'instance est clos, l'API ouverte reste
Clos : GET /api/Instance/{id} renvoyait 403 à l'app visiteur. Une clé API donne
maintenant accès à sa seule instance, en vue réduite — plan, quotas, TVA,
facturation et pinCode retirés. Déployé en version-3.1.3 et vérifié en préprod
sur cinq cas d'autorisation.

La carte close garde le piège qui vaut pour tout le projet : le test « est-ce un
utilisateur du manager » ne peut pas se baser sur un claim de permission, parce
qu'AuthorizationMiddleware peuple HttpContext.User depuis le schéma ApiKey avant
de court-circuiter sur [AllowAnonymous]. Et elle rectifie une affirmation fausse
de la première rédaction : StripeCustomerId n'est pas exposé par ToDTO.

Nouveau, en Urgent : GET /api/Configuration répond 200 sans aucune clé. Ce n'est
pas une clé mal vérifiée mais un [AllowAnonymous] explicite, probablement hérité
de la v2. Le périmètre exact reste à établir — les autres routes que consomment
les apps visiteur n'ont pas été passées en revue.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 12:57:51 +02:00
Thomas Fransolet
851b062668 Update docs, kanban etc 2026-09-04 16:48:04 +02:00
Thomas Fransolet
489ccc6c22 Update docs (v2) and kanban 2026-09-03 14:00:51 +02:00