Files
IdeA/.ideai/memory/checkpoint-mcp-t1-t6-green-t7-fix-wrong-layer.md
Blomios 50e99e5ced chore(workstate): notes mémoire campagne MCP T1→T10 + état runtime
Capitalise la mémoire projet produite pendant la campagne de tests fonctionnels
MCP (rendez-vous inter-agents, backstop no-reply, réconciliation live-state au
reboot) et synchronise l'état runtime `.ideai/` (agents, layouts, skills, index
mémoire). Inclut la mise à jour du contexte de l'agent Git.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 13:32:28 +02:00

4.7 KiB

name, description, metadata
name description metadata
checkpoint-mcp-t1-t6-green-t7-fix-wrong-layer memory note checkpoint-mcp-t1-t6-green-t7-fix-wrong-layer
type
project
name: checkpoint-mcp-t1-t6-green-t7-fix-wrong-layer description: T1→T6 verts (non-régression). T7 ROUGE diagnostiqué (fix sur mauvaise couche) PUIS RE-FIX implémenté dans le working tree + vert en tests unitaires. Reste : rebuild AppImage en cours → relance IdeA → re-valider T1→T7 en live → commit Git. metadata: type: project

Checkpoint tests fonctionnels MCP — run a6ced819 (2026-06-24)

Plan via skill mcp-rendezvous-functional-test, Main = demandeur. Setup chauds : Main/QA/DevFrontend ; froids : Architect/DevBackend/Git.

T1→T6 : VERTS sur AppImage 09:21 (aucune régression)

T1 visibilité, T2 chaude pong, T3 réveil froid Git (1er tour intact), T4 background node_id None, T5 no-reply backstop (live-state purgée), T6 multi-étapes == oracle. Détails dans l'historique. NB outillage : pgrep -af mcp-server | grep <uuid> = FAUX positifs (le shell de mesure se matche) → filtrer ps -eo cmd | grep 'app-tauri mcp-server'.

T7 : défaut trouvé EN LIVE puis CORRIGÉ

Défaut (T7e live, 621 s ≈ 600 s) : cible en long tour unique > 600 s (transcript en croissance prouvée) coupée par un timeout PLAT process error: agent session reply timed out, pas d'extension. Le watchdog du fix précédent vivait côté requester (server.rs) mais le seam qui coupe vraiment est application/src/orchestrator/service.rs (ASK_AGENT_TIMEOUT=600s plat appliqué au drain de tour délégué, ~L1564). Fix posé sur la mauvaise couche.

RE-FIX implémenté (subagent natif Architect→DevBackend→QA, worktree, ramené dans le main working tree ; HEAD toujours 1efe2f1, NON committé) :

  • Découverte clé : ClaudeSdkSession::send().await rend TOUS les ReplyEvent en bloc À LA FIN du tour (rien mid-turn) → la vivacité par-événement est inutilisable ; seul signe de vie réel = sonde transcript (octets .jsonl), comme server.rs.
  • Un seul run_inactivity_watchdog générique dans crates/application/src/orchestrator/rendezvous.rs (NOUVEAU, pur, testé), réutilisé par service.rs (le vrai seam) ET server.rs (copie privée supprimée → dé-duplication).
  • Nouveau port AskLivenessProbe injecté au composition root app-tauri/state.rstranscript_activity_token (+ with_ask_ceiling, env IDEA_ASK_RENDEZVOUS_CEILING_MS, défaut 4 h). Sans injection ⇒ fallback fenêtre plate = zéro régression.
  • Issues typées : progrès<plafond → réarme ; progrès+plafond → AppError::TargetCeilingActive (code RENDEZVOUS_CEILING_ACTIVE, non-retry-aveugle) ; vrai silence → AgentSessionError::Timeout inchangé.
  • Défaut secondaire (busy fantôme) : mark_target_done_best_effort sur toutes les branches d'abandon (PTY + structuré).
  • Fichiers : application {rendezvous.rs(new), service.rs, error.rs, lib.rs, orchestrator/mod.rs}, infra mcp/server.rs, app-tauri/state.rs (+ les modifs infra inspector/lib pré-existantes du 1er fix).
  • Preuve réelle (re-vérifiée par Main dans le MAIN TREE) : cargo test -p application --lib 75/0 (dont progressing_target_extends_then_resolves, _hits_ceiling_distinctly, silent_target_expires_no_reply, no_probe_falls_back_to_flat_window, ceiling_active_code) ; cargo test -p infrastructure --lib 247/0 ; clippy 0 nouveau warning.

PROCHAINE ÉTAPE (reprise après relance IdeA)

  1. Rebuild AppImage EN COURS (recette : npm --prefix frontend run build puis depuis crates/app-tauri/ APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=1 ../../frontend/node_modules/.bin/tauri build --bundles appimage ; artefact target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage → remplace /home/anthony/Documents/IdeA_0.3.0_amd64.AppImage, backup l'ancienne). Log build : scratchpad/rebuild.log.
  2. Utilisateur relance IdeA (tue Main).
  3. Reprendre le test depuis T1 (skill). Le but immédiat = re-valider T7 EN LIVE : déléguer une charge réelle > 600 s en un long tour (la machine est rapide : cargo clean && cargo build --release --workspace en boucle jusqu'à >13 min, transcript en croissance) ⇒ ATTENDU = PAS de timeout à 600 s, extension, reply final livré. Puis enchaîner T8 (parallèles), T9 (transitif A→B→C, Architect+DevBackend froids), T10 (interruption + reconcile reboot).
  4. Si live vert : demander à Git de committer le fix (cf. git-owns-commit-merge-decisions) ; rendez-vous MCP court marche (T2-T6), donc commit délégable à Git OU subagent natif.

Lié à rendezvous-600s-cap-too-short-heavy-tasks, mcp-functional-test-plan-2026-06-24, mcp-bridge-and-delegation-runtime-notes.