B3 Live dashboard
- Area
- B — Running it
- Audience
- operator
- Kind
- feature
- Status
- accepted
- Maturity
- building
- Labels
- tui, verification
- Requires
- G7
The feature in the specification · Read at
Requirements
Invoking lemonfiber with configuration present and no subcommand MUST open the dashboard.
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
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
Refresh MUST NOT block user input.
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
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
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
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
Narrow terminals MUST degrade by dropping lower-priority columns, never by corrupting layout.
Resizing MUST reflow without restart or loss of scroll position.
- locked by
- 1.0.0 open
- recorded open
- lemonfiber
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
Large collections MUST be truncated with a total count shown.
Any panel MUST be viewable in isolation.
- locked by
- 1.0.0 open
- recorded open
- lemonfiber
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
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
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.
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.