[Feature]: Meta-orchestrator — cross-project supervision of all orchestrators (scheduled health checks, stall detection, portfolio status)

Author: axisrowCreated Sep 19, 2026Updated Sep 19, 2026

Problem

As a user running several AO projects in parallel, I have no layer above the project orchestrators. Each orchestrator sees only its own repo, so portfolio-level questions have no home:

  1. "What are my orchestrators actually doing — and why did this one stop?" Orchestrators stall silently. A timeout error (e.g. #5489: SPAWN_TIMEOUT leaves the session started but the initial prompt never delivered), a permission prompt waiting for a person, a hung agent process, or a transport failure — in every case the session just sits there. Nobody notices until I manually open every project one by one. There is no watchdog that periodically (cron-style) checks all orchestrators and flags: no transcript growth for N minutes while nominally "Working", repeated timeout/transport errors, waiting-on-approval for too long, exited-but-unrecoverable sessions (cf. #5569).

  2. "What open issues do I have across all my repos?" Today this means opening each project separately (or scripting gh per repo by hand). There is no cross-repo aggregate view of open issues, PRs, failing CI, or sessions awaiting a person, surfaced inside AO.

Who this affects: anyone running AO on more than one repo, and especially people who leave orchestrators running unattended and come back to find half of them quietly dead or stuck.

Proposed direction

A meta-orchestrator: a special AO session of its own — conceptually "standalone worker mode, one level up" — that is not bound to a single repository and treats other AO sessions (orchestrators and workers across projects) as its supervised objects.

Capabilities, in the order I'd find useful:

  1. Scheduled health checks (cron) of every orchestrator/session

    • Per session: last activity timestamp, current Kanban status, last error, transcript growth.
    • Stall heuristics: idle for N minutes while "Working"; repeated timeout/transport errors; waiting on a permission prompt > N minutes; exited and unrestorable (#5569).
    • Output: one "fleet status" answer — who is working, who is stalled, and a best-guess why.
  2. Act on stalls, not just report them

    • Notify, nudge (re-deliver prompt / resume session), restart, or escalate to the person — per-project policy.
    • Default is report + suggest; never silently take destructive action.
  3. Portfolio queries across repos

    • "What are the open issues across all my repos?" — one aggregated list with repo, age, labels, assignee.
    • Same for open PRs, failing CI, and sessions awaiting a person.
    • This makes the meta-orchestrator a natural daily triage entry point.

Much of the substrate plausibly exists already (daemon session state, activity feed, status derivation); what's missing is the cross-project session API, stall heuristics, scheduled wake-ups for an agent session, and cross-repo issue aggregation.

Related prior art in this repo: #5511 (ao ps — process-level footprint viewer; complementary, but answers "is the process alive", not "is the agent making progress"), #5597 (orchestrator reading a worker session's output — the same read path would serve the meta-orchestrator), #3802 (role-aware delegation / durable pause — same direction but scoped within a single project).

Alternatives considered

  • Open each project's Kanban manually — no stall detection, doesn't scale past a handful of projects.
  • ao ps + cron + gh scripting outside AO — answers process liveness and repo issues, but has no agent-level status ("waiting on a person" vs "making progress"), can't nudge/resume an orchestrator, and the scripts rot.
  • Each orchestrator checks its siblings — breaks project isolation, and every one of them still needs a supervisor itself.

Before submitting

  • I searched existing issues / discussions for something similar
  • I am willing to help implement this if maintainers agree on scope

Source: Untrivial-ai/agent-orchestrator