Mise à jour de l'état runtime non-code : flux de conversations (handoff/log.jsonl), layouts, index mémoire MEMORY.md, et nouveau checkpoint checkpoint-delivery-submit-logging-fix.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
4.5 KiB
4.5 KiB
name, description, metadata
| name | description | metadata | ||
|---|---|---|---|---|
| checkpoint-delivery-submit-logging-fix | memory note checkpoint-delivery-submit-logging-fix |
|
Checkpoint — hotfix livraison délégation + logs submit
Date: 2026-06-20
Pourquoi ce checkpoint existe
Après le fix AppImage 0.3.0 précédent, la délégation Main -> DevBackend a reproduit le même symptôme que Main -> Architect avant redémarrage : le message de délégation apparaît dans l'input de la cellule cible, mais n'est pas soumis.
Le chantier feature/agent-skill-awareness-v2 est donc suspendu tant que le canal de délégation n'est pas fiable.
Branche et état
Branche active pendant le hotfix : feature/agent-skill-awareness-v2.
Dirty attendu hors code : fichiers runtime .ideai/conversations/*, .ideai/layouts.json produits par la session live.
Changements code effectués
Frontend :
frontend/src/features/terminals/useWritePortal.ts- Logs détaillés
[write-portal]: abonnement, attachement front, réceptiondelegationReady, chunks de texte, délai avant submit, submit, ack, erreurs. - Fix défensif :
submitSequence: ""est normalisée vers"\r"au lieu d'écrire zéro octet. - En cas d'erreur d'injection, arrêt du retry immédiat infini.
- Logs détaillés
frontend/src/adapters/terminal.ts- Logs
[terminal-write]sur writes non triviaux ou contrôles (\r,\n, bulk, etc.).
- Logs
frontend/src/adapters/input.ts- Logs
[input-gateway]pourdelegationDeliveredetsetFrontAttached.
- Logs
frontend/src/domain/index.ts- Commentaire défaut submit aligné sur ~350 ms.
frontend/src/features/terminals/useWritePortal.test.tsx- Test ajouté :
submitSequence: ""doit envoyer"\r".
- Test ajouté :
Backend/application/Tauri :
crates/application/src/orchestrator/service.rsnote_delegation_deliveredpasse parapplication::diag!persistant.set_agent_front_attachedlogge les changements d'attachement et le cas médiateur absent.
crates/infrastructure/src/input/mod.rs- Logs détaillés
[input-mediator]: start turn, gate cold start, publishDelegationReady, choix front-owned vs headless, bind handle, front attach/detach, headless text/submit start/ok/failure. - Défaut headless
DEFAULT_SUBMIT_DELAY_MScorrigé de 60 ms à 350 ms pour être aligné avec le write-portal. - Headless normalise aussi une submit sequence vide vers
"\r".
- Logs détaillés
crates/app-tauri/src/commands.rs- Logs persistants
[pty-write]autour dewrite_terminalavec session, bytes, contrôle sans contenu bulk. - Logs persistants
[delivery]pourdelegation_deliveredetset_front_attached.
- Logs persistants
Vérifications passées
cargo fmt --all -- --check: OK.npx vitest run src/features/terminals/useWritePortal.test.tsx src/adapters/terminal.test.ts src/features/terminals/TerminalView.portal.test.tsx: OK, 3 files / 20 tests.npx tsc --noEmit: OK.cargo test -p infrastructure input --lib: OK, 35 tests.cargo check -p app-tauri: OK.cargo test -p application --test orchestrator_service: OK, 45 tests (warning existantCapturingFs::writesunused).cargo test -p app-tauri --test orchestrator_wiring: OK, 13 tests.
Build AppImage
Commande Tauri standard : frontend build OK, Rust release OK, bundling Tauri KO avec failed to run linuxdeploy comme précédemment.
Contournement réussi :
ARCH=x86_64 APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=1 \
/tmp/appimage_extracted_02f96dbd6ecc47f616b5a57fb8b7aa60/usr/bin/appimagetool \
--runtime-file /tmp/idea-appimage-runtime-x86_64 \
/home/anthony/Documents/Projects/IdeA/target/release/bundle/appimage/IdeA.AppDir \
/home/anthony/Documents/Projects/IdeA/target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage
Artefact :
/home/anthony/Documents/Projects/IdeA/target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage- taille : 106M
--appimage-offset:944632
Reprise recommandée
- Relancer IdeA avec l'AppImage ci-dessus.
- Reproduire une délégation simple
Main -> DevBackendouMain -> Architect. - Si le message reste dans l'input sans être soumis, récupérer les traces :
- logs persistants
application::diag!(chemin configuré au startup, typiquement app-data logs/idea.log), chercher[delivery],[pty-write],[rendezvous]. - console frontend, chercher
[write-portal],[terminal-write],[input-gateway]. - stderr si lancé depuis terminal, chercher
[input-mediator].
- logs persistants
- Une fois délégation fiable, reprendre
feature/agent-skill-awareness-v2depuis le cadrage Architect déjà obtenu.