This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
Summary
AI summaryUpdates Richer admin API, π§ Under the hood, and Clearer dashboard across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Five health buckets automatically derived from LastSeenAt: ok, late, silent, inactive, abandoned. Five health buckets automatically derived from LastSeenAt: ok, late, silent, inactive, abandoned. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
β |
| Feature | Medium |
Dashboard row dots and drawer status badge now reflect instance health (green/amber/red). Dashboard row dots and drawer status badge now reflect instance health (green/amber/red). Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
β |
| Feature | Medium |
Footer counter replaced with three colored counters: ok, late, silent; hide when fleet healthy. Footer counter replaced with three colored counters: ok, late, silent; hide when fleet healthy. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
β |
| Feature | Medium |
Admin API GetStats returns per-bucket counts (late_instances, silent_instances). Admin API GetStats returns per-bucket counts (late_instances, silent_instances). Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
β |
| Feature | Medium |
ListInstances populates a Health field on each summary. ListInstances populates a Health field on each summary. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
β |
| Feature | Medium |
Inactive instances (>7 days) automatically filtered out of counts, listings, and metrics. Inactive instances (>7 days) automatically filtered out of counts, listings, and metrics. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
β |
| Feature | Medium |
Internal scheduler runs PurgeAbandoned every 6 hours; deletes instances unseen >30 days with snapshot cleanup. Internal scheduler runs PurgeAbandoned every 6 hours; deletes instances unseen >30 days with snapshot cleanup. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
β |
| Feature | Medium |
Introduces a new health model for instances decoupled from registration lifecycle. Introduces a new health model for instances decoupled from registration lifecycle. Source: granite4.1:30b@2026-05-20-audit Confidence: low |
β |
| Bugfix | Medium |
Extended test coverage across domain, HTTP handlers, and PostgreSQL repository. Extended test coverage across domain, HTTP handlers, and PostgreSQL repository. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: low |
β |
| Refactor | Medium |
Shared healthMeta() helper on UI side unifies dots and badges look. Shared healthMeta() helper on UI side unifies dots and badges look. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: low |
β |
| Refactor | Medium |
New pure ComputeHealth function in domain layer (internal/domain/instance.go). New pure ComputeHealth function in domain layer (internal/domain/instance.go). Source: granite4.1:8b-q6_K@2026-05-20 Confidence: low |
β |
| Refactor | Low |
Introduces shared healthMeta() helper on UI side to unify dots and badge appearance. Introduces shared healthMeta() helper on UI side to unify dots and badge appearance. Source: granite4.1:30b@2026-05-20-audit Confidence: low |
β |
Full changelog
This release introduces a new health model for instances, decoupled from their registration lifecycle, so you can clearly tell active clients apart from silent or abandoned ones.
β¨ What's new
Five health buckets automatically derived from LastSeenAt:
- π’ ok β seen less than 3h ago
- π‘ late β under 24h
- π silent β under 7 days
- βͺ inactiveββ under 30 days (hidden from dashboard views)
- β« abandoned β 30 days or more (auto-purged)
Clearer dashboard
- Row dots and the drawer status badge now reflect instance health (green / amber / red) instead of registration status.
- The single "active" footer counter is replaced with three colored counters β ok / late / silent β that automatically hide when the fleet is healthy.
Richer admin API
- GetStats now returns per-bucket counts (late_instances, silent_instances).
- ListInstances populates a Health field on each summary.
- Inactive instances (>7 days) are automatically filtered out of counts, listings and metric aggregates, so silent-but-not-dead clients drop off the radar on their own.
Automatic purge of abandoned instances
- An internal scheduler runs PurgeAbandoned every 6 hours (first run 30s after startup).
- Instances unseen for 30+ days are deleted, with their snapshots cleaned up through the FK cascade.
π§ Under the hood
- New pure ComputeHealth function in the domain layer (internal/domain/instance.go), reusable across adapters and tests.
- Shared healthMeta() helper on the UI side unifies the look of dots and badges.
- Extended test coverage across domain, HTTP handlers, and the PostgreSQL repository.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Related context
Related tools
Beta — feedback welcome: [email protected]