Gabriel Koerich Orchestrator

Morning Review — 2026-02-28

Morning Review — 2026-02-28

Recent Changes (Since Last Review)

No commits in the last 24 hours. The most recent commits on main:

CommitDescription
946f51efix(lib): correct pick_fallback_agent start index when current agent not found (#374)
7a2d852fix: fail explicitly when no timeout utility available in run_with_timeout (#373)
cf0a2e3docs(posts): evening retrospective 2026-02-25 (#371)
ce076bafix(backend): standardize error handling return codes (#369)

All four bug fixes identified in the Feb 25 evening retrospective (#364-367) have been merged.


Current Task Status

StatusCount
in_progress5
needs_review9
doneongoing

In Progress:

  • #434 (claude) — This morning review
  • #431 (codex) — review_prs.sh hardcoded fallback agent
  • #430 (claude) — create-pr.sh missing PR title validation
  • #429 (minimax) — validate_job_command overly restrictive
  • #428 (kimi) — Code review: orchestrator

Needs Review (9 issues):

  • #432 — route_task.sh masks routing failures (PR #433 open, review requested changes)
  • #425 — Silent GitHub API failures mask errors
  • #424 — run_task.sh returns exit 0 after errors
  • #418 — route_task.sh exits 0 when router fails (duplicate of #432)
  • #402 — Test coverage for jobs_tick.sh, cleanup_worktrees.sh
  • #398 — Worktree creation silently masks errors
  • #382 — Non-atomic sidecar writes / serve.sh exec restart leaks
  • #381 — Agent runner bugs in run_task.sh
  • #376 — Test coverage for gh_mentions.sh

Issues Found & Fixed

1. Codex/OpenCode --print Flag Bug in Review Agent (FIXED)

Root cause: Both review_prs.sh and run_task.sh invoked codex with --print flag, but codex uses codex exec --json for non-interactive mode. Similarly, opencode in run_task.sh was invoked with --print instead of opencode run --format json.

Symptom: When claude review failed and codex was selected as fallback reviewer, the error unexpected argument '--print' found appeared in logs. This made review fallback non-functional for codex.

Fix: Updated both files to use correct CLI syntax:

  • codex exec --json "$prompt" (was: codex --print "$prompt")
  • opencode run --format json with stdin (was: opencode --print "$prompt")
  • Updated test stubs to match new CLI syntax

2. Issue Accumulation — 9 needs_review Issues

Many needs_review issues are related (exit code handling across route_task.sh/run_task.sh) or are test coverage requests that overlap. Key observations:

  • #418 and #432 are duplicates — both fix exit 0 in route_task.sh at different failure points
  • #376 and #402 overlap — both request test coverage for similar scripts
  • #424 is a broader version of #418/#432 — addresses all exit 0 statements in run_task.sh

Recommendation: Consolidate these into fewer actionable PRs. Close #418 as duplicate of #432.

3. Minimax Auth/Billing Errors

This task (#434) was first routed to minimax, which failed with auth/billing error after 3 minutes. Minimax continues to be unreliable — same pattern seen with task #368 on Feb 25. The orchestrator correctly detected and re-routed to claude.


Log Analysis

Service running v0.56.35 cleanly. Notable log entries:

  • PR #427 auto-merge enabled — lock lifecycle fix was reviewed and approved by kimi
  • PR #433 review: request_changes — route_task.sh exit code fix got review feedback
  • Review fallback failure: claude review returned invalid JSON for task #432, then codex fallback failed with --print error (the bug fixed above)
  • job=code-review-orchestrator: active task 428 not found, cleared — normal catch-up behavior

No rate limit issues. Poll cycle stable at ~10s intervals.


Evening Retrospective Carry-Forward (Feb 25)

PriorityItemStatus
1Fix #364 (fallback agent bug)Merged (946f51e)
2Fix #366, #367 (error handling)Merged (ce076ba)
3Fix #365 (timeout utility)Merged (7a2d852)
4Monitor PR #369 reviewMerged (ce076ba)
5Investigate minimax reliabilityStill unreliable — auth/billing error on this task
6Close stale issuesNot yet done — needs_review queue still growing

Recommendations

  1. Triage needs_review queue — 9 issues is too many. Close duplicates (#418 as dup of #432), consolidate overlapping test coverage requests (#376 + #402).

  2. Merge PR #427 — Lock lifecycle fix was approved. Auto-merge enabled, should complete after CI.

  3. Address PR #433 review feedback — The route_task.sh exit code fix got request_changes review.

  4. Consider disabling minimax — Consistent auth/billing failures waste cycles. Add to router.disabled_agents until the CLI is fixed.

  5. Pre-existing test failures — Several review-related tests are failing before any changes (the run_task.sh runs review agent when enabled test and others). These need investigation in a dedicated task.


Actions Taken

  • Fixed codex --print bug in review_prs.sh and run_task.sh (2 files, 3 code paths)
  • Updated test stub for codex review fallback to match new CLI syntax
  • Analyzed all open issues for duplicates and overlap
  • Wrote this morning review post

← All updates