Remove flock mode (superseded by studio)
Flock mode has been superseded by the studio multi-agent workspace manager. Changes: - Remove g3-ensembles crate entirely - Remove --project, --flock-workspace, --segments, --flock-max-turns CLI flags - Remove run_flock_mode() from autonomous.rs - Remove flock-related tests from cli_integration_test.rs - Update README.md, docs/architecture.md, analysis/memory.md - Delete docs/FLOCK_MODE.md
This commit is contained in:
@@ -11,7 +11,6 @@ g3-planner = { path = "../g3-planner" }
|
||||
g3-computer-control = { path = "../g3-computer-control" }
|
||||
g3-providers = { path = "../g3-providers" }
|
||||
clap = { workspace = true }
|
||||
g3-ensembles = { path = "../g3-ensembles" }
|
||||
tokio = { workspace = true }
|
||||
anyhow = { workspace = true }
|
||||
tracing = { workspace = true }
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//! Autonomous mode for G3 CLI - coach-player feedback loop and flock mode.
|
||||
//! Autonomous mode for G3 CLI - coach-player feedback loop.
|
||||
|
||||
use anyhow::Result;
|
||||
use sha2::{Digest, Sha256};
|
||||
@@ -694,37 +694,6 @@ fn print_panic_report(
|
||||
output.print(&"=".repeat(60));
|
||||
}
|
||||
|
||||
/// Run flock mode - parallel multi-agent development
|
||||
pub async fn run_flock_mode(
|
||||
project_dir: PathBuf,
|
||||
flock_workspace: PathBuf,
|
||||
num_segments: usize,
|
||||
max_turns: usize,
|
||||
) -> Result<()> {
|
||||
let output = SimpleOutput::new();
|
||||
|
||||
output.print("");
|
||||
output.print("🦅 G3 FLOCK MODE - Parallel Multi-Agent Development");
|
||||
output.print("");
|
||||
output.print(&format!("📁 Project: {}", project_dir.display()));
|
||||
output.print(&format!("🗂️ Workspace: {}", flock_workspace.display()));
|
||||
output.print(&format!("🔢 Segments: {}", num_segments));
|
||||
output.print(&format!("🔄 Max Turns per Segment: {}", max_turns));
|
||||
output.print("");
|
||||
|
||||
let config = g3_ensembles::FlockConfig::new(project_dir, flock_workspace, num_segments)?
|
||||
.with_max_turns(max_turns);
|
||||
|
||||
let mut flock = g3_ensembles::FlockMode::new(config)?;
|
||||
|
||||
match flock.run().await {
|
||||
Ok(_) => output.print("\n✅ Flock mode completed successfully"),
|
||||
Err(e) => output.print(&format!("\n❌ Flock mode failed: {}", e)),
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn print_final_report(
|
||||
output: &SimpleOutput,
|
||||
agent: &Agent<ConsoleUiWriter>,
|
||||
|
||||
@@ -79,22 +79,6 @@ pub struct Cli {
|
||||
#[arg(long)]
|
||||
pub safari: bool,
|
||||
|
||||
/// Enable flock mode - parallel multi-agent development
|
||||
#[arg(long, requires = "flock_workspace", requires = "segments")]
|
||||
pub project: Option<PathBuf>,
|
||||
|
||||
/// Flock workspace directory (where segment copies will be created)
|
||||
#[arg(long, requires = "project")]
|
||||
pub flock_workspace: Option<PathBuf>,
|
||||
|
||||
/// Number of segments to partition work into (for flock mode)
|
||||
#[arg(long, requires = "project")]
|
||||
pub segments: Option<usize>,
|
||||
|
||||
/// Maximum turns per segment in flock mode (default: 5)
|
||||
#[arg(long, default_value = "5")]
|
||||
pub flock_max_turns: usize,
|
||||
|
||||
/// Enable planning mode for requirements-driven development
|
||||
#[arg(long, conflicts_with_all = ["autonomous", "auto", "chat"])]
|
||||
pub planning: bool,
|
||||
|
||||
@@ -29,7 +29,7 @@ use clap::Parser;
|
||||
|
||||
use accumulative::run_accumulative_mode;
|
||||
use agent_mode::run_agent_mode;
|
||||
use autonomous::{run_autonomous, run_flock_mode};
|
||||
use autonomous::run_autonomous;
|
||||
use interactive::run_interactive;
|
||||
use project_files::{combine_project_content, read_agents_config, read_project_memory, read_project_readme};
|
||||
use simple_output::SimpleOutput;
|
||||
@@ -39,19 +39,6 @@ use utils::{initialize_logging, load_config_with_cli_overrides, setup_workspace_
|
||||
pub async fn run() -> Result<()> {
|
||||
let cli = Cli::parse();
|
||||
|
||||
// Check if flock mode is enabled
|
||||
if let (Some(project_dir), Some(flock_workspace), Some(num_segments)) =
|
||||
(&cli.project, &cli.flock_workspace, cli.segments)
|
||||
{
|
||||
return run_flock_mode(
|
||||
project_dir.clone(),
|
||||
flock_workspace.clone(),
|
||||
num_segments,
|
||||
cli.flock_max_turns,
|
||||
)
|
||||
.await;
|
||||
}
|
||||
|
||||
if cli.codebase_fast_start.is_some() {
|
||||
print!("codebase_fast_start is temporarily disabled.");
|
||||
std::process::exit(1);
|
||||
|
||||
@@ -173,38 +173,6 @@ fn test_planning_conflicts_with_autonomous() {
|
||||
);
|
||||
}
|
||||
|
||||
// =============================================================================
|
||||
// Test: Flock mode requires all related flags
|
||||
// =============================================================================
|
||||
|
||||
#[test]
|
||||
fn test_flock_mode_requires_workspace() {
|
||||
let output = Command::new(get_g3_binary())
|
||||
.args(["--project", "/tmp/test"])
|
||||
.output()
|
||||
.expect("Failed to execute g3 with incomplete flock args");
|
||||
|
||||
// Should fail because --flock-workspace and --segments are required
|
||||
assert!(
|
||||
!output.status.success(),
|
||||
"--project without --flock-workspace should fail"
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_flock_mode_requires_segments() {
|
||||
let output = Command::new(get_g3_binary())
|
||||
.args(["--project", "/tmp/test", "--flock-workspace", "/tmp/ws"])
|
||||
.output()
|
||||
.expect("Failed to execute g3 with incomplete flock args");
|
||||
|
||||
// Should fail because --segments is required
|
||||
assert!(
|
||||
!output.status.success(),
|
||||
"--project without --segments should fail"
|
||||
);
|
||||
}
|
||||
|
||||
// =============================================================================
|
||||
// Test: Workspace directory option is accepted
|
||||
// =============================================================================
|
||||
|
||||
Reference in New Issue
Block a user