a94167ada0de8dabc29393c2809ef68565533629
Cause racine: PluginMcpServerSpec::client_name() encodait chaque octet non alphanumérique en _XX, produisant pour UnitySoundTool `idea_plugin__com_2eidea_2eunity_2ddeveloper_2dtools__unity_2ddeveloper_2dtools_2etools` (86 chars). Codex préfixe `mcp__` => 91 chars, limite API 64 => HTTP 400 `Invalid input.namespace string too long` sur chaque `codex exec resume` dont l'historique contenait un outil Unity, aucun agent_message, UI en fallback générique « réponse non finalisée ». - domain: client_name() borné à 59 bytes ASCII (=> 64 avec mcp__) — stem lisible (minuscules, non-alnum => '_', tronqué) + suffixe déterministe = 16 premiers hex de SHA-256(plugin_id + NUL + server_id) pour conserver la résistance aux collisions après troncature; tests Unity (59 exact), stabilité, slug ponctuation, collisions sur stems tronqués identiques - application: tests de projection TOML/JSON Codex et Claude adaptés au vrai namespace legacy encodé (86 chars) — vérifie que les tables utilisateur (mcp_servers.user_server, user-server) sont préservées pendant le retrait des tables managées périmées - infrastructure: parse_event Codex traite turn.failed/error comme ReplyEvent::Error avec le message fournisseur (fini le fallback générique muet), classification lisible MCP_NAMESPACE_TOO_LONG: pour les erreurs de longueur de namespace; tests Après déploiement: nouvelle conversation/restart requis pour les agents Codex existants — les historiques contiennent déjà le namespace invalide. Aucun push.
chore(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 push
fix(domain,application,infrastructure): borne le namespace MCP plugin à 64 chars pour Codex/OpenAI — #333 (QA verte)
feat(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)
feat(domain,application,backend,app-tauri,frontend): lot utilisateur #328 #329 #330 #331 — section plugins projet, erreurs menus plugin visibles, refresh auto des pages, droplist agents (QA verte)
feat(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)
chore(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 suivi
docs(architecture): §22.2 — persistance plugin-owned hors projet & purge à la désinstallation (#138)
feat(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)
feat(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)
The file is empty.
Description
Languages
Rust
80.5%
TypeScript
19.4%