# 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 d’un 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 d’un seul onglet vers Gitea : `/issues/new?...`
5) issue pré-remplie avec :
   - chemin / URL / ancre
   - texte actuel (citation)
   - champs “Proposition / Justification”
6) l’utilisateur 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 d’issues impossible

---

## 2) Contrat “une seule ouverture d’onglet”
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

## Diagnostic (canonique)

Le diagnostic détaillé est centralisé dans `docs/TROUBLESHOOTING.md` pour éviter les doublons.

- 404 / non autorisé / redirect login :
  - voir : `TROUBLESHOOTING.md#proposer-404`
  - cause la plus fréquente : `PUBLIC_GITEA_OWNER/REPO` faux (souvent casse)

- Double onglet :
  - voir : `TROUBLESHOOTING.md#proposer-double-onglet`
  - cause la plus fréquente : double handler (bubbling) ou `window.open` + `a.click()`

