Repository navigation
Timeline: stuck requests, tool use and team health (combined) - #586
Merged
Merged
Conversation
One combined timeline read-model change, replacing the three proposals at the same code line and the same docs row (#535, #539, #568): the window now carries the open requests waiting longest, the tools each Bot used with their failures, and timeline/health reduces the same window to per-Bot signals and flags. Fixes #534 Fixes #538 Fixes #567
This was referenced Oct 21, 2026
Birfy
commented
Oct 21, 2026
Birfy
left a comment
Collaborator
Author
There was a problem hiding this comment.
Verdict: PASS at d131a1e
Tip SHA: d131a1e3c0174d1036b425f81ceeb47dbe7cd2a7
This is the combined replacement for #535 / #539 / #568, built by the maintenance round as the owner asked, so the three proposals become one PASS and one click. The three originals are closed as superseded and their content, tests and wording are all here.
Diff (7 files, +148 -3): `window.js` gains `stuck` (open request arrows, worst first, `waitedMs` floored at 0, capped at 20) and `toolUse` (per-Bot tool calls by cleaned name with failure counts, capped at 20 per Bot) as two additive blocks plus two names on the existing return line; new `plugins/timeline/src/health.js` (`buildHealth(window)`, pure) with its `timeline/health` endpoint wired in `timeline.js` and `dispose`; the tests from both originals; the `timeline.md` row merged into one sentence and the new `health.js` row and endpoint bullet; one changelog fragment.
Host side has no copy of the timeline (it is a plugin), so `patches/ds-bot/` is untouched and the patches check still passes; the window version and every existing field are unchanged, so nothing that reads the window today breaks.
Ran at the tip: CI all green (tests-ok, plugins social/tree/timeline, package, Node 24). On this tree: `ds-bot-patches.mjs check` OK (10 patches, core == ds-bot + patches), `check-arch-docs.mjs` with `ARCH_DOCS_BASE=HEAD~1` OK (7 files), `changelog.mjs check` OK, `plugins/timeline` 101/101, `scripts/lint-plugins.mjs timeline` 0 errors / 8 pre-existing warnings, TZ=UTC.
TDD: with `window.js` and `timeline.js` at the base commit and `health.js` absent, 3 tests fail (both new window tests and the health file); all 101 pass with the change.
Merge state: clean against main 33fb55ed and against every other open PR.
Not run: one-shot `npm run verify` (2 GiB OOM), full core suite, smoke, Desktop.
Tier: **T2** (`plugins/timeline/**`). The owner's own click in the GitHub UI is the approval and this PASS must sit on the tip; I do not approve or merge it myself. Any new commit voids this PASS.
This was referenced Oct 21, 2026
HugoXK
pushed a commit
to HugoXK/FlyBot
that referenced
this pull request
Oct 21, 2026
…inkFlowLab#590) **Risk: T3** (`AGENTS.md` and the policy docs). The owner's new hard rule: when an issue already has a pull request, work in that one — do not open a second and close the first. This records it next to the admission line, so the two are read together. ## What changes (4 files, +7 -1) - `AGENTS.md`: a new paragraph in the admission-line section — re-base the open branch, use `update-branch`, or push a commit to its head, and put the tests there too; a contributor's fork is treated the same while it allows maintainer edits; the only exception is a branch that cannot be pushed, and then the reason goes on the issue, never a silent swap. - `docs/code-standards.md`: the same rule as a bullet under "Merge only a reviewed tip". - `docs/autonomous-dev.md`: one sentence in the merge-by-tier item. - `.claude/skills/fix-issue/SKILL.md`: a bullet in step 4 (PR). It applies to new work from now on: ThinkFlowLab#586 and its closed originals (ThinkFlowLab#535/ThinkFlowLab#539/ThinkFlowLab#568) are left exactly as they are, as the Chief asked. ## Checks - `node --test .github/scripts/*.test.mjs` — 93/93. - `check-arch-docs.mjs` with `ARCH_DOCS_BASE=HEAD~1` — OK (4 changed files). - `scripts/ds-bot-patches.mjs check` — OK (no code touched). - `changelog.mjs check` — OK; no fragment, a change users cannot see and that ships no code. - `TZ=UTC`. Not run: one-shot `npm run verify` (2 GiB OOM in this container), full core suite, smoke, Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #534, Fixes #538, Fixes #567
Risk: T2 (
plugins/timeline/**).What
One PR for the three timeline read-model proposals that all touch the same return line of
plugins/timeline/src/window.jsand the samedocs/subsystems/timeline.mdrow, so the ownergets one PASS and one click instead of three rebases:
stuck: the open request arrows, worst first (waitedMsfloored at 0, capped at 20) — Timeline: list the requests waiting longest #534 / Proactive reminders 1/3 follow-up: quiet hours, mute, waiting-too-long #469.toolUse: per-Bot tool calls by cleaned name with their failure counts — Timeline: which tools each Bot used, and how often they failed #538 / Plugin and App connect: catalog, guided auth, and a fast developer scaffold (cf. Grok Bot connectors) #359.timeline/health: new pureplugins/timeline/src/health.js(buildHealth(window)) plus the read-only endpoint, per-Bot signals and flags and a teamok— Timeline: a team-health endpoint (#357) #567 / Performance dashboard: Nightly CI metrics for FlyBot smoothness #357.Both new window fields are additive; the window version and every existing field are unchanged.
Host-side has no copy of this code (the timeline is a plugin), so
patches/ds-bot/is untouchedand
ds-bot-patches.mjs checkstill passes.Supersedes
Closes #535, #539 and #568 as superseded: their content, review and tests are all carried here,
including the authorship trail in the three PRs. Thanks to HugoXK for the three originals.
Checks (run by the maintenance round on this tree)
ds-bot-patches.mjs check— OK (10 patches, core == ds-bot + patches).check-arch-docs.mjswithARCH_DOCS_BASE=HEAD~1— OK (7 changed files).changelog.mjs check— OK (12 fragments).plugins/timelinetests — 101/101.scripts/lint-plugins.mjs timeline— 0 errors, 8 warnings (all pre-existing).window.jsandtimeline.jsat the base commit andhealth.jsabsent, 3 tests fail(the two new window tests and the health test file); all pass with the change.
Not run: one-shot
npm run verify(the container OOMs at 2 GiB), full core suite, smoke, Desktop.