État `.ideai/` indépendant des branches de feature, committé directement sur `develop` (précédents `2fa226e`, `56757c7`). - #65 « serveur headless idea-serve » passé en `closed` par Main : mergé dans `develop` via `fe0e53e`, vert, branche supprimée. - #71 « diagnostic d'accessibilité du serveur » ouvert, lié à #68 et #65. - Journal des tâches de fond : complétions enregistrées. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2.4 KiB
2.4 KiB
id, number, title, status, priority, sprint, links, agentRefs, createdBy, updatedBy, createdAt, updatedAt, version
| id | number | title | status | priority | sprint | links | agentRefs | createdBy | updatedBy | createdAt | updatedAt | version | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| f9f7067b-92b7-4737-ad99-4487ad8c8b13 | 65 | Serveur headless : extraire idea-serve du binaire Tauri (cœur partagé) | closed | high | 028179b1-eaf4-41e9-9c1f-7c37125117e6 |
|
|
|
1784187583229 | 1784210420516 | 7 |
Objectif : produire un binaire serveur headless (idea-serve) SANS dépendance Tauri/WebKit, bâti sur le même cœur backend que le desktop (pas de fork). Prérequis de l'image Docker serveur/client. Cadré par Architect (suite #13).
Point pivot : server.rs vit aujourd'hui dans crates/app-tauri et réutilise indirectement la présentation Tauri via crate::state::AppState, crate::dto::*, crate::events::DomainEventDto, crate::pty::PtyChunk, crate::mcp_endpoint::*, ResumeContext. Le protocole HTTP/WS lui est déjà autonome.
Plan de lots (Architect) :
- L1 — Extraire les DTO transport-neutres dans un module/crate partagé (ex.
crates/presentation-dtooubackend-api) : ErrorDto, Health*Dto, ProjectDto/ProjectListDto, ProjectWorkStateDto, BackgroundTaskDto, TerminalSessionDto, LaunchAgentRequestDto, OpenTerminalRequestDto, parseurs d'IDs, DomainEventDto. Adapter app-tauri::commands ET server.rs pour les consommer. JSON INCHANGÉ. - L2 — Extraire le serveur HTTP/WS dans
crates/web-server(lib) sans dépendance Tauri : déplacer server.rs, remplacerAppStateparBackendCore, garder strictement routes + allowlist + sécurité B8 (POST /api/pair|invoke|logout, /api/ws, static same-origin). Aucune modif frontend. - L3 — Créer le bin
idea-serve(crate bin) : parse CLI/env → config →web_server::run(config). Flags identiques àidea --serve(--listen/--app-data-dir/--web-root/--allow-remote/--public-origin/--trust-reverse-proxy). Défaut local = même app-data-dir que desktop (identifier app.idea.ide). Validation : le build/lddne tire PAS WebKitGTK. Garder éventuellementapp-tauri --serveen compat dev, mais qui appelleweb-server.
Invariants : desktop AppImage ne perd RIEN, aucun import Tauri dans le bin headless, même cœur/use cases/stores, contrat HTTP/WS inchangé. Non-régression desktop validée avant tout merge.
Dépend de #13.