From 5a05e73d543f9c600fac054fdc1de415f3245a17 Mon Sep 17 00:00:00 2001 From: terra tauri Date: Thu, 19 Feb 2026 05:36:02 -0800 Subject: [PATCH] feat: Make review rounds configurable, increase default to 10 Add --max-review-rounds CLI flag for memento command. Default raised from 5 to 10 to allow more thorough review-fix cycles. --- packages/autonav/src/cli/nav-memento.ts | 3 +++ packages/autonav/src/memento/loop.ts | 4 ++-- packages/autonav/src/memento/types.ts | 3 +++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/autonav/src/cli/nav-memento.ts b/packages/autonav/src/cli/nav-memento.ts index d7a5c8a..62f0455 100644 --- a/packages/autonav/src/cli/nav-memento.ts +++ b/packages/autonav/src/cli/nav-memento.ts @@ -31,6 +31,7 @@ import { resolveAndCreateHarness } from "../harness/index.js"; interface MementoCommandOptions { pr?: boolean; maxIterations?: string; + maxReviewRounds?: string; promise?: string; branch?: string; task?: string; @@ -78,6 +79,7 @@ program ) .option("--branch ", "Git branch name for work") .option("--task ", "Task description (reads TASK.md if not provided)") + .option("--max-review-rounds ", "Maximum review-fix rounds per iteration (default: 10)", "10") .option("--verbose", "Show detailed logging") .option("--model ", "Model for implementer agent", "claude-haiku-4-5") .option("--nav-model ", "Model for navigator agent", "claude-opus-4-5") @@ -184,6 +186,7 @@ async function executeMemento( verbose, model: options.model, navModel: options.navModel, + maxReviewRounds: parseInt(options.maxReviewRounds || "10", 10), }, harness); // Display results diff --git a/packages/autonav/src/memento/loop.ts b/packages/autonav/src/memento/loop.ts index 0f8fc48..af1ce28 100644 --- a/packages/autonav/src/memento/loop.ts +++ b/packages/autonav/src/memento/loop.ts @@ -639,7 +639,7 @@ ${truncatedDiff} /** * Review implementation changes (Phase 3 of the 4-phase iteration loop). * - * Runs up to 5 review-fix cycles: + * Runs up to maxReviewRounds (default 10) review-fix cycles: * 1. Stage changes and get diff * 2. Ask opus to review (single-turn, no tools) * 3. If LGTM → done @@ -655,7 +655,7 @@ async function reviewImplementation( verbose: boolean, harness: Harness ): Promise<{ lgtm: boolean; fixApplied: boolean }> { - const MAX_REVIEW_ROUNDS = 5; + const MAX_REVIEW_ROUNDS = options.maxReviewRounds ?? 10; let fixApplied = false; for (let round = 1; round <= MAX_REVIEW_ROUNDS; round++) { diff --git a/packages/autonav/src/memento/types.ts b/packages/autonav/src/memento/types.ts index e3e6c8c..ccc89e3 100644 --- a/packages/autonav/src/memento/types.ts +++ b/packages/autonav/src/memento/types.ts @@ -75,6 +75,9 @@ export interface MementoOptions { /** Show detailed logging */ verbose?: boolean; + + /** Maximum review-fix rounds per iteration (default: 10) */ + maxReviewRounds?: number; } /**