chore(fleet): sync operator memory, hatch menu dialogs, and watchdog alerts
This commit is contained in:
@@ -37,14 +37,24 @@ def notify_via_mainloop(swarm_id, slot_index, message, worker_id="swarm-worker",
|
||||
Returns:
|
||||
True on success (or dry-run), False on failure (logged, not raised).
|
||||
"""
|
||||
target_name = "sw-%s-s%s" % (swarm_id, slot_index)
|
||||
target_name = f"{swarm_id}-s{slot_index}" if str(swarm_id).startswith("sw-") else f"sw-{swarm_id}-s{slot_index}"
|
||||
summary = (message or "").strip().replace("\n", " ")[:NOTE_CHARS]
|
||||
note = "[SWARM-DONE %s/%s] %s" % (swarm_id, slot_index, summary)
|
||||
tag = "%s/%s" % (swarm_id, slot_index)
|
||||
note = "[SWARM-DONE %s] %s" % (tag, summary)
|
||||
|
||||
sender = worker_id if worker_id in ("muse", "pip", "646", "opm", "dev", "def", "super") else "super"
|
||||
to_agent = "opm"
|
||||
|
||||
try:
|
||||
sys.path.insert(0, BIN)
|
||||
import dm
|
||||
uuid = dm.resolve_sidechat_target(target_name)
|
||||
if not uuid:
|
||||
sc = dm.load_sidechat_map() if hasattr(dm, "load_sidechat_map") else {}
|
||||
entry = sc.get(target_name, {})
|
||||
uuid = entry.get("thread_uuid")
|
||||
if entry.get("agent"):
|
||||
to_agent = entry.get("agent")
|
||||
except Exception as e:
|
||||
print("notify_via_mainloop: target resolve failed for %s: %s"
|
||||
% (target_name, e), file=sys.stderr)
|
||||
@@ -55,8 +65,8 @@ def notify_via_mainloop(swarm_id, slot_index, message, worker_id="swarm-worker",
|
||||
return False
|
||||
|
||||
cmd = [sys.executable, DM_PY, "send",
|
||||
"--agent", worker_id,
|
||||
"--to", worker_id,
|
||||
"--agent", sender,
|
||||
"--to", to_agent,
|
||||
"--target", uuid,
|
||||
note]
|
||||
if dry_run:
|
||||
|
||||
Reference in New Issue
Block a user