chore(tickets): sync store local — #305 carnet/issue (cadrage UX+Architect, QA verte, livraison) et #314 issue (QA verte); counter/index à jour; tickets 308-313 non liés, agents/test, chat-drafts, system-permissions, attachments/ et scripts/ hors périmètre; aucun push
This commit is contained in:
54
.ideai/tickets/314/carnet.md
Normal file
54
.ideai/tickets/314/carnet.md
Normal file
@ -0,0 +1,54 @@
|
||||
---
|
||||
issueRef: "#314"
|
||||
version: 5
|
||||
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
updatedAt: 1789115266263
|
||||
---
|
||||
# Carnet #314 - Conversation liée après reboot affiche transcript indisponible
|
||||
|
||||
## Signalement
|
||||
- Date: 2026-09-11.
|
||||
- Contexte: utilisateur vient d'allumer le PC et d'ouvrir IdeA.
|
||||
- Symptôme visible dans la fenêtre Main: `Conversation liée — transcript indisponible.`
|
||||
- Capture importée par IdeA: `/home/anthony/Documents/Projects/IdeA/.ideai/attachments/agent-chat/f9088cc7-5c7d-425d-86a4-178b1857ebdb/cfd2c4b3-37a0-4288-abe9-7f31b32d38fc-clipboard-image-1789108822637.png`.
|
||||
|
||||
## Première lecture Main
|
||||
- Le message correspond au garde-fou livré dans #307: au lieu d'un spinner infini quand une conversation liée ne rend aucun tour après `openOrAttach`, le frontend affiche un état terminal `transcript indisponible`.
|
||||
- Reste à qualifier si, après reboot, c'est un état attendu mais mal actionnable ou une régression de restauration/lecture du transcript.
|
||||
- À traiter séparément de #305 pour éviter de mélanger la feature tâches planifiées avec ce bug de restauration conversationnelle.
|
||||
|
||||
## Validation QA — 2026-09-11
|
||||
|
||||
Verdict: VERT pour #314 sur `feature/305-scheduled-project-tasks-mcp`.
|
||||
|
||||
Diff inspecté: `ReattachChatDto` expose `transcriptUnavailableReason` (`missingTranscript` vs `emptyConversation`), Tauri et WebSocket remplissent la raison depuis `StructuredSessions::transcript_restore_expected`, le frontend `CustomAgentChatView` affiche un état terminal actionnable avec `Réessayer` et `Délier la conversation`, et le cas `NOT_FOUND` devient actionnable sans boucle automatique.
|
||||
|
||||
Preuves de commandes réelles:
|
||||
|
||||
```text
|
||||
CARGO_HOME=/home/anthony/.local/share/app.idea.ide/managed-tmp/1d97033d-7b81-4f12-9b27-fe5a3842c5cc/data/cargo-home cargo test -p app-tauri --test dto_chat -- --nocapture
|
||||
=> test result: ok. 26 passed; 0 failed.
|
||||
|
||||
CARGO_HOME=/home/anthony/.local/share/app.idea.ide/managed-tmp/1d97033d-7b81-4f12-9b27-fe5a3842c5cc/data/cargo-home cargo test -p web-server chat_attached -- --nocapture
|
||||
=> test result: ok. 2 passed; 0 failed; 115 filtered out.
|
||||
|
||||
CARGO_HOME=/home/anthony/.local/share/app.idea.ide/managed-tmp/1d97033d-7b81-4f12-9b27-fe5a3842c5cc/data/cargo-home cargo test -p web-server websocket_chat_attach_recovers_stale_session_from_live_project_agent -- --nocapture
|
||||
=> test result: ok. 1 passed; 0 failed; 116 filtered out.
|
||||
|
||||
CARGO_HOME=/home/anthony/.local/share/app.idea.ide/managed-tmp/1d97033d-7b81-4f12-9b27-fe5a3842c5cc/data/cargo-home cargo test -p application --test structured_registry_d1 -- --nocapture
|
||||
=> test result: ok. 14 passed; 0 failed.
|
||||
|
||||
CARGO_HOME=/home/anthony/.local/share/app.idea.ide/managed-tmp/1d97033d-7b81-4f12-9b27-fe5a3842c5cc/data/cargo-home cargo test -p application --test agent_lifecycle -- --nocapture
|
||||
=> test result: ok. 111 passed; 0 failed.
|
||||
|
||||
npm --prefix frontend test -- --run src/features/scheduled-tasks/scheduledTasks.test.tsx src/adapters/scheduledTask.test.ts src/adapters/http/scheduledTaskGateway.test.ts src/features/agents/CustomAgentChatView.test.tsx src/adapters/agent.test.ts src/adapters/http/agentGateway.test.ts
|
||||
=> Test Files 6 passed (6); Tests 107 passed (107).
|
||||
|
||||
npm --prefix frontend run typecheck
|
||||
=> tsc --noEmit passed.
|
||||
|
||||
npm --prefix frontend run build
|
||||
=> tsc --noEmit && vite build passed; Vite emitted only the existing chunk-size warning.
|
||||
```
|
||||
|
||||
Risque résiduel non bloquant: pas de repro manuelle après reboot réel dans l'AppImage; la validation prouve le contrat backend/DTO/frontend automatisé et le scénario WebSocket de session stale récupérée avec `missingTranscript`.
|
||||
Reference in New Issue
Block a user