This website requires JavaScript.
fda54a3c31
feat(status): what is wrong first — down monitors and active alerts, and since when (#5120 )
bvandeusen and Claude Opus 5.5
2026-10-06 14:40:45 -04:00
e864cd4b6c
feat(ui): share view on steward.css; breadcrumbs everywhere they belong; focus ring; tables scroll in their card (#5095 )
bvandeusen and Claude Opus 5.5
2026-10-06 14:37:39 -04:00
477b05b9d0
feat(ui): status_badge, status_dot, stat_tile, empty_state, page_header, icon_button and form classes (#5094 )
bvandeusen and Claude Opus 5.5
2026-10-06 14:34:21 -04:00
f47fc23265
fix(ui): delete prompts use data-confirm, so a quote in a name no longer runs script (#5099 )
bvandeusen and Claude Opus 5.5
2026-10-06 14:30:13 -04:00
737d699308
fix(ci): integration finds its own Postgres when another repo's job shares the runner (#5104 )
bvandeusen and Claude Opus 5.5
2026-10-06 14:30:13 -04:00
bf08169176
feat(ui): shared |bytes |rate |duration |ago filters and status_class from Settings → Thresholds (#5093 )
bvandeusen and Claude Opus 5.5
2026-10-06 14:25:06 -04:00
65411d3ce8
feat(ui): base stylesheet on the Steward design-system tokens; readable status colours (#5092 )
bvandeusen and Claude Opus 5.5
2026-10-06 14:18:49 -04:00
bd28d3b0e7
feat(ui): serve htmx, Chart.js, Gridstack and the house fonts from Steward itself (#5091 )
bvandeusen and Claude Opus 5.5
2026-10-06 14:12:31 -04:00
dc22a35e9d
feat(alerts): alert history page — transitions, deliveries, mutes and actions (#5066 )
bvandeusen and Claude Opus 5.5
2026-10-06 14:06:04 -04:00
c9f5c049db
feat(alerts): renames carry their alerts — monitor and host renames move rules, windows and history (#5065 )
bvandeusen and Claude Opus 5.5
2026-10-06 14:02:43 -04:00
88d34a3827
fix(notifications): a line break in a rule name no longer stops the alert email (#5064 )
bvandeusen and Claude Opus 5.5
2026-10-06 13:58:59 -04:00
35fca57397
feat(notifications): JSON-safe webhook template, SMTP timeout and implicit TLS, test-send buttons (#5064 )
bvandeusen and Claude Opus 5.5
2026-10-06 13:56:36 -04:00
0ec7ce4472
test(alerts): wait for the alert's tasks and the run, not every task (#5063 )
bvandeusen and Claude Opus 5.5
2026-10-06 13:48:50 -04:00
49607a2441
feat(alerts): dispatch after commit; maintenance mutes, not skips; actions via trigger_run (#5063 )
bvandeusen and Claude Opus 5.5
2026-10-06 13:45:20 -04:00
b009a8dd30
test(alerts): fix the silent-finding time and keep cpu_pct first in the host_agent catalog (#5062 )
bvandeusen and Claude Opus 5.5
2026-10-06 13:23:18 -04:00
c368e93e2c
feat(alerts): silence is alertable — agent offline and no-data (#5062 )
bvandeusen and Claude Opus 5.5
2026-10-06 13:06:54 -04:00
da0c6cad17
test(alerts): seed the agent registration with SQL, not a second model import (#5060 )
bvandeusen and Claude Opus 5.5
2026-10-06 12:56:10 -04:00
0742b7a2b7
feat(alerts): the metric catalog is written by what emits it (#5061 )
bvandeusen and Claude Opus 5.5
2026-10-06 12:55:55 -04:00
58bfc7c361
feat(alerts): one evaluation path; host-agent ingest fires rules (#5060 )
bvandeusen and Claude Opus 5.5
2026-10-06 12:53:40 -04:00
81d0c792a5
build(image): ship the ldap extra so LDAP sign-in works in the image (#5036 )
bvandeusen and Claude Opus 5.5
2026-10-06 12:51:58 -04:00
a6c24299a2
fix(alerts): acknowledgements hold until resolve; clear after N OK; rule changes reset (#5059 )
bvandeusen and Claude Opus 5.5
2026-10-06 11:32:17 -04:00
faa605cead
feat(secrets): webhook URL and git tokens sealed; run output masks its secrets (#5037 )
bvandeusen and Claude Opus 5.5
2026-10-06 11:14:37 -04:00
ddf13110e9
test(models): the user column set includes auth_source and external_id (#5036 )
bvandeusen and Claude Opus 5.5
2026-10-06 11:12:07 -04:00
f944cdb9b0
feat(auth): LDAP and SSO users keep their source; directory TLS is real (#5036 )
bvandeusen and Claude Opus 5.5
2026-10-06 11:10:40 -04:00
b1da073677
test(mcp): import only User locally; UserRole comes from the enclosing scope (#5035 )
bvandeusen and Claude Opus 5.5
2026-10-06 11:03:16 -04:00
7a3f7869fe
feat(auth): sessions end when they should; logins are throttled; Secure behind HTTPS (#5035 )
bvandeusen and Claude Opus 5.5
2026-10-06 11:02:27 -04:00
8dad79f17a
feat(ansible): runs stay inside their source; controller-side vars are admin-only (#5034 )
bvandeusen and Claude Opus 5.5
2026-10-06 10:57:34 -04:00
6a1bc437c9
feat(auth): share links open only their own widgets; unmarked routes are closed (#5033 )
bvandeusen and Claude Opus 5.5
2026-10-06 10:51:29 -04:00
d188a673a6
feat(plugins): installs fetch only what the catalog names, verified (#5032 )
bvandeusen and Claude Opus 5.5
2026-10-06 10:47:43 -04:00
96126b1c83
feat(auth): forged browser requests are refused (#5031 )
bvandeusen and Claude Opus 5.5
2026-10-06 10:44:19 -04:00
1d9ac2b46a
feat(mcp): built-in playbooks get steward_url from Steward itself
bvandeusen and Claude Opus 5.5
2026-10-06 10:30:23 -04:00
06e89308a8
feat(ansible): a run's scope reads as the target or group it names
bvandeusen and Claude Opus 5.5
2026-10-06 10:29:06 -04:00
30cb375079
test(docker): host-wide log search includes the removed container's line
bvandeusen and Claude Opus 5.5
2026-10-06 10:27:34 -04:00
f72ed97034
feat(mcp): get_host groups a host's parts by kind and says what it cut
bvandeusen and Claude Opus 5.5
2026-10-06 10:27:20 -04:00
190a5d1e80
feat(docker): a removed container's logs and events stay reachable by name
bvandeusen and Claude Opus 5.5
2026-10-06 10:26:04 -04:00
e9341c5639
feat(docker): overview findings say when the problem began
bvandeusen and Claude Opus 5.5
2026-10-06 10:24:10 -04:00
bac2859455
feat(docker): Swarm task awareness — replaced tasks, service crash loops, last task error
bvandeusen and Claude Opus 5.5
2026-10-06 09:46:07 -04:00
3474cdff46
feat(mcp): connect card, MCP docs, and an end-to-end roles/audit test over HTTP
bvandeusen and Claude Opus 5.5
2026-10-06 08:25:41 -04:00
9abe0beecc
feat(mcp): monitoring-config write tools — monitors, alert rules, acks, maintenance
bvandeusen and Claude Opus 5.5
2026-10-06 08:19:54 -04:00
2ebfdc8cdf
test(docker): the plugin registers prune_docker as an admin write tool
bvandeusen and Claude Opus 5.5
2026-10-06 08:09:57 -04:00
680a6bf3b6
feat(mcp): automation tools — playbooks, runs, schedules, alert actions, docker prune
bvandeusen and Claude Opus 5.5
2026-10-06 08:06:15 -04:00
21338dbcd9
feat(mcp): docker and host-agent tools; TLS and crash-loop cutoffs in Settings
bvandeusen and Claude Opus 5.5
2026-10-06 07:47:02 -04:00
41c7509366
feat(mcp): diagnostic tools — overview, hosts, monitors, alerts, metrics, audit
bvandeusen and Claude Opus 5.5
2026-10-06 07:39:41 -04:00
312ea95bcf
refactor: move host, docker, alert and monitor queries into service modules
bvandeusen and Claude Opus 5.5
2026-10-06 07:29:21 -04:00
970adf41e7
test(mcp): stay connected until the SSE reply ends; drop cross-context reset
bvandeusen and Claude Opus 5.5
2026-10-06 07:25:23 -04:00
3984f639e8
feat(mcp): /mcp endpoint with bearer auth and role-gated tools
bvandeusen and Claude Opus 5.5
2026-10-06 07:24:00 -04:00
ebc25b99ed
test(api): rename one-letter role aliases (ruff E741)
bvandeusen and Claude Opus 5.5
2026-10-06 07:18:33 -04:00
1c60fb6b4d
feat(api): personal API tokens and the AI access page
bvandeusen and Claude Opus 5.5
2026-10-06 07:15:23 -04:00
0da88c7076
fix(plugins): show load-failure reasons on the page the banner links to
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