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>
29 lines
2.4 KiB
Markdown
29 lines
2.4 KiB
Markdown
---
|
|
name: mcp-t10a-harness-interrupt-does-not-cancel-rendezvous
|
|
description: memory note mcp-t10a-harness-interrupt-does-not-cancel-rendezvous
|
|
metadata:
|
|
type: project
|
|
---
|
|
---
|
|
title: T10a — l'interrupt harness du demandeur n'annule PAS le rendez-vous backend (reply tardif accepté dans le vide)
|
|
type: reference
|
|
description: Finding T10a (2026-06-24) — interrompre Main (demandeur) au niveau Claude Code ne propage aucune annulation à IdeA ; la cible finit, son idea_reply est « delivered » dans un demandeur abandonné, et la live-state du demandeur reste working.
|
|
---
|
|
# Finding T10a (2026-06-24, run a6ced819)
|
|
|
|
## Setup
|
|
Main → `idea_ask_agent(DevFrontend, "travaille ~90s puis idea_reply late-10a")`. Pendant l'attente, l'utilisateur **interrompt Main** (Échap harness Claude Code). Le tool use `idea_ask_agent` est rejeté côté harness.
|
|
|
|
## Observé
|
|
- DevFrontend a fini ses ~95 s de travail réel (11:20:39→11:22:14 UTC) puis `idea_reply("late-10a")` → **ACCEPTÉ « delivered »** à 11:22:18 (PAS « no pending request »).
|
|
- DevFrontend workstate = **done** (pas d'orphelin côté cible). Pas de cascade.
|
|
- **Main (demandeur) workstate resté `working`** : l'interrupt a coupé le tour de Main avant son nettoyage ; le chemin interrupt ne réconcilie pas la live-state du demandeur.
|
|
|
|
## Interprétation
|
|
L'interrupt Claude Code annule le **tool call local** mais le **process Main survit** → la socket MCP (mcp-server du demandeur) reste connectée → IdeA ne reçoit aucun signal d'annulation → le rendez-vous reste pending → le reply tardif de la cible est livré dans un demandeur qui a déjà abandonné (perdu pour Main mais rapporté « delivered »).
|
|
|
|
## Conséquence
|
|
- Le T10a du plan (« annulation en vol → reply tardif non-livrable proprement ») **n'est pas exerçable via interrupt harness** tant que le process demandeur survit. Une vraie annulation exigerait : tuer le process demandeur (drop socket) OU un cancel protocolaire JSON-RPC.
|
|
- Comportement néanmoins bénin : pas de wedge, pas de cascade, cible réconciliée (done). Seuls écarts : (a) reply tardif « delivered » au lieu de rejeté ; (b) live-state du demandeur laissée working par le chemin interrupt (mais reconcile-au-reboot la rattraperait, cf. [[reconcile-live-state-implemented-feature-branch]]).
|
|
|
|
Lié à [[mcp-functional-tests-t1-t9-green-live-2026-06-24]], [[mcp-functional-test-plan-2026-06-24]]. |