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:
Dhanji R. Prasanna
2026-01-13 15:01:12 +05:30
parent 82c0165765
commit 9a3b03a41f
18 changed files with 9 additions and 3093 deletions

View File

@@ -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 }

View File

@@ -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>,

View File

@@ -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,

View File

@@ -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);

View File

@@ -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
// =============================================================================