Lot A backend/Tauri implémenté sur `feature/conversation-ux-live-state`, sans commit.

Fichiers modifiés pour le lot :
- `crates/application/src/workstate/mod.rs` (nouveau) : read-model `GetProjectWorkState`, `ProjectWorkState`, `AgentWorkState`, `LiveWorkSession`.
- `crates/application/src/lib.rs` : exports du module workstate et des snapshots live typés.
- `crates/application/src/terminal/mod.rs` : exports `LiveSessionKind` / `LiveSessionSnapshot`.
- `crates/application/src/terminal/registry.rs` : ajout de `LiveSessionKind`, `LiveSessionSnapshot`, `LiveSessions::live_agent_snapshots()` ; `live_agents()` existant inchangé.
- `crates/application/tests/workstate.rs` (nouveau) : tests du read-model.
- `crates/app-tauri/src/state.rs` : construction/câblage du use case dans `AppState` avec `AgentContextStore`, `LiveSessions`, `InputMediator`.
- `crates/app-tauri/src/commands.rs` : commande `get_project_work_state(projectId)`.
- `crates/app-tauri/src/dto.rs` : DTO `ProjectWorkStateDto`, `AgentWorkStateDto`, `LiveWorkSessionDto`, `LiveWorkSessionKindDto` ; `busy` réutilise `domain::AgentBusyState` (`state: idle|busy`, `sinceMs`).
- `crates/app-tauri/src/lib.rs` : enregistrement Tauri command.
- `crates/app-tauri/tests/dto_agents.rs` : test DTO camelCase/live/busy.

Comportement :
- Read-only, aucune nouvelle persistance durable.
- Aucune lecture log/handoff, aucune FIFO complète exposée.
- Agents listés dans l’ordre du manifeste.
- Agents live absents du manifeste ignorés.
- Live session expose `nodeId`, `sessionId`, `kind: pty|structured`.

Commandes exécutées côté DevBackend :
- `cargo fmt -p application -p app-tauri` : OK.
- `cargo test -p application workstate` : OK, 5 tests workstate passés.
- `cargo check -p app-tauri` : OK.
- `cargo test -p app-tauri --test dto_agents project_work_state -- --nocapture` : OK, 1 passed.
- `cargo test -p app-tauri --test dto_agents` : OK, 19 passed.
- `cargo test -p app-tauri --test list_live_agents_r0b` : OK, 5 passed.
- `cargo test -p app-tauri --lib -- --skip state::mcp_e2e_loopback_tests --skip state::bind_endpoint_d1_tests --skip mcp_bridge::tests::end_to_end_over_real_loopback` : OK, 39 passed, 8 filtered out.
- `cargo test -p application` : OK, application complète verte. Warning existant/non lié : `CapturingFs::writes` unused dans `crates/application/tests/orchestrator_service.rs:1642`.

Validation QA : vert. QA a relu le périmètre, confirmé read-only / ordre manifeste / absence log-handoff-persistance, et réexécuté les commandes clés avec succès. Même réserve non bloquante que précédemment : les 8 tests app-tauri filtrés exigent un vrai socket Unix loopback, bloqué dans ce sandbox par `UnixListener::bind` `PermissionDenied`; à exécuter hors sandbox permissif socket Unix.

Risques / notes :
- `kind` est inclus car l’agrégateur sait distinguer PTY vs structured via les deux registres.
- Le read-model retourne un instantané live/busy au moment de l’appel ; pas de garantie transactionnelle entre registre live et busy state, ce qui est cohérent avec un read-model live minimal.
- `git status` montre aussi des fichiers `.ideai/*` runtime modifiés par l’orchestration/conversation ; je ne les ai pas édités pour ce lot et ils ne font pas partie du livrable.