agent v3.0: always re-register on startup to refresh capabilities

Previously agents only registered when api_key was missing (first run).
After updating to v3.0 with screenshot capability, restarted agents never
refreshed their capabilities in the DB. Now register() is called every
startup — server does UPDATE on existing agent_id so api_key is preserved.
This commit is contained in:
2026-06-11 21:21:04 +00:00
parent 8b7f597e76
commit 6eb387899e
3 changed files with 23 additions and 13 deletions
+11 -6
View File
@@ -565,13 +565,18 @@ def main():
poll_interval = int(cfg.get("poll_interval", 30))
heartbeat_every = int(cfg.get("heartbeat_every", 10))
# Register if no API key yet — loop (not recurse) to avoid stack overflow
# Always re-register on startup to refresh capabilities, version, and IP.
# Server does an UPDATE when agent_id already exists, so api_key is preserved.
api_key = state.get("api_key", "")
while not api_key:
api_key = register(cfg, state)
if not api_key:
print("[ERROR] Could not register with JARVIS. Retrying in 60s...", flush=True)
time.sleep(60)
registered_key = register(cfg, state)
if registered_key:
api_key = registered_key
elif not api_key:
while not api_key:
api_key = register(cfg, state)
if not api_key:
print("[ERROR] Could not register with JARVIS. Retrying in 60s...", flush=True)
time.sleep(60)
headers = {"X-Agent-Key": api_key}
last_metrics = 0