Repository navigation
Releases: c0m4r/kula
Releases · c0m4r/kula
Release list
0.21.0
[0.21.0] - 2026-10-01
Added
- Clock picker for custom range times
- Download the chart as PNG image
- CSS and JS assets auto-minification at startup with
web.minify_assets: true - TV mode under Focus Mode
- Space Invaders: graphics settings and restart option
- tui: historical data charts
Changed
- The custom range picker uses one month calendar instead of two side-by-side
- Retained history now limits only which days can be picked
- Unused CSS/JS cleanup
- The dashboard now loads one trimmed Chart.js bundle instead of three scripts
- The dashboard paints sooner: Chart.js no longer blocks the first paint, and charts are
built once the page is on screen - The Inter font ships as WOFF2 (349 KB instead of 875 KB, same glyphs)
- Static assets are revalidated with an ETag instead of downloaded again on every visit;
an unchanged server answers 304 Not Modified - tui: UI/UX improvements
Fixed
- The Focus Mode bar ("Select graphs…", Hide gauges, Done, Cancel) is now translated
- Space Invaders: fixed game stability on firefox
- Layout shifts while the dashboard loads: the gauges, chart headers and sampling info no
longer push the page down when they fill in - A light-theme dashboard no longer shows a dark first frame;
global.default_themealso
applies before the config request finishes - System Info no longer grades fans and voltages with temperature thresholds, and uptime refreshes
- System Info no longer stretches a lone section tab
- The remaining hard-coded dashboard strings are translated
- A custom range time inside a DST gap now shows the time that actually loads
- A corrupt record length in a tier file no longer allocates up to the whole ring before the read fails
0.20.3
[0.20.3] - 2026-09-29
Fixed
- Min/Max charts stopped drawing new data on short live windows (for example 5 minutes on a
narrow screen or a list-layout card) whose history the server returned in bucketed form:
live samples without extrema were appended as blank points and flagged "Min/Max unavailable".
The dashboard now streams only onto native raw views and refreshes bucketed views instead - Selecting a window without Min/Max (such as raw history or an empty refresh) no longer
silently switches the rest of the session to Avg; the Min/Max choice returns as soon as a
view supports it again
0.20.2
[0.20.2] - 2026-09-20
Fixed
- Avg/Min/Max availability flickering on raw history windows: clipping the right edge
no longer certifies synthesized extrema, so native-resolution responses consistently
staydata-only instead of depending on whether the lookahead scan saw a newer record - Raw history windows no longer report "Min/Max unavailable" in detailed tooltips when
the response never offered Min/Max aggregation
0.20.1
0.20.0
[0.20.0] - 2026-09-18
Added
- System info page with
/api/system-infoendpoint - Persistent disk IDs from sysfs, stable disk selectors and
kula_disk_infomappings (#46) kula diskshelper to list available disks and partitions with their persistent IDs (#46)- Live, Back, Forward and Zoom out navigation with shareable historical ranges
- Drag-selection, Ctrl+wheel and touch pan/pinch
- Keyboard navigation and a shared crosshair with timestamp pinning
- Min–Max bands and detailed history tooltips with exact timestamps and coverage
- Local/UTC display and optional Data/CSV controls in Customization
Changed
- Disk Prometheus
devicelabels now use persistent IDs (#46) - Smoother chart rendering and lower-memory history queries
- Custom and zoomed ranges, including device selections, stay frozen while live status updates
- Long live windows retain the selected history during refreshes and failures
- Zoom-in stops at 12 data points, excluding gaps, with a sampling-aware minimum duration
- Fresh installs default to Avg with straight, unfilled lines and one principal Min–Max band
- Grid/list changes preserve chart data and legend selections
- Tier naming unification
- Inspect feature improvements
- Implemented a unified rounding campaign while preserving full precision in storage and APIs
- UI performance improvements
- Aggregation optimization
Fixed
- Expired live sessions now return to login and cancel pending history loads
- Signing in restores the selected range without reloading the page
- Disk history and rates mixing physical drives when kernel device names change;
old name-only history remains separate from new identified series - History aggregation, bucket boundaries and coverage across storage tiers, collection gaps
and missing metrics; older rollups remain approximate - Avg/Min/Max controls hidden by legacy history: restore supported CPU, load, memory and
swap extrema through read-time compatibility without rewriting tier files; unsupported
extrema remain gaps, with availability notices and source details in tooltips and CSV exports - History caching and point limits, including sub-second requests and concurrent updates
- Historical points, extrema and sensor identities lost during zoom, redraws or live updates;
missing observations now retain line breaks and shaded gap indicators - Slow history responses overwriting newer ranges or active zoom gestures
- Date-picker, Focus Mode, chart-label, localization and crosshair accessibility issues
- Crashes on WebSocket disconnects, short container IDs and malformed history, plus spurious
WebSocket errors on logout - Increased
storage.tiers[].max_sizenow takes effect without discarding history;
shrinking an existing tier still requires manual action - fix: bound offscreen chart state and release split cards (#50)
Security
- Fixed login rate limiting that allowed targeted account lockout and global login denial
- Added an absolute session lifetime to prevent indefinite renewal
Thanks @hawkff @AtmanActive
0.19.0
[0.19.0] - 2026-08-31
Added
- customization menu for appearance and accessibility preferences
Changed
- TUI redesign
- golang and deps updates
- container metrics: one multi-series chart per metric type with app filter
- dark theme readability (#45)
Fixed
- battery graph out of order after exiting focus mode
- battery/PSU metrics not being written to storage
- missing
split_by_devicetranslation - frosted top bar
Thanks @floriancheval @solsticedhiver
0.18.8
[0.18.8] - 2026-07-29
Changed
- sticky time range controls (#41)
- update github.com/mattn/go-isatty v0.0.22 => v0.0.24
- update github.com/mattn/go-runewidth v0.0.24 => v0.0.27
Fixed
- add missing expand button to dynamically created charts (#40)
- keep mobile time preset menus usable on short viewports
Thank @floriancheval