Skip to content

timeline digest: needs a look drops a Bot whose turns all failed when the first failure began before the window #1780

Closed

Description

@HugoXK

Implementation: FlyBot (ours) — PR follows within 24h. Do not pick up without a pickup-ok comment on this issue.

Written-by: FlyBot Lead
Claimed-by: FlyBot Lead
Claim-Id: caf925fb3fb1419f99e4b8fb70d7a8e2
Branch: dev/1-digest-unhealthy
Base: 92a4cf2
At: 2026-10-30T05:07:09Z

Implementation: FlyBot (ours) — PR follows within 24h. Do not pick up without a pickup-ok comment.

Written-by: FlyBot Lead

What a person sees

In the timeline run report, a Bot can be flagged in its own section — - look: 3 of 3 turns failed — while the Team rollup right below prints no needs a look: line at all, and the health panel for the same window does list it. The report disagrees with itself about the same Bot.

Where

plugins/timeline/src/digest.js:102 — unhealthy: bots.filter(bot => bot.turns >= ERROR_TURNS_MIN && bot.errorRate >= ERROR_RATE_MIN). The per-Bot flag was moved to counted = max(turns, errors) by #1579 (so a failure that began before the window still counts), but the team filter kept reading bot.turns.

Reproduction

Window where a Bot's utilization is { turns: 2, errors: 3 } — one failure started before the window, so counted is 3 while turns is 2:

buildDigest(window).team.unhealthy      // []
buildHealth(window).unhealthy           // ['b1']

and the markdown carries ## Dev-1 … - look: 3 of 3 turns failed with no needs a look: under ## Team.

Expected

team.unhealthy === ['b1'] and - needs a look: b1 under ## Team — the rollup uses the same counted the per-Bot flag uses, so the two lines of the same report cannot disagree.

Scope

That one filter line plus one case in plugins/timeline/test/digest.test.js ({ turns: 2, errors: 3 } → team lists the Bot) and a changelog.d/ fragment. No patches/, no generate.

Dedupe (searched on 2026-10-30, open + closed)

Activity

  1. added a commit that references this issue on Oct 30, 2026
    8829e40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions