Releases: tonhe/flo
Release list
v0.3.1
What's New
Split-Scale Graph Compression
Graphs now automatically detect traffic spikes and apply a compressed scale to the spike zone while preserving detail in the normal traffic area. Uses relative-gap detection to find the natural breakpoint between regular traffic and outliers, giving 80% of the graph to normal data.
Per-Dashboard Polling Interval
Removed the global poll interval setting. Each dashboard now controls its own polling interval directly, and the status bar displays the active dashboard's interval. Default polling interval for new dashboards changed from 10s to 5s.
Smarter Time Axis
- Fractional minute labels (e.g., 1.5m, 2.5m) instead of jumping between whole numbers
- Minimum label interval raised to 5s to avoid cluttered axes on fast polling
Conditional Engine Restart
Editing a dashboard no longer flushes graph history for cosmetic changes. The engine only restarts when something meaningful changes (host, port, identity, interfaces, interval, etc.).
Changelog
- 95bcbe2 Merge remote-tracking branch 'origin/feature/dashboard-graphs'
- 06ca701 add dashboard graphs design doc
- b72b7eb add dashboard graphs implementation plan
- 0d97c4b feat: add RenderChartWithOptions with time axis and inline stats
- 297a5a7 feat: add TimeFormat config field
- 445549f feat: add graph panel to dashboard view with split layout
- 2998a37 feat: add time format toggle to settings view
- c841cf3 feat: split-scale graph compression, remove global poll interval, smarter time axis
- cf12ee9 feat: use RenderChartWithOptions in detail view for time axis and stats
- 4ebdcdf feat: wire TimeFormat config through app model to views
- b39c96e fix: pin graph to bottom, improve selected row contrast, fix time axis overlap
- 3e469c2 improve: use subtle Base01 highlight with accent indicator for selected row
v0.3.0
Flo v0.3.0 Release Notes
Dashboard Graphs
The dashboard now displays live traffic graphs when navigating interfaces. As you arrow through the interface list, In/Out charts render in a split panel pinned to the bottom of the screen — no extra key press needed.
Features
- Split-View Dashboard — 60/40 table/graph layout with dynamic sizing. Graphs automatically hide on very small terminals, gracefully degrading to the original table-only view.
- Inline Stats — Each chart shows current rate, peak, and average directly in the title row (e.g.
In: 1.2G peak: 3.8G avg: 1.1G). - Time Axis Labels — Charts now include time labels along the X-axis so you can tell when spikes occurred. Supports three display modes:
relative— "now", "5m ago", "1h ago"absolute— "15:04" (24h clock)both— newest point shows "now 15:04", older points show relative
- Time Format Setting — New toggle in Settings to switch between relative, absolute, and both time formats. Persists to config.
- Improved Selection Indicator — Selected row uses a
▸accent marker in the theme's accent color (Base0D) with a subtle Base01 line highlight, readable across all Base16 themes.
Config
New time_format field in ~/.config/flo/config.toml:
time_format = "relative" # Options: "relative", "absolute", "both"Changelog
- 3b0f385 add dashboard graphs design doc
- 1479764 add dashboard graphs implementation plan
- 39d4130 feat: add RenderChartWithOptions with time axis and inline stats
- ea05da4 feat: add TimeFormat config field
- 77089ce feat: add graph panel to dashboard view with split layout
- c847997 feat: add time format toggle to settings view
- f3864a1 feat: use RenderChartWithOptions in detail view for time axis and stats
- cf4f171 feat: wire TimeFormat config through app model to views
- f808569 fix: pin graph to bottom, improve selected row contrast, fix time axis overlap
- e7aeed4 improve: use subtle Base01 highlight with accent indicator for selected row
v0.2.0
v0.2.0 — Immersive Theme Picker
Highlights
A completely redesigned theme browsing experience. The old left/right cycling picker has been replaced with a full-screen, two-panel theme browser. As you scroll through themes, the entire screen — header, body, status bar, and background — transforms in real-time, giving you a true preview of what each theme looks like before committing.
New Features
- Full-screen theme picker — press Enter on the Theme row in Settings to open a scrollable list of all 28 themes with a live sample dashboard preview on the right
- Immersive preview — the entire terminal renders in the highlighted theme's colors, including header bar, status bar, and background fill
- Scroll indicators —
▲ more/▼ morewhen the theme list exceeds the visible area - Quick cycling retained — left/right arrows still work on the Theme row for fast browsing without opening the picker
Bug Fixes
- Fix theme background not updating in preview —
fillBackground()now uses the preview theme's background color instead of the saved app theme, fixing the partial-background rendering issue - Fix unreadable text when previewing themes — all UI chrome (header, status bar, quit modal) renders with the preview theme's colors, eliminating light-on-light / dark-on-dark text
- Fix theme background rendering on Windows — force TrueColor profile and inject ANSI background escapes after every reset sequence for reliable rendering on Windows Terminal
- Fix chart sizing after theme change — charts properly resize when the theme is applied
- Context-aware status bar — status bar key hints now change based on the active view
Improvements
- Updated help text on the theme row to show
[enter] browseinstead of the misleading[enter] save - Terminal resize is properly forwarded to the theme picker when open
- Quit confirmation modal renders in the preview theme for a fully immersive experience
Changelog
- 0cf90c7 Fix theme background rendering on Windows and chart sizing after theme change
- 7a125fc Make status bar context-aware and wire n key on dashboard
- bd6664d Update README with identity picker feature
- d990d1f feat: add ThemePickerModel component for full-screen theme browser
- af69c68 feat: integrate full-screen theme picker into settings view
- 618f213 fix: persist scroll offset in ThemePickerModel and remove unused param
- 1e2714c fix: use preview theme for immersive settings rendering and bump to v0.2.0
- 411acd6 fix: use renderTheme in quit confirm modal for consistent preview
v0.1.0
flo v0.1.0
First tagged release of flo — a TUI-based SNMP interface monitoring tool built with Go and Bubble Tea.
Highlights
- Real-time SNMP monitoring with sparkline graphs, concurrent multi-dashboard support, and per-interface throughput tracking
- Identity picker — a modal overlay for selecting saved SNMP identities or creating new ones inline, available everywhere an identity field appears (dashboard builder, editor, settings)
- Encrypted credential store using AES-256-GCM with Argon2id key derivation
- 21 Base16 themes with live preview
- Dashboard builder wizard for interactive dashboard creation from the TUI
- Device discovery via SNMP walks to enumerate interfaces
- Split-screen detail view with ASCII line charts for in/out traffic
- Full SNMPv1, v2c, and v3 support including AuthPriv (MD5, SHA, SHA-256, SHA-512 / DES, AES)
- Cross-platform — Linux, macOS, and Windows
Install
go install github.com/tonhe/flo@v0.1.0