chore(wip): état runtime .ideai + mémoire (checkpoint Lot D actions contrôlées)
Conversations live, MEMORY.md et note checkpoint workstate-controlled-actions-lot-d. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -1,11 +1,9 @@
|
||||
---
|
||||
upTo: e43c2b68-a855-4433-8067-64f6fc4fa59c
|
||||
upTo: 68b5b6c0-9d14-44f9-bcc6-e745f018662d
|
||||
objective: Nouvelle feature cadrée par Architect, prête à démarrer le développement : « Gestion des limites de session des agents » (détection hiérarchique des limites de session + reprise auto annulable). C'est
|
||||
---
|
||||
**Objectif :** Nouvelle feature cadrée par Architect, prête à démarrer le développement : « Gestion des limites de session des agents » (détection hiérarchique des limites de session + reprise auto annulable). C'est
|
||||
|
||||
- **Response:** Décision Git : **MERGE effectué** (local, sans push). Feature terminée et QA verte (réserve env. acceptable : seuls les tests loopback socket Unix non exécutables en sandbox, alternatives skips vertes) → rien ne justifiait de différer. ## Ce qui a été fait 1. Pendant l'opération, des écritures runtime live (`.ideai/conversations/6bc594e8…`) ont resurgi et bloquaient le checkout. Je les ai committées proprement sur la feature : - `8074aec` — chore(wip): état runtime .ideai (flux conversation live) 2. `git checkout develop` puis `git merge --no-ff feature/agent-skill-awareness-v2`. - Pas de rebase nécessaire : `develop` était ancêtre direct, historique non divergent. - Merge commit : **`63eb49a`** — merge(skills): intègre agent-skill-awareness-v2 dans develop. ## Historique résultant (develop) ``` * 63eb49a merge(skills): intègre agent-skill-awareness-v2 dans develop |\ | * 8074aec chore(wip): état runtime .ideai (flux conversation live) | * cc575ef chore(wip): état runtime .ideai (…checkpoint skill-awareness) | * 018eb1a fix(input): fiabilise la livraison de délégation et journalise le submit | * befff76 feat(skills): injecte un paragraphe d'awareness skills dans le fichier de convention |/ * e832af5 (base commune) ``` Merge sans conflit (stratégie ort), 22 fichiers / +575 -95. ## État final - Branche courante : **`develop`**, tip = `63eb49a`. - `develop` : **devant `origin/develop` de 15 commits** (local uniquement, aucun push — conforme). - Working tree propre au moment du merge (le flux runtime live peut le re-salir à tout instant, c'est normal). - Branche `feature/agent-skill-awareness-v2` **conservée** (entièrement fusionnée). Je ne la supprime pas : tu as parlé de « reprise de chantier », donc je la garde disponible. Dis-moi si tu veux que je la supprime maintenant qu'elle est intégrée. Aucune action sortante effectuée. Pour publier (`push origin develop`), il me faut ta validation explicite.
|
||||
- **Prompt:** Inventaire des chantiers en cours après merge local `feature/agent-skill-awareness-v2` dans `develop` (`63eb49a`). Branches visibles: locales `feature/agent-skill-awareness`, `feature/agent-skills`, `fix/cold-start-delivery-race`, `feature/agent-skill-awareness-v2`; distante `origin/feature/agent-session-limits`; develop ahead origin/develop de 15; main ahead origin/main de 4. Merci de déterminer pour chaque branche si elle est déjà intégrée, superseded, encore active ou à conserver, sans suppression pour l'instant. Identifie les chantiers applicatifs réellement en cours/restants et la stratégie repo avant de reprendre le prochain. Ne committe/merge/supprime rien dans cette étape.
|
||||
- **Response:** Inventaire repo après merge `agent-skill-awareness-v2` → `develop` (`63eb49a`). **Aucune suppression / commit / merge fait** (lecture seule). Méthode : `git cherry` (patch-id) **+** vérification du contenu réel dans `develop`, car les branches sont anciennes et leurs patches ont été re-landés différemment (les patch-ids diffèrent même quand le contenu est présent). ## Statut par branche **`feature/agent-skill-awareness-v2`** — ✅ INTÉGRÉE (mergée à l'instant, `63eb49a`). Conserver tant que reprise possible, sinon supprimable. **`feature/agent-skill-awareness` (v1)** — 🟠 SUPERSEDED par v2. Ses commits uniques portent une **autre approche** : outil MCP `idea_skill_read` + manifeste de skills + brief « capacités IdeA » inconditionnel (`ab34363`, `566bff4`, `1a10d67`). Vérif : `idea_skill_read` **absent de develop** → v2 a délibérément retenu une autre voie (injection des corps de skills dans le fichier de convention + paragraphe d'awareness via `lifecycle.rs`). Son fix cold-start (`e93a2c1`) est déjà couvert par develop. ⇒ rien à récupérer sauf si tu veux ressusciter l'approche `idea_skill_read` (non recommandé, v2 a tranché). **À archiver/supprimer.** **`feature/agent-skills` (L12, `ef101db`)** — 🟢 INTÉGRÉE PAR ÉQUIVALENT. Le domaine skills est présent dans develop : `crates/domain/src/skill.rs`, `crates/application/src/skill/{mod,usecases}.rs`, `crates/infrastructure/src/store/skill.rs` (+ tests). Re-landé via un autre chemin. **Superseded en tant que branche.** **`fix/cold-start-delivery-race` (`9590eac`)** — 🟢 INTÉGRÉE PAR ÉQUIVALENT. La logique cold-start (`release_cold_start`, gate armé) est dans develop : `crates/infrastructure/src/input/mod.rs:341,895`. La branche traîne en plus de vieux `release(0.1.0)/(0.2.0)` → elle a divergé d'un vieux `main`. **Stale, supprimable.** **`origin/feature/agent-session-limits` (`3f3504e`)** — 🟢 MERGÉE (ancêtre de develop). Branche distante stale ; le feature session-limits est dans develop. **`origin/wip/p8c-checkpoint-before-codex`** — branche distante WIP fondations enforcement OS (permissions), non rattachée localement ; à clarifier si encore vivante (probablement absorbée par le chantier permissions/sandbox déjà livré en code). ## État publication (local-only, conforme « pas de push ») - `develop` : **ahead origin/develop de 15** (contient tout ce qui précède). - `main` : **ahead origin/main de 4** = `release(0.3.0)` mergée localement, jamais poussée. origin/main = encore 0.2.0. ## Chantiers applicatifs réellement restants (vs branches mortes) Les 4 branches non-mergées ne portent **aucun chantier vivant** : tout est soit intégré, soit superseded. Le travail restant est ailleurs (cf. mémoire projet, pas dans des branches) : 1. **Validation e2e réelle sur AppImage** — nombreux items « ✓ RÉSOLU EN CODE … valid. e2e restante » (socket MCP, MCP inter-agents au restart, MCP natif en structuré, modèle terminal natif). Bloqueur connu : `checkpoint-blocked-until-appimage-030` / blocage build AppImage 0.3.0. 2. **Enforcement permissions/sandbox** : résiduel `$HOME`/résume du chemin structuré (memory `permissions-sandbox-system-state`). 3. Optionnels persistance : P9 FileGuard, P10 résumé LLM. ## Stratégie repo recommandée avant le prochain chantier - **Nettoyage différé** (sur ton GO, étape suivante) : supprimer en local `feature/agent-skill-awareness`, `feature/agent-skills`, `fix/cold-start-delivery-race` (toutes superseded/intégrées) ; idem branches distantes stale `origin/feature/agent-session-limits` (suppression distante = action sortante → validation explicite requise). - **Prochaine branche** : repartir **de `develop`** (`63eb49a`) avec un `feature/<sujet>` neuf pour le prochain chantier (probablement la **validation e2e AppImage 0.3.0**, qui est le vrai bloqueur courant). - **Push** : `develop` (+15) et `main` (+4 / release 0.3.0) attendent une validation explicite avant publication — je ne pousse rien sans ton accord. Dis-moi quel chantier on reprend : je crée la branche adéquate depuis `develop`.
|
||||
- **Prompt:** Démarrage du prochain chantier applicatif recommandé par Architect: `UX conversations/délégations + read-model live-state minimal`. Branche courante attendue `develop` à `63eb49a`, mais des fichiers runtime `.ideai/conversations/6bc594e8...` peuvent être dirty à cause du live. Merci de décider et exécuter la gestion repo locale avant implémentation: créer/basculer sur une branche de feature depuis develop, gérer proprement le dirty runtime sans perdre de données, et retourner branche courante + état. Ne supprime pas les branches obsolètes pour l'instant, ne push pas.
|
||||
- **Response:** Gestion repo locale faite pour démarrer le chantier « UX conversations/délégations + read-model live-state minimal ». ## Décisions & exécution 1. **Dirty runtime géré sans perte** : 4 fichiers `.ideai/conversations/*` (handoff + log.jsonl, flux live append-only) étaient modifiés sur `develop`. Je les ai **committés sur develop** (leur place naturelle, develop accumule déjà l'état runtime) plutôt que de les stash/jeter → zéro perte. - `338051e` — chore(wip): état runtime .ideai (flux conversation live) 2. **Nouvelle branche de feature créée depuis un `develop` propre** : - `git checkout -b feature/conversation-ux-live-state` (depuis `develop` @ `338051e`). - Nom dérivé du sujet Architect (kebab-case). ## État final - **Branche courante : `feature/conversation-ux-live-state`** (tip `338051e`). - Base : `develop` (`338051e` = `63eb49a` + le chore runtime), historique linéaire, prête pour l'implémentation. - Working tree : propre au moment de la bascule (le flux live peut le re-salir, c'est attendu ; je re-figerai au moment de committer le code de la feature en séparant code / runtime). - `develop` désormais ahead origin/develop de **16** (local only). Aucune branche obsolète supprimée. **Aucun push.** DevBackend/DevFrontend peuvent implémenter sur `feature/conversation-ux-live-state`. Reviens vers moi à l'implémentation terminée (tests verts) pour les commits atomiques et la décision de merge.
|
||||
@ -24,3 +22,5 @@ objective: Nouvelle feature cadrée par Architect, prête à démarrer le dével
|
||||
- **Prompt:** Prépare le dépôt pour le Lot D `workstate controlled actions` après Lot C mergé dans `develop` @ `6e1ba7e`. État probable: dirty runtime/memory lié au checkpoint Lot C (`.ideai/*`, nouvelle note mémoire). Merci de gérer ce dirty sans perte et sans le mélanger au futur code applicatif, puis créer/basculer sur une branche feature propre depuis `develop`. Nom suggéré: `feature/workstate-controlled-actions`. Contraintes: pas de push, pas de suppression de branche. Retourne commits éventuels, branche courante, status final.
|
||||
- **Response:** Dépôt prêt pour le Lot D `workstate controlled actions`. **Dirty traité** : tout le dirty était runtime/mémoire (aucun code applicatif), commité tel quel sur `develop` : - `7c71544` chore(wip): état runtime .ideai + mémoire (checkpoint Lot C résumés conversation) — conversations live, layouts, `MEMORY.md` et nouvelle note `checkpoint-workstate-conversation-summaries-lot-c.md` (auparavant non suivie, désormais versionnée). Cohérent avec l'historique runtime. **Branche feature** : créée et basculée depuis `develop` (@ `7c71544`) : - `feature/workstate-controlled-actions` **Pas de push, aucune branche supprimée.** **État final** : - Branche courante : `feature/workstate-controlled-actions` (HEAD = `7c71544`, partagé avec `develop`). - Working tree : propre (`git status` vide). - `develop` en avance sur origin (checkpoint local, non poussé). Le dev Lot D peut démarrer. Reviens vers moi pour committer/merger une fois QA vert.
|
||||
- **Prompt:** Lot D `workstate controlled actions` est validé QA vert sur `feature/workstate-controlled-actions`. Merci de gérer les commits atomiques et la décision de merge local, sans push. QA vert: - `cargo fmt --all -- --check` OK - `cargo test -p application --test workstate_actions` OK, 7 passed - `cargo test -p application --test workstate` OK, 21 passed - `cargo test -p app-tauri --test dto_agents` OK, 25 passed - `cargo test -p app-tauri --test list_live_agents_r0b` OK, 5 passed - `cargo check -p app-tauri` OK - `cd frontend && npx vitest run src/features/workstate/workstate.test.tsx src/features/projects/projects.test.tsx` OK, 25 tests - `cd frontend && npx vitest run src/adapters/agent.test.ts` OK, 8 tests - `cd frontend && npx vitest run src/features/layout/singletonAgent.test.tsx src/features/layout/agentAlreadyRunning.test.tsx` OK, 9 tests - `cd frontend && npx tsc --noEmit` OK Fichiers attendus: - Backend/Tauri: `crates/application/src/workstate/actions.rs`, `crates/application/tests/workstate_actions.rs`, `crates/application/src/workstate/mod.rs`, `crates/application/src/lib.rs`, `crates/app-tauri/src/{dto.rs,commands.rs,state.rs,lib.rs}`, `crates/app-tauri/tests/dto_agents.rs`. - Frontend: `frontend/src/ports/index.ts`, `frontend/src/adapters/{agent.ts,agent.test.ts}`, `frontend/src/adapters/mock/index.ts`, `frontend/src/features/workstate/{ProjectWorkStatePanel.tsx,workstate.test.tsx}`, `frontend/src/features/layout/{singletonAgent.test.tsx,agentAlreadyRunning.test.tsx}`. - Dirty runtime `.ideai/*` possible; isole-le si présent. Décide commits atomiques, merge local éventuel vers `develop`, état final. Ne push pas, ne supprime pas de branche.
|
||||
- **Response:** Lot D `workstate controlled actions` intégré. QA re-vérifié vert de mon côté avant tout commit (fmt OK ; application workstate_actions 7, workstate 21, app-tauri dto_agents 25, list_live_agents_r0b 5 ; frontend 5 fichiers/42 — workstate+projects 25, agent 8, singletonAgent+agentAlreadyRunning 9 ; tsc clean). **3 commits atomiques** sur `feature/workstate-controlled-actions` (code feature / runtime séparés) : - `3408c96` feat(workstate): actions contrôlées sur le work-state (Lot D backend) — nouveau module `workstate/actions.rs` + test `workstate_actions.rs`, intégration au read-model, commandes Tauri (commands/dto/state/lib). - `1c6441b` feat(workstate): UI des actions contrôlées (Lot D frontend) — port + adaptateur agent étendus, mock aligné, `ProjectWorkStatePanel` câblé. - `0976648` chore(wip): état runtime .ideai (flux conversation live) — runtime isolé. **Merge local** : feature TERMINÉE et VERTE → `git merge --no-ff feature/workstate-controlled-actions` dans **develop** → commit de merge `c1e99d1`. `--no-ff` cohérent avec Lots A (`3bfb932`), B (`64c2c14`), C (`6e1ba7e`). **Pas de push, aucune branche supprimée.** `feature/workstate-controlled-actions` conservée (sur `3408c96→0976648`). **État final** : - Branche courante : `develop` (HEAD = `c1e99d1`). - Working tree : propre (`git status` vide). - `feature/workstate-controlled-actions` préservée et entièrement contenue dans `develop`. - `develop` en avance sur origin (rien poussé). - Quadrilogie workstate Lot A→B→C→D intégrée dans `develop` ; prêt pour une future release `develop → main` sur ta validation explicite.
|
||||
- **Prompt:** Prépare le dépôt pour le Lot E1 `controlled auto-memory harvest` après Lot D mergé dans `develop` @ `c1e99d1`. État probable: dirty runtime/memory lié au checkpoint Lot D (`.ideai/*`, nouvelle note mémoire). Merci de gérer ce dirty sans perte et sans le mélanger au futur code applicatif, puis créer/basculer sur une branche feature propre depuis `develop`. Nom suggéré: `feature/controlled-auto-memory-harvest`. Contraintes: pas de push, pas de suppression de branche. Retourne commits éventuels, branche courante, status final.
|
||||
@ -57,3 +57,5 @@
|
||||
{"id":"c10a7683-5468-472c-adbb-37fb6fe8c470","conversation":"6bc594e8-a37c-0dbd-1de6-6e3b73002cb4","atMs":1781976728705,"source":{"kind":"agent","agentId":"a6ced819-b893-4213-b003-9e9dc79b9641"},"role":"prompt","text":"Prépare le dépôt pour le Lot D `workstate controlled actions` après Lot C mergé dans `develop` @ `6e1ba7e`.\n\nÉtat probable: dirty runtime/memory lié au checkpoint Lot C (`.ideai/*`, nouvelle note mémoire). Merci de gérer ce dirty sans perte et sans le mélanger au futur code applicatif, puis créer/basculer sur une branche feature propre depuis `develop`.\n\nNom suggéré: `feature/workstate-controlled-actions`.\n\nContraintes: pas de push, pas de suppression de branche. Retourne commits éventuels, branche courante, status final."}
|
||||
{"id":"c5df55db-1dc4-465e-bb3a-512806489e73","conversation":"6bc594e8-a37c-0dbd-1de6-6e3b73002cb4","atMs":1781976745549,"source":{"kind":"agent","agentId":"cd0b4cf1-1bef-4fae-ade5-f0a6b49bbaf5"},"role":"response","text":"Dépôt prêt pour le Lot D `workstate controlled actions`.\n\n**Dirty traité** : tout le dirty était runtime/mémoire (aucun code applicatif), commité tel quel sur `develop` :\n- `7c71544` chore(wip): état runtime .ideai + mémoire (checkpoint Lot C résumés conversation) — conversations live, layouts, `MEMORY.md` et nouvelle note `checkpoint-workstate-conversation-summaries-lot-c.md` (auparavant non suivie, désormais versionnée). Cohérent avec l'historique runtime.\n\n**Branche feature** : créée et basculée depuis `develop` (@ `7c71544`) :\n- `feature/workstate-controlled-actions`\n\n**Pas de push, aucune branche supprimée.**\n\n**État final** :\n- Branche courante : `feature/workstate-controlled-actions` (HEAD = `7c71544`, partagé avec `develop`).\n- Working tree : propre (`git status` vide).\n- `develop` en avance sur origin (checkpoint local, non poussé).\n\nLe dev Lot D peut démarrer. Reviens vers moi pour committer/merger une fois QA vert."}
|
||||
{"id":"e43c2b68-a855-4433-8067-64f6fc4fa59c","conversation":"6bc594e8-a37c-0dbd-1de6-6e3b73002cb4","atMs":1781977881625,"source":{"kind":"agent","agentId":"a6ced819-b893-4213-b003-9e9dc79b9641"},"role":"prompt","text":"Lot D `workstate controlled actions` est validé QA vert sur `feature/workstate-controlled-actions`. Merci de gérer les commits atomiques et la décision de merge local, sans push.\n\nQA vert:\n- `cargo fmt --all -- --check` OK\n- `cargo test -p application --test workstate_actions` OK, 7 passed\n- `cargo test -p application --test workstate` OK, 21 passed\n- `cargo test -p app-tauri --test dto_agents` OK, 25 passed\n- `cargo test -p app-tauri --test list_live_agents_r0b` OK, 5 passed\n- `cargo check -p app-tauri` OK\n- `cd frontend && npx vitest run src/features/workstate/workstate.test.tsx src/features/projects/projects.test.tsx` OK, 25 tests\n- `cd frontend && npx vitest run src/adapters/agent.test.ts` OK, 8 tests\n- `cd frontend && npx vitest run src/features/layout/singletonAgent.test.tsx src/features/layout/agentAlreadyRunning.test.tsx` OK, 9 tests\n- `cd frontend && npx tsc --noEmit` OK\n\nFichiers attendus:\n- Backend/Tauri: `crates/application/src/workstate/actions.rs`, `crates/application/tests/workstate_actions.rs`, `crates/application/src/workstate/mod.rs`, `crates/application/src/lib.rs`, `crates/app-tauri/src/{dto.rs,commands.rs,state.rs,lib.rs}`, `crates/app-tauri/tests/dto_agents.rs`.\n- Frontend: `frontend/src/ports/index.ts`, `frontend/src/adapters/{agent.ts,agent.test.ts}`, `frontend/src/adapters/mock/index.ts`, `frontend/src/features/workstate/{ProjectWorkStatePanel.tsx,workstate.test.tsx}`, `frontend/src/features/layout/{singletonAgent.test.tsx,agentAlreadyRunning.test.tsx}`.\n- Dirty runtime `.ideai/*` possible; isole-le si présent.\n\nDécide commits atomiques, merge local éventuel vers `develop`, état final. Ne push pas, ne supprime pas de branche."}
|
||||
{"id":"07175815-62fd-4f58-9d20-1db29f66da1e","conversation":"6bc594e8-a37c-0dbd-1de6-6e3b73002cb4","atMs":1781977932121,"source":{"kind":"agent","agentId":"cd0b4cf1-1bef-4fae-ade5-f0a6b49bbaf5"},"role":"response","text":"Lot D `workstate controlled actions` intégré. QA re-vérifié vert de mon côté avant tout commit (fmt OK ; application workstate_actions 7, workstate 21, app-tauri dto_agents 25, list_live_agents_r0b 5 ; frontend 5 fichiers/42 — workstate+projects 25, agent 8, singletonAgent+agentAlreadyRunning 9 ; tsc clean).\n\n**3 commits atomiques** sur `feature/workstate-controlled-actions` (code feature / runtime séparés) :\n- `3408c96` feat(workstate): actions contrôlées sur le work-state (Lot D backend) — nouveau module `workstate/actions.rs` + test `workstate_actions.rs`, intégration au read-model, commandes Tauri (commands/dto/state/lib).\n- `1c6441b` feat(workstate): UI des actions contrôlées (Lot D frontend) — port + adaptateur agent étendus, mock aligné, `ProjectWorkStatePanel` câblé.\n- `0976648` chore(wip): état runtime .ideai (flux conversation live) — runtime isolé.\n\n**Merge local** : feature TERMINÉE et VERTE → `git merge --no-ff feature/workstate-controlled-actions` dans **develop** → commit de merge `c1e99d1`. `--no-ff` cohérent avec Lots A (`3bfb932`), B (`64c2c14`), C (`6e1ba7e`).\n\n**Pas de push, aucune branche supprimée.** `feature/workstate-controlled-actions` conservée (sur `3408c96→0976648`).\n\n**État final** :\n- Branche courante : `develop` (HEAD = `c1e99d1`).\n- Working tree : propre (`git status` vide).\n- `feature/workstate-controlled-actions` préservée et entièrement contenue dans `develop`.\n- `develop` en avance sur origin (rien poussé).\n- Quadrilogie workstate Lot A→B→C→D intégrée dans `develop` ; prêt pour une future release `develop → main` sur ta validation explicite."}
|
||||
{"id":"68b5b6c0-9d14-44f9-bcc6-e745f018662d","conversation":"6bc594e8-a37c-0dbd-1de6-6e3b73002cb4","atMs":1781978078220,"source":{"kind":"agent","agentId":"a6ced819-b893-4213-b003-9e9dc79b9641"},"role":"prompt","text":"Prépare le dépôt pour le Lot E1 `controlled auto-memory harvest` après Lot D mergé dans `develop` @ `c1e99d1`.\n\nÉtat probable: dirty runtime/memory lié au checkpoint Lot D (`.ideai/*`, nouvelle note mémoire). Merci de gérer ce dirty sans perte et sans le mélanger au futur code applicatif, puis créer/basculer sur une branche feature propre depuis `develop`.\n\nNom suggéré: `feature/controlled-auto-memory-harvest`.\n\nContraintes: pas de push, pas de suppression de branche. Retourne commits éventuels, branche courante, status final."}
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -16,3 +16,4 @@
|
||||
- [checkpoint-delivery-submit-logging-fix](checkpoint-delivery-submit-logging-fix.md) — memory note checkpoint-delivery-submit-logging-fix
|
||||
- [checkpoint-workstate-delegation-queue-lot-b](checkpoint-workstate-delegation-queue-lot-b.md) — memory note checkpoint-workstate-delegation-queue-lot-b
|
||||
- [checkpoint-workstate-conversation-summaries-lot-c](checkpoint-workstate-conversation-summaries-lot-c.md) — memory note checkpoint-workstate-conversation-summaries-lot-c
|
||||
- [checkpoint-workstate-controlled-actions-lot-d](checkpoint-workstate-controlled-actions-lot-d.md) — memory note checkpoint-workstate-controlled-actions-lot-d
|
||||
|
||||
@ -0,0 +1,64 @@
|
||||
---
|
||||
name: checkpoint-workstate-controlled-actions-lot-d
|
||||
description: memory note checkpoint-workstate-controlled-actions-lot-d
|
||||
metadata:
|
||||
type: project
|
||||
---
|
||||
# Checkpoint — Workstate controlled actions Lot D
|
||||
|
||||
Date: 2026-06-20
|
||||
|
||||
## État final
|
||||
|
||||
Lot D `workstate controlled actions` terminé, validé QA et mergé localement dans `develop`.
|
||||
|
||||
Branche finale:
|
||||
- `develop` @ `c1e99d1` — merge local `feature/workstate-controlled-actions`.
|
||||
- `feature/workstate-controlled-actions` conservée.
|
||||
- Aucun push, aucune branche supprimée.
|
||||
- Working tree propre après décision Git.
|
||||
|
||||
## Commits créés
|
||||
|
||||
- `3408c96` — `feat(workstate): actions contrôlées sur le work-state (Lot D backend)`
|
||||
- Use cases agent-level `AttachLiveAgent` et `StopLiveAgent`.
|
||||
- Commandes Tauri `attach_live_agent` et `stop_live_agent`.
|
||||
- Attach rebind PTY/structured sans spawn; stop PTY/structured.
|
||||
- DTO camelCase et wiring AppState/lib.
|
||||
|
||||
- `1c6441b` — `feat(workstate): UI des actions contrôlées (Lot D frontend)`
|
||||
- Port/adaptateur agent alignés sur le nouveau contrat attach + stop.
|
||||
- Panneau Work: Open, Attach, Stop, View conversation, Copy summary.
|
||||
- Work n'appelle pas `launchAgent`; Stop passe par `stopLiveAgent`; View/Copy n'utilisent que les previews Lot C.
|
||||
|
||||
- `0976648` — `chore(wip): état runtime .ideai (flux conversation live)`
|
||||
- Runtime isolé des commits feature.
|
||||
|
||||
- `c1e99d1` — merge local dans `develop`.
|
||||
|
||||
## QA verte
|
||||
|
||||
Commandes QA/Git validées:
|
||||
- `cargo fmt --all -- --check` OK.
|
||||
- `cargo test -p application --test workstate_actions` OK, 7 passed.
|
||||
- `cargo test -p application --test workstate` OK, 21 passed.
|
||||
- `cargo test -p app-tauri --test dto_agents` OK, 25 passed.
|
||||
- `cargo test -p app-tauri --test list_live_agents_r0b` OK, 5 passed.
|
||||
- `cargo check -p app-tauri` OK.
|
||||
- `cd frontend && npx vitest run src/features/workstate/workstate.test.tsx src/features/projects/projects.test.tsx` OK, 25 tests.
|
||||
- `cd frontend && npx vitest run src/adapters/agent.test.ts` OK, 8 tests.
|
||||
- `cd frontend && npx vitest run src/features/layout/singletonAgent.test.tsx src/features/layout/agentAlreadyRunning.test.tsx` OK, 9 tests.
|
||||
- `cd frontend && npx tsc --noEmit` OK.
|
||||
|
||||
Warnings restants uniquement côté Vite sur options `esbuild` dépréciées/ignorées au profit de `oxc`, non bloquants.
|
||||
|
||||
## Décisions produit/techniques
|
||||
|
||||
- Actions Lot D opèrent seulement sur l'état existant; pas de lancement d'agent neuf depuis Work.
|
||||
- Attach ne crée ni session ni cellule; cible déterministe = cellule visible vide côté UI.
|
||||
- Stop ne supprime ni agent, ni tickets, ni handoff/conversation summary.
|
||||
- View/Copy restent limités aux previews bornées Lot C; aucun log brut exposé.
|
||||
|
||||
## Suite probable
|
||||
|
||||
La quadrilogie Work A/B/C/D est intégrée. Prochains chantiers restants à cadrer: persistance conversationnelle/cross-profile plus profonde, mise à jour automatique mémoire/contexte pendant la vie des agents, ou synchronisation documentaire architecture selon priorité Architect/Main.
|
||||
Reference in New Issue
Block a user