-
578cc33cc0
feat(docker): ingest swarm topology + lifecycle events + health/restart alerts

bvandeusenandClaude Opus 4.8
2026-06-18 21:07:40 -04:00
-
448258c5b4
feat(docker): agent manager-only swarm collector (AGENT_VERSION 1.5.0)

bvandeusenandClaude Opus 4.8
2026-06-18 20:57:18 -04:00
-
fee654b53a
feat(docker): schema for lifecycle events + swarm topology

bvandeusenandClaude Opus 4.8
2026-06-18 20:47:46 -04:00
-
82c3d2cf36
feat(docker): per-container enrichment — health, restarts, exit code, I/O, grouping

bvandeusenandClaude Opus 4.8
2026-06-18 20:37:40 -04:00
-
7b80552a7d
feat(docker): per-host collection via the host agent; drop central scrape

bvandeusenandClaude Opus 4.8
2026-06-18 17:54:36 -04:00
-
35f658b573
feat(monitors): unify ping/dns/http into one Monitor entity + custom targets

bvandeusenandClaude Opus 4.8
2026-06-18 08:56:13 -04:00
-
591706bd39
feat(settings): configurable monitoring thresholds

bvandeusenandClaude 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

bvandeusenandClaude 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

bvandeusenandClaude Opus 4.8
2026-06-17 20:43:33 -04:00
-
e446b7099e
feat(dashboard): threshold colors on Hosts-Overview ping + 24h uptime

bvandeusenandClaude Opus 4.8
2026-06-17 20:41:44 -04:00
-
ae03f09234
feat(dashboard): merge top summary strip + Status widget into one Overview

bvandeusenandClaude Opus 4.8
2026-06-17 20:40:26 -04:00
-
10808c1c5d
fix(dashboard): inline cpu sparkline, history graph host label + stable y-axis

bvandeusenandClaude Opus 4.8
2026-06-17 16:44:31 -04:00
-
ebc67723d2
feat(host_agent): horizontal zebra-striped fleet widget rows

bvandeusenandClaude Opus 4.8
2026-06-17 16:31:27 -04:00
-
fed9973899
fix(dashboard): downsample history graphs + readable tooltip time

bvandeusenandClaude Opus 4.8
2026-06-17 16:18:50 -04:00
-
e58c86cf01
feat(dashboard): widget readability — name-per-line, fill graphs, container breakpoints

bvandeusenandClaude Opus 4.8
2026-06-17 16:14:59 -04:00
-
cb47b5e977
feat(dashboard): per-metric sparklines in the Host Agent — Resources widget

bvandeusenandClaude 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

bvandeusenandClaude Opus 4.8
2026-06-17 15:42:10 -04:00
-
988c13d51f
feat(dashboard): phase C richer panels — host time-series graph + cpu sparklines

bvandeusenandClaude Opus 4.8
2026-06-17 15:18:50 -04:00
-
525f6eedbd
feat(dashboard): phase B drag-resize grid (Gridstack) replacing masonry

bvandeusenandClaude Opus 4.8
2026-06-17 15:04:00 -04:00
-
5f92340c0c
feat(dashboard): phase A widget clarity — threshold colours, host links, tooltips

bvandeusenandClaude Opus 4.8
2026-06-17 14:49:49 -04:00
-
2ea8c2f9af
feat(ansible): bundled system_update maintenance playbook

bvandeusenandClaude 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

bvandeusenandClaude Opus 4.8
2026-06-17 13:08:35 -04:00
-
71715c38d8
feat(auth): return to the original view after an auth-expiry redirect

bvandeusenandClaude 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

bvandeusenandClaude Opus 4.8
2026-06-17 12:52:24 -04:00
-
e0253fba48
fix(ansible): surface run failure reason; widget audit cleanup

bvandeusenandClaude Opus 4.8
2026-06-17 12:46:08 -04:00
-
609bd78af2
feat(dashboard): unified Hosts widget + grouped widget picker

bvandeusenandClaude Opus 4.8
2026-06-17 12:00:12 -04:00
-
42f7840c26
feat(ansible): steward:category + steward:confirm playbook metadata

bvandeusenandClaude Opus 4.8
2026-06-17 11:35:35 -04:00
-
b32fce1d74
docs: Steward playbook-authoring conventions reference

