Commit Graph

111 Commits

Author SHA1 Message Date
380fefd37b chore(tickets): clôture #151 #156 #157 #160 — sync tickets/mémoire (QA verte) 2026-08-06 13:14:01 +02:00
fb19ee48dc chore(tickets): met à jour le timestamp index.json 2026-08-05 23:44:51 +02:00
ee35c15958 chore(tickets): journalise le correctif routing chat vs PTY #149
- Met à jour le carnet avec la preuve runtime returned cellKind=pty; expected chat
- Documente les hypothèses invalidées et la nouvelle cible de correction
- Met à jour issue.md avec le titre et le diagnostic consolidés
- Incrémente le compteur et ajoute les tickets 150-158 à l'index

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-05 23:40:03 +02:00
7071c53bb2 fix(chat): handle raw structured session NOT_FOUND errors from Tauri
Elargit isNotFound() pour reconnaitre aussi la forme brute
'not found: structured session <uuid>' que Tauri peut retourner,
en plus de la forme typée {code: 'NOT_FOUND'}.

Ajoute deux tests couvrant:
- fallback sur reattach avec erreur brute
- retry prompt sur send avec erreur brute

QA: tests passés sur cette correction.
2026-08-05 16:00:37 +02:00
62ac05a080 chore(tickets): journalise le correctif session echo #149
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-05 15:30:08 +02:00
525ea94b09 chore(tickets): journalise le recadrage #149
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-05 15:23:45 +02:00
4d8b69afca chore(tickets): recadre #149 — instrumentation ciblée CustomAgentChatView/session au lieu d'une 4e variation LayoutGrid
Consigne Architecte: le fallback custom→TUI persiste après 3 correctifs sur
LayoutGrid.tsx. Nouvelle piste non explorée: boucle d'effet sessionId dans
CustomAgentChatView.tsx (openOrAttach déclenché par son propre callback
onSessionId). Carnet mis à jour avec l'historique complet des tentatives et
la règle de traçabilité demandée par l'utilisateur.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-05 14:50:33 +02:00
0e2fc83689 chore(tickets): réouvre #149 — le fallback silencieux CLI custom persiste après retest
Retest utilisateur du 2026-08-05: la CLI custom s'ouvre ~0.5s puis retombe
sur Plain/TUI malgré le fix précédent. Statut repassé à open pour relancer
le cycle de diagnostic/correction.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-05 14:17:00 +02:00
0103a8acf6 chore(tickets): clôture #149 — QA verte sur feature/ticket149-custom-cli-silent-fallback
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-05 13:48:30 +02:00
9d18d01380 chore(tickets): ouvre le ticket #149 (fallback silencieux CLI custom → Plain)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-05 13:41:30 +02:00
ecad746c66 chore(tickets): synchronise les statuts tickets et l'état plugin android
Rattrapage de l'état runtime .ideai/ (tickets #119-#139/#147 clôturés,
compteur→149, ticket #148 clos et QA verte, métadonnées plugin android) —
séparé du code de feature avant d'ouvrir le travail sur le nouveau bug
de lancement CLI custom.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-05 13:40:44 +02:00
dcba76b871 feat(chat): livre la CLI custom de chat agent (#147) et corrige Cancel
Implémente la vue chat structurée par cellule agent (toggle TUI/CLI custom,
préférence persistée `preferred_view`, reattach live, composer + pièces
jointes) avec le socle backend AgentSession/ChatBridge (UserPrompt,
cancel_current_turn, routage interrupt_agent, commande cancel_agent_chat).

Corrige le bug bloquant relevé par QA : le bouton Cancel de
CustomAgentChatView interrompait tout le tour via closeAgentChat au lieu
de n'annuler que le tour courant via cancelAgentChat, ce qui tuait la
session contrairement au contrat produit validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-05 11:59:39 +02:00
efbd56a149 chore(tickets): sync carnets/issues #102/#141-#147 + agent glmopencode
Rebase de l'état ticket (réouverture #102, clôtures #141-146, ouverture
#147) et ajout du contexte agent glmopencode avant démarrage du cycle #147.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 23:57:30 +02:00
13bad558ba chore(tickets): synchronise carnets/statuts #142-146 (QA verte) + bump IdeaSDK
QA verte sur feature/plugin-hosted-windows : cargo (domain/application/
infrastructure/app-tauri), frontend (vitest/typecheck/build), sdk npm check.
Réserve non bloquante : pas d'e2e natif complet clic sous-menu -> fenêtre OS.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-04 00:39:57 +02:00
3ea1d58b38 chore(ideai): sync tickets #142-146 (SDK plugin windows) + contexte git + bump IdeaSDK
Enregistre le cadrage du programme fenêtres plugin-hébergées (#142 backend,
#143 frontend host + windows.open, #144 runtime React partagé, #145 docs SDK,
#146 QA) et met à jour le contexte de l'agent Git avec le modèle de branches
git-flow simplifié.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-04 00:10:00 +02:00
45617992ef feat(layout): supporte la création de layouts plugins (customPluginLayout)
Étend le flux de création de layout backend (DTO, usecases, store) et le
frontend (sélecteur, adaptateurs, LayoutTabs/LayoutGrid) pour permettre
d'ouvrir un layout déclaré par un plugin installé (ex. Android Health),
sans passer par le message bloquant "extension backend pas encore livrée".

Ticket #141 — QA vert.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-03 18:34:21 +02:00
6a86b3ad80 chore(ideai): sync tickets #43/#140 + skills index + agent context
Ticket #43 carnet reflects activationScope in the plugin manifest
example; ticket #140 closed; skills index/content refreshed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-03 14:44:12 +02:00
863d9b7277 fix(agents): unwrap read_agent_context DTO content (#140)
Le contexte projet d'un agent s'affichait "[object Object]" et se
vidait à la réouverture du panneau : read_agent_context renvoie déjà
{content} côté backend, mais les gateways front traitaient la réponse
comme une string brute. Les deux gateways (Tauri + HTTP) unwrap
maintenant .content ; type AgentContextDocument ajouté au domaine.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-03 14:35:36 +02:00
cf61060ffb chore(tickets): sync statuts/carnets #113/#119/#120/#122/#131/#132 + bump IdeaSDK ESM (#134/#139)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-03 12:44:20 +02:00
59d81851e9 chore(tickets): synchronise index/carnets tickets #131-#139 + note mémoire assets/persistance plugins
État runtime .ideai séparé du code (index, counter, carnets, note mémoire
plugin-asset-serving-and-owned-storage-contracts). Purge des tickets obsolètes
51/63/66.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-03 11:06:30 +02:00
dcc7a6f216 fix: project model and reasoning_effort into Codex CLI args, stop rewriting .codex/config.toml
- Add model_reasoning_effort field to AgentProfile (domain layer)
- Remove model parameter from codex_config_toml, stop rewriting model in TOML
- Pass model and model_reasoning_effort via Codex CLI -c overrides on every exec
- Update CodexExecSession with new_with_policy_and_overrides factory
- Cover new conversation and resume flows with tests
2026-08-02 17:19:26 +02:00
a051b5299a chore(tickets): mise à jour index et tickets SDK plugins #123-#130 2026-08-02 13:36:43 +02:00
efaeb31a38 docs(tickets): consigne le cycle #120 fix CORS + décision Git et états (#120)
- carnet.md: enregistre la livraison CORS et la décision Git du 2026-08-01
- issue.md + index.json: mise à jour version/timestamp
- plugins.test.tsx: tests d'intégration frontend liés
- Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-01 19:12:39 +02:00
add61f176d chore(tickets): consigne la rechute #120 (requalification deploiement) et enregistre #122
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-01 16:54:33 +02:00
5a30ec8b9c fix(plugins): isole les menus plugin et durcit hello-plugin SDK contre la rechute #120
Requalification Architect du 2026-08-01: le crash INTERFACE INTERROMPUE au
chargement d'un plugin (menu + item) remonte via ProjectsView -> usePluginMenus
-> MenuBar jusqu'à RootErrorBoundary, quel que soit le plugin (ancien ou
reconstruit via SDK).

- usePluginMenus isole la résolution/conversion des contributions plugin :
  toute erreur retombe sur [] au lieu de propager.
- ProjectsView sépare les menus natifs des menus enrichis par plugin et rend
  MenuBar derrière une error boundary locale (fallback menus natifs seuls).
- hello-plugin (SDK) et les tests d'installation associés durcis en cohérence.

Bookkeeping ticket #120 uniquement (issue.md, carnet.md) ; les fichiers
counter.json/index.json et le dossier tickets/122/ restent hors commit car
une collision de numérotation #122 existe entre cette base et
feature/ticket120-hello-plugin-install-path-audit (deux tickets différents
revendiquent #122) — à arbitrer avant de committer le bookkeeping global.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-01 16:23:56 +02:00
3fc15fd706 chore(memoire): consigne la récidive écran noir hello-plugin (#120)
Trois correctifs déjà mergés sur le même symptôme sans que #120 se ferme ;
note de mémoire projet pour que le prochain agent ne reparte pas d'un
patch symptomatique de plus sans avoir lu l'historique des tentatives.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-01 09:48:55 +02:00
e21db9bf40 chore(tickets): met à jour l'état runtime du ticket #119
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-01 00:27:00 +02:00
5efb026a80 chore(tickets): synchronise l'état runtime des tickets et de la mémoire
Clôture #114/#115/#116/#117, suppression #111, ouverture #119/#120/#121,
notes mémoire root-cause #113 et angle d'investigation #120.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-31 23:52:33 +02:00
5be5c5975e chore(tickets): synchronise l'état runtime des tickets et du contexte main
Met à jour l'index/compteur de tickets, les tickets #111/#113/#114 et le
contexte de Main suite au traitement du ticket #114.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-30 12:56:07 +02:00
af6b76935c fix(#108): expose les tools MCP autorisées dès le démarrage de session Codex 2026-07-29 18:19:38 +02:00
5955ea37a2 chore(tickets): synchronise l'état ticketing courant
Met à jour les carnets/issues existants et ajoute les tickets #108,
#109, #111, #112 créés durant le cycle. État runtime sans rapport
avec le lot de code #82, isolé dans son propre commit.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-29 15:57:37 +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
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
851f1f8f2c chore(gitignore): stop tracking local IdeA tickets state 2026-07-27 17:23:19 +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
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
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
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
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
455eba3f91 Fix git index: remove target/artefact .gitignore, keep runtime JSON in index 2026-07-26 14:16:45 +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
6e98fd89f7 fix(runtime): isolate agent state by project (#101) 2026-07-25 22:14:02 +02:00
ef747cd156 chore(ideai): état runtime — permissions et tâche de fond
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 12:44:10 +02:00
162e3ae641 chore(ideai): état runtime — tickets, mémoire, tâches de fond
Ticket #92 rouvert, mises à jour de carnets/tâches de fond.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 08:57:15 +02:00
98fb05447d chore(ideai): état runtime — tickets, mémoire, tâches de fond
État d'exécution accumulé (tickets créés/mis à jour hors #43, notes de
mémoire, tâche de fond) capturé au moment du commit de la feature.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-22 07:37:19 +02:00
1be5f8cd18 chore(ideai): #77 en QA, ouverture de #78 et #79
Enregistre l'état du registre de tickets : #77 entre en QA, #78 ouvre la
dette UX de langue de l'écran Settings et #79 le test flaky relevé en
cours de route.

État runtime uniquement : aucun code de feature n'est touché.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 13:27:06 +02:00
481a7e2498 chore(ideai): clôture de #74 et #68, ouverture de #75 et #76
Enregistre l'état du registre de tickets : #74 et #68 passent en closed
après la validation live de l'intégration web, #75 (ce fix) entre en QA
et #76 ouvre la dette de casse du code d'appairage côté serveur.

État runtime uniquement : aucun code de feature n'est touché.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 10:40:26 +02:00
4de25d2bce chore(ideai): état runtime du ticket #74 (passage en QA)
Enregistre le passage de #74 en statut QA (issue, carnet, index) et
l'accusé de complétion des rendez-vous headless du lot.

État runtime uniquement : aucun code de feature n'est touché.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 10:34:24 +02:00