Files
IdeA/.ideai/tickets/218/carnet.md

48 lines
2.7 KiB
Markdown

---
issueRef: "#218"
version: 4
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1786816820854
---
## Triage 2026-08-15
- Symptôme rapporté: le tag de version local créé avant rebuild AppImage semble absent de la vue Git Graph.
- Vérification Git factuelle: `v0.12.0` et `v0.13.0` existent bien localement, annotés, pointent sur des commits ancêtres de `develop`.
- Cadrage UX: un tag local doit apparaître sur la ligne du commit dans la colonne tags, sans dépendre d'un remote.
- Cadrage Architect: la vue sait déjà rendre les refs `tag: ...`; la cause probable est l'extraction backend Git / revwalk / peeler de tags annotés, plus qu'un bug de rendu frontend.
- Couches à inspecter d'abord: `crates/infrastructure/src/git/mod.rs`, puis DTO/transport, puis `frontend/src/features/git/GitGraphView.tsx` si nécessaire.
- Branche locale créée par Git: `fix/218-gitgraph-local-tags-display` depuis `develop` @ `3d466f9`.
## Diagnostic DevBackend
- Bug backend confirmé dans `crates/infrastructure/src/git/mod.rs`.
- Cause précise: `log_graph` utilisait `reference.resolve().target()`. Pour un tag annoté, cet OID est celui de l'objet tag, pas celui du commit ciblé; le tag ne pouvait donc pas matcher la ligne du commit dans le revwalk.
- Correctif livré:
- ajout de `reference_commit_oid()` qui peel chaque ref vers un commit (`peel(ObjectType::Commit)`)
- `log_graph` utilise maintenant l'OID peelé pour construire `ref_map`
- Fichiers modifiés:
- `crates/infrastructure/src/git/mod.rs`
- `crates/infrastructure/tests/git_repository.rs`
- Tests DevBackend:
- `cargo fmt --package infrastructure` => OK
- `cargo test -p infrastructure --test git_repository git_graph_labels_annotated_tags_on_their_target_commit` => OK
- `cargo test -p infrastructure --test git_repository` => OK (4)
- `cargo test -p application --test git_usecases` => OK (7)
- `cargo test -p app-tauri --test dto_git` => OK (14)
## Diagnostic DevFrontend
- Rendu frontend confirmé OK tel quel.
- `GitGraphView` affiche déjà les refs préfixées `tag:` dans la colonne tags et les exclut des branches.
- Aucun correctif frontend nécessaire.
- Test DevFrontend:
- `npm test -- gitGraphView.test.tsx` => OK (10)
## Verdict QA
- Verdict: VERT.
- Vérification explicite validée:
- un tag annoté local est peelé vers le commit cible
- `log_graph` renvoie bien `tag: v0.13.0` dans `GraphCommit.refs`
- la vue Git Graph sait déjà afficher cette ref dans la colonne tags
- Tests QA:
- `cargo test -p infrastructure --test git_repository git_graph_labels_annotated_tags_on_their_target_commit -- --nocapture` => OK
- `cargo test -p infrastructure --test git_repository -- --nocapture` => OK
- `npm test -- gitGraphView.test.tsx` => OK