bvandeusenandClaude Opus 4.8
2026-06-17 11:26:56 -04:00
-
e5f6a11f94
feat(ansible): playbooks self-describe via "# description:" comment

bvandeusenandClaude Opus 4.8
2026-06-17 11:25:25 -04:00
-
a0d1c5f07c
feat(host_agent): sparklines + load/core + PSI on the host panel

bvandeusenandClaude Opus 4.8
2026-06-17 11:10:46 -04:00
-
36212dc58b
feat(host_agent): at-a-glance disk = root (/) not "worst"; metric tooltips

bvandeusenandClaude Opus 4.8
2026-06-17 11:05:43 -04:00
-
f80f6c87e8
feat(auth): capture Steward URL during first-run admin setup (OOBE)

bvandeusenandClaude Opus 4.8
2026-06-17 10:15:28 -04:00
-
7e6e63521b
fix(host_agent): provision/deploy vars shadowed by play-var precedence

bvandeusenandClaude Opus 4.8
2026-06-17 10:11:30 -04:00
-
ad726e65f3
feat(ansible): dropdown playbook selection + auto-populated variable fields

bvandeusenandClaude 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

bvandeusenandClaude Opus 4.8
2026-06-17 09:50:11 -04:00
-
a92d1995d5
fix(ansible): write DB inventory as static YAML, not dynamic --list JSON

bvandeusenandClaude Opus 4.8
2026-06-17 09:28:31 -04:00
-
9ce4cce5c5
feat(crypto): name the failing setting in wrong-key decrypt log

bvandeusenandClaude Opus 4.8
2026-06-17 08:05:47 -04:00
-
cfe6b4c25f
fix(host_agent): deploy/provision 500 — double-begin on session

bvandeusenandClaude Opus 4.8
2026-06-16 22:53:13 -04:00
-
17c9c875e4
refactor(hosts): remove legacy host_agent redirects/paths (no back-compat)

bvandeusenandClaude Opus 4.8
2026-06-16 21:20:11 -04:00
-
7ef1af2184
feat(settings): Phase 4 — capabilities vs integrations + nav cleanup

bvandeusenandClaude Opus 4.8
2026-06-16 20:57:10 -04:00
-
f29255039d
feat(hosts): Phase 2+3 — agent column, fold fleet + management into Hosts

bvandeusenandClaude Opus 4.8
2026-06-16 20:51:33 -04:00
-
8bdf07f709
feat(hosts): Phase 1 — host detail hub page (unify host IA)

bvandeusenandClaude Opus 4.8
2026-06-16 20:29:34 -04:00
-
6a8146b544
fix(ansible): replace steward key on reprovision + distinct agent update path

bvandeusenandClaude Opus 4.8
2026-06-16 19:22:12 -04:00
-
a996cc6908
feat(ansible): per-variable fields in the playbook run form

bvandeusenandClaude Opus 4.8
2026-06-16 17:54:01 -04:00
-
0318f6423f
feat(ansible): host provisioning via steward managed SSH identity

bvandeusenandClaude Opus 4.8
2026-06-16 17:17:38 -04:00
-
6e91bdc82b
feat(security): encrypt sensitive settings at rest (Fernet)

bvandeusenandClaude Opus 4.8
2026-06-16 15:22:43 -04:00
-
88857be24e
feat(ansible): runner robustness — cancel, concurrency, structured results, retention

bvandeusenandClaude Opus 4.8
2026-06-16 14:51:04 -04:00
-
389002fc6f
feat(ui): breadcrumb navigation across nested pages

bvandeusenandClaude Opus 4.8
2026-06-16 14:22:19 -04:00
-
71e4724286
feat(ansible): cross-link inventory/schedules/browse for discoverability

bvandeusenandClaude Opus 4.8
2026-06-16 14:09:58 -04:00
-
c10eae1c74
feat(ansible): in-app playbook authoring/editor

bvandeusenandClaude Opus 4.8
2026-06-16 11:39:47 -04:00
-
f3e919892d
feat(plugins): plugin capability registry + host_agent→Ansible deploy synergy

bvandeusenandClaude Opus 4.8
2026-06-16 11:28:29 -04:00
-
656bda2e3d
feat(ansible): bundled first-party playbooks + built-in source

