Skip to content

Timeline: per-Bot turn outcomes and recent failures - #531

Merged
Birfy merged 1 commit into
ThinkFlowLab:mainfrom
HugoXK:feat/timeline-outcomes
Oct 21, 2026
Merged

Birfy merged 1 commit into
ThinkFlowLab:mainfrom
HugoXK:feat/timeline-outcomes

Conversation

@HugoXK

@HugoXK HugoXK commented Oct 20, 2026

Copy link
Copy Markdown
Contributor

Timeline: per-Bot turn outcomes and recent failures

#357 (performance/quality board) and #471 (agent inbox: failed turns) want reliability visible, but the timeline window only counted errors per Bot — it did not say how a Bot's turns ended or list what failed. timeline/window now carries outcomes (per Bot lane: completed / aborted / error / lost) and failures (the recent failed or aborted turns, each with a cleaned error code, newest first, capped at 20). Read-only, part of the existing answer, ids and codes only.

Ran at the tip: npm run verify (green, TZ=UTC), node scripts/lint-plugins.mjs timeline (0 errors). Not run: smoke, Desktop, real-model steward.

@github-actions github-actions Bot added the risk:T2 Risk tier T2 (host/plugin code or an unnamed path), set by the controller from the diff label Oct 20, 2026
@Birfy

Birfy commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator

Review (Birfy, 2026-10-20 20:07 Asia/Shanghai): PASS (code) — held for the owner's confirmation of #530

Tip SHA: 03af6d7
Ran:

  • npm --prefix plugins/timeline test (TZ=UTC) → pass (93/93)
  • node scripts/lint-plugins.mjs → pass
  • CI tests-ok at this tip → green
    Not run:
  • core suite / smoke / Desktop — plugin-only change (plugins/timeline/src/window.js), CI ran the full suite at this tip
    Verdict: PASS

Findings (non-blocking, for the owner's decision):

  1. outcomes / failures are derivable from turns[] (already carries outcome, errorCode, lost) and nothing in the panel reads them yet, so today they only add payload to the 2 s poll. Either show them in the panel or have a real consumer in mind.
  2. outcomes counts every turn overlapping the window, while utilization[].turns counts turns started in it, so the two totals can differ for the same Bot. Pick one rule.
  3. Overlaps Agent inbox phase 2: board view, tool-call counts, failed turns and team views (after #349) #471 (agent inbox: failed turns, needs-human).

#530 is a new feature the owner has not confirmed yet (needs-human there), so this is not merged regardless of tier. Note: #531/#535/#537/#539 all edit the same return line in window.js, the same row in docs/subsystems/timeline.md and the tail of window.test.js, so whichever is accepted second will need a merge of main. This is not merge authority.

@Birfy

Birfy commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator

@HugoXK Owner decision (2026-10-20 21:09 Asia/Shanghai): accepted. Required change: also show the turn outcomes / recent failures in the dashboard/panel, not only in timeline/window.

@Birfy Birfy added the awaiting-approval PR is green and waits for the maintainer's approval (T2/T3) or a review PASS at its tip label Oct 20, 2026
@Birfy

Birfy commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator

Waiting for approval. tests-ok is green at the tip and the PR is mergeable, so it is labeled awaiting-approval.

It needs (1) the owner's approval through the GitHub UI (a chat reply does not count) and (2) a review PASS at the exact tip SHA; any new commit voids both.

Automation does not merge T2/T3 by itself and does not approve on the owner's behalf.

@Birfy Birfy left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PASS — tip 03af6d75f9532f3e74551bb508ee1e25eeaacf2e (Maintainer review, acting as Birfy)

Design check: no change to Bot authorization, to the approval path (still a UI button only) or to user-facing English text; the new surface is read-only and part of the existing answer.

Local evidence: I applied this PR's diff to my local main snapshot and ran the touched tests there (TZ=UTC), plus node scripts/ds-bot-patches.mjs check (with the new files staged, as a commit would):

  • plugins/timeline: node --import ./test/resolve.mjs --test test/window.test.js → 22/22 pass
  • node scripts/ds-bot-patches.mjs check → ok

Per-Bot outcome counts and the recent-failure list are read-only; the error code goes through cleanCode and the list is capped at 20.

Not run locally: the full npm run verify in one shot (this box has a 2 GiB memory cap, so I run the steps one at a time), the smoke test, Desktop, and the real-model steward.

CI: tests-ok is green at the tip SHA above (GitHub Actions ran the full suite there).

Tier: T2/T3, so this PASS does not approve the PR: the owner still has to approve it through the GitHub UI, and any new commit voids both the approval and this PASS. Not merged by automation.

…hinkFlowLab#471)

The window now reports how each Bot's turns ended (completed, aborted,
error or lost) and lists its recent failed/aborted turns with a cleaned
error code, so the panel or a tool can read a Bot's reliability. Part of
the existing timeline/window answer; read-only.
@HugoXK
HugoXK force-pushed the feat/timeline-outcomes branch from 03af6d7 to 2d568cd Compare October 21, 2026 01:26

@Birfy Birfy left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: PASS at 2d568cd

Tip SHA: 2d568cdea25c42c8acd880a5435659dd6a2fe941
This tip moved (the earlier PASS at 03af6d75 is void; the branch was rebased onto current main). Read the whole new diff: plugins/timeline/src/window.js (+14 -1, an `outcomes` count per Bot and a capped `failures` list inside the existing timeline/window answer), test/window.test.js (+16), the one-line docs/subsystems/timeline.md row, and the changelog fragment. Nothing else changed.
Design: read-only and additive (`outcomes`, `failures` in the same answer), no new endpoint, no config, no user-facing string; lost turns count as `lost`, room turns excluded, at most 20 failures, codes go through cleanCode().
Ran at the tip: CI tests-ok green (test, plugins tree/social/timeline, package all success at this SHA). Locally in a copy of main with this diff applied: plugins/timeline tests green.
Not run: one-shot npm run verify (2 GiB OOM), core suite, smoke, Desktop.

Tier: T2. Awaiting the owner's click in the GitHub UI plus this PASS at the tip. Any new commit voids this PASS.

@Birfy
Birfy added this pull request to the merge queue Oct 21, 2026
Merged via the queue into ThinkFlowLab:main with commit 03bfc46 Oct 21, 2026
8 checks passed
@Birfy Birfy removed the awaiting-approval PR is green and waits for the maintainer's approval (T2/T3) or a review PASS at its tip label Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:automation Scheduled tasks and automation enhancement New feature or request risk:T2 Risk tier T2 (host/plugin code or an unnamed path), set by the controller from the diff

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants