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>
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 |
|
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().awaitrend TOUS lesReplyEventen 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), commeserver.rs. - Un seul
run_inactivity_watchdoggénérique danscrates/application/src/orchestrator/rendezvous.rs(NOUVEAU, pur, testé), réutilisé parservice.rs(le vrai seam) ETserver.rs(copie privée supprimée → dé-duplication). - Nouveau port
AskLivenessProbeinjecté au composition rootapp-tauri/state.rs→transcript_activity_token(+with_ask_ceiling, envIDEA_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(codeRENDEZVOUS_CEILING_ACTIVE, non-retry-aveugle) ; vrai silence →AgentSessionError::Timeoutinchangé. - Défaut secondaire (busy fantôme) :
mark_target_done_best_effortsur toutes les branches d'abandon (PTY + structuré). - Fichiers : application
{rendezvous.rs(new), service.rs, error.rs, lib.rs, orchestrator/mod.rs}, inframcp/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 --lib75/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 --lib247/0 ; clippy 0 nouveau warning.
PROCHAINE ÉTAPE (reprise après relance IdeA)
- Rebuild AppImage EN COURS (recette :
npm --prefix frontend run buildpuis depuiscrates/app-tauri/APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=1 ../../frontend/node_modules/.bin/tauri build --bundles appimage; artefacttarget/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. - Utilisateur relance IdeA (tue Main).
- 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 --workspaceen 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). - 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.