chore(tickets): sync store local — #280 docs SDK clarifiées (bump pointeur IdeaSDK 1239104, ticket, consigne main.md doc SDK systématique sur évolution SDK, note memory #279 plugin-soft-refresh-and-agent-install-tools rattrapée) + #281 fix live-state cross-project (ticket fermé, note memory cross-project-ask-drop-cleans-live-state, merge 566e3c3) + #282 ouvert (Paramètres projet plugins/skills/tools agents); exclusion scripts/restart-idea-over-ssh.sh hors périmètre

This commit is contained in:
2026-09-08 14:54:29 +02:00
parent 4745b65a12
commit bdc20a134a
13 changed files with 350 additions and 2 deletions

View File

@ -0,0 +1,40 @@
---
name: cross-project-ask-drop-cleans-live-state
description: memory note cross-project-ask-drop-cleans-live-state
metadata:
type: project
---
# Cross-project ask drop cleans live-state
Date: 2026-09-08
Type: reference
## Cause racine
Un `idea_project_ask_agent` abandonné/annulé côté appelant peut dropper le futur `ask_structured` côté cible avant qu'une branche explicite du watchdog ne s'exécute. `BusyTurnGuard` nettoyait déjà FIFO + busy state, mais la ligne live-state humaine passait à `Working` via `mark_target_working_best_effort` et ne revenait à `Done` que dans les branches explicites succès/erreur/timeout. Résultat : LED jaune / agent `working` persistant jusqu'au restart ou TTL, même si le tour a été abandonné.
## Fix
`crates/application/src/orchestrator/service.rs` ajoute `LiveStateTurnGuard` :
- armé après la publication live-state `Working` ;
- désarmé après les sorties explicites qui appellent déjà `mark_target_done_best_effort` ;
- sur `Drop`, lance un cleanup async best-effort vers `Done` avec `last_delegation` = ticket.
Test de régression : `dropped_ask_future_marks_live_state_done` dans `crates/application/tests/orchestrator_service.rs`.
## Validation
Verts le 2026-09-08 :
- `cargo fmt`
- `cargo test -p application dropped_ask_future_marks_live_state_done --test orchestrator_service`
- `cargo test -p application --test orchestrator_service` : 78/78
- `npm --prefix frontend run build`
- AppImage rebuild via `CARGO_HOME=/tmp/idea-cargo-home 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`.
## Réserve
`cargo test -p application` échouait encore sur `launch_conventionfile_injects_assigned_skills_in_order`, hors périmètre du correctif cross-project/workstate.