Error investigation (from restored monitoring) found 2 root causes: 1. 'Blocked: script path resolves outside scripts dir' (5+ cron jobs): Jul 17 symlink refactor replaced real scripts with symlinks; the hermes cron scheduler's security check (Path.resolve + relative_to) rejects symlink escape. ALL no_agent script jobs blocked since Jul 17 23:12. FIX: converted 102 symlinks to hardlinks (same inode, resolve() stays inside scripts_dir, single-source still works). Permanent structural fix. 2. HTTP 429 on default profile (知识研究/梦境循环/wiki-self-growth/ evolution-pulse/大脑任务执行): default gateway used ocg-key1 (weekly 100%). FIX: switched default profile to ocg-key6 + added missing provider block. LLM verified working (3.1s). auto_heal extended to actually cover these automatically next time: - PROFILES registry: zhiwei (8643, system svc) + default (8642, user svc) - current_provider/switch_key/_scan_agent_log parameterized by profile - health() now reports llm_provider_default (agent.log scan) - auto_heal: per-profile 429 detection -> best_key -> switch_key(profile) - _ensure_provider_block: injects missing provider credentials from zhiwei config (single source of truth) into target config
22 lines
749 B
Python
22 lines
749 B
Python
import ast, sys, json
|
|
p = '/home/hmo/MoFin/xmpp_logger.py'
|
|
try:
|
|
ast.parse(open(p).read())
|
|
print('SYNTAX OK')
|
|
except SyntaxError as e:
|
|
print('SYNTAX ERROR:', e)
|
|
sys.exit(1)
|
|
|
|
sys.path.insert(0, '/home/hmo/MoFin')
|
|
import importlib, xmpp_logger
|
|
importlib.reload(xmpp_logger)
|
|
x = xmpp_logger
|
|
import time
|
|
|
|
print('== current_provider(zhiwei):', x.current_provider('zhiwei'))
|
|
print('== current_provider(default):', x.current_provider('default'))
|
|
print('== scan zhiwei:', json.dumps(x._scan_agent_log(time.time(), 'zhiwei'), ensure_ascii=False))
|
|
print('== scan default:', json.dumps(x._scan_agent_log(time.time(), 'default'), ensure_ascii=False))
|
|
print()
|
|
print('== auto_heal ==')
|
|
print(json.dumps(x.auto_heal(), ensure_ascii=False, indent=2)) |