fix(dispatch): eliminate noisy SSH signatures from routine job prompts and activate real tool triggers

This commit is contained in:
operator
2026-10-05 04:04:41 +00:00
parent d09e1c4872
commit dc1b4f8ce6
3 changed files with 46 additions and 43 deletions
+38 -37
View File
@@ -222,44 +222,45 @@ def send_dm(agent, target, message, dry_run=False, followup_tags=None,
if HAS_RATE_LIMITER:
rate_limit_wait(agent)
# Cryptographic attestation: sign message with local SSH key
# Cryptographic attestation: only sign if explicitly requested by job config
# to avoid blowing up agent context windows with massive base64 SSH signature blocks.
signed_payload = None
dm_sign_sh = NETVM_ROOT / "bin" / "dm-sign.sh"
priv_key = Path(os.path.expanduser("~/.ssh/id_ed25519"))
if dm_sign_sh.exists() and priv_key.exists():
try:
sign_res = subprocess.run(
[str(dm_sign_sh), "--from", "super", "--key", str(priv_key), message],
capture_output=True, text=True, timeout=10
)
if sign_res.returncode == 0 and "-----BEGIN SSH SIGNATURE-----" in sign_res.stdout:
signed_payload = sign_res.stdout.strip()
# Extract message id and register proof to crypt.muse-dev.online
id_m = re.search(r"\[id:([a-f0-9]+)\]", signed_payload)
proof_id = id_m.group(1) if id_m else None
if proof_id:
proof_data = {
"id": proof_id,
"signer": "super",
"target_agent": agent,
"target_conversation": target,
"raw_payload": signed_payload,
"ts": datetime.now(timezone.utc).isoformat()
}
try:
import urllib.request
req = urllib.request.Request(
"https://crypt.muse-dev.online/proofs",
data=json.dumps(proof_data).encode("utf-8"),
headers={"Content-Type": "application/json", "User-Agent": "job-dispatch/1.0"},
method="POST"
)
with urllib.request.urlopen(req, timeout=3) as resp:
pass
except Exception as pe:
sys.stderr.write(f"warning: proof registration to crypt.muse-dev.online failed: {pe}\n")
except Exception as se:
sys.stderr.write(f"warning: dm signing failed: {se}\n")
if os.environ.get("JOB_REQUIRE_SIGNATURE") == "1":
dm_sign_sh = NETVM_ROOT / "bin" / "dm-sign.sh"
priv_key = Path(os.path.expanduser("~/.ssh/id_ed25519"))
if dm_sign_sh.exists() and priv_key.exists():
try:
sign_res = subprocess.run(
[str(dm_sign_sh), "--from", "super", "--key", str(priv_key), message],
capture_output=True, text=True, timeout=10
)
if sign_res.returncode == 0 and "-----BEGIN SSH SIGNATURE-----" in sign_res.stdout:
signed_payload = sign_res.stdout.strip()
id_m = re.search(r"\[id:([a-f0-9]+)\]", signed_payload)
proof_id = id_m.group(1) if id_m else None
if proof_id:
proof_data = {
"id": proof_id,
"signer": "super",
"target_agent": agent,
"target_conversation": target,
"raw_payload": signed_payload,
"ts": datetime.now(timezone.utc).isoformat()
}
try:
import urllib.request
req = urllib.request.Request(
"https://crypt.muse-dev.online/proofs",
data=json.dumps(proof_data).encode("utf-8"),
headers={"Content-Type": "application/json", "User-Agent": "job-dispatch/1.0"},
method="POST"
)
with urllib.request.urlopen(req, timeout=3) as resp:
pass
except Exception as pe:
sys.stderr.write(f"warning: proof registration to crypt.muse-dev.online failed: {pe}\n")
except Exception as se:
sys.stderr.write(f"warning: dm signing failed: {se}\n")
payload_to_send = signed_payload or message