← The board

B3 Live dashboard

Area
B — Running it
Audience
operator
Kind
feature
Status
accepted
Maturity
building
Labels
tui, verification
Requires
G7
Relates to
B2B4C2G1

The feature in the specification · Read at

Requirements

  1. B3-R1acceptedMUST

    Invoking lemonfiber with configuration present and no subcommand MUST open the dashboard.

    locked by
    1.0.0 met
    recorded done
    lemonfibercrates/lemonfiber/src/dashboard.rscrates/lemonfiber/src/dashboard/panels.rscrates/lemonfiber/src/terminal.rs
    cited by
    lemonfiber@6da842dffb
  2. B3-R2acceptedMUST

    The dashboard MUST show health summary, VPN state, transfers, queue depth, storage and service states.

    locked by
    0.5.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/dashboard.rscrates/lemonfiber-core/src/dashboard/run.rscrates/lemonfiber-core/src/health/reach.rscrates/lemonfiber-core/src/storage.rscrates/lemonfiber-ports/src/service.rscrates/lemonfiber-core/src/qbittorrent.rs
    recorded partial
    lemonfiber-websrc/routes/Dashboard.sveltesrc/routes/DashboardStanding.test.ts::counts what is wrong and names the worst of it
    cited by
    lemonfiber@6bdd829515lemonfiber@6386b29423lemonfiber@2e5c121e7e
  3. B3-R3acceptedMUST

    VPN state MUST include exit IP, country, forwarded port, and egress-match confirmation.

    locked by
    0.5.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/dashboard.rscrates/lemonfiber-core/src/dashboard/run.rscrates/lemonfiber-core/src/health/reach.rscrates/lemonfiber-core/src/storage.rscrates/lemonfiber-ports/src/service.rscrates/lemonfiber-core/src/qbittorrent.rs
    cited by
    lemonfiber@d91a7e04a2
  4. B3-R4acceptedMUST

    Refresh MUST NOT block user input.

    locked by
    1.0.0 met
    recorded done
    lemonfibercrates/lemonfiber/src/dashboard.rscrates/lemonfiber/src/dashboard/panels.rscrates/lemonfiber/src/terminal.rs
    cited by
    lemonfiber@e31dd4a44flemonfiber@6da842dffb
  5. B3-R5acceptedMUST

    Stale, unknown and zero values MUST be visually distinct.

    locked by
    0.5.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/dashboard.rscrates/lemonfiber-core/src/dashboard/run.rscrates/lemonfiber-core/src/health/reach.rscrates/lemonfiber-core/src/storage.rscrates/lemonfiber-ports/src/service.rscrates/lemonfiber-core/src/qbittorrent.rs
    cited by
    lemonfiber@c5020a40e9lemonfiber@dfdc243e4elemonfiber@d567a85660
  6. B3-R6acceptedMUST

    An unavailable data source MUST mark only its own panel, leaving others live.

    locked by
    0.5.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/dashboard.rscrates/lemonfiber-core/src/dashboard/run.rscrates/lemonfiber-core/src/health/reach.rscrates/lemonfiber-core/src/storage.rscrates/lemonfiber-ports/src/service.rscrates/lemonfiber-core/src/qbittorrent.rs
    cited by
    lemonfiber@b11224db3blemonfiber@fb11824654
  7. B3-R7acceptedMUST

    Loss of the telemetry channel MUST NOT terminate the dashboard, and MUST be stated.

    locked by
    0.5.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/dashboard.rscrates/lemonfiber-core/src/dashboard/run.rscrates/lemonfiber-core/src/health/reach.rscrates/lemonfiber-core/src/storage.rscrates/lemonfiber-ports/src/service.rscrates/lemonfiber-core/src/qbittorrent.rs
    recorded partial
    lemonfiber-websrc/routes/Dashboard.sveltesrc/routes/Dashboard.test.ts::says what a dropped connection means for everything below it
    cited by
    lemonfiber@1e0ebc2fa5lemonfiber@fb11824654
  8. B3-R8acceptedMUST

    The dashboard MUST show hardlink status and projected disk exhaustion.

    locked by
    0.5.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/dashboard.rscrates/lemonfiber-core/src/dashboard/run.rscrates/lemonfiber-core/src/health/reach.rscrates/lemonfiber-core/src/storage.rscrates/lemonfiber-ports/src/service.rscrates/lemonfiber-core/src/qbittorrent.rs
    cited by
    lemonfiber@dc5aaad1e7lemonfiber@faed50fc3d
  9. B3-R9acceptedMUST

    Narrow terminals MUST degrade by dropping lower-priority columns, never by corrupting layout.

    locked by
    1.0.0 uncited
    recorded done
    lemonfibercrates/lemonfiber/src/dashboard.rscrates/lemonfiber/src/dashboard/panels.rs
  10. B3-R10acceptedMUST

    Resizing MUST reflow without restart or loss of scroll position.

    locked by
    1.0.0 open
    recorded open
    lemonfiber
  11. B3-R11acceptedMUST

    Absent data MUST be stated explicitly rather than rendered as an empty region.

    locked by
    0.5.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/dashboard.rscrates/lemonfiber-core/src/dashboard/run.rscrates/lemonfiber-core/src/health/reach.rscrates/lemonfiber-core/src/storage.rscrates/lemonfiber-ports/src/service.rscrates/lemonfiber-core/src/qbittorrent.rs
    cited by
    lemonfiber@dfdc243e4e
  12. B3-R12acceptedMUST

    Large collections MUST be truncated with a total count shown.

    locked by
    1.0.0 uncited
    recorded done
    lemonfibercrates/lemonfiber/src/dashboard.rscrates/lemonfiber/src/dashboard/panels.rs
  13. B3-R13acceptedMUST

    Any panel MUST be viewable in isolation.

    locked by
    1.0.0 open
    recorded open
    lemonfiber
  14. B3-R14acceptedMUST

    Idle refresh MUST sustain 1 Hz below 2% CPU, and lemonfiber's resident memory SHOULD stay under 50 MB.

    locked by
    1.0.0 unmarked
    recorded open
    lemonfiber
    cited by
    lemonfiber@dbc5bc238dlemonfiber@b11224db3b
  15. B3-R15acceptedMUST

    Durations and ETAs MUST derive from one clock source and MUST never render negative.

    locked by
    0.5.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/dashboard.rscrates/lemonfiber-core/src/dashboard/run.rscrates/lemonfiber-core/src/health/reach.rscrates/lemonfiber-core/src/storage.rscrates/lemonfiber-ports/src/service.rscrates/lemonfiber-core/src/qbittorrent.rs
    cited by
    lemonfiber@973f32ab56
  16. B3-R16acceptedMUST

    The dashboard MUST carry the free space on the data volume and on the volume the services' configuration and databases are kept on, each as a reading of its own that is unknown rather than zero where it could not be read.

    locked by
    0.18.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/dashboard.rscrates/lemonfiber-core/src/dashboard/run.rscrates/lemonfiber-core/src/dashboard/run/panels.rscrates/lemonfiber-core/src/dashboard/run/tests/refreshing.rs
    cited by
    lemonfiber@5d9be6f4eflemonfiber-web@6755f39f1b
  17. B3-R17acceptedMUST

    The dashboard MUST carry, for each download client the stack runs, whether it is paused, as the client reads it back, and unknown where it could not be asked.

    locked by
    0.18.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/dashboard.rscrates/lemonfiber-core/src/dashboard/run.rscrates/lemonfiber-core/src/bandwidth/run/pausing.rscrates/lemonfiber-core/src/dashboard/run/tests/refreshing.rs
    cited by
    lemonfiber@5d9be6f4ef