--- 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