What's changed
A reworked Silences tab and a round of PostgreSQL multi-replica reliability fixes.
Added
- Silences card & list redesign. Silence tiles now have a clear
hierarchy: a compact identity zone (urgency dot, cluster, by/affected line,
quiet matcher chips, comment as a short quote) over a lifetime bar that
tracks thestartsAt → endsAtwindow with a remaining-time label. The list
view switched to dense rows — roughly a third of the previous height, so
many more silences fit on screen. - Silence creation time everywhere. The create / last-edit timestamp
(Alertmanager'supdatedAt) is now shown next to expiry in the card, group
card and list views. - Silences sorting controls. An ASC/DESC direction toggle next to the
Expires/Created buttons, and explicit sort now takes precedence over the
active/pending/expired lifecycle ordering, so sorting by a date puts that
date's newest/oldest entry where you expect it. - "By:" creator filter in the silences toolbar to narrow the list to a
single silence author. - Brand colophon in Settings. The version badge moved into a pinned
footer with the Jarvis logo/wordmark, version, licence and copyright line;
the settings sheet is now a sensible 512px wide instead of half the screen.
Fixed
- Claim banner flicker on multi-replica PostgreSQL. Claiming an alert
briefly showed the banner, then lost it until the next poll cycle — a
follower's snapshot rebuild overwrote the just-applied claim. Followers now
re-read active claims from the shared database on every snapshot rebuild. - "Created" sort for silences read the schedule start (
startsAt, which
can be in the future for pending silences), landing fresh silences
mid-list. It now sorts byupdatedAt. - Deterministic alert snapshot ordering —
GET /api/v1/alerts,
/api/v1/alerts/groupsand the WSalerts_updatebroadcast now return
alerts in a stable order (startsAtdesc, then fingerprint, then cluster),
so alert rows inside a group no longer flicker on each refresh.
Changed
- Go toolchain upgraded to 1.26 (
golang.org/x/cryptov0.56.0 requires
it); CI, CodeQL and the container images move to Go 1.26 as well.
Full diff: v1.10.1...v1.11.0
Container image
docker pull ghcr.io/kj187/jarvis:1.11.0Digest: sha256:d3c9acfc76afe696f275878a316ea578f6f413d328e86e3c5e870c17efc58cb1
Verify image signature (cosign)
cosign verify ghcr.io/kj187/jarvis@sha256:d3c9acfc76afe696f275878a316ea578f6f413d328e86e3c5e870c17efc58cb1 \
--certificate-identity-regexp="https://github.com/kj187/jarvis/.*" \
--certificate-oidc-issuer="https://token.actions.githubusercontent.com"Verify build provenance (GitHub attestation)
gh attestation verify oci://ghcr.io/kj187/jarvis:1.11.0 --repo kj187/jarvisHelm chart
helm install jarvis oci://ghcr.io/kj187/charts/jarvis --version 1.7.6Verify chart signature (cosign)
cosign verify ghcr.io/kj187/charts/jarvis:1.7.6 \
--certificate-identity-regexp="https://github.com/kj187/jarvis/.*" \
--certificate-oidc-issuer="https://token.actions.githubusercontent.com"SBOM
The SPDX SBOM is attached to this release (sbom.spdx.json) and also
embedded in the image manifest (docker buildx imagetools inspect).