feat(core-loop): implement dual-monitoring, fast gateway dispatch, dedicated pip tasks sidechat, and 2m cadence

This commit is contained in:
operator
2026-10-04 23:02:04 +00:00
parent 1a271b1bbd
commit 75e6e745a9
8 changed files with 273 additions and 21 deletions
+27
View File
@@ -1967,6 +1967,28 @@ def cmd_cred_link_instagram(args):
print(f" Email Alert : {n_badge}")
print("\n" + c_yellow(" → Tap either Tailscale link from your phone/browser to complete Meta age verification.") + "\n")
def cmd_cred_meta_audit(args):
import cred_client
client = cred_client.CredClient()
res = client.audit_meta(args.node)
if getattr(args, "json", False):
print(json.dumps(res, indent=2))
else:
print("\n" + c_bold(f"=== META ACCOUNTS CENTER AUDIT: {args.node} ===") + "\n")
if res.get("error"):
print(c_err(f" Error: {res['error']}"))
sys.exit(1)
email_str = res.get('email') or c_dim('(none / phone-only)')
print(f" Meta Account Email: {c_cyan(email_str)}")
profiles = res.get("profiles", [])
print(f" Linked Profiles ({len(profiles)}):")
for p_info in profiles:
p_type = p_info.get("type", "unknown")
p_name = p_info.get("name", "unknown")
badge = c_green(f"[{p_type}]") if p_type == "instagram" else c_magenta(f"[{p_type}]")
print(f" - {badge} {c_bold(p_name)}")
print()
def cmd_cred_list(args):
import cred_client
client = cred_client.CredClient()
@@ -3134,6 +3156,9 @@ def build_parser():
p_c_link.add_argument("--node", required=True, help="Node label")
p_c_link.add_argument("--notify", action="store_true", help="Send email alert to operator via local MTA")
p_c_audit = cred_sub.add_parser("meta-audit", parents=[common], help="Audit Meta Accounts Center for linked profiles and email")
p_c_audit.add_argument("--node", required=True, help="Node label")
cred_sub.add_parser("list", parents=[common], help="List all registered nodes and vitality statuses")
# Domain: HARVEST
@@ -3415,6 +3440,8 @@ def main():
cmd_cred_status(args)
elif act == "link-instagram":
cmd_cred_link_instagram(args)
elif act == "meta-audit":
cmd_cred_meta_audit(args)
else:
parser.print_help()
elif args.domain == "harvest":