v0.27.0:0 - in-app settings gear + swap-lock route fix
Move the ~20 optional cluster knobs out of the StartOS "Configure Sparks"
action (now just the 4 required fields) and into a dashboard ⚙ Settings gear,
backed by a /data/app_settings.json overlay keyed by env-var names. One shared
mutable Settings instance + Settings.reload() applies edits live without a
restart; existing installs' values migrate automatically on first boot.
Also: support-service ports (parakeet/kokoro/embed/qdrant + vllm) are now
configurable, and GET /api/swap/lock no longer 404s (it was shadowed by the
/api/swap/{job_id} catch-all). WebhookNotifier is re-pointed on save so its
url/secret reload live too.
This commit is contained in:
@@ -239,6 +239,14 @@ class WebhookNotifier:
|
||||
self.secret = secret or ""
|
||||
self.timeout = timeout
|
||||
|
||||
def update(self, url: str, secret: str = "") -> None:
|
||||
"""Re-point after a live settings change. The notifier holds snapshot
|
||||
copies of these two fields (not the Settings object), so Settings.reload()
|
||||
can't reach it — server.post_settings calls this explicitly so editing the
|
||||
webhook URL/secret in the dashboard gear takes effect without a restart."""
|
||||
self.url = (url or "").strip()
|
||||
self.secret = secret or ""
|
||||
|
||||
@property
|
||||
def enabled(self) -> bool:
|
||||
return bool(self.url)
|
||||
|
||||
Reference in New Issue
Block a user