Skip to content

Releases: smidley/gantry

v0.1.13

Choose a tag to compare

@github-actions github-actions released this 08 Sep 02:31

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

Choose a tag to compare

@github-actions github-actions released this 08 Sep 02:00

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

  • Improve app usability, incident evidence, and security by @smidley in #70

Full Changelog: v0.1.11...v0.1.12

v0.1.11

Choose a tag to compare

@github-actions github-actions released this 03 Sep 21:48
f063daf

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

Choose a tag to compare

@github-actions github-actions released this 03 Sep 17:53
08607dc

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/diskN are 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/user shares) 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

Choose a tag to compare

@github-actions github-actions released this 03 Sep 04:24
0ebf738

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

Choose a tag to compare

@github-actions github-actions released this 03 Sep 02:17
a3f742b

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

Choose a tag to compare

@github-actions github-actions released this 02 Sep 22:53
f5bbaaa

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

Choose a tag to compare

@github-actions github-actions released this 02 Sep 03:05
324dab1

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/series body 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 via toPass instead 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

Choose a tag to compare

@github-actions github-actions released this 02 Sep 01:13
d416a2d

Fixed

  • A stale copy of the install template can no longer crash Gantry at
    first start.
    The template hardened the container with
    --cap-drop=ALL and 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 (plus SYS_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=1 created 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 logged build alert dispatcher: create fake notify dir and
    exited before ever coming up. The spool now falls back to a
    fake-notify folder 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

Choose a tag to compare

@github-actions github-actions released this 01 Sep 23:49

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

  • charts: fix hover readout sticking after the mouse leaves a chart by @smidley in #43

Full Changelog: v0.1.3...v0.1.4