Files
IdeA/.ideai/tickets/314/carnet.md

4.1 KiB

issueRef, version, updatedBy, updatedAt
issueRef version updatedBy updatedAt
#314 6
kind agent_id
agent a6c6ea12-bfc6-4bdc-8031-324102dfa34d
1789115934377

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:

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.

Clôture Git/AppImage — 2026-09-11

  • Fix inclus dans le feature commit 7007b2c et le merge local develop 600aae17.
  • Rebuild AppImage depuis develop @ 600aae17 réussi.
  • Artefact: target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage.
  • Taille: 120560120 octets.
  • SHA-256: d7de4519736eee6b923ba5b9a6e966cea08760173bd85a66ae6422a60a95e0d1.
  • Commit dédié rebuild: 1e2cb5e.
  • Tag annoté: v0.48.0.
  • Aucun push effectué.
  • Restant manuel: remplacer l'AppImage installée puis relancer IdeA pour valider live que l'état post-reboot est désormais actionnable.