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:
copilot-swe-agent[bot]
2026-04-07 01:26:11 +00:00
committed by GitHub
parent 27502c6997
commit 13e3b76c88
4 changed files with 134 additions and 0 deletions

View File

@@ -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()