Manage workers from the web UI, persisted in SQLite

Replace the CROSS_PY_WORKERS env list with a DB-backed worker store so agents
can be added/removed (and their online status verified) from the browser.
- db.py: add workers table + list_workers/add_worker/remove_worker.
- workers.py: configured_workers() reads the DB instead of settings.
- app.py: POST /api/workers (add, probes reachability) and
  DELETE /api/workers/<port>/<host>; startup log uses DB worker count.
- UI: Workers card with add form, per-worker live status + OS/CPU, remove.
- settings.py: drop CROSS_PY_WORKERS/_get_json_list; DB is single source.
- README/DESIGN updated to describe UI-managed workers.
This commit is contained in:
Brett Williams
2026-08-30 23:37:31 -05:00
parent 5967b606c7
commit 18d8d2e398
10 changed files with 187 additions and 41 deletions
+9
View File
@@ -13,6 +13,15 @@
</header>
<main>
<section class="card">
<h2>Workers</h2>
<form id="worker-form" class="inline-form">
<input type="text" id="worker-spec" placeholder="host:port (e.g. 192.168.1.40:9001)">
<button type="submit">Add worker</button>
</form>
<div id="workers"></div>
</section>
<section class="card" id="submit-card">
<h2>New build</h2>
<form id="job-form">