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
+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
+1 -1
View File
@@ -1 +1 @@
0a80b4a5a240647f7169b1245bd534429e819f090404b8bbb12e69bbf1e37867 /home/jarvis.orbishosting.com/public_html/agent/jarvis-agent.py
aa05371d8610a5fd89f397b7feda90fd93acc169a5c910c2969b6319a189da25 /home/jarvis.orbishosting.com/public_html/agent/jarvis-agent.py