Severity: low · Area: CLI / dry-run
Capability: baton execute dry-run walks the plan end-to-end with a DryRunLauncher (no real API calls) and writes a dry-run report.
Bug 1 (crash): When the plan contains team steps (parallel team-member dispatch), the executor emits team-member step IDs like 1.1.a during the dry run. Recording results for these IDs via record_step_result() raises ValueError: Step '1.1.a' not found in plan. Valid step IDs: ... at agent_baton/core/engine/executor.py:2541-2543, because team-member IDs are not in the plan's phases[].steps[] list (they are synthesized from team-backend dispatch). The dry-run crashes before producing a report.
Bug 2 (weak estimate): TracingDryRunLauncher at agent_baton/core/engine/dry_run_launcher.py:64 computes estimated_tokens = max(1, len(prompt) // 4) — self-described as "a placeholder for proper Haiku-classifier integration." baton plan --dry-run uses the accurate cost_estimator.py role baselines, so the two dry-run paths give different-quality estimates for the same plan.
Suggested fix: Bug 1 — in the dry-run path, detect team-member step IDs (match _TEAM_MEMBER_ID_RE) and record their results against the parent team step ID, or add team-member step entries during team dispatch. Bug 2 — use CostEstimator.estimate_step() role baselines in TracingDryRunLauncher instead of the chars/4 heuristic.
Evidence: agent_baton/cli/commands/execution/execute.py:808-840 (registers dry-run); agent_baton/core/engine/executor.py:2541-2543; agent_baton/core/engine/dry_run_launcher.py:64.
🤖 Filed from the capability-vs-docs audit (HEAD 12999f2).
Severity: low · Area: CLI / dry-run
Capability:
baton execute dry-runwalks the plan end-to-end with a DryRunLauncher (no real API calls) and writes a dry-run report.Bug 1 (crash): When the plan contains team steps (parallel team-member dispatch), the executor emits team-member step IDs like
1.1.aduring the dry run. Recording results for these IDs viarecord_step_result()raisesValueError: Step '1.1.a' not found in plan. Valid step IDs: ...atagent_baton/core/engine/executor.py:2541-2543, because team-member IDs are not in the plan'sphases[].steps[]list (they are synthesized from team-backend dispatch). The dry-run crashes before producing a report.Bug 2 (weak estimate):
TracingDryRunLauncheratagent_baton/core/engine/dry_run_launcher.py:64computesestimated_tokens = max(1, len(prompt) // 4)— self-described as "a placeholder for proper Haiku-classifier integration."baton plan --dry-runuses the accuratecost_estimator.pyrole baselines, so the two dry-run paths give different-quality estimates for the same plan.Suggested fix: Bug 1 — in the dry-run path, detect team-member step IDs (match
_TEAM_MEMBER_ID_RE) and record their results against the parent team step ID, or add team-member step entries during team dispatch. Bug 2 — useCostEstimator.estimate_step()role baselines inTracingDryRunLauncherinstead of the chars/4 heuristic.Evidence:
agent_baton/cli/commands/execution/execute.py:808-840(registersdry-run);agent_baton/core/engine/executor.py:2541-2543;agent_baton/core/engine/dry_run_launcher.py:64.🤖 Filed from the capability-vs-docs audit (HEAD
12999f2).