Add hub auto-launch: XDG autostart, API endpoints, and frontend toggle
Agent-Logs-Url: https://github.com/naturallaw777/staging_alpha/sessions/0b0d70c0-01d1-49d1-b9ca-8d4f8e5af64a Co-authored-by: naturallaw777 <99053422+naturallaw777@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
27502c6997
commit
13e3b76c88
@@ -57,6 +57,7 @@ ZEUS_CONNECT_FILE = "/var/lib/secrets/zeus-connect-url"
|
||||
REBOOT_COMMAND = ["reboot"]
|
||||
|
||||
ONBOARDING_FLAG = "/var/lib/sovran/onboarding-complete"
|
||||
AUTOLAUNCH_DISABLE_FLAG = "/var/lib/sovran/hub-autolaunch-disabled"
|
||||
|
||||
# ── Tech Support constants ────────────────────────────────────────
|
||||
|
||||
@@ -1390,6 +1391,39 @@ async def api_onboarding_complete():
|
||||
return {"ok": True}
|
||||
|
||||
|
||||
# ── Auto-launch endpoints ─────────────────────────────────────────
|
||||
|
||||
@app.get("/api/autolaunch/status")
|
||||
async def api_autolaunch_status():
|
||||
"""Check if Hub auto-launch on login is enabled."""
|
||||
disabled = os.path.exists(AUTOLAUNCH_DISABLE_FLAG)
|
||||
return {"enabled": not disabled}
|
||||
|
||||
|
||||
class AutolaunchToggleRequest(BaseModel):
|
||||
enabled: bool
|
||||
|
||||
|
||||
@app.post("/api/autolaunch/toggle")
|
||||
async def api_autolaunch_toggle(req: AutolaunchToggleRequest):
|
||||
"""Enable or disable Hub auto-launch on login."""
|
||||
if req.enabled:
|
||||
# Remove the disable flag to enable auto-launch
|
||||
try:
|
||||
os.remove(AUTOLAUNCH_DISABLE_FLAG)
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
else:
|
||||
# Create the disable flag to suppress auto-launch
|
||||
os.makedirs(os.path.dirname(AUTOLAUNCH_DISABLE_FLAG), exist_ok=True)
|
||||
try:
|
||||
with open(AUTOLAUNCH_DISABLE_FLAG, "w") as f:
|
||||
f.write("")
|
||||
except OSError as exc:
|
||||
raise HTTPException(status_code=500, detail=f"Could not write flag file: {exc}")
|
||||
return {"ok": True, "enabled": req.enabled}
|
||||
|
||||
|
||||
@app.get("/api/config")
|
||||
async def api_config():
|
||||
cfg = load_config()
|
||||
|
||||
Reference in New Issue
Block a user