Releases: smidley/gantry
Releases · smidley/gantry
Release list
v0.1.13
Fixed
- Overview restores recent metrics history after a page refresh.
Hosts with many disks or network interfaces now load history in smaller
batches within the existing server limits, preventing an oversized
request from leaving all four charts empty. Regression tests cover a
full page refresh, cancellation, and failed history batches.
Full Changelog: v0.1.12...v0.1.13
v0.1.12
Added
- New incidents retain their original measurements. Bounded evidence
excerpts survive incident updates and resolution, including available
device-specific disk IO. Older incidents keep their existing records
and identify attribution that predates the corrected calculations. (#70) - An optional restricted monitoring deployment runs Gantry as a
non-root user with dropped capabilities, a read-only root filesystem,
and a separate Docker API allowlist proxy. Security, TLS, and
performance guides explain deployment choices and their limits. (#70) - A project landing page and clearer Community Applications installation
guidance.
Changed
- The Overview leads with CPU, memory, network, and disk IO, arranged
two-by-two on phones. Its health summary names up to three issues with
Inspect links, and fleet targets are easier to select. Container lists
gain comfortable/compact density controls and sticky headers. (#70) - Both themes are easier to read and navigate. Stronger text and
status contrast, keyboard chart inspection, phone-safe readouts, dialog
focus handling, and Back-position restoration improve daily use. (#70) - Storage and Settings are easier to scan. Storage groups array
capacity, parity progress, and recent checks at the top. Settings adds
section navigation, clearer retention presets, database-size reporting,
and separate webhook configuration and delivery status. (#70) - Pages load their code as needed. The entry JavaScript file is about
76% smaller, with other route chunks loaded separately. Versioned assets
receive long-lived caching. (#70)
Fixed
- CPU and memory attribution uses total host capacity. Small
neighboring containers can no longer appear dominant because their
percentages were normalized against a subset. OOM contributor inference
requires host memory pressure near the event and excludes known
container memory-limit cases. (#70) - Cleanup removes only the approved objects that remain eligible.
Newly eligible objects cannot join an existing approval, and image
removal cannot silently remove unlisted parent images. (#70) - Linux browser layout checks keep their simulated live feed connected,
avoiding a reconnect banner that incorrectly shifted the measured
layout. Browser, accessibility, and real incident-pipeline coverage are
expanded. (#70)
Security
- Logout, expiry, and credential changes close existing live and log
streams. New installations require a setup owner code from local
logs or provisioning. Authentication-status failures show a retry state
while keeping data access closed. (#70) - Request-body, history-query, and concurrent log-reader limits, server
deadlines, and browser security headers bound resource use and tighten
access. (#70)
Upgrade notes
- Existing stored accounts continue to work. The owner setup code is
required only when creating the first account. - External cleanup clients must send the approved full object IDs;
mode-only prune requests are rejected. Recorded incident excerpts apply
to new incidents and cannot reconstruct measurements already missing
from older records. - The optional monitoring deployment has reduced capabilities; privileged
GPU attribution and cleanup require an appropriate deployment profile.
What's Changed
Full Changelog: v0.1.11...v0.1.12
v0.1.11
Changed
- Insight evidence opens a full page. Selecting an insight in the
Active list, the History list or on the interaction map now navigates
to#/insights/<id>instead of opening the evidence drawer. The page
has room for everything the drawer squeezed in: the statement as the
title, confidence and timing chips, the incident timeline at full
chart height beside a full-size interaction map, the evidence table,
and the dismiss presets. Rows are real links, so open-in-new-tab
works, and the page is shareable by URL. Edges on the page's own map
lead to the related insight's page. The drawer is gone. (#67) - Insights stays highlighted in the navigation while an insight's
page is open, and the same now holds for Containers on a container's
page. (#67)
What's Changed
- insights: evidence opens a full page instead of the drawer by @smidley in #67
- changelog: 0.1.11 by @smidley in #68
Full Changelog: v0.1.10...v0.1.11
v0.1.10
Changed
- The container fleet is back to the original rectangular pills. The
auto-sized blocks from 0.1.9 are gone; the strip is the same compact
pill grid it had before 0.1.8, with Running and Stopped rows, glow
driven by any hot metric (CPU, memory, network, disk or GPU), and
container names in the tooltip rather than on the block. (#64) - CPU / memory / network / IO are pinned top-right. The Overview is
one continuous two-lane flow: headline and needs-you counts, the
fleet, then the Customize modules on the left; the metrics rail heads
the right lane with storage beneath it. The dead space that used to
open between the rail and the first module is gone at every column
ratio, and on narrow screens the order is headline, fleet, rail, wide
modules, narrow modules. (#64)
Fixed
- Live IO on the container page now includes array disks. Reads and
writes to/mnt/diskNare attributed to the container through the md
layer, in the Live IO section and its graph. Mounts served by Unraid's
user-share fuse layer (non-exclusive/mnt/usershares) cannot be
attributed per container because the host daemon does the IO; those
are marked as such with a note saying why, instead of reading zero.
(#65)
What's Changed
- storage panel: attribute array-disk IO through the md layer; say plainly what shfs hides by @smidley in #65
- overview: the original pill fleet strip is back; metrics rail pinned top-right by @smidley in #64
- changelog: 0.1.10 by @smidley in #66
Full Changelog: v0.1.9...v0.1.10
v0.1.9
Changed
- Fleet blocks are smaller again, and stopped containers have their
own section. Blocks cap at about half their 0.1.8 size: a dense fleet
(a few dozen containers) renders as clean, unlabeled squares with the
name on hover, and names appear automatically on smaller fleets with
room for them. Stopped containers sit in a muted "N stopped" group
below the running grid, at the same block size, and the group is
simply absent when nothing is stopped. (#62) - The CPU, memory, network, and disk-IO tiles now sit at the top of
the Overview, pinned as a full-width row above the status headline.
The disk bay schematic moves down into the Customize band as a regular
module -- drag it or hide it like the others (its height follows your
disk count, so it has no size steps). A layout saved before this change
loads as-is, with the schematic appearing in its default spot. (#62)
What's Changed
- overview: smaller fleet blocks, a separate stopped section, metrics rail pinned on top by @smidley in #62
- changelog: 0.1.9 by @smidley in #63
Full Changelog: v0.1.8...v0.1.9
v0.1.8
Added
- The Overview's "needs you" area is now a count, not a list. One or
two chips -- "N alerts" and "N contentions" -- each a link to the list
behind it: alerts land on the Events page, which now opens with a
"Needs you" strip (the entity, a plain-language reason, and the Ack
control with its 1h/24h/7d presets), and contentions land on Insights.
Acknowledged items still stay out of the counts, and a healthy box
shows the same all-clear as before. (#58, #59) - The container fleet fills the space it has and sizes its blocks to
the fleet. Three containers render large; forty render small --
always square, and never scrolling until blocks would drop below a
legible floor. Bigger blocks earn the container's name and icon. (#58)
Changed
- A fleet block now glows for any busy metric, not just CPU. Memory,
disk IO, network, or GPU can light it, the hottest wins, and hovering
names the driver ("glowing: GPU 100%"). The floors are absolute, not
relative to the rest of the fleet, so an idle machine stays calm. The
Containers view's "Active now" filter uses the same rule, so the
glowing blocks and that list always agree. (#58) - The insight dismiss control reads "Dismiss" rather than "Not
useful". (#60)
Fixed
- An incident chart's shaded band now covers the evidence, not just
the aftermath. A sustained rule only fires once its whole evaluation
window has crossed the threshold, so the spike that caused an insight
sits before the fired timestamp -- the band shaded fired-to-resolved
and missed it. It now extends back over the rule's own window; Fired
and Resolved stay marked so the seam is still visible. (#60) - The interaction map's legend lists only the line styles actually on
screen. A single-style graph in the evidence drawer shows no legend
at all -- the drawer's own confidence badge already says it. (#60)
What's Changed
- overview: needs-you count chips, space-filling autoscaled fleet, any-metric glow by @smidley in #58
- events: a needs-you strip — the list the alerts chip promised by @smidley in #59
- insights: incident band covers the causal look-back; conditional map legend; "Dismiss" by @smidley in #60
- changelog: 0.1.8 by @smidley in #61
Full Changelog: v0.1.7...v0.1.8
v0.1.7
Added
- The Overview is now yours to arrange. A Customize mode on the
modules band: drag the Top Consumers, Recent Events, and metric-tile
cards to reorder them within and between the two columns; hide the
ones you don't want (they wait in a tray, one click to bring back);
drag the divider between the columns to change the split (the keyboard
works too); and set the two list-shaped cards to compact, normal, or
tall. Everything saves on the box itself, so the layout follows you to
any browser, and Reset restores the shipped arrangement. A saved
layout keeps working when a future release adds a card -- the new card
simply appears in its default spot. The status headline and fleet
strip stay pinned: "needs you" can't be buried. Editing is desktop-
only for now; the saved order still applies to the stacked mobile
view. (#52, #55) - An insight's evidence drawer now shows the incident visually.
Clicking an insight -- history or active -- shows the interaction map
as of that insight's own moment (every insight active at the same
time, the clicked one emphasized, drawn from stored records, so it
works even for containers that no longer exist) and charts of what the
metrics actually did: the victim's suffering signal and the culprit's
driving signal across the incident window, with the active span shaded
and Fired/Resolved marked. A window older than what retention still
holds says so plainly instead of showing an empty chart. (#54, #56)
Fixed
- Following a container's logs no longer goes silent when the
container restarts. Docker ends a follow stream when a container
exits, and Gantry never re-attached. A follow now resumes on its own --
across plain restarts and across updates that re-create the container
under the same name -- with no duplicated and no missing lines, and a
marker line shows where the restart happened. (#53)
What's Changed
- overview: rearrangeable modules with a Customize edit mode by @smidley in #52
- logs: keep a follow flowing across container restarts and re-creates by @smidley in #53
- insights: show the interaction map for the clicked insight's moment in the evidence drawer by @smidley in #54
- overview: column-ratio and stepped card heights in Customize by @smidley in #55
- insights: chart the incident's own metrics in the evidence drawer by @smidley in #56
- changelog: 0.1.7 by @smidley in #57
Full Changelog: v0.1.6...v0.1.7
v0.1.6
Test-suite reliability only -- nothing about the shipped app changes.
Fixed
- The Playwright suite no longer flakes under full-suite parallel
load. Two one-shot reads were hardened: the metrics-gpu-sum spec
re-requests its captured/api/seriesbody through Playwright's own
HTTP client instead of trusting Chromium's best-effort CDP body cache
(the same eviction mode #46 hardened the live-seed specs against in
0.1.5), and the CPU core-budget ribbon spec retries its width
measurement viatoPassinstead of sampling once mid-glide, where a
re-ranked segment lands at full width while its neighbors are still
easing toward their new sizes. Both still fail hard on a real
regression.
What's Changed
- CI: harden metrics-gpu-sum spec for 2-core runners by @smidley in #48
- tests: deflake the core-budget ribbon sum spec (mid-glide reads) by @smidley in #49
- changelog: 0.1.6 by @smidley in #50
Full Changelog: v0.1.5...v0.1.6
v0.1.5
Fixed
- A stale copy of the install template can no longer crash Gantry at
first start. The template hardened the container with
--cap-drop=ALLand re-added the one capability Gantry needs to write
its database into Unraid's array-owned appdata folder -- but a stale
Community Applications copy of the template kept the drop while losing
the re-add, and a fresh install with that copy exited immediately with
unable to open database file (14). The template and docs now keep
Docker's default capability set (plusSYS_PTRACE), so there is no
explicit re-add left to lose. Existing installs keep working as-is;
the defaults trade a bit of extra hardening for an install that can't
break this way -- negligible next to the Docker socket the container
already mounts. - Demo mode starts reliably again.
GANTRY_FAKE_DATA=1created its
fake notification spool in the system temp directory and treated
failure as fatal, so on an image with no usable temp directory the
container loggedbuild alert dispatcher: create fake notify dirand
exited before ever coming up. The spool now falls back to a
fake-notifyfolder next to the database -- a path already proven
writable -- and if even that can't be created, Gantry starts anyway and
shows the same unwritable-spool hint a real box without a/notify
mount gets. A demo aid can no longer take down startup.
What's Changed
- template: drop --cap-drop=ALL so a fresh install can't miss the config-write cap by @smidley in #44
- fake mode: never let the notify spool kill startup (no /tmp) by @smidley in #45
- CI: harden live-seed specs for 2-core runners by @smidley in #46
- changelog: 0.1.5 by @smidley in #47
Full Changelog: v0.1.4...v0.1.5
v0.1.4
Fixed
- A chart's hover readout no longer sticks after the pointer leaves.
On a container's detail page the metric charts share one crosshair, and
a live update repaints them every frame. Leaving a chart could lose a
race against that repaint and strand the "N ago" readout, which then
reappeared and held on every chart with the mouse well away. The scrub
now releases to live as soon as the pointer is off every chart. - The Community Applications template can be refreshed again. Its
<TemplateURL>pointed at the wrong path and returned 404, which
stopped Unraid from ever pulling template updates. Nothing about an
installed container changes; only the template's own update check.
What's Changed
Full Changelog: v0.1.3...v0.1.4