1dc892d80bchore(appimage): rebuild AppImage develop — commit dédié v0.51.0 #317 (artefact target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage, 120584696 octets, sha256 6c3f6a5292d8f8b886702eba8b6367574c952b3b8144f26bbaa506140057e400, produit depuis develop @ 6128be7e incluant le merge de la feature #317 — bouton Redémarrer l'agent dans la barre supérieure des cellules, restart valable pour les trois modes de présentation headless/TUI native/CLI custom via le use case RestartCellAgentRuntime déléguant au scheduler self-restart existant, commande restart_cell_agent contrat identique Tauri/HTTP, stop borné par timeout typé, relance préservant routage TUI natif/géométrie de cellule/conversation, overlay d'état et confirmation frontend, QA verte ; build réussi par Main: npm --prefix frontend run build puis tauri build --bundles appimage depuis crates/app-tauri) ; convention de tag respectée: y incrémenté pour un rebuild committé sur develop, v0.50.0 -> v0.51.0, tag annoté posé sur ce commit ; commit --allow-empty: l'artefact vit sous target/ gitigné et le bookkeeping carnet/index/counter reste hors périmètre en worktree — ce message est la trace durable in-repo du rebuild ; restant: validation live depuis l'app installée v0.51.0 — le bouton Redémarrer l'agent redémarre l'agent attaché à la cellule depuis chaque mode de présentation, avec conservation du layout/cell/node et états d'échec correctement libellés ; l'AppImage installée n'est pas remplacée par cette opération ; aucun push.Blomios2026-09-11 15:05:05 +02:00
6128be7e53merge(backend,application,frontend,domain,web-server,app-tauri): feature #317 — bouton Redémarrer l'agent dans la barre des cellules (QA verte)Blomios2026-09-11 15:00:51 +02:00
7fb9d8bb86feat(backend,application,frontend,domain,web-server,app-tauri): bouton Redémarrer l'agent dans la barre supérieure des cellules — #317 (QA verte)Blomios2026-09-11 15:00:43 +02:00
46449bdf46chore(appimage): rebuild AppImage develop — commit dédié v0.50.0 #316 (artefact target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage, 120543736 octets, sha256 d240c78b705572635d12364d6d26340ad4569a6652f89700acbc13b62f0a0863, produit depuis develop @ aac37d81 incluant le merge du fix#316 — set de couleurs des paramètres projet fiable pour tous les projets: DTO tri-état absent/inchangé vs null/défaut, mise à jour partielle theme_color, garde-fous de course frontend par projet, gardes de focus ViewWindow, QA verte ; build réussi par Main: npm --prefix frontend run build puis tauri build --bundles appimage depuis crates/app-tauri) ; convention de tag respectée: y incrémenté pour un rebuild committé sur develop, v0.49.0 -> v0.50.0, tag annoté posé sur ce commit ; commit --allow-empty: l'artefact vit sous target/ gitigné et le bookkeeping carnet/index/counter reste hors périmètre en worktree — ce message est la trace durable in-repo du rebuild ; restant: validation live depuis l'app installée v0.50.0 — le set de couleurs des paramètres projet s'applique et persiste correctement sur l'ensemble des projets, y compris après changements de projet rapides ; l'AppImage installée n'est pas remplacée par cette opération ; aucun push.Blomios2026-09-11 13:04:52 +02:00
aac37d816dmerge(frontend,application,backend,web-server,infrastructure): fix#316 — set de couleurs projet fiable pour tous les projets (QA verte)Blomios2026-09-11 13:01:13 +02:00
bbe8c1d04bfix(frontend,application,backend,web-server,infrastructure): le set de couleurs projet s'applique à tous les projets — #316 (QA verte)Blomios2026-09-11 13:01:05 +02:00
89937c7cd9chore(appimage): rebuild AppImage develop — commit dédié v0.49.0 #315 (artefact target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage, 120556024 octets, sha256 7055487cd147279a3d0e227e1676627add1f53c314f74bd62c4a7c54717514a2, produit depuis develop @ 40050170 incluant le merge du lot #315 — détachement Paramètres projet, couleurs projet fiables inter-webviews, restauration conversation/images custom CLI après aller-retour projet, retrait menus Projects/Project Context du menu Panneaux, QA verte ; build réussi par Main après QA verte) ; convention de tag respectée: y incrémenté pour un rebuild committé sur develop, v0.48.0 -> v0.49.0, tag annoté posé sur ce commit ; commit --allow-empty: l'artefact vit sous target/ gitignoré et le bookkeeping carnet/index/counter reste hors périmètre en worktree — ce message est la trace durable in-repo du rebuild ; restant: validation live depuis l'app installée v0.49.0 — détachement du panneau Paramètres du projet (et Retry), application persistante des couleurs projet y compris dans les fenêtres détachées, conversation CLI custom restaurée après changement de projet puis retour, images conservées après aller-retour projet, menu Panneaux sans entrées Projects/Project Context ; l'AppImage installée n'est pas remplacée par cette opération ; aucun push.Blomios2026-09-11 11:31:45 +02:00
352ec2d8b7chore(tickets): sync store local — clôture #305 (tâches planifiées projet, livrées v0.48.0) et #314 (transcript lié après reboot, corrigé) par Main après rebuild AppImage validé; carnets à jour, index qa->closed; counter inchangé; fichiers non liés (agents/test, chat-drafts, system-permissions, attachments/, tickets 308-313, scripts/) hors périmètre; tag v0.48.0 inchangé sur 1e2cb5e; aucun pushBlomios2026-09-11 10:39:28 +02:00
1e2cb5e2afchore(appimage): rebuild AppImage develop — commit dédié v0.48.0 #305#314 (artefact target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage, 120560120 octets, sha256 d7de4519736eee6b923ba5b9a6e966cea08760173bd85a66ae6422a60a95e0d1, produit depuis develop @ 600aae17 incluant le merge #305 tâches planifiées projet — tool MCP idea_scheduled_task_* + menu utilisateur — et le fix#314 transcript lié indisponible après reboot, QA verte sans bloquant; commandes carnet: npm --prefix frontend run build OK puis depuis crates/app-tauri: mkdir -p /tmp/idea-cargo-home && CARGO_HOME=/tmp/idea-cargo-home APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=1 ../../frontend/node_modules/.bin/tauri build --bundles appimage OK; commit --allow-empty: l'artefact vit sous target/ gitignoré et le bookkeeping carnet/index/counter reste hors périmètre en worktree — ce message est la trace durable in-repo du rebuild; convention de tag respectée: y incrémenté pour un rebuild committé sur develop, v0.47.0 -> v0.48.0, tag annoté posé sur ce commit; restant: validation live depuis l'app installée v0.48.0 — menu projet 'Tâches planifiées' (création/édition/approbation tâche agent/exécution maintenant/suppression), tools MCP idea_scheduled_task_* list/create/run_now, transcript lié restauré après reboot; l'AppImage installée n'est pas remplacée par cette opération; aucun push)Blomios2026-09-11 10:36:43 +02:00
600aae175fmerge(backend,frontend): tâches planifiées projet #305 + fix transcript lié après reboot #314 (QA verte)Blomios2026-09-11 10:32:21 +02:00
686cf31620chore(tickets): sync store local — #305 carnet/issue (cadrage UX+Architect, QA verte, livraison) et #314 issue (QA verte); counter/index à jour; tickets 308-313 non liés, agents/test, chat-drafts, system-permissions, attachments/ et scripts/ hors périmètre; aucun pushBlomios2026-09-11 10:32:09 +02:00
7007b2cc7efeat(backend,frontend): tâches planifiées projet — tool MCP idea_scheduled_task_* et menu utilisateur #305, fix transcript lié indisponible après reboot #314 (QA verte)Blomios2026-09-11 10:32:01 +02:00
72792bb02bmerge(backend,frontend): lot utilisateur #310-#313 — horodatage conversation, stop agent robuste, préférence terminal par défaut, paramètres projet (QA verte)Blomios2026-09-10 21:26:23 +02:00
402a60f213feat(backend,frontend): lot utilisateur #310#311#312#313 — horodatage conversation, stop agent robuste, préférence terminal par défaut, paramètres projet (QA verte)Blomios2026-09-10 21:26:16 +02:00
fc45594d9achore(appimage): rebuild AppImage develop — commit dédié v0.47.0 #309 (artefact target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage, 119937528 octets, sha256 ffed1647c876057fdf69940801d53759876d1231552d9407d40e1cfa4b0e8ae2, produit depuis develop @ 3eaa3db incluant le merge du fix#309 — writable roots Codex corrects sur projets non-IdeA quel que soit le mode de lancement ; build réussi par Main après QA verte) ; convention de tag respectée: y incrémenté pour un rebuild committé sur develop, v0.46.0 -> v0.47.0, tag annoté posé sur ce commit ; commit --allow-empty: l'artefact vit sous target/ gitignoré et le bookkeeping carnet #309/index/counter reste hors périmètre en worktree — ce message est la trace durable in-repo du rebuild ; restant: validation live des writable roots Codex depuis l'app installée v0.47.0 (first-run TUI native, stop/relaunch, CLI custom, délégation headless sur projet non-IdeA) ; l'AppImage installée n'est pas remplacée par cette opération ; aucun push.Blomios2026-09-10 19:09:12 +02:00
1f38c61c75fix(application): writable roots Codex corrects sur projets non-IdeA quel que soit le mode de lancement — #309 (QA verte)Blomios2026-09-10 19:04:01 +02:00
63c7f79576merge(projects): suppression d'un projet du registre IdeA sans suppression du dossier disque — #308 (QA verte)Blomios2026-09-10 18:27:28 +02:00
b9f8ed303efeat(backend,domain,infrastructure,application,app-tauri,web-server,frontend): suppression d'un projet du registre IdeA sans toucher son dossier disque — #308 (QA verte)Blomios2026-09-10 18:27:15 +02:00
ca1a27a2b9chore(tickets): sync store local — #307 QA verte finale backend+frontend, merge develop e1dbe56 (branche fix/307-startup-ghost-states-reconciliation commit 57cf825), carnet v7 section Git; AppImage rebuild 14:21 déjà formalisée v0.46.0 (commit dédié 99b400a + tag annoté, artefact sha256 vérifié identique au contenu develop post-merge — pas de nouveau tag); tickets 299-307 + index/counter + #296 carnet/issue; attachments/ et scripts/ hors périmètre; aucun pushBlomios2026-09-10 17:32:14 +02:00
e1dbe56d9cmerge(runtime): réconcilie les états et tâches fantômes au démarrage + garde-fou transcript indisponible — #307 (QA verte reconfirmée par Git: rustup run stable cargo fmt --all -- --check, git diff --check, cargo test -p infrastructure --test background_task_store 12/12, -p domain --lib live_state 15/15, -p backend ticket307_activation_reconcile_tests 1/1 + background_tasks_b7 1/1, -p application --test workstate 29/29, cargo check -p backend, frontend npm test CustomAgentChatView 72/72, npm run typecheck; branche fix/307-startup-ghost-states-reconciliation commit 57cf825; correctif borné 6 fichiers: domain live_state correlation_id effacé des orphelins, infrastructure reconcile_project_boot borné par projet + test multi-projets, backend filtrage project_id des complétions + test intégration activate_project + B7 renforcé, frontend CustomAgentChatView état terminal « transcript indisponible » après récupération vide sans spinner infini; artefact: l'AppImage v0.46.0 (99b400a, buildée 14:21 depuis ce worktree incluant le WIP #307 complet) correspond au contenu de develop post-merge — restant validation live fermeture/relance depuis l'app installée; fichiers .ideai/tickets/*, attachments/ et scripts/ hors périmètre et préservés en worktree; aucun push)Blomios2026-09-10 16:33:16 +02:00
57cf825f05fix(backend,domain,infrastructure,frontend): réconcilie les états et tâches fantômes au démarrage — #307 (cause: l'activation projet balayait tous les documents background-task sous le root sans filtre project_id et LiveState::reconcile_orphans conservait correlation_id des lignes mortes, laissant après reboot des LED working fantômes et des tâches Running orphelines reprojetées par GetProjectWorkState, tandis qu'un conversationId isolé affichait indéfiniment « Conversation liée — récupération du transcript en cours. »; fix backend: FsBackgroundTaskStore::reconcile_project_boot borne la réconciliation boot au document du projet activé (API reconcile_boot historique préservée), AppBackgroundTaskStore filtre list_undelivered_completions sur project_id, et une ligne active orpheline efface désormais aussi correlation_id en plus de ticket/last_delegation; garde-fou frontend: CustomAgentChatView affiche l'état terminal « Conversation liée — transcript indisponible. » quand openOrAttach terminé n'a récupéré aucun tour, spinner borné à opening, conversationId et cellule préservés; QA verte reconfirmée par Git: rustup run stable cargo fmt --all -- --check, git diff --check, cargo test -p infrastructure --test background_task_store 12/12 dont project_reconcile_does_not_repair_or_report_foreign_project_tasks, -p domain --lib live_state 15/15, -p backend ticket307_activation_reconcile_tests 1/1 (activate_project_clears_stale_live_correlation_and_terminalizes_orphan_task) et background_tasks_b7 1/1 renforcé (orphan évicté de list_open_for_agent), -p application --test workstate 29/29, cargo check -p backend, frontend npm test CustomAgentChatView 72/72 dont garde-fou transcript indisponible, npm run typecheck; risque résiduel documenté: le garde-fou suppose que openOrAttach finit par se résoudre, pas de timeout transport ajouté; fichiers .ideai/tickets/296/*, tickets/299-307/*, counter/index, attachments/ et scripts/ hors périmètre et préservés en worktree; aucun push)Blomios2026-09-10 16:33:02 +02:00
99b400a59echore(appimage): rebuild AppImage develop — commit dédié v0.46.0 #306 (artefact target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage, 119871992 octets, sha256 e6e22132970357d8a67338edaf4c3b0adbee7a66265e09211e733abfa08825da, produit depuis le worktree develop @ eb86366 incluant le WIP #307 non committé présent au moment du build — correctif #306: recalcule la policy structured Codex sur les reprises custom/headless afin que project root et managed tmp soient transmis en writable_roots, fail-closed sans policy explicite; build exécuté via le skill build-appimage: npm --prefix frontend run build puis depuis crates/app-tauri CARGO_HOME=/tmp/idea-cargo-home APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=1 ../../frontend/node_modules/.bin/tauri build --bundles appimage; commit dédié --allow-empty: l'artefact vit sous target/ gitignoré et le bookkeeping carnet #306/index/counter reste hors périmètre en worktree — ce message est la trace durable in-repo du rebuild; correction topologie Git: le tag v0.46.0 avait d'abord été posé lightweight directement sur le commit de correctif eb86366 via runner IdeA, il est repositionné en tag annoté sur ce commit dédié conformément à la convention — aucune réécriture d'historique, aucun push; convention de tag vx.y.z respectée: y incrémenté pour un rebuild committé sur develop, v0.45.0 -> v0.46.0; restant: validation live écriture project root en delegation headless/CLI custom sur IdeaAndroidPlugin depuis l'app installée, remplacement AppImage et relance manuels; fichiers tickets/296/*, tickets/299-307/*, counter/index, attachments/, scripts/ et WIP #307 (crates/backend/src/lib.rs, crates/domain/src/live_state.rs, crates/infrastructure/src/store/background_task.rs, crates/infrastructure/tests/background_task_store.rs, frontend/src/features/agents/CustomAgentChatView.tsx+tests) hors périmètre et préservés en worktree; aucun push)Blomios2026-09-10 15:09:37 +02:00
eb863664fafix(codex): preserve project root on structured resumeBlomios2026-09-10 10:53:43 +02:00
ee5373e57emerge(agents): ArrowUp rappelle l'historique chat même en multiligne — #304 (QA verte reconfirmée par Git: npm test ciblé CustomAgentChatView 71/71, npm run typecheck OK, git diff --check OK, npm run build OK fourni par QA; branche fix/304-arrowup-chat-multiline-history commit db312bf; correctif borné 2 fichiers frontend: CustomAgentChatView.tsx + tests — ArrowUp rappelle le message précédent quand le curseur est en fin de dernière ligne, navigation caret conservée sinon; fichiers .ideai/* et scripts/ hors périmètre; aucun push)Blomios2026-09-10 09:53:33 +02:00
db312bfde3fix(frontend): ArrowUp rappelle l'historique chat même en multiligne — #304 (cause: le handler ArrowUp remontait dans le texte dès que le draft faisait plus d'une ligne, au lieu de rappeler le message précédent; fix type terminal: ArrowUp déclenche le rappel historique uniquement quand le curseur est à la fin de la dernière ligne du textarea, sinon navigation caret normale préservée; ArrowDown symétrique en fin de draft pour redescendre dans l'historique; QA verte reconfirmée par Git: npm test -- src/features/agents/CustomAgentChatView.test.tsx 71/71, npm run typecheck OK, git diff --check OK; QA fournie: npm run build OK; fichiers .ideai/* tickets/counter/index/attachments et scripts/ hors périmètre; aucun push)Blomios2026-09-10 09:53:29 +02:00
5b0759630fchore(appimage): rebuild AppImage develop — commit dédié v0.45.0 #303 (artefact target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage, 119843320 octets, sha256 e57cc136f17d887798d09468f2858b1b025cd2386abdc4d517ccb49f464df5b5, produit depuis develop @ bd1c55d incluant le merge #303 — restauration des projets ouverts au redémarrage dans l'ordre mémorisé via open-projects.json, activation partagée watcher/MCP et notification d'échec avec retry/remove; commandes exécutées par Main: npm --prefix frontend run build OK puis depuis crates/app-tauri: mkdir -p /tmp/idea-cargo-home && CARGO_HOME=/tmp/idea-cargo-home APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=1 ../../frontend/node_modules/.bin/tauri build --bundles appimage OK; commit dédié --allow-empty: l'artefact vit sous target/ gitignoré et le bookkeeping carnet #303/index/counter reste hors périmètre en worktree — ce message est la trace durable in-repo du rebuild; convention de tag vx.y.z respectée: y incrémenté pour un rebuild committé sur develop, v0.44.0 -> v0.45.0, tag annoté posé sur ce commit; restant: validation live fermeture/relance depuis l'app installée v0.45.0 (ordre des onglets restauré, silence si tout réussit, notification échec avec Réessayer/Retirer de la reprise); fichiers tickets/296/*, tickets/299-303/*, counter/index, attachments/ et scripts/ hors périmètre; aucun push)Blomios2026-09-10 08:18:40 +02:00
bd1c55d44bmerge(projects): restaurer les projets ouverts au redémarrage dans l'ordre mémorisé — #303 (QA verte reconfirmée par Git: rustup run stable cargo fmt --all -- --check, git diff --check, cargo test -p backend open_project_restore_tests 1/1, cargo test -p web-server authorized_open_project_restore_commands_share_the_tauri_contract 1/1, cargo test -p domain 311+ suites vertes, cargo check -p application -p infrastructure -p backend -p app-tauri -p web-server OK, npm run typecheck OK, npm test ciblé 37/37, npm run build OK; branche feature/303-restore-open-projects-order commit 8df80ae; correctif borné 28 fichiers: modèle domain project_restore.rs + port OpenProjectRestoreStore, store infrastructure open-projects.json, 7 use cases application/project/restore.rs, activation centralisée BackendCore::activate_project partagée ouverture/création/restore/retry avec watcher+MCP+run dirs, DTO backend, commandes Tauri + routes HTTP aux contrats identiques, frontend gateway/adapters/useProjects/ProjectsView avec notification échec unique et détails/retry/remove; réserves hors périmètre préexistantes: layout_usecases.rs 2 échecs fixtures plugin, 1 timing infrastructure, 32 échecs npm test web shell/LS7/tickets — suivis séparément; restants: rebuild AppImage demandé (commit dédié + tag, incrément y sur develop -> v0.45.0) puis validation live fermeture/relance depuis l'app installée; fichiers tickets/296/*, tickets/299-303/*, counter/index, attachments/ et scripts/ hors périmètre; aucun push)Blomios2026-09-10 08:14:35 +02:00
8df80ae67efeat(domain,application,infrastructure,backend,app-tauri,web-server,frontend): restaurer les projets ouverts au redémarrage dans l'ordre mémorisé — #303 (état versionné OpenProjectRestoreState persisté sous <app_data_dir>/open-projects.json via port dédié OpenProjectRestoreStore, distinct du registre projects.json et sans recycler workspace.json; sept use cases cadrés: read/record opened/record closed/save order/restore/retry/remove, mutations sérialisées par mutex applicatif contre les lost updates, tombstones conservés à leur position avec lastFailure et codes stables notFound/inaccessible/store/invalid; prévalidation root par metadata+listing sans interrompre les autres restaurations; activation centralisée BackendCore::activate_project réutilisée par ouverture Tauri/HTTP, création, restore et retry: reconciliation layouts/live-state/background tasks, watcher orchestrateur + serveur MCP, réparation run dirs Claude; cinq commandes exposées Tauri et HTTP avec contrats DTO identiques: restore_open_projects, retry_open_project_restore, remove_project_from_restore, save_open_project_restore_order, read_open_project_restore_state; frontend: DTO de reprise + ProjectGateway étendu, useProjects initialise par listProjects+restoreOpenProjects et reconstruit openTabs dans l'ordre opened sans notification quand tout réussit, notification unique singulier/pluriel avec Voir les détails/Réessayer, détail par projet avec cause française et Retirer de la reprise, retry réussi réinséré à la position mémorisée, onglet conservé si closeProject échoué; saveOpenProjectRestoreOrder exposé non appelé car l'UI ne permet pas encore de réordonnancer; QA verte reconfirmée par Git: rustup run stable cargo fmt --all -- --check, git diff --check, cargo test -p backend open_project_restore_tests 1/1 couvrant absence initiale/ordre/fermeture/inaccessible/retry/notFound/remove/watcher+MCP, cargo test -p web-server authorized_open_project_restore_commands_share_the_tauri_contract 1/1, cargo test -p domain 311+ suites vertes, cargo check -p application -p infrastructure -p backend -p app-tauri -p web-server OK, npm run typecheck OK, npm test ciblé 3 fichiers/37 tests OK, npm run build OK; réserves hors périmètre documentées au carnet: application tests/layout_usecases.rs 2 échecs fixtures plugin package NotFound, infrastructure 1 timing test cancellation process, npm test large 32 échecs web shell/LS7/tickets web — préexistants sans lien avec #303; restant: rebuild AppImage demandé après validation puis validation live fermeture/relance; fichiers tickets/296/*, tickets/299-303/*, counter/index, attachments/ et scripts/ hors périmètre; aucun push)Blomios2026-09-10 08:14:28 +02:00
3911ce1f4dchore(appimage): rebuild AppImage develop — commit dédié v0.44.0 #302 (artefact target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage, 119699960 octets, sha256 d016aab3b643bab61a1ab864a4b5f5e5ab57ff1c493f12d1002918efa5c08c33, produit depuis develop @ 9e9498b incluant le merge #302 — propagation des serveurs MCP des plugins assignés dans les configs de session Claude/Codex/OpenCode pour corriger l'invisibilité des tools MCP plugin par l'agent cible; commandes exécutées par Main: npm --prefix frontend run build OK puis depuis crates/app-tauri: mkdir -p /tmp/idea-cargo-home && CARGO_HOME=/tmp/idea-cargo-home APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=1 ../../frontend/node_modules/.bin/tauri build --bundles appimage OK; commit dédié --allow-empty: l'artefact vit sous target/ gitignoré et le bookkeeping carnet #302/index/counter reste hors périmètre en worktree — ce message est la trace durable in-repo du rebuild; convention de tag vx.y.z respectée: y incrémenté pour un rebuild committé sur develop, v0.43.0 -> v0.44.0, tag annoté posé sur ce commit; restant: validation live UnitySOundTool (unity_detect_project visible et appelable par Main) depuis l'app installée; fichiers tickets/296/*, tickets/299-302/*, counter/index, attachments/ et scripts/ hors périmètre; aucun push)Blomios2026-09-09 23:41:41 +02:00
9e9498b3bemerge(plugins): les serveurs MCP des plugins assignés atteignent la session de l'agent — #302 (QA verte reconfirmée par Git: rustup run stable cargo fmt --all -- --check, git diff --check, cargo test -p application --lib 180/180, cargo test -p application --test agent_lifecycle 111/111, cargo test -p domain plugin --lib 7/7, cargo check -p backend OK, cargo check -p app-tauri OK; branche fix/302-plugin-mcp-tools-not-visible commit 78b379a; cause racine: assignments.tools PluginToolRef persistés mais jamais consommés par le launcher, seules les configs de session ne contenaient que le serveur MCP natif idea donc tool_search ne voyait pas les tools plugin; correctif borné 4 fichiers: domain/plugin.rs nom client stable idea_plugin__<enc>__<enc>, application/project_plugin.rs projection assigned_mcp_servers conditionnée actif/installé/autoStart, application/agent/lifecycle.rs matérialisation+réconciliation Claude .mcp.json / Codex config.toml / OpenCode opencode.json + racines Landlock lecture, backend/lib.rs branchement with_plugin_mcp_resolver; restants: gap OpenAI/direct tools_for_context (client JSON-RPC dédié) à traiter séparément, validation live UnitySOundTool après rebuild AppImage; fichiers tickets/296/*, tickets/299-302/*, counter/index, attachments/ et scripts/ hors périmètre; aucun push)Blomios2026-09-09 23:37:41 +02:00
78b379ac51fix(application,domain,backend): les serveurs MCP des plugins assignés atteignent la session de l'agent — #302 (cause: MutateAgentPluginTool persistait bien PluginToolRef dans ProjectPluginSettings mais le launcher ne consommait jamais assignments.tools, les configs de session ne contenaient que le serveur MCP natif idea, donc tool_search restait aveugle aux tools plugin comme unity_detect_project; fix: ProjectPluginResolver::assigned_mcp_servers projette les affectations de l'agent en specs stdio uniquement si plugin activé pour le projet/runtime-actif/installé et serveur autoStart, avec substitution ${pluginRoot}/${appDataDir}, dédup par (pluginId,serverId), et nom client stable idea_plugin__<enc>__<enc> via PluginMcpServerSpec::client_name qui encode chaque octet non alphanumérique pour éviter collisions TOML/namespace; matérialisation au lancement/restart dans .mcp.json + enabledMcpjsonServers (Claude), mcp_servers de .codex/config.toml (Codex), bloc mcp de opencode.json (OpenCode local/cloud), avec réconciliation préservant le wiring idea réel lors d'un restart interne sans McpRuntime et retirant les entrées plugin obsolètes; racines cwd/commande des serveurs assignés ajoutées en lecture au plan Landlock quand un plan existe; aucun changement de .ideai/mcp-tool-permissions.json ni pollution du catalogue natif idea_*; gap documenté: OpenAiCompatibleSession/tools_for_context ne rend pas les tools plugin appelables en direct (nécessite client JSON-RPC dédié), à traiter séparément; QA verte reconfirmée par Git: rustup run stable cargo fmt --all -- --check, git diff --check, cargo test -p application --lib 180/180 dont assigned_mcp_servers 2/2, cargo test -p application --test agent_lifecycle 111/111, cargo test -p domain plugin --lib 7/7 dont plugin_mcp_client_name_is_stable_and_collision_free_for_punctuation, cargo check -p backend OK, cargo check -p app-tauri OK; fichiers tickets/296/*, tickets/299-302/*, counter/index, attachments/ et scripts/ hors périmètre; aucun push)Blomios2026-09-09 23:37:32 +02:00
0cfbc064b6chore(appimage): rebuild AppImage develop — commit dédié v0.43.0 #301 (artefact target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage, 119523832 octets, sha256 9eb417e53395fdd864da413e9e86da5afbb7bc64653561959631964f8bd7cee0, produit depuis develop @ 941db62 — même source que v0.42.0: aucun changement de code depuis, #300 clos sans correctif core IdeA (diagnostic seul, correctif côté UnityPlugin + réinstall), rebuild à la demande utilisateur pour valider le catalogue tools MCP Unity réinstallé; commandes exécutées par Main: npm --prefix frontend run build OK puis depuis crates/app-tauri: mkdir -p /tmp/idea-cargo-home && CARGO_HOME=/tmp/idea-cargo-home APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=1 ../../frontend/node_modules/.bin/tauri build --bundles appimage OK; commit dédié --allow-empty: l'artefact vit sous target/ gitignoré et le bookkeeping carnet #301/index/counter reste hors périmètre en worktree — ce message est la trace durable in-repo du rebuild; convention de tag vx.y.z respectée: y incrémenté pour un rebuild committé sur develop, v0.42.0 -> v0.43.0, tag annoté posé sur ce commit; fichiers tickets/296/*, tickets/299/*, tickets/300/*, tickets/301/ et scripts/ hors périmètre; aucun push)Blomios2026-09-09 22:31:00 +02:00
941db62856chore(appimage): rebuild AppImage develop — commit dédié v0.42.0 #299 (artefact target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage, 119523832 octets, sha256 31e400c6ef6caefef658fe11b51b371c8571ea8011555aa20e4d272a3eb2742b, produit depuis develop @ c47bc8d incluant le merge #299 — détachement du panneau MCP en fenêtre OS; commandes exécutées par Main: npm --prefix frontend run build OK puis depuis crates/app-tauri: mkdir -p /tmp/idea-cargo-home && CARGO_HOME=/tmp/idea-cargo-home APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=1 ../../frontend/node_modules/.bin/tauri build --bundles appimage OK; commit dédié --allow-empty: l'artefact vit sous target/ gitignoré et le bookkeeping carnet #299/index/counter reste hors périmètre en worktree — ce message est la trace durable in-repo du rebuild; convention de tag vx.y.z respectée: y incrémenté pour un rebuild committé sur develop, v0.41.0 -> v0.42.0, tag annoté posé sur ce commit; restant: validation live du détachement MCP depuis l'app installée; fichiers tickets/296/*, tickets/299/ et scripts/ hors périmètre; aucun push)Blomios2026-09-09 21:45:47 +02:00
c47bc8d573merge(views): le panneau MCP se détache en fenêtre OS — #299 (QA verte reconfirmée par Git: rustup run stable cargo fmt --all -- --check, git diff --check, cargo test -p app-tauri view_window_tests 9/9 dont mcp_view_window_contract_is_stable, persisted_identity_accepts_mcp_view_label 1/1, npm test 22/22 sur ViewWindow/ProjectsView.detach/viewPlacement, npm run build tsc+vite OK; branche fix/299-mcp-panel-detach-window commit e4622cd; cause racine: enum Rust ViewPanel sans variante Mcp donc open_view_window rejetait INVALID silencieusement; correctif borné 6 fichiers: variante ViewPanel::Mcp + contrats label view-mcp/url/title/identité persistée, alerte explicite avec Réessayer sur échec de détachement dans ProjectsView; restants: rebuild AppImage + validation live du détachement MCP depuis l'app installée; fichiers tickets/296/*, tickets/299/ et scripts/ hors périmètre; aucun push)Blomios2026-09-09 21:41:56 +02:00
e4622cd753fix(app-tauri,frontend): le panneau MCP se détache en fenêtre OS — #299 (cause: enum Rust ViewPanel sans variante Mcp, open_view_window("mcp") rejetait INVALID et detachPanel ne touchait le placement qu'en cas de succès donc aucun effet visible ni message; fix: variante ViewPanel::Mcp avec parse/as_str/title "MCP" + contrat stable label view-mcp / url index.html?panel=mcp / decodage view_panel_from_window_label, identite persistee des fenetres view-mcp acceptee a la restauration #50, et ProjectsView surface desormais un echec de detachement via alerte role=alert avec bouton Reessayer au lieu de l'echec silencieux — placement conserve tant que la fenetre OS ne s'ouvre pas; QA verte reconfirmee par Git: rustup run stable cargo fmt --all -- --check, git diff --check, cargo test -p app-tauri view_window_tests 9/9 dont mcp_view_window_contract_is_stable, persisted_identity_accepts_mcp_view_label 1/1, npm test 22/22 sur ViewWindow/ProjectsView.detach/viewPlacement, npm run build tsc+vite OK; fichiers tickets/296/*, tickets/299/, scripts/ et sync counter/index hors perimetre; aucun push)Blomios2026-09-09 21:41:41 +02:00
602abfea58chore(tickets): sync store local — clôture #298 par Main après rebuild AppImage validé (issue/carnet v4 statut closed, index à jour; tag v0.41.0 inchangé sur le commit dedie rebuild b463fef, non deplace); fichiers tickets/296/* et scripts/ toujours hors perimetre; aucun pushBlomios2026-09-09 21:07:05 +02:00
b463fef6efchore(appimage): rebuild AppImage develop — commit dedie v0.41.0 #298 (artefact target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage, 119519736 octets, sha256 8897d85bc2f5aacd0694bf4f2df9baeefc944deb9af36612f3945ca84edc18ca, produit depuis develop @ 6c204d1 incluant le merge #297 — menus Skills/MCP unifies; commandes carnet: npm --prefix frontend run build OK + tauri build --bundles appimage CARGO_HOME=/tmp/idea-cargo-home APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=1 OK; porte le bookkeeping #298: carnet avec convention de tag vx.y.z — x sur master, y sur develop, z sur branches issues de develop — index/counter; regle aussi dans .ideai/CONTEXT.md non versionne par design (.gitignore), le carnet #298 en est la trace durable in-repo; tickets/296/* et scripts/ hors perimetre; tag annote v0.41.0 pose sur ce commit; aucun push)Blomios2026-09-09 21:06:30 +02:00
6c204d12f9merge(skills,mcp): menus Skills et MCP unifies avec selection cochable #297 (QA verte reconfirmée par Git: 52 tests cibles sur 7 fichiers + npm run build tsc/vite OK; branche feature/297-skills-mcp-unified-menus commits e6ce7d6 + 2070de9 + 48420ba; restants: rebuild AppImage + validation live des panneaux Skills/MCP depuis l'app installee; saisie manuelle du nom exact retiree — serveurs plugin sans catalogue en tombstones retirables uniquement; reserves non bloquantes: 32 echecs frontend sur 6 fichiers web hors perimetre classes par QA; bookkeeping tickets/296/* et scripts/ non suivis hors perimetre; aucun push)Blomios2026-09-09 20:40:47 +02:00
48420baf84chore(tickets): sync store local — clôture #297 par Main après QA verte et commits e6ce7d6 + 2070de9 (issue/carnet v6 statut closed, index à jour); fichiers tickets/296/* et scripts/ toujours hors perimetre; aucun pushBlomios2026-09-09 20:39:36 +02:00
2070de9b88chore(tickets): sync store local — creation #297 (carnet complet cadrage UX/Architect + implementation DevFrontend + validation QA verte, index/counter) et memoire durable ticket297-skills-mcp-unified-surfaces; porte egalement le statut residuel #296 qa->closed dans l'index partage (sync post-fusion f78f009 non committee); fichiers tickets/296/* et scripts/ laisses hors perimetre; aucun pushBlomios2026-09-09 20:38:46 +02:00
e6ce7d6e74feat(skills,mcp): menus Skills et MCP unifies avec selection cochable des tools #297 (SkillsPanel devient la surface unique d'assignation cochable des skills IdeA + plugins — cible agent, recherche, groupes IdeA/Plugins, tombstones retirables, CRUD catalogue natif conserve, stores separes SkillGateway/PluginGateway; nouveau panneau MCP dedie McpPanel desktop+web — tools MCP IdeA via PermissionGateway et tools MCP plugins catalogues via PluginGateway groupes par plugin/serveur, selection cochable, fin de la saisie manuelle du nom exact, serveurs sans catalogue en tombstones retirables uniquement; retrait complet de la surface Capacites de la fiche agent et suppression d'AgentPluginCapabilities.tsx; PermissionsPanel reserve aux permissions systeme/sandbox, onglet MCP retire; raccourci Parametres > Plugins ouvre Skills avec renvois vers Skills/MCP; integration ProjectsView/ViewPanelBody/viewPlacement/WebWorkspace/webSurfaceCatalog; QA verte: tsc+vite build OK, 28+24 tests cibles OK, suite complete 1223 OK / 32 echecs sur 6 fichiers web hors perimetre classes non bloquants; scripts/ et sync tickets #296 hors perimetre; aucun push)Blomios2026-09-09 20:38:39 +02:00
f78f0093e8merge(agents,plugins): surface unifiée Capacités de l'agent — skills et tools MCP natifs + plugins #296 (QA verte reconfirmée par Git: application mcp_tool_permissions 5/5 + plugin::tests 37/37, backend ciblés + checks, app-tauri dto 33+30+2, npm test 35/35 + 65/65, npm run build, SDK npm run check; branche feature/296-unified-agent-capabilities commits e283f4a + fda1b2d + 2c3234e, SDK d93e302 mergé 436ed59 + bump pointeur; restants: rebuild AppImage + validation live attribution depuis la fiche agent, clôture statique outils dynamiques réservée #282 — saisie manuelle conservée pour serveurs sans metadata; réserves non bloquantes: suites web/frontend complètes rouges classées par QA — 7 PTY web-server série passant individuellement + too many open files parallèle, 32 échecs frontend sur 6 fichiers web non modifiés; scripts/ hors périmètre; aucun push)Blomios2026-09-09 19:52:50 +02:00
2c3234e84fchore(tickets): sync store local — #296 passage qa après QA verte (carnet complet surface unifiée Capacités agent + classification suites rouges non bloquantes; index/counter) + #295 mise à jour carnet/statut par Main; scripts/ hors périmètre; aucun pushBlomios2026-09-09 19:52:45 +02:00
fda1b2dcbcchore(sdk): pointe le submodule sur develop (post-merge feature/296-unified-agent-capabilities) — metadata statiques mcpServers[].tools #296 (QA verte: npm run check; aucun push)Blomios2026-09-09 19:52:45 +02:00
e283f4a9e4feat(agents,plugins): surface unifiée Capacités de l'agent — skills et tools MCP natifs + plugins #296 (domain: PluginMcpToolMetadata dans PluginMcpServerContribution, validation hôte alignée SDK — name requis non vide, description optionnelle non vide, doublons rejetés; application: McpToolPermissionCatalogue.vue structurée additive tools {name, description, access read|writeAction} enrichie des descriptions canoniques infrastructure orchestrator mcp tools, use case SetAgentMcpToolAllowed — toggle atomique idempotente d'un tool natif dans l'allowlist explicite d'un agent, refus unknown tool sans mutation, overrides vides retirés; backend DTO: catalogue.tools additive + SetAgentMcpToolAllowedRequestDto, wire camelCase; app-tauri + web-server: commande set_agent_mcp_tool_allowed; frontend: AgentPluginCapabilities devient la surface unifiée — skills natifs assign/unassign, tools natifs via setAgentMcpToolAllowed (catalogue structuré avec fallback legacy), skills/tools plugins avec metadata statiques mcpServers[].tools et saisie manuelle fallback pour serveurs sans catalogue, tombstones indisponibles, bannière redémarrage requis si agent actif; AgentsPanel retire l'ancienne section Skills séparée au profit de la surface unifiée; ProjectPluginsPanel recentré enable/disable avec renvoi Capacités des agents; adapters Tauri/HTTP/mock + permission.test.ts; QA verte reconfirmée par Git: application mcp_tool_permissions 5/5 + plugin::tests 37/37, backend ciblés 3/3 + checks domain/application/backend, app-tauri dto 33/33 + dto_agents 30/30 + dto_plugins 2/2, check web-server, npm test 35/35 + 65/65, npm run build; suites complètes rouges classées non bloquantes par QA: web-server parallèle too many open files + 7 PTY série passant individuellement, frontend 32 échecs sur 6 fichiers web non modifiés reproduits isolément)Blomios2026-09-09 19:52:38 +02:00
6e4d9eb47emerge(chat): le transcript s'affiche à nouveau après redémarrage automatique d'un agent — #295 (QA verte reconfirmée par Git: diff --check, fmt --all --check, app-tauri chat_bridge 34/34 + dto_chat 24/24, backend 91+7 ignored, web-server websocket_chat_attach 3/3, npm test 77/77, npm run build; branche fix/295-custom-chat-transcript-after-restart commits 1b1476d + 8482fc5; restant: rebuild AppImage + validation live post-restart depuis l'app installée; réserves non bloquantes: 7 tests backend ignored permissions socket, warnings Vite connus; scripts/ hors périmètre; aucun push)Blomios2026-09-09 18:44:15 +02:00
8482fc5bd2chore(tickets): sync store local — #295 passage qa après QA verte (carnet complet cause/fix/validations post-restart transcript, capture utilisateur UnitySoundTool attachée; index/counter) + rattrapage store #293/#294 clos (carnets docs SDK contrat MCP plugins et lancement serveurs Node; bumps pointeur IdeaSDK déjà mergés sur develop via 1935e98/b1c173f); scripts/ hors périmètre; aucun pushBlomios2026-09-09 18:44:08 +02:00
1b1476de52fix(chat): le transcript s'affiche à nouveau après redémarrage automatique d'un agent — #295 (app-tauri ChatBridge: cartes successors/owners, rebind_session déplace sink+scrolloback du logical chat vers la session de remplacement et canonical_session résout les écritures avec l'ancien id sur toutes les opérations register/scrollback/detach/send_output; backend stream: ReplayOutputBridge::rekey prépare le scrollback source devant le destination et invalide les générations pré-rekey des deux pumps; commands: agent_send binde l'owner stable (projectId,agentId) au tour humain et rebind avant le flux de continuation au handoff restart; reattach_agent_chat résout le successeur du bridge puis fallback identité stable projectId/agentId explicite ou owner bindé, renvoie sessionId effectif + conversationId, NOT_FOUND sinon; web-server chat.attach même fallback stale→live par project/agent; DTO ReattachChatDto/ReattachResultDto documentent l'id effectif post-restart; frontend: ReattachAgentChatOptions, conversationId dans ChatAttachedPayload, CustomAgentChatView réattache sur agentRestartCompleted (dédupe par restartId, scrollback appliqué, tours restart préservés), retry identité stable sur NOT_FOUND dans openOrAttach avant fallback launch frais, publication sessionId effectif + conversationId, état vide «Conversation liée» quand une conversation/run/workstate lié existe; QA verte reconfirmée par Git: git diff --check, cargo fmt --all --check, app-tauri chat_bridge 34/34 dont 3 nouveaux restart_rebind + dto_chat 24/24, cargo check -p app-tauri, backend 91+7 ignored permissions socket, web-server websocket_chat_attach 3/3, npm test 77/77 CustomAgentChatView+agentGateway, npm run build; réserves non bloquantes: warnings Vite esbuild/oxc et chunk >500kB connus)Blomios2026-09-09 18:44:01 +02:00
b1c173f7d0chore(sdk): pointe le submodule sur develop (post-merge feature/294-node-mcp-launch-docs) — doc lancement serveurs MCP JS packagés #294 (pas de ${node}, command relatif résolu sous pluginRoot donc command:"node" invalide sans node packagé, allowAbsoluteCommand pour dépendance hôte absolue explicite; QA verte reconfirmée par Git: npm run check; vérifié contre hôte application/plugin/mod.rs; aucun push)Blomios2026-09-09 16:24:27 +02:00
1935e98e09chore(sdk): pointe le submodule sur develop (post-merge feature/293-mcp-tools-exposure-docs) — doc contrat tools MCP plugins #293 (contributes.mcpServers seul canal, pas de registerMcpTool dans activate; QA verte reconfirmée par Git: npm run check; aucun push)Blomios2026-09-09 16:02:23 +02:00
707f470088merge(frontend): les agents Git TUI Native ne bouclent plus au reattach — #292 (le replay scrollback xterm ne capture plus les réponses synthétiques ESC[1;1R/modes dans pending, donc adopt ne les réinjecte plus au PTY; CPU 100% UnitySoundTool/UnityPlugin; QA verte reconfirmée par Git: git diff --check, TerminalView.scrollback 2/2; QA fournie: 3 fichiers/27 tests, npm run build, AppImage 0.3.0 rebuild sha256 4165521e4248ec9f71af4ceb1c89d3aa54e8119a1ccf0f70d15268bdc67eaf94; branche fix/292-tui-native-git-agents-loop commits 00a3222 + 9fb87a6; restant: validation live UI sur les trois projets depuis l'AppImage installée; scripts/ hors périmètre; aucun push)Blomios2026-09-09 14:30:54 +02:00
9fb87a6b74chore(tickets): sync store local — #292 passage qa après QA verte (carnet complet cause/fix/validations, index/counter; scripts/ hors périmètre; aucun push)Blomios2026-09-09 14:30:45 +02:00
00a32220d1fix(terminals): le reattach xterm ne réinjecte plus les réponses synthétiques du replay scrollback — #292 (term.onData n'est actif qu'après le callback final du term.write(scrollback): les réponses aux requêtes historiques ESC[1;1R/modes ne peuplent plus pending ni ne sont réécrites dans le PTY par adopt, ce qui bouclait CPU 100% sur les agents Git TUI Native d'UnitySoundTool/UnityPlugin; activation de l'input aussi sur les chemins fallback reattach-échoué et terminal neuf; test de régression: zéro write PTY pendant le replay synthétique puis exactement un write pour Hello\r; QA verte: 3 fichiers/27 tests TerminalView, npm run build frontend, AppImage 0.3.0 rebuild sha256 4165521e...; réserve: repro live UI trois projets non validée depuis sandbox)Blomios2026-09-09 14:30:39 +02:00
2ec1845b43chore(tickets): sync store local — #291 clos par Main (statut qa->closed dans issue/index, carnet v6; livraison mergee via b8fbe3e; scripts/ hors perimetre; aucun push)Blomios2026-09-09 09:56:27 +02:00
b8fbe3efc3merge(frontend): la conversation survit au redemarrage agent et a l'aller-retour projet — #291 (QA verte reconfirmee par Git: ProjectsView.ls7 scenario "rehydrates the same conversation", ConversationViewer + useConversationThread 19/19, npm run build, git diff --check; branche fix/291-keep-conversation-after-restart-project-roundtrip commit 2c72205 + chore(tickets) 503f6e5; restants: rebuild AppImage + validation live restart puis aller-retour projet; reserves hors perimetre preexistantes: 3 echecs historiques ProjectsView.ls7 + 1 WebDesktopWorkspace (libelle Project context); scripts/ hors perimetre; aucun push)Blomios2026-09-09 09:55:26 +02:00
503f6e5095chore(tickets): sync store local — #291 carnet complet (cadrage UX/Architect, livraison DevFrontend, validation QA verte, section Git) + entree index/counter; #290 carnet complete sections Git + build AppImage du merge 162de27; scripts/ hors perimetre; aucun pushBlomios2026-09-09 09:55:20 +02:00
2c72205937fix(frontend): la conversation survit au redemarrage agent et a l'aller-retour projet — #291 (ProjectsView/WebWorkspace conservent le pointeur viewerConversation mais ne rendent le viewer que si sa conversation appartient au projet actif: le projet intermediaire affiche sa propre surface sans fuite, le retour au projet source remonte la vue avec la meme cle project/conversation et relit le transcript persiste; useConversationThread ne vide plus le buffer au changement de conversation cible, un contenu deja visible reste affiche pendant relecture ou echec; l'erreur de lecture devient "Impossible de recharger la conversation." avec bouton Reessayer branchant refreshTail sans retirer les tours visibles; QA verte reconfirmee par Git: ProjectsView.ls7 scenario "rehydrates the same conversation" (restart agent, switch alpha->beta->alpha, deux readPage identiques sur {projectId, conversationId}), ConversationViewer + useConversationThread 19/19, npm run build, git diff --check; reserves hors perimetre preexistantes: 3 echecs historiques ProjectsView.ls7 (helper panneau Work/open conversation) + 1 echec WebDesktopWorkspace (libelle anglais Project context); validation runtime AppImage/live restante; aucun push)Blomios2026-09-09 09:54:52 +02:00
18c1b01afbfix(backend,orchestrator,chat): l'objectif suspendu guide le premier tour post-restart — #290 regression partielle (register_suspended_turn capture la demande utilisateur exacte au point d'entrée chat agent_send/chat.send avec source diagnostique, RestartRendezvousCoordinator conserve tour/objectif/restart_attempt_id, take_continuation consommable exactement une fois et seulement par la tentative courante: suspended_restart_continuation_prompt place l'objectif utilisateur avant toute consigne generique et StructuredHumanTurnTransition::Resume porte le prompt host-provided injecte au runtime de remplacement; nettoyage du tour suspendu sur succes, echec, annulation et abandon/expiration; diagnostics projet/agent/turn_id/restart_attempt_id/source; rendez-vous inter-agents #289 inchanges; QA verte reconfirmee par Git: cargo check --workspace, backend self_restart_contract_tests 3/3, orchestrator_service restart 10/10, workstate_actions 9/9, app-tauri chat_bridge 31/31, web-server websocket_chat_send 3/3, fmt --check, diff --check; restants: rebuild AppImage + validation live reprise objectif apres restart; carnet #290 iteration regression + passage store qa inclus; scripts/ hors périmètre; aucun push)Blomios2026-09-09 09:17:36 +02:00
93a1c23a29chore(tickets): sync store local — reopen#290 régression partielle reprise sans objectif suspendu (fix d03300a valable sur Final prématuré/chat, handoff de reprise à cadrer et implémenter; scripts/ hors périmètre; aucun push)Blomios2026-09-09 08:58:02 +02:00
d03300a20ffix(backend,orchestrator,chat): tour humain agent_send survit au self-restart — #290 (le tour humain direct agent_send/ws chat.send s'enregistre au RestartRendezvousCoordinator via StructuredHumanTurnGuard: Final/Error de l'ancien provider devient transition de contrôle et non le Final logique; transition_after_provider_terminal_async attend Ready puis accept_ready acquitte le handoff et libère le scheduler, Resume => drain de la session de remplacement avec SELF_RESTART_CONTINUATION_PROMPT, seul le terminal du remplacement est transmis au chat; Failed/Cancelled surfacés explicitement avec libération Busy/FIFO; send_with_tap en erreur pendant restart actif traité comme teardown attendu (stream vide puis attente du remplacement, plus de Final prématuré ni chat bloqué); StopLiveAgent câblé with_restart_rendezvous: stop utilisateur annule le rendez-vous restart; RestartRendezvousRegistration rendu public (state/changed/accept_ready); QA verte: backend self_restart_contract_tests 3/3 dont 2 nouveaux (old terminal ignoré + handoff accepté, failure explicite + busy libéré), application orchestrator_service restart 8/8 dont registration directe du rendez-vous, workstate_actions 9/9, app-tauri chat_bridge 31/31, web-server websocket_chat_send 3/3, cargo check --workspace, fmt --check, diff --check — reconfirmés par Git avant commit; réserves hors périmètre préexistantes: 7 échecs fixture PTY web-server + 2 échecs plugin application; carnet #290 + clôture store #289 inclus; scripts/ hors périmètre; aucun push)Blomios2026-09-09 08:38:29 +02:00
321ebdaab9merge(orchestrator,agent): ask_agent survit au restart de la cible same-project et cross-project — #289 (QA verte: orchestrator_service 87/87 dont 6 tests restart, application lib 171/171, backend 89+7 ignored, cargo check -p backend, fmt --check; branche fix/289-ask-agent-during-target-restart commit d6d9891; restants: rebuild AppImage + validation live ask_agent sur cible restartée same-project et cross-project; scripts/ hors périmètre; aucun push)Blomios2026-09-08 22:53:58 +02:00
d6d989187bfix(orchestrator,agent): ask_agent survit au restart de la cible same-project et cross-project — #289 (RestartRendezvousCoordinator stable par RuntimeAgentKey (projectId, agentId) partagé entre le rendez-vous ask_structured et le scheduler AppAgentSelfRestarter: l'ask actif garde verrou de tour, ticket logique et conversation_id, abandonne le drain de l'ancienne session sans no-reply puis capture le Final de continuation de la session relancée (SELF_RESTART_CONTINUATION_PROMPT partagé, un seul tour de continuation); branche delegated du scheduler: pas de preempt/cancel_head/mark_idle locaux, ready + wait_for_handoff, échecs restart propagés explicitement et cancel en cascade sans relance de continuation; watchdog d'inactivité réarmé par l'activité de contrôle restart; corrélation cross-project (requesterProjectId, requesterAgentId, correlationId) conservée jusqu'au résultat post-restart puis supprimée; stop_agent d'une cible en restart annule le rendez-vous au lieu d'un NotFound; le scheduler standalone conserve son comportement historique sans ask actif; QA verte: orchestrator_service 87/87 dont 6 tests restart (final post-restart, nettoyage busy/workstate/registre, corrélation cross-project, failure explicite, cancel cross-project + stop same-project pendant restart), application lib 171/171 dont watchdog réarmé, backend 89+7 ignored, cargo check -p backend, fmt --check; réserves: pas d'E2E AppImage/vrai provider, 7 tests backend ignorés bind socket local; scripts/ hors périmètre; aucun push)Blomios2026-09-08 22:53:52 +02:00
db91b00699chore(tickets): sync store local — #288 clos (frontmatter carnet agent_id QA corrige en UUID par Main; section Git/AppImage ajoutee: commit 6353757 + merge local c646371 consignes, AppImage reconstruite, remplacement/relance manuels restants; aucun push)Blomios2026-09-08 22:10:23 +02:00
77169101cbfix(orchestrator,agent): rendezvous cross-project réarmé par jeton d'activité live model-agnostique — #287 (le watchdog d'inactivité du rendez-vous expirait à 600s sur un tour structured actif car seul le transcript Claude servait de signe de vie; nouveau drain_with_readiness_announcements_and_activity_outcome exposant un jeton monotone AtomicU64 incrémenté par chaque ReplyEvent non terminal du tap send_with_tap, passé au watchdog via AskWatchdogActivity pour réarmer la fenêtre quelle que soit l'adapter; la sonde transcript devient fallback externe; QA verte: orchestrator_service 81/81, rendezvous 5/5, mcp_server 40/40, backend 87+7 ignored, cargo fmt --check; scripts/ hors périmètre)Blomios2026-09-08 20:29:48 +02:00
4484a02b16chore(tickets): sync store local — création #286 + #287 (timeout rendezvous cross-project malgré activité cible, critique; fix planifié sur fix/287-cross-project-rendezvous-timeout; exclusion scripts/restart-idea-over-ssh.sh hors périmètre)Blomios2026-09-08 20:13:09 +02:00
251256573fchore(tickets): carnet #285 — rebuild AppImage post-merge consigné (merges locaux parent b681433 / SDK e3a0f46, artefact IdeA_0.3.0_amd64.AppImage produit par Main depuis develop; restants manuels: remplacement AppImage + relance + validation live ctx.pluginRoot et contact cross-project #284 — condition de clôture #284/#285; aucun push)Blomios2026-09-08 18:40:31 +02:00
270c740afcchore(tickets): sync store local — #285 rouvert puis implémenté: pluginRoot officiel activate(ctx) (branches feature/285-plugin-root-runtime-api parent+SDK, merges develop b681433/e3a0f46, QA verte multi-suites; rebuild AppImage + validation live ctx.pluginRoot restants à exécuter) + note memory #284 cross-project rattrapée (exclusion scripts/restart-idea-over-ssh.sh hors périmètre)Blomios2026-09-08 18:35:39 +02:00
8bfcb3a534fix(orchestrator,plugins): contact cross-project corrélé + découvrabilité assignation plugin par agent — #284 (backend: registre des demandes actives clé projet/agent appelant + correlationId, refus corrélation vide/dupliquée, cancel routé après correspondance exacte sans redirection vers une autre cible, appelant projeté Waiting→Done dans le live-state de son propre projet avec correlationId exposé par idea_workstate_read, gardes RAII réconcilient l'abandon du futur, tools ask/cancel WriteAction deny-by-default dont le refus indique où activer la permission; frontend: action Attribuer aux agents depuis Settings projet > Plugins ouvrant le panneau Agents flottant/ancré/détaché, section Capabilities de plugins — {agent} explicitant attribution skills et tools MCP des plugins activés; QA verte: orchestrator_service 79/79, mcp_server 40/40, domain live_state 15/15, correlated_update_is_preserved_in_the_lean_projection 1/1, frontend ProjectPluginSettings 3 tests, npm run build frontend, cargo fmt --check, git diff --check; AppImage IdeA_0.3.0_amd64.AppImage rebuildée workflow build-appimage, validation live cross-project restant après remplacement/relance manuels; réserves: registre corrélation en mémoire non persisté, surface web unsupported, catalogue dynamique tools MCP = réserve #282)Blomios2026-09-08 17:35:04 +02:00
df5728a50achore(tickets): sync store local — #283 docs SDK assignation skills plugin aux agents (bump pointeur IdeaSDK 7db819c sur develop via feature/283-plugin-skill-assignment-docs, QA verte: npm run build + liens docs; note memory #282 project-plugin-skills-multi-harness-contract rattrapée; exclusion scripts/restart-idea-over-ssh.sh hors périmètre)Blomios2026-09-08 16:34:33 +02:00
e12b8f6b0emerge(layout): retrait des affichages Busy et Cancel de la cellule agent — #277 (QA verte: 25/25 tests LayoutGrid ciblés ré-exécutés avant merge; branche fix/277-agent-cell-busy-cancel)Blomios2026-09-08 12:14:36 +02:00
bf9ec9b358fix(layout): retirer les affichages Busy et Cancel de la cellule agent au lancement sur une tâche — #277 (retrait badge Busy, bouton Cancel/interruptCurrentTurn et layer z turnActions; états inbox/tâches de fond et composer busy préservés; QA verte ré-exécutée: 25/25 tests LayoutGrid cellControlsLayering/chat)Blomios2026-09-08 12:14:30 +02:00
fc3d124574feat(cli): historique de messages navigable haut/bas dans la CLI custom + contrôles de cellule visibles pendant busy — persistance localStorage du transcript custom (CustomAgentChatView), layering des contrôles sous l'overlay busy (LayoutGrid), bump pointeur IdeaSDK (docs plugin minimal + hot reload) (QA verte: 65 tests CustomAgentChatView, 25 tests LayoutGrid chat/layering, npm build frontend OK)Blomios2026-09-08 09:39:35 +02:00
154728b828merge(agents): writer unique du contexte projet global configurable par agent — #276 (QA verte: cargo fmt --check, tests cibles application/app-tauri/infrastructure/backend, cargo check backend/app-tauri, npm typecheck, 69/69 tests frontend agents/adapters; arbitrage versionnage: .ideai/CONTEXT.md ignore, mcp-tool-permissions.json de-track)Blomios2026-09-07 22:49:34 +02:00
68b96e7b55chore(tickets): sync store local — cycle #276 writer du contexte global (branche feature/276-orchestrator-context-writer, QA verte) + reliquats lots #269-#275, note memory plugin hot reload, permissions systeme agent MainBlomios2026-09-07 22:49:29 +02:00
ee6f6531eachore(gitignore): ignore le contexte global .ideai/CONTEXT.md (runtime last-writer-wins, writer unique #276 — le durable partage vit dans CLAUDE.md/memory versionnes) et de-track mcp-tool-permissions.json deja ignore mais encore suiviBlomios2026-09-07 22:49:23 +02:00