bvandeusenandClaude Opus 4.8
2026-06-16 11:07:34 -04:00
-
4a0a3ee46e
feat(ansible): scheduled recurring playbook runs

bvandeusenandClaude Opus 4.8
2026-06-16 11:04:02 -04:00
-
bca1b92cc6
feat(host_agent): Netdata-style fleet overview + per-host detail view

bvandeusenandClaude Opus 4.8
2026-06-16 10:27:57 -04:00
-
f037b69c58
test(host_agent): update existing collector tests for new agent API

bvandeusenandClaude Opus 4.8
2026-06-16 10:15:43 -04:00
-
a9e7baee6a
feat(host_agent): collect network, disk I/O, per-core CPU, temps, memory PSI

bvandeusenandClaude Opus 4.8
2026-06-16 10:11:30 -04:00
-
3b6e005ed8
feat(status): unified Status page + widget across ping/DNS/HTTP monitors

bvandeusenandClaude Opus 4.8
2026-06-15 22:18:29 -04:00
-
67a1bc740d
fix(test): call sync create_app directly in ansible inventory integration test

bvandeusenandClaude Opus 4.8
2026-06-15 21:39:41 -04:00
-
b49496b57b
feat(plugins): default-enable generic bundled plugins on fresh install

bvandeusenandClaude Opus 4.8
2026-06-15 21:24:21 -04:00
-
80613d6310
chore(lint): remove unused imports flagged by ruff

bvandeusenandClaude Sonnet 4.6
2026-06-05 18:55:21 -04:00
-
923905e72d
test(ansible): integration tests for inventory tables + fetch_scope_targets
bvandeusen
2026-06-05 18:52:10 -04:00
-
dd0acaf623
feat(ansible): host edit page Ansible target link/create/unlink section
bvandeusen
2026-06-05 18:51:33 -04:00
-
37d9ca8a8a
feat(ansible): inventory targets CRUD templates
bvandeusen
2026-06-05 18:50:40 -04:00
-
935cbc105c
feat(ansible): inventory groups CRUD routes + templates + blueprint registration
bvandeusen
2026-06-05 18:50:09 -04:00
-
2c991eabd2
feat(ansible): scope picker in run form + create_run() DB inventory generation
bvandeusen
2026-06-05 18:49:02 -04:00
-
d906232eb2
feat(ansible): GIT_ASKPASS per-source HTTP token auth + settings UI
bvandeusen
2026-06-05 18:48:00 -04:00
-
ea47169049
feat(ansible): generate_inventory() + fetch_scope_targets() + unit tests
bvandeusen
2026-06-05 18:46:22 -04:00
-
10df05c13e
feat(ansible): add inventory_scope to AnsibleRun — 0017_ansible_run_scope migration
bvandeusen
2026-06-05 18:45:38 -04:00
-
fa32488fdf
feat(ansible): AnsibleGroup + join table — 0016_ansible_inventory_groups migration
bvandeusen
2026-06-05 18:45:16 -04:00
-
c11b3f01ed
feat(ansible): AnsibleTarget model + 0015_ansible_inventory_targets migration
bvandeusen
2026-06-05 18:45:00 -04:00
-
eb319d715e
docs: Ansible inventory infrastructure implementation plan
bvandeusen
2026-06-05 18:19:17 -04:00
-
06dc5073ca
fix(deploy): explicit backend network for steward↔db traffic

bvandeusenandClaude Opus 4.8
2026-06-05 11:37:10 -04:00
-
98edb12abb
fix(deploy): let app own secret key — remove STEWARD_SECRET_KEY from deploy compose

bvandeusenandClaude Opus 4.8
2026-06-05 11:28:53 -04:00
-
ef6c90c022
Revert "fix(deploy): move POSTGRES_PASSWORD default into .env.example"
bvandeusen
2026-06-05 11:25:31 -04:00
-
42d9a7ba07
fix(deploy): move POSTGRES_PASSWORD default into .env.example

bvandeusenandClaude Opus 4.8
2026-06-05 11:24:29 -04:00
-
fe57dde57b
feat(ci): publish steward image to the registry + remote-deploy compose

