diff --git a/bin/fxt/Cargo.toml b/bin/fxt/Cargo.toml index 96edbfcd3..9256d66cd 100644 --- a/bin/fxt/Cargo.toml +++ b/bin/fxt/Cargo.toml @@ -28,7 +28,7 @@ prost.workspace = true # Required for generated protobuf code # Core async and serialization (essential) tokio.workspace = true -# tokio-stream.workspace = true # REMOVED: unused in TLI source +tokio-stream.workspace = true serde.workspace = true serde_json.workspace = true # futures.workspace = true # REMOVED: unused in TLI - only futures-util is used @@ -75,6 +75,10 @@ comfy-table = "7.1" # Rich ASCII tables indicatif = "0.17" # Progress bars (for future use) console = "0.15" # Terminal utilities +# Terminal UI dashboard +ratatui = "0.29" +crossterm = { version = "0.28", features = ["event-stream"] } + # Configuration file support toml = "0.8" # TOML parsing for config files dirs = "5.0" # Cross-platform directory access diff --git a/bin/fxt/proto/ml_training.proto b/bin/fxt/proto/ml_training.proto index 7299d1e3d..3e873e63d 100644 --- a/bin/fxt/proto/ml_training.proto +++ b/bin/fxt/proto/ml_training.proto @@ -45,6 +45,10 @@ service MLTrainingService { // Stream real-time tuning progress updates (trial completion events) rpc StreamTuningProgress(StreamProgressRequest) returns (stream ProgressUpdate); + + // Model promotion management + rpc ApproveModel(ApproveModelRequest) returns (ApproveModelResponse); + rpc RejectModel(RejectModelRequest) returns (RejectModelResponse); } // --- Core Request/Response Messages --- @@ -426,4 +430,25 @@ message ResourceUsage { float gpu_usage_percent = 3; float gpu_memory_usage_gb = 4; uint32 active_workers = 5; +} + +// Model promotion messages +message ApproveModelRequest { + string model_id = 1; + string promoted_to = 2; // e.g. "production", "staging", "canary" +} + +message ApproveModelResponse { + bool success = 1; + string message = 2; +} + +message RejectModelRequest { + string model_id = 1; + string reason = 2; +} + +message RejectModelResponse { + bool success = 1; + string message = 2; } \ No newline at end of file