Files
IdeA/.ideai/memory/checkpoint-delivery-submit-logging-fix.md
Blomios cc575efe27 chore(wip): état runtime .ideai (conversations, layouts, mémoire, checkpoint skill-awareness)
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>
2026-06-20 10:57:24 +02:00

4.5 KiB

name, description, metadata
name description metadata
checkpoint-delivery-submit-logging-fix memory note checkpoint-delivery-submit-logging-fix
type
project

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éception delegationReady, 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.
  • frontend/src/adapters/terminal.ts
    • Logs [terminal-write] sur writes non triviaux ou contrôles (\r, \n, bulk, etc.).
  • frontend/src/adapters/input.ts
    • Logs [input-gateway] pour delegationDelivered et setFrontAttached.
  • 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".

Backend/application/Tauri :

  • crates/application/src/orchestrator/service.rs
    • note_delegation_delivered passe par application::diag! persistant.
    • set_agent_front_attached logge 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, publish DelegationReady, choix front-owned vs headless, bind handle, front attach/detach, headless text/submit start/ok/failure.
    • Défaut headless DEFAULT_SUBMIT_DELAY_MS corrigé de 60 ms à 350 ms pour être aligné avec le write-portal.
    • Headless normalise aussi une submit sequence vide vers "\r".
  • crates/app-tauri/src/commands.rs
    • Logs persistants [pty-write] autour de write_terminal avec session, bytes, contrôle sans contenu bulk.
    • Logs persistants [delivery] pour delegation_delivered et set_front_attached.

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 existant CapturingFs::writes unused).
  • 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

  1. Relancer IdeA avec l'AppImage ci-dessus.
  2. Reproduire une délégation simple Main -> DevBackend ou Main -> Architect.
  3. 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].
  4. Une fois délégation fiable, reprendre feature/agent-skill-awareness-v2 depuis le cadrage Architect déjà obtenu.