bvandeusenandClaude Opus 4.8
2026-06-05 11:08:43 -04:00
-
38f61b71c1
feat(ansible): run a playbook against a single Steward host (task 547)

bvandeusenandClaude Opus 4.8
2026-06-02 19:26:58 -04:00
-
0bf007173b
feat(ansible): credentials — SSH key, become, vault, host-key checking (task 548)

bvandeusenandClaude Opus 4.8
2026-06-02 18:41:58 -04:00
-
0a36a57901
chore(dev): mount ./ansible-dev as a local Ansible source at /srv/ansible

bvandeusenandClaude Opus 4.8
2026-06-02 17:58:18 -04:00
-
534ed030b8
test(alerts): commit the test user before the rule's created_by FK

bvandeusenandClaude Opus 4.8
2026-06-02 14:31:25 -04:00
-
43a5325e69
fix(alerts): persist AlertOperator by value to match the DB enum

bvandeusenandClaude Opus 4.8
2026-06-02 14:27:25 -04:00
-
4771d17f6d
feat(alerts): run an Ansible playbook on alert firing (task 250)

bvandeusenandClaude Opus 4.8
2026-06-02 14:22:29 -04:00
-
8b62eb2ca3
feat(ansible): parameterized runs — extra-vars, limit, tags, dry-run (task 546)

bvandeusenandClaude Opus 4.8
2026-06-02 13:31:16 -04:00
-
5af7312a72
fix(ansible): shorten migration 0012 revision id to fit alembic_version(32)

bvandeusenandClaude Opus 4.8
2026-06-02 11:35:55 -04:00
-
fb579bcf97
feat(ansible): ship ansible in image + allow system-triggered runs (task 545)

bvandeusenandClaude Opus 4.8
2026-06-02 11:31:43 -04:00
-
ccc7601182
fix(docker): stop ignoring plugins/ in image build; dev-friendly compose

bvandeusenandClaude Opus 4.8
2026-06-02 10:35:58 -04:00
-
712aec60c1
test(host_agent): assert parsed agent version matches AGENT_VERSION constant

bvandeusenandClaude Opus 4.8
2026-06-01 12:14:53 -04:00
-
3b2146bc7a
feat(host_agent): agent reports its primary IP; mirror into Host.address (task 274)

bvandeusenandClaude Opus 4.8
2026-06-01 12:11:41 -04:00
-
af60ca446d
fix(plugins): complete steward rename across bundled plugins; clear lint debt

bvandeusenandClaude Opus 4.8
2026-06-01 11:22:20 -04:00
-
d925709c77
ci: add Forgejo CI (lint + unit + Postgres integration) + ci-requirements.md

bvandeusenandClaude Opus 4.8
2026-06-01 08:37:32 -04:00
-
a7a281cb11
feat(plugins): fold first-party plugins in-tree; bundled + external roots

bvandeusenandClaude Opus 4.8
2026-06-01 08:37:24 -04:00
-
-
88ab5b917e
chore: rename project Roundtable → Steward

bvandeusenandClaude Opus 4.7
2026-04-25 16:20:14 -04:00
-
e118543b2e
feat(dashboard): use public_base_url helper for share link generation
bvandeusen
2026-04-16 00:18:45 -04:00
-
b7293588be
feat(settings): public_base_url field in general settings UI
bvandeusen
2026-04-15 20:30:12 -04:00
-
5bc8ef2566
feat(settings): add public_base_url helper with request.host_url fallback
bvandeusen
2026-04-15 20:29:49 -04:00
-
3a3d094a2a
test(settings): failing tests for public_base_url helper
bvandeusen
2026-04-15 20:29:28 -04:00
-
2c68ba5094
feat(settings): cache PUBLIC_BASE_URL into app.config on reload
bvandeusen
2026-04-15 20:29:13 -04:00
-
fdbcc58385
feat(settings): add general.public_base_url default
bvandeusen
2026-04-15 20:29:02 -04:00
-
dbe50794d3
Merge pull request 'feat: host_agent plugin — push-model host resource monitoring' (#1) from feat/host-agent into main
bvandeusen
2026-04-15 13:43:57 +00:00
-
-
44cc2f2fce
docs(plugins): catalog entry for host_agent
feat/host-agent

bvandeusenandClaude Opus 4.6
2026-04-15 00:31:27 -04:00