This website requires JavaScript.
0da88c7076
fix(plugins): show load-failure reasons on the page the banner links to
dev
bvandeusen and Claude Opus 5
2026-08-13 08:36:35 -04:00
8c50ff242c
fix(db): ride out a brief database outage mid-request; explain it if it persists
bvandeusen and Claude Opus 5
2026-08-13 08:23:01 -04:00
59fece855d
fix(plugins): remove the phantom http plugin; surface orphaned plugin settings
bvandeusen and Claude Opus 5
2026-08-12 23:41:06 -04:00
6c9b89390a
fix(db): survive a database restart and a not-yet-ready database
bvandeusen and Claude Opus 5
2026-08-12 23:21:58 -04:00
548a3f711a
Add renovate.json
renovate/configure
Renovate Bot
2026-08-04 04:01:54 +00:00
4b97bd01ea
docs: Fabled-Git, not Forgejo, in ci-requirements
bvandeusen
2026-07-31 23:42:38 -04:00
8c2d994e4c
docs(host-agent): document container-log collection [M79 step 6]
bvandeusen and Claude Opus 4.8
2026-07-19 19:07:53 -04:00
414c8efa98
fix(test): avoid autobegin-vs-begin collision in the log toggle/exclude test [M79 step 5]
bvandeusen and Claude Opus 4.8
2026-07-19 19:04:25 -04:00
8f1c8c5cf7
feat(docker): container log viewer + Settings controls [M79 step 5]
bvandeusen and Claude Opus 4.8
2026-07-19 18:58:20 -04:00
07a841d91e
feat(docker): per-container size+age log ring rotation [M79 step 4]
bvandeusen and Claude Opus 4.8
2026-07-19 18:51:12 -04:00
a8de3570fe
feat(docker): persist pushed container logs into docker_logs [M79 step 3]
bvandeusen and Claude Opus 4.8
2026-07-19 18:46:31 -04:00
45565b2c01
feat(docker): docker_logs table + docker_009 migration [M79 step 2]
bvandeusen and Claude Opus 4.8
2026-07-19 18:43:14 -04:00
c95194747d
feat(host-agent): collect container logs (incremental push, byte-capped) [M79 step 1]
bvandeusen and Claude Opus 4.8
2026-07-19 18:38:06 -04:00
a9b3b11327
feat(docker): admin-gated per-host prune buttons on the image/disk page
bvandeusen and Claude Opus 4.8
2026-07-19 16:22:30 -04:00
e8ac99174a
feat(ansible): parameterize docker_prune with prune_target (containers/images/system)
bvandeusen and Claude Opus 4.8
2026-07-19 16:09:39 -04:00
01f5805139
fix(ci): serialize CI per ref + tag images at build time (fd race #1093 )
bvandeusen and Claude Opus 4.8
2026-07-19 12:52:29 -04:00
001cbafe56
Merge pull request 'Ansible schedule form: structured playbook-variable fields + first-item dropdown defaults' (#2 ) from dev into main
main
bvandeusen
2026-06-30 23:44:04 -04:00
524fd1f509
feat(ansible): default source/playbook dropdowns to the first item
bvandeusen and Claude Opus 4.8
2026-06-30 23:35:01 -04:00
efc11c1837
feat(ansible): structured playbook-variable fields on the schedule form
bvandeusen and Claude Opus 4.8
2026-06-30 23:03:54 -04:00
f40063a74d
feat(reliability): fd-leak rails — self-watchdog, poll-overlap guard, fd tests
bvandeusen and Claude Opus 4.8
2026-06-24 10:36:53 -04:00
0c5a1573da
fix(unifi): close the cached client before discarding it (fd leak)
bvandeusen and Claude Opus 4.8
2026-06-24 09:38:41 -04:00
2df5fc94a3
fix(snmp): close SnmpEngine after each poll to stop fd leak
bvandeusen and Claude Opus 4.8
2026-06-24 09:10:30 -04:00
b1aabb7dfa
feat(snmp): explicit host binding (host_id / steward_host) with implicit fallback
bvandeusen and Claude Opus 4.8
2026-06-21 13:47:20 -04:00
24df8458ea
feat(docker): swarm-aware container views — collapse replicas, show host, surface agent-less tasks
bvandeusen and Claude Opus 4.8
2026-06-21 12:50:15 -04:00
431f804037
fix(docker): move dedup helper to a model-free module (CI green)
bvandeusen and Claude Opus 4.8
2026-06-20 23:07:33 -04:00
e289b6c49f
fix(docker): dedup widget counts across swarm managers; show failures not stopped
bvandeusen and Claude Opus 4.8
2026-06-20 23:02:19 -04:00
0c055ed6fa
fix(docker): reap vanished containers; clarify the resources widget
bvandeusen and Claude Opus 4.8
2026-06-20 22:06:43 -04:00
51682f130a
feat(snmp): surface SNMP device readings on the matching host page
bvandeusen and Claude Opus 4.8
2026-06-20 21:22:39 -04:00
8af297670e
feat(metrics): roll plugin_metrics up to hourly to bound storage
bvandeusen and Claude Opus 4.8
2026-06-20 21:08:30 -04:00
b0d3e83bdd
feat(hosts): true live vitals strip; agent panel becomes management-only
bvandeusen and Claude Opus 4.8
2026-06-20 19:49:01 -04:00
a35c369dd4
polish(ui): sidebar nav a11y + scroll/focus refinements (nav slice 3)
bvandeusen and Claude Opus 4.8
2026-06-20 19:14:49 -04:00
28c9a4dd2f
fix(docker): collapse Swarm view per-cluster so multi-manager doesn't duplicate
bvandeusen and Claude Opus 4.8
2026-06-20 12:46:57 -04:00
10dfd8ffd2
fix(host_agent): update full-metrics charts in place to kill refresh flicker
bvandeusen and Claude Opus 4.8
2026-06-20 12:25:51 -04:00
9e4f1983f8
feat(host_agent): lazy-load full-metrics charts + live-poll current state
bvandeusen and Claude Opus 4.8
2026-06-20 12:18:39 -04:00
a78af23793
refactor(host_agent): extract metric-query helpers to a model-free module
bvandeusen and Claude Opus 4.8
2026-06-19 23:32:32 -04:00
aff0c36d37
perf(host_agent): aggregate metric history in SQL; DISTINCT ON for latest
bvandeusen and Claude Opus 4.8
2026-06-19 23:23:45 -04:00
6d08db0d89
feat(hosts): rework host summary layout to use horizontal space
bvandeusen and Claude Opus 4.8
2026-06-19 23:12:13 -04:00
3a54d6d71d
perf(metrics): index plugin_metrics for host/dashboard reads
bvandeusen and Claude Opus 4.8
2026-06-19 23:08:29 -04:00
7d144780df
fix(host_agent): TB/PB byte scaling + rebalance the full-metrics layout
bvandeusen and Claude Opus 4.8
2026-06-19 23:01:56 -04:00
2545e8c6ce
fix(docker): widen memory byte columns to BIGINT (int32 overflow on ingest)
bvandeusen and Claude Opus 4.8
2026-06-19 22:50:32 -04:00
c8b6719b37
feat(ui): plugin get_nav() hook → sidebar Infrastructure links (slice 2)
bvandeusen and Claude Opus 4.8
2026-06-19 18:00:12 -04:00
95ebdf7045
feat(ui): replace flat top nav with a grouped left sidebar (slice 1)
bvandeusen and Claude Opus 4.8
2026-06-19 15:34:47 -04:00
0940dc6972
feat(crypto): fail loudly on unpersistable secret key; flag undecryptable secrets
bvandeusen and Claude Opus 4.8
2026-06-19 13:52:27 -04:00
4fc8c96c41
fix(snmp): bundle pysnmp in image and port poller to the asyncio HLAPI
bvandeusen and Claude Opus 4.8
2026-06-19 13:28:07 -04:00
88091936c5
fix(ui): unify header/breadcrumb treatment, drop redundant back buttons
bvandeusen and Claude Opus 4.8
2026-06-18 23:07:12 -04:00
626ba69934
test(docker): parse-check templates + smoke routes/_human_bytes (milestone 77 #943 )
bvandeusen and Claude Opus 4.8
2026-06-18 22:04:11 -04:00
9615f9abcd
feat(docker): group containers by compose/swarm + enrich widget (milestone 77 #942 )
bvandeusen and Claude Opus 4.8
2026-06-18 22:01:12 -04:00
114262dbf9
feat(docker): swarm topology view + image/disk usage page (milestone 77 #942 )
bvandeusen and Claude Opus 4.8
2026-06-18 21:58:19 -04:00
3e4e35de96
feat(docker): container detail page + lifecycle timeline (milestone 77 #942 )
bvandeusen and Claude Opus 4.8
2026-06-18 21:54:54 -04:00
277eb40165
fix(docker): close read txn before second begin in disk-usage test
bvandeusen and Claude Opus 4.8
2026-06-18 21:54:54 -04:00
a840d6f823
feat(docker): collect + persist /system/df image/disk usage (agent 1.6.0)
bvandeusen and Claude Opus 4.8
2026-06-18 21:51:14 -04:00
faecac3ec6
feat(docker): retention + hourly rollup for metrics/events with Settings windows
bvandeusen and Claude Opus 4.8
2026-06-18 21:40:57 -04:00
578cc33cc0
feat(docker): ingest swarm topology + lifecycle events + health/restart alerts
bvandeusen and Claude Opus 4.8
2026-06-18 21:07:40 -04:00
448258c5b4
feat(docker): agent manager-only swarm collector (AGENT_VERSION 1.5.0)
bvandeusen and Claude Opus 4.8
2026-06-18 20:57:18 -04:00
fee654b53a
feat(docker): schema for lifecycle events + swarm topology
bvandeusen and Claude Opus 4.8
2026-06-18 20:47:46 -04:00
82c3d2cf36
feat(docker): per-container enrichment — health, restarts, exit code, I/O, grouping
bvandeusen and Claude Opus 4.8
2026-06-18 20:37:40 -04:00
7b80552a7d
feat(docker): per-host collection via the host agent; drop central scrape
bvandeusen and Claude Opus 4.8
2026-06-18 17:54:36 -04:00
35f658b573
feat(monitors): unify ping/dns/http into one Monitor entity + custom targets
bvandeusen and Claude Opus 4.8
2026-06-18 08:56:13 -04:00
591706bd39
feat(settings): configurable monitoring thresholds
bvandeusen and Claude Opus 4.8
2026-06-17 20:52:58 -04:00
eefa38cc75
feat(host_agent): in-widget 1h/6h/24h time-range toggle on history graph
bvandeusen and Claude Opus 4.8
2026-06-17 20:44:56 -04:00
e7b96fbfa7
feat(host_agent): surface network, disk I/O, and temperature in fleet widget
bvandeusen and Claude Opus 4.8
2026-06-17 20:43:33 -04:00
e446b7099e
feat(dashboard): threshold colors on Hosts-Overview ping + 24h uptime
bvandeusen and Claude Opus 4.8
2026-06-17 20:41:44 -04:00
ae03f09234
feat(dashboard): merge top summary strip + Status widget into one Overview
bvandeusen and Claude Opus 4.8
2026-06-17 20:40:26 -04:00
10808c1c5d
fix(dashboard): inline cpu sparkline, history graph host label + stable y-axis
bvandeusen and Claude Opus 4.8
2026-06-17 16:44:31 -04:00
ebc67723d2
feat(host_agent): horizontal zebra-striped fleet widget rows
bvandeusen and Claude Opus 4.8
2026-06-17 16:31:27 -04:00
fed9973899
fix(dashboard): downsample history graphs + readable tooltip time
bvandeusen and Claude Opus 4.8
2026-06-17 16:18:50 -04:00
e58c86cf01
feat(dashboard): widget readability — name-per-line, fill graphs, container breakpoints
bvandeusen and Claude Opus 4.8
2026-06-17 16:14:59 -04:00
cb47b5e977
feat(dashboard): per-metric sparklines in the Host Agent — Resources widget
bvandeusen and Claude Opus 4.8
2026-06-17 16:06:05 -04:00
88dca32d3c
feat(dashboard): edit in place over the live dashboard with a bottom widget drawer
bvandeusen and Claude Opus 4.8
2026-06-17 15:42:10 -04:00
988c13d51f
feat(dashboard): phase C richer panels — host time-series graph + cpu sparklines
bvandeusen and Claude Opus 4.8
2026-06-17 15:18:50 -04:00
525f6eedbd
feat(dashboard): phase B drag-resize grid (Gridstack) replacing masonry
bvandeusen and Claude Opus 4.8
2026-06-17 15:04:00 -04:00
5f92340c0c
feat(dashboard): phase A widget clarity — threshold colours, host links, tooltips
bvandeusen and Claude Opus 4.8
2026-06-17 14:49:49 -04:00
2ea8c2f9af
feat(ansible): bundled system_update maintenance playbook
bvandeusen and Claude Opus 4.8
2026-06-17 14:15:33 -04:00
88afad9de4
feat(hosts): re-provision action on reporting hosts; Ansible off the edit page
bvandeusen and Claude Opus 4.8
2026-06-17 13:08:35 -04:00
71715c38d8
feat(auth): return to the original view after an auth-expiry redirect
bvandeusen and Claude Opus 4.8
2026-06-17 13:05:37 -04:00
2594ca517d
fix(ansible): clear error when the managed SSH key can't be decrypted
bvandeusen and Claude Opus 4.8
2026-06-17 12:52:24 -04:00
e0253fba48
fix(ansible): surface run failure reason; widget audit cleanup
bvandeusen and Claude Opus 4.8
2026-06-17 12:46:08 -04:00
609bd78af2
feat(dashboard): unified Hosts widget + grouped widget picker
bvandeusen and Claude Opus 4.8
2026-06-17 12:00:12 -04:00
42f7840c26
feat(ansible): steward:category + steward:confirm playbook metadata
bvandeusen and Claude Opus 4.8
2026-06-17 11:35:35 -04:00
b32fce1d74
docs: Steward playbook-authoring conventions reference
bvandeusen and Claude Opus 4.8
2026-06-17 11:26:56 -04:00
e5f6a11f94
feat(ansible): playbooks self-describe via "# description:" comment
bvandeusen and Claude Opus 4.8
2026-06-17 11:25:25 -04:00
a0d1c5f07c
feat(host_agent): sparklines + load/core + PSI on the host panel
bvandeusen and Claude Opus 4.8
2026-06-17 11:10:46 -04:00
36212dc58b
feat(host_agent): at-a-glance disk = root (/) not "worst"; metric tooltips
bvandeusen and Claude Opus 4.8
2026-06-17 11:05:43 -04:00
f80f6c87e8
feat(auth): capture Steward URL during first-run admin setup (OOBE)
bvandeusen and Claude Opus 4.8
2026-06-17 10:15:28 -04:00
7e6e63521b
fix(host_agent): provision/deploy vars shadowed by play-var precedence
bvandeusen and Claude Opus 4.8
2026-06-17 10:11:30 -04:00
ad726e65f3
feat(ansible): dropdown playbook selection + auto-populated variable fields
bvandeusen and Claude Opus 4.8
2026-06-17 10:02:15 -04:00
bb90411f00
fix(host_agent): gate "deployed" on agent check-in; fail no-op runs
bvandeusen and Claude Opus 4.8
2026-06-17 09:50:11 -04:00
a92d1995d5
fix(ansible): write DB inventory as static YAML, not dynamic --list JSON
bvandeusen and Claude Opus 4.8
2026-06-17 09:28:31 -04:00
9ce4cce5c5
feat(crypto): name the failing setting in wrong-key decrypt log
bvandeusen and Claude Opus 4.8
2026-06-17 08:05:47 -04:00
cfe6b4c25f
fix(host_agent): deploy/provision 500 — double-begin on session
bvandeusen and Claude Opus 4.8
2026-06-16 22:53:13 -04:00
17c9c875e4
refactor(hosts): remove legacy host_agent redirects/paths (no back-compat)
bvandeusen and Claude Opus 4.8
2026-06-16 21:20:11 -04:00
7ef1af2184
feat(settings): Phase 4 — capabilities vs integrations + nav cleanup
bvandeusen and Claude Opus 4.8
2026-06-16 20:57:10 -04:00
f29255039d
feat(hosts): Phase 2+3 — agent column, fold fleet + management into Hosts
bvandeusen and Claude Opus 4.8
2026-06-16 20:51:33 -04:00
8bdf07f709
feat(hosts): Phase 1 — host detail hub page (unify host IA)
bvandeusen and Claude Opus 4.8
2026-06-16 20:29:34 -04:00
6a8146b544
fix(ansible): replace steward key on reprovision + distinct agent update path
bvandeusen and Claude Opus 4.8
2026-06-16 19:22:12 -04:00
a996cc6908
feat(ansible): per-variable fields in the playbook run form
bvandeusen and Claude Opus 4.8
2026-06-16 17:54:01 -04:00
0318f6423f
feat(ansible): host provisioning via steward managed SSH identity
bvandeusen and Claude Opus 4.8
2026-06-16 17:17:38 -04:00
6e91bdc82b
feat(security): encrypt sensitive settings at rest (Fernet)
bvandeusen and Claude Opus 4.8
2026-06-16 15:22:43 -04:00
88857be24e
feat(ansible): runner robustness — cancel, concurrency, structured results, retention
bvandeusen and Claude Opus 4.8
2026-06-16 14:51:04 -04:00
389002fc6f
feat(ui): breadcrumb navigation across nested pages
bvandeusen and Claude Opus 4.8
2026-06-16 14:22:19 -04:00