Files
archicratie-edition/docs/FEATURE-PROPOSER.md
Archicratia 214f930e56
All checks were successful
CI / build-and-anchors (push) Successful in 1m37s
SMOKE / smoke (push) Successful in 12s
docs(ops): add triple-source sync + troubleshooting + proposer spec
2026-02-01 14:47:22 +01:00

2.7 KiB
Raw Blame History

FEATURE — “Proposer” (édition par paragraphe → issue Gitea)

Dernière mise à jour : 2026-02-01

Cette feature permet à un lecteur de proposer une correction/amélioration dun paragraphe, en générant une issue pré-remplie dans Gitea.


0) Objectif fonctionnel

Depuis une page chapitre :

  1. clic sur Proposer sur un paragraphe
  2. choix #1 (type)
  3. choix #2 (state/catégorie selon UI)
  4. ouverture dun seul onglet vers Gitea : /issues/new?...
  5. issue pré-remplie avec :
    • chemin / URL / ancre
    • texte actuel (citation)
    • champs “Proposition / Justification”
  6. lutilisateur valide, et le runner/CI traite.

1) Dépendances de configuration (critique)

Le lien Gitea est construit à partir de variables publiques injectées au build Astro :

  • PUBLIC_GITEA_BASE (ex: https://gitea.archicratie.trans-hands.synology.me)
  • PUBLIC_GITEA_OWNER (casse sensible, ex: Archicratia)
  • PUBLIC_GITEA_REPO (ex: archicratie-edition)

Symptômes si mauvais

  • mauvais repo → 404
  • redirect login inattendu
  • création dissues impossible

2) Contrat “une seule ouverture donglet”

Le flow ne doit jamais ouvrir deux onglets.

Contrat

  • pas de window.open(...)
  • un seul a.target="_blank" (ou équivalent) déclenché
  • sur click : handler doit neutraliser les propagations parasites

Vérification (NAS)

en sh : curl -fsS http://127.0.0.1:8082/archicratie/archicrat-ia/chapitre-4/ > /tmp/page.html grep -n "window.open" /tmp/page.html | head

Doit retourner 0 ligne.

3) Diagnostic “trace ouverture onglet” (navigateur)

Dans la console, tu peux surcharger temporairement les mécanismes douverture pour tracer :

si un window.open survient,

ou si un a.click target _blank est appelé.

But : prouver quil ny a quun seul événement douverture.

4) URL attendue (forme)

Longlet doit ressembler à :

{PUBLIC_GITEA_BASE}/{OWNER}/{REPO}/issues/new?title=...&body=...

Important : owner et repo doivent être exactement ceux du repo canonique.

5) Pré-requis daccès

Lutilisateur doit être loggé sur Gitea pour accéder à /issues/new

Si non loggé : redirect vers /user/login (comportement normal)

6) Tests fonctionnels (checklist)

Ouvrir une page chapitre (ex chapitre 4)

Clic Proposer (sur un paragraphe)

Choix 1 puis choix 2

Vérifier :

1 seul onglet

URL du repo correct

formulaire new issue visible

title/body pré-remplis (chemin + ancre + texte actuel)

Créer lissue → vérifier le traitement CI/runner

7) Pannes typiques + causes

404 sur issue/new : PUBLIC_GITEA_OWNER/REPO faux (souvent casse)

2 onglets : double handler (bubbling + ouverture multiple)

pas de favicon : cache ou absence dans public/ → rebuild