diff --git a/app.py b/app.py
index a4036ad..d52f600 100644
--- a/app.py
+++ b/app.py
@@ -130,6 +130,7 @@ def index():
last_check = db.get_state('last_check', 'Never')
snapshot = json.loads(snapshot_raw) if snapshot_raw else {}
suppressions = db.get_active_suppressions()
+ recent_resolved = db.get_recent_resolved(hours=24, limit=10)
return render_template(
'index.html',
user=user,
@@ -138,6 +139,7 @@ def index():
snapshot=snapshot,
last_check=last_check,
suppressions=suppressions,
+ recent_resolved=recent_resolved,
)
diff --git a/static/style.css b/static/style.css
index 9735f8e..65d5662 100644
--- a/static/style.css
+++ b/static/style.css
@@ -1524,3 +1524,73 @@ a:hover { text-decoration: underline; text-shadow: var(--glow-amber); }
border-radius: 2px;
font-size: .88em;
}
+
+/* ── Link health summary panel ────────────────────────────────────── */
+.link-summary-panel {
+ background: var(--bg2);
+ border: 1px solid var(--border);
+ border-radius: 2px;
+ padding: 12px 16px;
+ margin-bottom: 12px;
+}
+
+.link-summary-panel.link-summary-has-alerts {
+ border-color: var(--amber);
+}
+
+.link-summary-grid {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 20px;
+ align-items: flex-end;
+}
+
+.link-summary-stat {
+ min-width: 80px;
+}
+
+.link-summary-stat.lss-alert .lss-label {
+ color: var(--amber);
+}
+
+.lss-label {
+ display: block;
+ font-size: .62em;
+ color: var(--text-muted);
+ text-transform: uppercase;
+ letter-spacing: .05em;
+ margin-bottom: 2px;
+}
+
+.lss-value {
+ font-size: 1.2em;
+ font-weight: bold;
+ color: var(--text);
+}
+
+.lss-sub {
+ font-size: .7em;
+ color: var(--text-muted);
+ font-weight: normal;
+}
+
+/* ── Recently resolved table ──────────────────────────────────────── */
+.row-resolved td {
+ opacity: 0.75;
+}
+
+.badge-resolved {
+ background: var(--bg3);
+ color: var(--text-muted);
+ border-color: var(--border);
+ text-decoration: line-through;
+}
+
+.section-badge-resolved {
+ background: var(--bg3);
+ color: var(--text-muted);
+ border: 1px solid var(--border);
+ font-size: .65em;
+ padding: 2px 7px;
+ border-radius: 10px;
+}
diff --git a/templates/index.html b/templates/index.html
index 3f8ce62..49d9eb1 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -250,6 +250,44 @@
+
+{% if recent_resolved %}
+Recently Resolved
+ {{ recent_resolved | length }} in last 24h
+
+
+
+
+
+
+
+ {% for e in recent_resolved %}
+ Sev
+ Type
+ Target
+ Detail
+ Resolved
+ Duration
+
+
+ {% endfor %}
+
+ {{ e.severity }}
+ {{ e.event_type | replace('_', ' ') }}
+ {{ e.target_name }}
+ {{ e.target_detail or '–' }}
+
+ {{ e.resolved_at }}
+
+ –
+