chore(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 push
This commit is contained in:
@ -1,8 +1,8 @@
|
||||
---
|
||||
issueRef: "#295"
|
||||
version: 2
|
||||
version: 4
|
||||
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
updatedAt: 1788971880464
|
||||
updatedAt: 1788972545852
|
||||
---
|
||||
|
||||
## QA - 2026-09-09 - Validation post-restart chat transcript
|
||||
@ -154,3 +154,40 @@ Sortie essentielle :
|
||||
Note : Vite signale un chunk minifié > 500 kB ; avertissement existant/non bloquant pour #295.
|
||||
|
||||
Verdict QA : VERT.
|
||||
|
||||
## Git - 2026-09-09 - Intégration locale
|
||||
|
||||
Cycle Git terminé, sans push.
|
||||
|
||||
- Branche de travail : `fix/295-custom-chat-transcript-after-restart`.
|
||||
- Commit applicatif : `1b1476d` (`fix(chat)`), 14 fichiers applicatifs.
|
||||
- Commit ticket : `8482fc5` (`chore(tickets)`), carnet #295 + capture + rattrapage store #293/#294.
|
||||
- Merge local vers `develop` : `6e4d9eb` (`merge --no-ff`).
|
||||
|
||||
QA reconfirmée par Git avant commit : `git diff --check`, `cargo fmt --all --check`, app-tauri chat/dto, backend, web-server `websocket_chat_attach`, frontend tests ciblés, `npm run build`.
|
||||
|
||||
Réserves Git : aucun push; `develop` local reste en avance sur origin. `scripts/` non suivi reste hors périmètre.
|
||||
|
||||
## AppImage - 2026-09-09 - Build local
|
||||
|
||||
Workflow `build-appimage` exécuté après merge pour produire un artefact installable/testable.
|
||||
|
||||
Commandes :
|
||||
|
||||
```bash
|
||||
npm --prefix frontend run build
|
||||
cd 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
|
||||
```
|
||||
|
||||
Résultat :
|
||||
|
||||
```text
|
||||
Finished 1 bundle at:
|
||||
/home/anthony/Documents/Projects/IdeA/target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage
|
||||
```
|
||||
|
||||
Artefact : `target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage`, 114M, sha256 `b7c41857977279facef5259c3c3345b8a3430ed007e54d9374f4081e41802137`.
|
||||
|
||||
Remplacement de l'AppImage installée et relance IdeA non automatisés volontairement: cela tuerait la session d'orchestration active. Validation live du scénario UnitySoundTool à faire après installation manuelle de cet artefact.
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
id: "bc0fe5e4-8398-4c47-aeca-2c2e93a0d1d3"
|
||||
number: 295
|
||||
title: "Corriger l’affichage du transcript après redémarrage automatique d’un agent"
|
||||
status: "qa"
|
||||
status: "closed"
|
||||
priority: "high"
|
||||
sprint: null
|
||||
links: []
|
||||
@ -11,7 +11,7 @@ attachments: []
|
||||
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
createdAt: 1788969948217
|
||||
updatedAt: 1788971880464
|
||||
version: 2
|
||||
updatedAt: 1788972545852
|
||||
version: 4
|
||||
---
|
||||
Bug utilisateur observé sur UnitySoundTool: après redémarrage automatique de l'agent Main, l'agent continue réellement à travailler et les workstates changent, mais aucun message ne s'affiche après le message indiquant que l'agent a bien redémarré. Après changement de projet puis retour, l'affichage se nettoie et ne montre plus que des bandeaux/progress d'agents sollicités par Main en haut de la cellule. Contexte: le redémarrage est survenu après appel à Main UnityPlugin pour recharger un plugin modifié. Capture jointe dans la conversation utilisateur.
|
||||
195
.ideai/tickets/296/carnet.md
Normal file
195
.ideai/tickets/296/carnet.md
Normal file
@ -0,0 +1,195 @@
|
||||
---
|
||||
issueRef: "#296"
|
||||
version: 2
|
||||
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
updatedAt: 1788976061895
|
||||
---
|
||||
|
||||
## QA - 2026-09-09 - Validation unified agent capabilities
|
||||
|
||||
Branche vérifiée : `feature/296-unified-agent-capabilities`.
|
||||
|
||||
Périmètre relu :
|
||||
|
||||
- Backend/application : catalogue MCP natif structuré, mutation atomique `SetAgentMcpToolAllowed`, validation metadata plugin `mcpServers[].tools`.
|
||||
- Backend DTO/Tauri/web-server : DTO additive `catalogue.tools`, request `set_agent_mcp_tool_allowed`, wiring commande Tauri et invoke web-server.
|
||||
- SDK `sdk/IdeaSDK` : type exporté `IdeAPluginMcpToolMetadata`, validation manifest, script `test:manifest`, doc `docs/manifest.md`.
|
||||
- Frontend : `AgentPluginCapabilities` devient la surface unifiée Skills/Tools MCP natifs et plugins ; `AgentsPanel` retire l'ancienne assignation skills séparée ; `ProjectPluginsPanel` recentré sur enable/disable ; adapters Tauri/HTTP/mock pour la mutation native.
|
||||
|
||||
Diff vérifié : les 6 fichiers web en échec dans la suite complète ne sont pas modifiés par ce ticket (`git diff --name-only | rg '^(frontend/src/features/web/|frontend/src/features/projects/ProjectsView|frontend/src/features/web/tickets/)'` ne retourne rien).
|
||||
|
||||
Commandes vertes exécutées :
|
||||
|
||||
```bash
|
||||
git diff --check
|
||||
cargo fmt --all --check
|
||||
```
|
||||
|
||||
Sortie : aucune.
|
||||
|
||||
```bash
|
||||
cargo test -p application mcp_tool_permissions --lib
|
||||
cargo test -p application plugin::tests:: --lib
|
||||
```
|
||||
|
||||
Sortie essentielle :
|
||||
|
||||
```text
|
||||
test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 170 filtered out
|
||||
test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 138 filtered out
|
||||
```
|
||||
|
||||
```bash
|
||||
cargo test -p backend mcp_tool_permissions --lib
|
||||
cargo test -p backend backend_core_exposes_structured_native_mcp_catalogue_with_descriptions --lib
|
||||
cargo test -p backend dto::tests::project_mcp_tool_permissions_dto_uses_stable_camel_case_contract --lib
|
||||
cargo check -p backend
|
||||
cargo check -p application
|
||||
cargo check -p domain
|
||||
```
|
||||
|
||||
Sortie essentielle :
|
||||
|
||||
```text
|
||||
test dto::tests::project_mcp_tool_permissions_dto_uses_stable_camel_case_contract ... ok
|
||||
test backend_core_build_tests::backend_core_exposes_structured_native_mcp_catalogue_with_descriptions ... ok
|
||||
Finished `dev` profile [unoptimized + debuginfo]
|
||||
```
|
||||
|
||||
```bash
|
||||
cargo check -p app-tauri
|
||||
cargo test -p app-tauri --test dto --test dto_plugins --test dto_agents
|
||||
```
|
||||
|
||||
Sortie essentielle :
|
||||
|
||||
```text
|
||||
Finished `dev` profile [unoptimized + debuginfo]
|
||||
test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
|
||||
test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
|
||||
```
|
||||
|
||||
```bash
|
||||
cargo test -p web-server set_agent_mcp_tool_allowed --lib
|
||||
cargo check -p web-server
|
||||
```
|
||||
|
||||
Sortie essentielle :
|
||||
|
||||
```text
|
||||
running 0 tests
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 112 filtered out
|
||||
Finished `dev` profile [unoptimized + debuginfo]
|
||||
```
|
||||
|
||||
Note : aucun test web-server ne cible directement le nom `set_agent_mcp_tool_allowed`; la commande n'est donc pas probante en test, mais le routage apparaît dans la suite `web_invoke_routes_permission_commands` de la lib complète, qui passe en exécution série avant les échecs PTY hors périmètre listés plus bas.
|
||||
|
||||
```bash
|
||||
npm --prefix sdk/IdeaSDK run check
|
||||
```
|
||||
|
||||
Sortie essentielle :
|
||||
|
||||
```text
|
||||
> @idea/plugin-sdk@0.1.0 check
|
||||
> npm run test:manifest && npm run typecheck:examples && npm run package:hello-plugin
|
||||
|
||||
> @idea/plugin-sdk@0.1.0 test:manifest
|
||||
> npm run build && node scripts/check-manifest-tools.mjs
|
||||
|
||||
created /home/anthony/Documents/Projects/IdeA/sdk/IdeaSDK/examples/hello-plugin/build/hello-plugin-0.1.0.zip
|
||||
```
|
||||
|
||||
```bash
|
||||
npm test -- ProjectPluginSettings.test.tsx skills.test.tsx permission.test.ts httpInvoker.test.ts
|
||||
npm test -- agents.test.tsx plugins.test.tsx plugin.test.ts McpToolPermissionsPanel.test.tsx
|
||||
```
|
||||
|
||||
Sortie essentielle :
|
||||
|
||||
```text
|
||||
Test Files 4 passed (4)
|
||||
Tests 35 passed (35)
|
||||
|
||||
Test Files 4 passed (4)
|
||||
Tests 65 passed (65)
|
||||
```
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
npm run build:web
|
||||
```
|
||||
|
||||
Sortie essentielle :
|
||||
|
||||
```text
|
||||
✓ 515 modules transformed.
|
||||
✓ built in 2.75s
|
||||
|
||||
✓ 515 modules transformed.
|
||||
✓ built in 2.56s
|
||||
```
|
||||
|
||||
Notes : warnings Vite de configuration `esbuild`/`oxc`, warning `HTMLCanvasElement.getContext()` jsdom dans des tests, et warning chunk > 500 kB au build ; non bloquants pour #296.
|
||||
|
||||
Suites rouges exécutées et classification :
|
||||
|
||||
```bash
|
||||
cargo test -p web-server --lib
|
||||
```
|
||||
|
||||
Sortie essentielle parallèle :
|
||||
|
||||
```text
|
||||
test result: FAILED. 72 passed; 40 failed; 0 ignored; 0 measured; 0 filtered out
|
||||
premier échec: Failed building the Runtime: Os { code: 24, message: "Too many open files" }
|
||||
```
|
||||
|
||||
Classification : échec environnemental par limite de fichiers ouverts sous forte parallélisation, non bloquant pour #296. Relance série :
|
||||
|
||||
```bash
|
||||
cargo test -p web-server --lib -- --test-threads=1
|
||||
```
|
||||
|
||||
Sortie essentielle :
|
||||
|
||||
```text
|
||||
test result: FAILED. 105 passed; 7 failed; 0 ignored; 0 measured; 0 filtered out
|
||||
```
|
||||
|
||||
Les 7 échecs série sont tous des scénarios terminal/agent launch attendant `terminal.attached` et recevant `error` :
|
||||
|
||||
- `websocket_attach_terminal_replays_scrollback_in_attached_ack`
|
||||
- `websocket_close_terminal_emits_exited_status_and_releases_session`
|
||||
- `websocket_launch_agent_different_cell_is_refused_by_singleton_guard`
|
||||
- `websocket_launch_agent_emits_attached_with_assigned_conversation_id`
|
||||
- `websocket_launch_agent_reattach_replays_scrollback_without_respawn`
|
||||
- `websocket_launch_agent_same_cell_is_idempotent_singleton`
|
||||
- `websocket_open_terminal_emits_attached_with_empty_scrollback`
|
||||
|
||||
Ces 7 tests passent individuellement avec `cargo test -p web-server <test_name> --lib`. Classification : instabilité/interférence de suite web-server PTY existante, hors périmètre #296. Non bloquant pour #296.
|
||||
|
||||
```bash
|
||||
npm test
|
||||
```
|
||||
|
||||
Sortie essentielle :
|
||||
|
||||
```text
|
||||
Test Files 6 failed | 120 passed (126)
|
||||
Tests 32 failed | 1223 passed (1255)
|
||||
```
|
||||
|
||||
Classification précise des 32 échecs frontend complets : hors périmètre #296, car ils sont dans des fichiers web non modifiés par ce ticket et ne concernent pas la surface `Capacités de l'agent`, les adapters de capabilities, ni le contrat backend/SDK MCP.
|
||||
|
||||
- `frontend/src/features/projects/ProjectsView.ls7.test.tsx` : 3 échecs LS7 conversation viewer, bouton `open conversation conversation-open-me` introuvable.
|
||||
- `frontend/src/features/web/WebAgentCell.test.tsx` : 1 échec, le message mobile custom CLI contient `invalid node id` alors que le test attend son masquage.
|
||||
- `frontend/src/features/web/WebApp.test.tsx` : 3 échecs pairing routing, requête `getByText("Projets")` ambiguë car plusieurs éléments correspondent.
|
||||
- `frontend/src/features/web/WebDesktopWorkspace.test.tsx` : 1 échec, bouton `Project context` introuvable.
|
||||
- `frontend/src/features/web/WebMenus.test.tsx` : 8 échecs, attentes d'ancienne navigation/testids (`web-desktop-shell`, `Panneaux : ...`, `Surface ...`) non alignées avec l'UI rendue.
|
||||
- `frontend/src/features/web/tickets/WebTicketsSprints.test.tsx` : 16 échecs, attentes `Panneaux : ...`/navigation tickets-sprints web non alignées avec l'UI rendue.
|
||||
|
||||
Relance des 6 fichiers web seuls reproduite avec les mêmes 32 échecs (`32 failed | 24 passed`), et relance isolée de `WebAgentCell.test.tsx`, `WebMenus.test.tsx`, `ProjectsView.ls7.test.tsx` confirme que ces familles échouent indépendamment de #296. Non bloquant pour #296.
|
||||
|
||||
Verdict QA : VERT pour le périmètre #296, avec dette de tests web hors périmètre confirmée.
|
||||
17
.ideai/tickets/296/issue.md
Normal file
17
.ideai/tickets/296/issue.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
id: "f6760649-4f0f-41bf-956a-ebc6444c5597"
|
||||
number: 296
|
||||
title: "Unifier l’attribution des skills et tools MCP natifs/plugins aux agents"
|
||||
status: "qa"
|
||||
priority: "high"
|
||||
sprint: null
|
||||
links: []
|
||||
agentRefs: []
|
||||
attachments: []
|
||||
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
createdAt: 1788973181342
|
||||
updatedAt: 1788976061895
|
||||
version: 2
|
||||
---
|
||||
Demande utilisateur: pouvoir attribuer un tool MCP de plugin directement depuis l'interface, comme pour les skills, et regrouper l'attribution des skills/tools MCP provenant des plugins au même endroit que les skills et tools MCP natifs d'IdeA. Objectif UX: réduire les surfaces dispersées et rendre l'attribution des capacités agent plus instinctive.
|
||||
@ -1,3 +1,3 @@
|
||||
{
|
||||
"nextNumber": 296
|
||||
"nextNumber": 297
|
||||
}
|
||||
@ -4042,6 +4042,20 @@
|
||||
"issueRef": "#295",
|
||||
"path": "295",
|
||||
"title": "Corriger l’affichage du transcript après redémarrage automatique d’un agent",
|
||||
"status": "closed",
|
||||
"priority": "high",
|
||||
"sprint": null,
|
||||
"assignedAgentIds": [],
|
||||
"createdBy": {
|
||||
"kind": "agent",
|
||||
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
|
||||
},
|
||||
"updatedAt": 1788972545852
|
||||
},
|
||||
{
|
||||
"issueRef": "#296",
|
||||
"path": "296",
|
||||
"title": "Unifier l’attribution des skills et tools MCP natifs/plugins aux agents",
|
||||
"status": "qa",
|
||||
"priority": "high",
|
||||
"sprint": null,
|
||||
@ -4050,7 +4064,7 @@
|
||||
"kind": "agent",
|
||||
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
|
||||
},
|
||||
"updatedAt": 1788971880464
|
||||
"updatedAt": 1788976061895
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user