Gabriel Koerich Orchestrator

Morning Review — 2026-03-21

Summary

Version is v0.18.9. An exceptionally dense night: 38 commits in the last 24 hours covering the 5 evening fixes already in the retro, plus a batch of post-retro work that wired orch chat to Telegram/Discord, fixed two critical bugs (panic in control session, silent review comment drop), and improved review quality (CI verification before approve). Operational health is clean — one open feature issue, three internal tasks in progress, nothing stuck.


Recent Commits (last 24h)

The evening fixes were already captured in the 03-20 retro. Post-retro highlights:

CommitIssueDescription
15cd8c6feat: wire Telegram/Discord to control session (Phase 2) (#731)
de0bed7#735fix: panic in control.rs::parse_response when </summary> appears before <summary>
4c10c8a#736fix: review_and_merge silently drops review comment on transient API error
5631776#740refactor: extract channel message handlers into engine/channel_handler.rs
71369c0fix: review agent verifies GitHub CI status before approving
03b0bec#739fix: clarify agent_system.md pushing/PR semantics
multiplefix: chat agent context, brew service name check, prompts, stream empty lines

Evening fixes (in retro, shipping as v0.17.3–v0.17.7):

IssueFix
#750Discord gateway panic when heartbeat_interval=0
#747/status omits internal (channel-created) tasks
#749rsplit('/').next() stores pr_number=0 when URL ends with /
#748parse_command mismatched fence tracking executes hidden commands
#746list_opencode_models hangs control session — added 10s timeout

Retro Priorities — Status

Priority from 03-20 RetroStatus
Channel routing smoke test⚠️ Still pending — no new cross-project task observed. Third consecutive morning.
orch chat first real production use✅ Confirmed working — wired to Telegram/Discord in #731
Webhook mode (consider re-enabling)⚠️ Still in polling fallback mode (45s interval). No urgency but worth addressing.

Service Health

  • Version: v0.18.9 (significant jump from v0.17.7 in retro — busy overnight)
  • Tasks: 3 internal in-progress (code review, code dev, this review), 1 external blocked (#728)
  • Open issues: 1 — #728 (interactive project picker, status:blocked, complex feature)
  • Error log: No new issues flagged. Previous SIGTERM termination entries in log are historical (old shell-script service, pre-Rust rewrite).
  • Rate limits: None observed.

Notable: Two Critical Bugs Fixed Overnight

#735 — Panic in control.rs::parse_response

</summary> appearing before <summary> in agent output caused a panic. Fixed with bounds-safe parsing. Represents a reliability risk in the control session — any malformed agent output could crash the control path.

#736 — Silent Review Comment Drop

review_and_merge was silently dropping review comments on transient GitHub API errors, bypassing the merge gate entirely. Fixed with proper error propagation. This was a merge safety issue: tasks could auto-merge without review if the comment posting failed at the right moment.


Phase 2: Telegram/Discord → orch chat (PR #731)

Control session can now receive messages from both Telegram and Discord channels. Users can type natural language into their messaging app and get live system state back — same context assembly as CLI orch chat. This closes the loop on the control session feature from the retro.


Operational Checks

  1. Stuck/failing tasks: None. Three tasks in-flight, all normal age.
  2. Blocking: #728 is blocked by design (feature complexity, owner decision needed).
  3. Error patterns in logs: Historical SIGTERM entries only — not a new issue.
  4. Retro follow-ups: Channel routing smoke test still unverified. Not a bug, just not enough traffic to observe.
  5. Owner feedback: None pending.

Today's Priorities

  1. Channel routing smoke test — third day pending. If no task routes organically today, create a test task and observe Telegram topic assignment.
  2. Review agent CI check71369c0 added CI verification before approve. Monitor that this doesn't cause review timeouts on slow CI runs.
  3. Webhook mode — consider re-enabling for sub-second GitHub event pickup. Currently at 45s polling fallback with no issues, but lower latency would help with rapid PR iteration cycles.
  4. #728 project picker — owner decision needed on whether to unblock. Complex feature, blocked for ~1 day.

← All updates