Commit Graph

482 Commits

Author SHA1 Message Date
f0ba559885 fix(frontend): expose idea_ask_agents et renforce le fit terminal au remount projet
Panneau Permissions: idea_ask_agents est câblé côté backend MCP mais absent
du groupe « Délégation agents » du panneau — ajout de l'outil et de son
label, catalogue mock MCP aligné en conséquence.

Terminaux: ProjectsView remonte LayoutGrid via une key au changement de
projet, donc refitEpoch n'aide pas ; le montage de TerminalView ne
maintenait pas assez longtemps le fit tant que la nouvelle cellule ne
s'était pas stabilisée. Le chemin de montage garde désormais une traîne de
refits plus longue (MOUNT_SETTLE_REFIT_FRAMES) avant de laisser la main au
ResizeObserver.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-28 22:51:48 +02:00
b4f4c8eb71 merge feature/floatingwindow-zindex-dropdown-fix dans develop (fix z-index TicketViewportSelect)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-28 22:37:46 +02:00
ec305657ad fix(tickets): TicketViewportSelect passe au-dessus des FloatingWindow
Le popup viewport-positionné utilisait zIndex.menuDropdown (40), inférieur à
zIndex.floatingWindow (50) : il s'affichait derrière une fenêtre flottante
ouverte. Ajout de zIndex.transientPopup (65), au-dessus de floatingWindow et
floatingWindowNested, pour tout popup transitoire porté par document.body
depuis une FloatingWindow.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-28 22:37:36 +02:00
6fa41013ed bulk operations test coverage
- tickets_missing_carnet: backend test coverage
- ticket.test.ts: frontend adapter test coverage
2026-07-28 20:41:46 +02:00
bd4f76ae74 bulk operations fixes
- Frontend: implémente bulkDelete, bulkArchive, bulkRestore
- Backend: adapts ticket DTOs pour bulk operations
- Infrastructure: MCP server pour gestion bulk tickets
- Tests: coverage frontend + backend
2026-07-28 20:38:07 +02:00
73c6081ab8 restore .ideai/tickets/ + corrig .gitignore
- Enlève les ignore rules .ideai/tickets/ dans .gitignore
- Permet le suivi durable du store tickets futur
- Ne touche pas sdk/ (reste untracked)
2026-07-28 20:19:55 +02:00
e1b1c1e103 restore .ideai/tickets/ store versionnέ + corrige .gitignore
- Restaure .ideai/tickets/ depuis 851f1f8^ (167 tickets + index.json + counter.json)
- Enlève les ignore rules .ideai/tickets/ dans .gitignore (ligne 51 et 75)
- Permet le suivi durable du store tickets futur
- Ne touche pas sdk/ (reste untracked)
2026-07-28 20:18:00 +02:00
f0a63de042 fix(#100 #101): corrige plugin_review_package et opencode_model_server_block
- #100: plugin_review_package prend ReviewPluginPackageDto valide (source_kind)
- #101: opencode_model_server_block débloque modèle quand pas utilisé
- Tests verts: plugin.test.ts + model_server.rs
2026-07-28 20:02:30 +02:00
9b150983bb fix(ticket #7): ajoute le bouton Annuler aux notifications de fin de background task 2026-07-28 19:34:52 +02:00
f4ae5df17c fix(BulkDeleteIssues): implémente retour BatchIssueResult sans issue (#7) 2026-07-28 19:30:16 +02:00
bcd489aac8 merge feature/4-cellgrid-refresh-on-layout-change dans develop (LayoutGrid refitEpoch) 2026-07-28 19:15:12 +02:00
5d6a295715 feat(layout): refitEpoch test + implementation LayoutGrid 2026-07-28 19:09:07 +02:00
50219df4e5 merge feature/3-tickets-dropdown-viewport-clip dans develop
Ticket #3 vert (995/995 suite complète, tsc propre) : les dropdowns de la
vue Tickets ne sont plus rognées en bas de fenêtre.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-28 18:29:47 +02:00
05402c7544 fix(tickets): dropdowns ne sortent plus du viewport en bas d'écran (#3)
Remplace les <select> natifs de la vue Tickets (statut, priorité, tri,
lien, agent assigné/assistant, sprint) par TicketViewportSelect, qui
repositionne intelligemment son overlay selon l'espace disponible dans
la fenêtre au lieu de toujours ouvrir vers le bas.

QA vert : 80/80 (frontend/src/features/tickets), tsc --noEmit propre.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-28 18:29:17 +02:00
6da52c6a02 wip(tickets): backend createdBy (#5) + bulk status/priority/delete (#6)
Ajoute created_by sur IssueIndexEntry/TicketSummaryDto + filtre createdBy
(#5), et les use cases BulkUpdateIssueStatus/Priority + BulkDeleteIssues
avec les DTO/outils MCP idea_ticket_bulk_* associés (#6).

NON VERT : BulkDeleteIssues::execute référence BatchIssueResult::deleted(),
constructeur pas encore ajouté à BatchIssueResult (seuls ok/err existent) ->
`cargo check` échoue (E0599 dans application::issues::mod). Reste à
DevBackend avant toute QA/merge.

Branché sur feature/sdk-integration (dépend du commit #2 dans
orchestrator/mcp/server.rs et tools.rs) ; à rebaser sur develop une fois
feature/sdk-integration mergé.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-28 18:28:39 +02:00
1ef1fd9e40 feat(mcp): ajoute l'outil idea_ask_agents pour la délégation parallèle (#2)
Wrapper MCP backend pur : dispatche N requêtes idea_ask_agent en parallèle
et retourne un résultat par requête, dans l'ordre, en rejetant les cibles
dupliquées avant dispatch. Aucun changement de domaine/application — pose
la primitive nécessaire au SDK (chantier feature/sdk-integration).

QA vert (ticket #2).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-28 16:56:22 +02:00
454f8ad57d merge feature/117-opencode-headless-recovery dans develop
Feature terminée et verte (Architect/DevBackend/DevFrontend/QA au vert) :
durcissement de la reprise headless inter-projets et persistance des
profils Opencode.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-28 14:13:04 +02:00
045e0984cc chantier: durcissement reprise headless inter-projets + persistance profils Opencode
- Implémentation reprise de session Opencode headless (conversational_recovery)
- Persistance des profils IA Opencode dans .ideai/memory avec JSON Schema
- Gestion des permissions MCP pour agents externes
- Tests QA verts : structured_launch_d3, conversation_log, tickets_missing_carnet, agents, ProfilesSettings
2026-07-28 12:23:34 +02:00
78f7c8fe2d merge develop into feature/85-fix-flaky-setcellagent-test 2026-07-27 17:24:40 +02:00
851f1f8f2c chore(gitignore): stop tracking local IdeA tickets state 2026-07-27 17:23:19 +02:00
41aa2789a7 merge feature/fix-opencode-final-capture dans develop 2026-07-27 17:15:51 +02:00
f4895208d7 merge feature/91-rendezvous-toast-label dans develop
Ticket #91 — libellé explicite « Appel X -> Y terminé/en échec/annulé »
pour les notifications de fin de background task issues d'un rendez-vous
inter-agent. Frontend pur, tests annoncés verts.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-27 16:49:26 +02:00
88a5256a1e feat(rendezvous): libellé explicite des notifications de fin de background task (#91)
Le toast de fin de tâche de fond liée à un rendez-vous inter-agent passe
de « Main -> DevBackend completed » à « Appel Main -> DevBackend terminé »
(idem en échec / annulé), pour nommer explicitement l'appel plutôt qu'un
état brut. Fallback générique conservé quand requester/target sont absents.

Validations obtenues avant commit : tests frontend annoncés verts pour #91.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-27 16:49:22 +02:00
efbd084b7d merge feature/58-background-task-live-subscriber dans develop
Ticket #58 — rendu live des tâches de fond (subscriber UI + canal IPC
attachable au task output). Validations vertes : tests infrastructure,
cargo check backend/app-tauri, vitest workstate, typecheck, QA.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-27 16:48:33 +02:00
b734c237d3 feat(background-task): rendu live des tâches de fond — subscriber UI + canal IPC (#58)
Câble un canal attachable au flux de sortie d'une tâche de fond (runner
infrastructure + commande app-tauri + port/adaptateurs frontend) et le
panneau ProjectWorkStatePanel s'y abonne pour un rendu live au lieu d'un
état figé au dernier snapshot.

Validations obtenues avant commit :
- cargo test -p infrastructure --test background_task_runner : vert
- cargo check -p backend -p app-tauri : vert
- npx vitest run src/features/workstate/workstate.test.tsx : vert
- npm run typecheck : vert
- verdict QA #58 : vert

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-27 16:48:29 +02:00
e1d8f5885f fix(opencode): capture Final trop stricte et ordre parse/status
Un tour OpenCode sans texte mais terminé proprement (step_finish, ex.
tool-call-only) échouait en Decode alors qu'aucune erreur réelle ne
s'était produite : parse_jsonl_turn émet désormais un Final vide dans
ce cas au lieu d'un hard-fail, réservé aux flux vraiment vides,
ignorés ou seulement démarrés.

send() inversait aussi l'ordre de décision : un statut de sortie non
nul faisait échouer la délégation même quand stdout contenait un
événement terminal structuré exploitable (Final/Error). Le parse est
maintenant tenté avant l'évaluation du statut, et un événement
terminal structuré prévaut sur un exit code non nul.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-27 14:30:03 +02:00
6f532d7434 merge feature/ticket96-effective-permissions-assistants-ticket dans develop 2026-07-27 14:18:59 +02:00
ce375c3e70 merge feature/67-correct-repository-branch dans develop 2026-07-27 14:18:57 +02:00
0b83b5bbd2 feat(lock): implémentation lock inter-process app-data-dir V1 — acquisition non-bloquante avec RAII 2026-07-27 13:57:58 +02:00
e74a9703f9 feat: livrable ticket #96 — effective permissions pour assistants de ticket 2026-07-27 13:37:08 +02:00
865f90eafd merge feature/multi-profiles-codex-clarification-toast-notices dans develop
Résout le conflit d'imports/helpers de tests dans
crates/application/tests/model_server.rs par union des deux côtés
(imports application/domain + helpers aid/nid/sess).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-27 13:06:35 +02:00
d7b6038f23 merge feature/ticket107-multi-project-isolation dans develop
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-27 13:04:51 +02:00
cf074a7d61 fix(runtime): isolation d'usage multi-projet #107
Implémentation du garde ModelServerProjectUseGuard pour séparer
les retours des agents entre projets concurrents.

- Garde RAII par LocalModelServerId partagé entre projets
- Refus inter-projets concurrent via model_server_in_use
- Partage intra-projet conservé avec refcount
- Libération automatique à la fermeture/erreur de session

Tests de validation: rejet projet distinct, compteur refs, libération retrait
2026-07-27 09:47:23 +02:00
038e90ecec feat: livrable ticket #91 — notification fin BackgroundTask enrichie
- Backend: enrichissement HeadlessRendezvous avec requester/target/conversationId
- Frontend: toast 'Requester -> Target completed/...' explicite
- Clic ouvrant viewer de conversation pour visualiser l'échange
2026-07-27 09:05:34 +02:00
02603441c1 fix: livrable tickets #70 #100 #102 — UX surface scoping
- #70: implémentation suppression modèles locaux téléchargés
- #100: correction scroll OpenCode
- #102: correction fit TUI après switch/layout
- memory note scoping UX
2026-07-26 19:42:06 +02:00
4321d048ac fix: correction de régression UI wizard first-run 2026-07-26 16:52:23 +02:00
ca70ec75f4 feat: catalogue dynamique modèles Codex/Claude avec compatibilité CLI locale
Ajout du catalogue enrichi pour les modèles Codex et Claude avec:
- Compatibilité estimée avec la version CLI locale détectée
- Source d'origine (catalogue/Provider) pour chaque entrée
- Support du catalogue Provider API externe
- Matrice de compatibilité embarquée dans l'application

Frontend:
- UI de configuration des modèles avec affichage des états de compatibilité
- Suggestions dynamiques avec badges de compatibilité
- Messages d'aide contextuels (compatible/unknown/likelyTooRecent)
- Alertes non-bloquantes pour les modèles trop récents
- Gestion des échecs de catalogue avec saisie manuelle conservée

Backend:
- Ports CliVersionReader, ProviderModelCatalogue, CompatibilityMatrixSource
- Implémentations: ProcessCliVersionReader, HttpProviderModelCatalogue, EmbeddedCompatibilityMatrix
- Enrichissement des DTOs avec compatibility, cli_version, warnings
- Tests unitaires complets pour le resolver de catalogue
2026-07-26 16:09:10 +02:00
e7bf1d3666 frontend: suppress network banner params unneeded after runtime lock refactor 2026-07-26 15:12:14 +02:00
e5bafc30e7 Merge branch 'main' into feature/multi-profiles-codex-claude-model-catalogue 2026-07-26 14:57:31 +02:00
ea7ea71230 feat: finalise multi-profil Codex/Claude avec catalogue de modèles
- Backend : clone_profile_from_seed généralisé (non OpenCode)
- Backend : catalogue static Claude/Codex (3 modèles chacun, 1 recommandé)
- Backend : commandes Tauri list_claude_models/list_codex_models
- Frontend : ProfilesSettings refonte en onglets Codex/Claude + create/duplicate/edit/delete
- Frontend : ModelSelect searchable partagé + fallback saisie manuelle
- Frontend : assignation agent nom · modèle
- Tests QA : 4 profils modèles distincts (2 Claude, 2 Codex) assignés à agents
2026-07-26 14:56:26 +02:00
c807a70fea Remove all target/ files from index (should be .gitignore'd) 2026-07-26 14:22:52 +02:00
d741035c47 Remove tracked files from target/release/bundle/appimage after AppImage rebuild
- Remove app-tauri binary (should be in source, not target)
2026-07-26 14:21:17 +02:00
455eba3f91 Fix git index: remove target/artefact .gitignore, keep runtime JSON in index 2026-07-26 14:16:45 +02:00
13ff1a4f51 ignore .ideai/background-tasks/ (runtime tasks sensibles, issue b8-arbitration-outcomes) 2026-07-26 14:15:26 +02:00
480cdc41ac ignore .ideai/background-tasks/ (runtime tasks sensibles) 2026-07-26 14:14:50 +02:00
0821739924 feat: finalise ticket99 - implémentation agent model configuration v2
- agent/lifecycle.rs: lifecycle management per profile
- agent/provider_catalogue.rs: provider registration with model support
- agent/usecases.rs: usecases for profile-based agent invocation
- agent/mod.rs: expose agent capabilities via AgentManager
- backend/dto.rs: AgentModelConfig, AgentProviderConfig DTOs
- domain/profile.rs: extend Profile avec agent capabilities
- domain/permission.rs: permission checks pour agent access
- infrastructure/assistant/mod.rs: agent integration
- infrastructure/permission/{claude,codex}.rs: permission handlers
- web-server/lib.rs: agent endpoints
- commands.rs: agent commands
- frontend/adapters/{http,profile,mock,domain}.ts: adapters
- frontend/first-run/FirstRunWizard.{test.tsx,tsx}: first-run flow
2026-07-26 13:38:18 +02:00
b5d7e16501 feat: correction provider/API key - removal Codex/Claude provider configs 2026-07-26 13:23:04 +02:00
dae07d35bb feat: implémentation et QA ticket99 - agent model configuration v2
- backend A-C: VO Codex/Claude, renderers/projecteurs modèle, SecretRef/env, catalogues/use cases/Tauri commands
- frontend D: profils Codex/Claude provider->model->secret, validations, conservation SecretRef
- fix: app-tauri embedded_server isolant IDEA_WEB_ROOT

QA: backend 57/57 tests, frontend 74/74 tests OK
2026-07-26 11:56:25 +02:00
13fb538880 fix(permissions): validate network access flow 2026-07-26 10:52:46 +02:00
3047dc9195 feat(permissions): expose network permission state (#103) 2026-07-25 23:06:50 +02:00