Skip to content

umbrella(resilience): five platform failure classes we have no defence against #15773

Closed
6 of 6 issues completed

Description

@mrveiss

Problem

A comparative failure-mode review of large open-source agent-orchestration platforms surfaced
six recurring classes of production failure. Each was checked against this codebase; the six
below are gaps we are demonstrably exposed to. None is hypothetical — each names the file that
lacks the defence.

Two classes were checked and found already covered, and are recorded here so they are not
re-audited:

  • Agent/session lifecycle leaks (stuck "running", never-closed workspaces) — covered by the TTL +
    reaper in autobot-backend/services/agent_terminal/session_manager.py:24,466.
  • Runaway token cost / agent loops — covered by autobot-backend/llm_shared/token_budget.py,
    the provider circuit breaker, and autobot_shared/repetition_guard.py.

Tasks

Wave 1 — independent, no blockers:

Acceptance Criteria

  • Every task above is closed with code evidence from merged Dev_new_gui
  • Each child states its own criteria; this umbrella closes only when all six are closed

Notes

Related existing issues (same classes, narrower scope): #15772 (read-then-insert returns 500
instead of 409), #13803 (unbounded warn on failure path).

Activity

  1. mrveiss commented on Sep 5, 2026

    @mrveiss
    OwnerAuthor

    Second verification pass on the three classes left open at filing time:

  2. modified the milestones: Backlog, v0.9.0 on Sep 12, 2026
  3. modified the milestones: v0.9.0, v0.10.0 on Sep 17, 2026
  4. mrveiss commented on Oct 3, 2026

    @mrveiss
    OwnerAuthor

    What would have to be true to close this — and a correction to my own triage

    Found by a sweep for umbrellas whose native children are all closed (10 of 138 parents, across 1,733 open issues). I first put this in "scope outruns its children". That was wrong: this umbrella's criteria are about its children, and all six are closed.

    Its two non-task criteria read:

    • Every task above is closed with code evidence from merged Dev_new_gui
    • Each child states its own criteria; this umbrella closes only when all six are closed

    The second is already met — #15774, #15775, #15776, #15777, #15778 and #15779 are all closed (6/6 native children).

    The one thing missing

    Per-child code evidence against merged main, gathered once and posted here — six short entries, each naming the file/symbol that satisfies that child.

    That is a bounded artifact, not open-ended work. One caveat for whoever does it: the criterion says "merged Dev_new_gui", which is the superseded base. Evidence must come from main (git show origin/main:<path>), and the criterion's wording wants updating in the same pass so the next reader does not go looking at a branch that is no longer the base.

    Nothing ticked — all six task boxes are still unticked despite the children being closed, and they should be ticked in one pass with the evidence rather than tidied now.

  5. mrveiss commented on Oct 3, 2026

    @mrveiss
    OwnerAuthor

    Closed — both umbrella criteria met

    AC2 — "this umbrella closes only when all six are closed." All six children are
    closed/completed: #15774, #15775, #15776, #15777, #15778, #15779.

    AC1 — "every task above is closed with code evidence." Each child's closure carries
    it. #15779 is worth naming because it nearly tripped me: a scan for file.py:NNN
    patterns returned zero for it, and the comment in fact reads "Closed by #16927,
    merged as 28a5896d2. Each AC was verified against the merged branch code"
    followed by
    per-AC detail. The scan was correct and answered a narrower question than the criterion
    asks — evidence is not required to take one shape.

    One wording correction rather than a silent tick. AC1 says "from merged
    Dev_new_gui"
    . That base is superseded; the repo's PR base is main, and the children's
    evidence is against the branches merged into it. The criterion's intent — closed with
    code evidence, not closed to tidy — is met. The named branch is stale, and I am recording
    that here rather than editing history, so a reader comparing the criterion to the
    evidence is not left reconciling a branch that no longer exists.

    Scope check before closing. This umbrella's own body adds no acceptance criteria
    beyond the six tasks and those two conditions, so "all children closed" genuinely is the
    whole of it. That is not true of every umbrella — several carry criteria describing an
    outcome no child was ever going to satisfy, which is why they stay open with their gaps
    named rather than closing on a complete child list.

    Triage by the research session; children and evidence verified here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions