Branche le SessionLimitService dans l'application Tauri et expose la surface de reprise/annulation au front. - application/agent/lifecycle.rs : LaunchAgentOutput.profile exposé (None sur réattache/idempotent, Some sur lancement effectif). - application/terminal/registry.rs : StructuredSessions::meta_for_session() (lookup agent/node par SessionId pour le tap niveau 1). - app-tauri/state.rs : ResumeContext(s), AppAgentResumer (impl du port AgentResumer au-dessus de LaunchAgent), instanciation + câblage du SessionLimitService (TokioScheduler + drain des réveils) dans AppState::build. - app-tauri/commands.rs : taps niveau 1 (agent_send) et niveau 2 (launch_agent, parser regex confiné), alimentation de resume_contexts, commande cancel_resume. - app-tauri/lib.rs : enregistrement de cancel_resume dans le handler. - app-tauri/Cargo.toml : dépendance async-trait. Tests : session_limit_wiring.rs (2 tests de composition) + meta_for_session dans structured_registry_d1.rs ; fixtures dto_agents/dto_chat ajustées (profile: None). Tout vert. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
52 lines
1.8 KiB
TOML
52 lines
1.8 KiB
TOML
[package]
|
|
name = "app-tauri"
|
|
version = "0.1.0"
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
rust-version.workspace = true
|
|
description = "IdeA — Tauri v2 shell: composition root (DI), IPC commands/events, PTY↔Channel bridge."
|
|
|
|
# The library carries all the wiring so it is unit-testable; the binary is a
|
|
# thin entry point.
|
|
[lib]
|
|
name = "app_tauri_lib"
|
|
crate-type = ["lib", "cdylib", "staticlib"]
|
|
|
|
[[bin]]
|
|
name = "app-tauri"
|
|
path = "src/main.rs"
|
|
|
|
[build-dependencies]
|
|
tauri-build = { workspace = true }
|
|
|
|
[dependencies]
|
|
domain = { workspace = true }
|
|
application = { workspace = true }
|
|
infrastructure = { workspace = true }
|
|
tauri = { workspace = true }
|
|
tauri-plugin-dialog = { workspace = true }
|
|
# `io-std` (on top of the workspace features) gives the headless `mcp-server`
|
|
# bridge access to `tokio::io::{stdin,stdout}` without widening tokio elsewhere.
|
|
tokio = { workspace = true, features = ["io-std", "rt"] }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
uuid = { workspace = true }
|
|
# `AppAgentResumer` implements the application's async `AgentResumer` port (LS7).
|
|
async-trait = { workspace = true }
|
|
# Cross-OS local IPC for the MCP loopback transport (M5a): Unix domain socket
|
|
# (Linux/macOS) + Windows named pipe behind one async API, no network port. Pulled
|
|
# in only here (the transport is an app-tauri/infra concern); its `tokio` feature
|
|
# keeps us off tokio's `net` feature workspace-wide.
|
|
interprocess = { version = "2.4", features = ["tokio"] }
|
|
|
|
[features]
|
|
# Passthrough toggles to enable the real embedders in an IDE build. OFF by default
|
|
# (founding posture: `none` ⇒ naïve recall, zero dependency).
|
|
vector-http = ["infrastructure/vector-http"]
|
|
vector-onnx = ["infrastructure/vector-onnx"]
|
|
|
|
[dev-dependencies]
|
|
uuid = { workspace = true }
|
|
async-trait = { workspace = true }
|