Skip to content

Performance dashboard: Nightly CI metrics for FlyBot smoothness #357

Open

Description

@hsliuustc0106

Why

#356 asks volunteers to measure smoothness once. That is not enough: we need a daily performance board fed by Nightly CI, so regressions show up every morning instead of after a bad release. Ties to #351 (daily tags) and the metrics chosen from #356.

Goal

A FlyBot-specific performance dashboard, updated every night from CI, showing trend lines for a fixed set of scenarios on a known machine profile.

Scope

Nightly CI suite

Dashboard

Acceptance

  • Nightly job runs without manual steps and publishes artifacts every night.
  • Dashboard shows at least the 5 personal-mode metrics above for the last 7 days.
  • A deliberate slowdown in a fixture causes a warn or fail within one night.
  • No secrets or personal content in artifacts.
  • Docs explain how to add a new scenario and how thresholds are set.

Open questions

  1. Host the board on GitHub Pages, in the repo as committed history, or both?
  2. Absolute thresholds vs relative (e.g. 20% worse than 7-day median)?
  3. Mock model only, or also a cheap real model for end-to-end latency?
  4. Who owns reviewing the board each morning?

Process

CI and dashboard work go through cloud OpenCode, review via Codex; bots do not hand-write code. Use results from #356 to pick the first thresholds.

Activity

  1. added
    enhancementNew feature or request
    area:automationScheduled tasks and automation
    needs-humanThe agent loop stopped; a person must decide (reason in the last comment)
    on Oct 19, 2026
  2. Birfy commented on Oct 19, 2026

    @Birfy
    Collaborator

    Triage on main 7b9e90b, 2026-10-19 ~12:10 Asia/Shanghai: needs-human, not agent-ready. Depends on #356 (baseline) and needs a go-ahead for Nightly CI cost and where the dashboard lives.

  3. HugoXK commented on Oct 21, 2026

    @HugoXK
    Contributor

    Design for the owner to pick. #356 measures once; #357 wants the numbers every night. It depends on #358's matrix for what to run, so the scenarios come from there.

    (a) Nightly appends metrics to a JSON artifact + a static table (recommended). A nightly-perf job on the fixed runner label (already noted in #356) runs the mock scenario rows from #358, records per-scenario ms/tokens from the existing llm-tap/usage data, writes docs/…/perf.json (or a workflow artifact), and a small generated table shows the trend. No external service.

    • Size: ~150 lines (a runner + a generator) + the workflow.

    (b) Publish to a hosted dashboard. As (a), pushing to an external metrics service. Needs an account/key and adds a dependency; not needed for "a regression shows up every morning".

    • Size: +integration.

    (c) A committed CSV per run. Simplest, but noisy in git history and awkward to read.

    Recommendation: (a). Keep it in-repo and comparable day to day; the fixed runner label is the only requirement, which #356 already asks for. If the owner wants (b), the same recorded numbers can be pushed later.

    Note: the package job already exists and the merged core/dev/eval/ can emit machine-readable results, so the scenario runner is the only new piece this needs from #358.

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

    area:automationScheduled tasks and automationenhancementNew feature or requestneeds-humanThe agent loop stopped; a person must decide (reason in the last comment)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions