Agents for developpement added + frontend add + backend added. Git viewer created + agent and template creator + layout and project creator
3.6 KiB
3.6 KiB
L7 — Templates & synchronisation
Binôme : dev-templates / test-templates
Zones : application/template, infrastructure/store, frontend/features/templates
Dépendances amont : L0, L1, L5, L6.
Objectif
Templates d'agents (store global IDE), versioning, création d'agent depuis template, détection de drift et synchronisation template → agents.
Périmètre (DEV)
- Adapter
FsTemplateStore(md +index.json) avec versioning monotone +content_hash. - Use cases :
CreateTemplate,UpdateTemplate(bump version),CreateAgentFromTemplate,DetectAgentDrift,SyncAgentWithTemplate(remplacement du.mdsisynchronized). - Front : gestion des templates, badge « MAJ disponible », action de sync.
Périmètre (TEST)
UpdateTemplateincrémente la version ;DetectAgentDriftdétecteversion > synced_template_version.SyncAgentWithTemplate: applique auxsynchronized==true, ignorefalseetscratch; met à joursynced_template_version.- Front : badge drift + flux de sync avec gateway mock.
Definition of Done
cargo test(template/store) +vitestverts ; cycle MAJ template → propagation aux agents synchronisés (dev manuel).
Avancement
✅ Backend (vert)
- Infra :
FsTemplateStore(infrastructure/store/template.rs) — store global<app>/templates/{index.json, md/<id>.md}, versioning persisté,contentHash(digest stable, sans dépendance) pour détection d'édition hors-app. 6 tests d'intégration (tmpdir). - Application (
application/template/usecases.rs) :CreateTemplate,UpdateTemplate(bump version + eventTemplateUpdated),ListTemplates,DeleteTemplate,CreateAgentFromTemplate(origineFromTemplate+ seed du.md, réutilise le helper de nommage L6),DetectAgentDrift(ne flague que lessynchronizeden retard ; ignore non-sync/scratch/à-jour/template supprimé ; émetAgentDriftDetected),SyncAgentWithTemplate(remplace le.md, avancesynced_template_version, émetAgentSynced; laisse intacts non-sync/scratch). 8 tests use cases. cargo test --workspace: 270 verts, 0 régression ; clippy clean.
✅ IPC app-tauri (vert)
- Composition root :
FsTemplateStoreconstruit, 7 use cases injectés (réutilisecontexts_port/ids/events_port). - 7 commands :
create_template,update_template,list_templates,delete_template,create_agent_from_template,detect_agent_drift,sync_agent_with_template(shells fins,resolve_projectréutilisé). DTOs camelCase (TemplateDtotransparent,AgentDriftDto,SyncResultDto,parse_template_id). - Tests
tests/dto_templates.rs(18) ;cargo test -p app-tauri62 verts ; workspace 288 verts, 0 régression ; clippy clean.
✅ Front (vert)
- Port
TemplateGateway(7 méthodes) + typesTemplate/AgentDrift; adapter TauriTauriTemplateGateway;MockTemplateGatewaystateful partageant le registre d'agents duMockAgentGateway(helpers internes_insertAgent/_updateAgent/_rawAgents) pour faire vivre le drift offline. - Feature
features/templates:useTemplates(CRUD),useDrift(projectId)(détection + sync),TemplatesPanel(liste nom+version, création, édition, suppression, « Create agent from template »), monté dans l'onglet projet. AgentsPanel: badge « update available » + bouton Sync par agent en drift.- Tests : 20 ajoutés ; suite front 140 verts ;
tscclean ; garde-fou « no direct invoke » respecté.
⏳ Hors périmètre L7
- Intégration front du terminal d'agent depuis un agent créé via template (réutilise le fil L6).