48 lines
2.7 KiB
Markdown
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
|