chore(tickets): synchro du store local — création #254 (rendez-vous OpenCode/GLM NoReply sporadique) + #244 passage en QA (validation live v0.35.0)

This commit is contained in:
2026-08-24 12:21:05 +02:00
parent b6238f002e
commit 44a2fc3cfe
6 changed files with 72 additions and 11 deletions

View File

@ -1,14 +1,26 @@
---
issueRef: "#244"
version: 7
version: 9
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1787564256353
updatedAt: 1787564815023
---
2026-08-24
- Repro QA confirmée sur le ticket #244.
- Scénario minimal: ouvrir Templates, éditer un template, cocher une permission MCP (ex. `idea_ticket_read`), sauvegarder, fermer, rouvrir: la case est de nouveau décochée.
- QA a démontré que le bug ne vient pas du pur UI local: le test frontend de réouverture avec `MockTemplateGateway` passe.
- QA a isolé une rouge backend de contrat: `update_template` ne désérialise pas actuellement la clé frontend `mcpToolPermissions`; le DTO backend n'accepte que `defaultMcpToolPermissions` / `defaultMcpToolPolicy`.
- Test rouge de référence: `cargo test -p app-tauri --test dto_templates update_template_request_does_not_currently_deserialise_frontend_mcp_tool_permissions_key -- --exact`.
- Conclusion de reprise: traiter ce ticket comme un correctif backend de contrat/persistance, puis faire revalider frontend+backend par QA.
- Prochaine étape: cadrage Architect, décision Git, implémentation DevBackend, revalidation QA, intégration Git.
- Test rouge de référence initial: `cargo test -p app-tauri --test dto_templates update_template_request_does_not_currently_deserialise_frontend_mcp_tool_permissions_key -- --exact`.
- Architect a cadré le fix minimal: backend pur au niveau DTO request, avec `mcpToolPermissions` comme entrée canonique et tolérance d'alias legacy en entrée.
- Git a ouvert la branche `fix/244-mcp-tool-permissions-dto` depuis `develop` @ `592f248`.
- DevBackend a implémenté le fix dans `crates/backend/src/dto.rs`: désérialisation manuelle `CreateTemplateRequestDto` et `UpdateTemplateRequestDto` pour accepter `mcpToolPermissions` en priorité puis `defaultMcpToolPermissions` et `defaultMcpToolPolicy`; mapping interne conservé vers `default_mcp_tool_policy`.
- DevBackend a aussi ajouté/ajusté les garde-fous dans `crates/app-tauri/tests/dto_templates.rs` et conservé le test frontend `frontend/src/features/templates/templates.test.tsx`.
- QA a revalidé en vert:
- `cargo test -p app-tauri --test dto_templates update_template_request_does_not_currently_deserialise_frontend_mcp_tool_permissions_key -- --exact` → **1 passed**
- `cargo test -p app-tauri --test dto_templates` → **22 passed**
- `cd frontend && npm test -- --run src/features/templates/templates.test.tsx -t "reopening an edited template preserves saved MCP tool permissions in the editor"` → **1 passed**
- Git a intégré localement:
- commit fix `69129a9`
- commit miroir `a6a97fd`
- merge local vers `develop` `7f445cb`
- aucun push.
- Statut décidé: ticket remis en **QA**. La preuve automatisée est verte et le fix est mergé localement dans `develop`; la prochaine preuve finale attendue est la validation live du parcours édition/sauvegarde/réouverture d'un template avec permissions MCP.

View File

@ -2,7 +2,7 @@
id: "d1fa2322-1fec-4a1e-b1d4-4b9af19a2ffc"
number: 244
title: "Corriger la non-persistance des permissions de templates et réaligner les templates globaux"
status: "inProgress"
status: "qa"
priority: "high"
sprint: null
links: []
@ -11,7 +11,7 @@ attachments: []
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
createdAt: 1787480706836
updatedAt: 1787564256353
version: 7
updatedAt: 1787564815023
version: 9
---
Les permissions MCP/system définies sur les templates ne semblent pas être sauvegardées correctement. Vérifier la persistance, puis remettre les permissions des templates existants pour qu'elles correspondent aux permissions effectives des agents du projet courant (Git, Architect, DevBackend, DevFrontend, QA, UX, Main, Context).