Commit Graph
5 Commits
Author SHA1 Message Date
mathieuandClaude Opus 5 4467456b8b Cloturer le cadrage : deploiement, build, cache et notices BnF
- Architecture serveur : x86_64, publish `linux-x64`.
- Production des binaires : compilation locale + release manuelle, via un
  script ecrit pour etre reutilisable en CI plus tard. Compiler sur le
  serveur est explicitement exclu.
- Cache hors-ligne : IndexedDB, retenu pour permettre recherche et tri
  hors-ligne sur toute la bibliotheque.
- Notices BnF multiples : demander systematiquement, l'exactitude de
  l'edition primant sur la vitesse de saisie.
- AOT WASM : desactive par defaut, a reevaluer apres mesure sur telephone.

Ajoute une section sur l'architecture de deploiement : les 3 projets .NET
ne produisent qu'un seul service (le client WASM est servi par l'API), et
le packaging vit dans un depot `mabibli_ynh` separe du code.

Le cadrage est desormais clos.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 21:45:20 +02:00
mathieuandClaude Opus 5 a30197000f Valider l'API SRU de la BnF et documenter ses pieges
API testee : HTTP 200, ~240 ms, sans cle. Le schema `dublincore` evite
completement l'UNIMARC — mapping bien plus simple que prevu, contrairement
a ce que supposait la note precedente.

Piege bloquant identifie : la BnF indexe l'ISBN tel qu'imprime, donc les
livres d'avant 2007 ne sont trouvables que par leur ISBN-10, alors que le
scanner lit toujours un EAN-13. Mesure sur echantillon verifie via
OpenLibrary : 2 titres sur 3 introuvables en ISBN-13 mais trouves en
ISBN-10. Interroger systematiquement les deux formes.

Autres pieges confirmes et documentes :
- aucune couverture cote BnF -> passer par OpenLibrary, avec
  `?default=false` sans lequel un placeholder masque les absences
- plusieurs notices possibles pour un meme ISBN (3 pour Germinal)
- ponctuation ISBD a nettoyer sur titre / auteur / editeur, regles validees
- livres etrangers absents, ce qui confirme la necessite de la cascade

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 21:27:40 +02:00
mathieuandClaude Opus 5 a5392cedac Acter les cinq decisions structurantes (offline, portee, ISBN, SSO, ebooks)
- Hors-ligne : consultation seule via cache des reponses GET. SQLite WASM
  cote client ecarte. L'UI devra desactiver explicitement les ecritures
  hors-ligne plutot que de les laisser echouer.
- Portee des donnees : collection commune au foyer. `UtilisateurId`
  (proprietaire) devient `AjoutePar` (tracabilite) — ne jamais filtrer les
  lectures dessus.
- Sources ISBN : BnF (SRU) en principale, OpenLibrary en secours. Motif :
  OpenLibrary est lacunaire sur le fonds francais. API BnF pas encore
  testee, a valider avant implementation.
- SSO : en-tetes SSOwat `YNH_USER` / `YNH_USER_EMAIL` / `YNH_USER_FULLNAME`.
  OIDC ecarte, non documente par YunoHost (verifie ce jour). Corrige au
  passage le nom d'en-tete, qui n'est pas `Remote-User`.
- Ebooks : fiches uniquement, pas de stockage de fichiers. Les prets ne
  concernent donc que les livres physiques.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 21:21:38 +02:00
mathieuandClaude Opus 5 d56061db6b Sortir les sources du tarball et acter ZXing.Net pour le scan ISBN
Le dépôt ne versionnait qu'une archive `mabibli-init.tar.gz`, ce qui
empêchait git de suivre le contenu des fichiers. Les trois fichiers sont
désormais à plat et l'archive est supprimée.

Scan ISBN : remplacement de `html5-qrcode` par ZXing.Net (C#, Apache 2.0).
Validé concrètement en .NET 10 — round-trip EAN-13 OK, publish Blazor WASM
OK, 0,53 ms/frame dans le pire cas (échec sur frame 640x480 bruitée),
+192 Ko brotli sur le payload. Motif principal : le décodage reste
réutilisable hors navigateur si le projet évolue en scanner de
bibliothèque.

Clarification du besoin hors-ligne : consultation de la bibliothèque
existante uniquement. Signale au passage que SQLite vit côté serveur et
qu'un cache client sera nécessaire — point d'architecture non résolu.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 21:01:46 +02:00
mathieu 36cd4a4559 Initial project structure with requirements and Claude Code context 2026-08-17 20:48:40 +02:00