Skip to content

Benches: keep scheduled compile + interactive_slo run; track SLOs and bench coverage gaps #978

@jfolcini

Description

@jfolcini

Benches stay on the scheduled workflow (not per-PR) — confirmed acceptable. This issue tracks the ongoing bench hygiene that comes with that.

Current state

  • .github/workflows/scheduled-deep-checks.yml runs, on schedule:
    • cargo bench --no-run — compiles all bench targets (catches bench bit-rot).
    • cargo bench --bench interactive_slo — the interactive-SLO bench.
  • 26 bench targets exist under src-tauri/benches/ (agenda, backlink_query, commands, history, pagination, property, tag_query, undo_redo, loro_vs_sql_reads, interactive_slo, …).
  • No per-PR bench gate (deliberate) and no automated SLO-regression tracking yet.

To do (ongoing)

  1. Track SLOs over time. Capture the interactive_slo results from each scheduled run (step-summary or an artifact) and watch for regressions — flag when a tracked operation crosses its budget. (Measure-not-imagine: use observed values, not invented budgets.)
  2. Coverage review — which commands need benches? Audit the command surface (the agaric_commands! set) against the existing bench targets and identify hot/user-facing commands with no bench (e.g. anything on the editor/block hot path that isn't covered by commands_bench/interactive_slo). Add benches where a perf regression would be user-visible.
  3. Which existing benches need improvement? Review the 26 targets for: stale/unrepresentative workloads, missing realistic data sizes, benches that no longer compile-only-but-never-run meaningfully, and duplicate/overlapping coverage. Tighten or retire as needed.
  4. Keep the scheduled compile gate green (bench bit-rot is the cheapest thing to catch).

Related: #113 (bench-gated DB perf items — uses benches to gate refactors; distinct from this hygiene issue).

Metadata

Metadata

Assignees

No one assigned

    Labels

    planMigrated workplan tracked as a GitHub issue (formerly pending/PEND-*.md)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions