- client: search_issues (/repos/issues/search, type=issues,
assigned_by), delete_label + forget_label_cache; models: kv_store
- /search groupe par projet avec colonne Kanban; /my = issues
ouvertes assignées à l'utilisateur du jeton (get_user)
- briefing: _briefing_data (focus, âgées, milestones <= 7 j,
activité journal), page /briefing, /api/briefing, envoi ntfy
manuel + planificateur lifespan à KANBANTE_BRIEFING_TIME
(kv briefing_last_sent, pas de doublon); app/briefing.py =
format texte + envoi ntfy (en-têtes ASCII)
- MCP: POST /mcp JSON-RPC (initialize, tools/list, tools/call,
ping, notifications 202), 7 outils en lecture seule, GET /mcp
de découverte; erreurs -32601/-32700, isError pour les outils
- focus refactoré en _collect_focus_groups réutilisé par le
briefing et l'outil MCP get_focus