hmo
9b53ba6872
fix(rdp): disable HW graphics adapter (software rendering) in enable step — DisplayLink/multi-GPU WDDM init conflict is a top cause of 'stuck at configuring'
2026-08-26 02:58:22 +08:00
hmo
345abd782e
fix(rdp): disable NLA by default in enable step — CredSSP pre-auth is the root cause of 'stuck at configuring'; tunnel is already SSH-encrypted
2026-08-26 02:48:32 +08:00
hmo
811d2dd6db
feat(rdp): robust RDP enable — step-machine + deep health check + self-heal + end-to-end verify + live progress & structured log
2026-08-26 02:40:06 +08:00
hmo
b3b8c8dec4
fix: RDP health check uses correct 19-byte X.224 packet
...
Yesterday's malformed packet (TPKT len=0x1b mismatch) made health check
always fail -> every enable triggered needless TermService restarts and
false 'STILL FAILING' reports (root cause of 2026-07-23 morning incident)
2026-07-23 13:48:08 +08:00
hmo
6553e51b8b
fix: RDP tunnel status adopts detached/wild tunnels instead of false-disabled
...
- _rdp_find_tunnel_process(): find ssh.exe hosting -R 8080 forwarding via CIM
- _rdp_status(): adopt actual tunnel process when pid file stale/missing
- _rdp_enable(): adopt existing tunnel instead of spawning duplicate that
fails on 'remote port forwarding failed' (8080 occupied)
- Fixes 2026-07-23 incident: tunnel alive but dashboard showed disabled,
repeated enable attempts failed because port was occupied by working tunnel
2026-07-23 13:34:06 +08:00
hmo
8a27d8e847
fix: RDP enable auto-health-restore on handshake failure, anti-Huorong firewall rule
2026-07-22 16:51:52 +08:00
hmo
fefdc29d06
feat: OpenCode Go usage monitor — hybrid collector + 246-centric dashboard
...
- usage_collector.py v3.0: HTTP+stored cookies (primary) + CDP (bonus)
- Cookie keepalive: captures Set-Cookie from responses, saves back to JSON
- Per-metric regex for SSR parsing (handles nested \[N]={...} structure)
- Cache merge: preserves other accounts' data on partial collection
- extract_cookies.py: one-time CDP /cookies endpoint → per-account JSON
- dashboard.py: /api/usage reads local file (no Windows bot dependency)
- /api/usage/refresh: local subprocess collector
- Auto-timer: 5min background thread (cookie keepalive + fresh data)
- xmpp_agent_core.py: /usage endpoint + auto-timer (for local testing)
- dashboard.html: usage-monitor section (4 cards × 3 metrics + alerts)
- accounts.json: 4 accounts configured (key1-4, gitignored)
- .gitignore: cookies/, accounts.json, usage_stats.json
2026-07-15 22:30:20 +08:00
hmo
ac34556588
fix: RDP tunnel SSH auth under LocalSystem — port 5807 + key path search + detached process
...
- http_port 5802→5807: 5802 occupied by wechat-hermes-gateway xmpp_bot, dual-listener caused ~50% request 400s
- _rdp_enable(): DETACHED_PROCESS so tunnel survives bot restart/crash
- ExitOnForwardFailure=yes so dead forward exits immediately instead of hanging
- stderr→rdp_tunnel_ssh.log for diagnosability
- -i explicit key path with multi-home search (LocalSystem ~ = systemprofile, not C:\Users\hmo)
- env injection HOME/USERPROFILE for ssh subprocess
- IdentitiesOnly=yes so -i key is used exclusively
- health_service.py: /health port 5802→5807 (was causing 30s restart loop)
- easytier.json + rdp.json: all 5802→5807 references updated
- rdp.json: add xiaoguo/Mac as RDP participant + architecture participant
2026-07-15 13:30:34 +08:00
hmo
73098176c0
R02修复: 连接检测60s×3→exit→systemd重启
2026-07-14 03:13:53 +08:00
hmo
28ae15d49e
Phase 1-2: 监控体系全面就绪
...
- 多进程看门狗: xmpp_watchdog.py (守护 bot + article_processor)
- Tier 1 快速健康检查: agents_health_check.py (5min)
- Tier 2 全面健康检查: agents_daily_health.py (每日08:00)
- TODO 自修复执行器: self_todo_executor.py (10min)
- 共享服务注册表: service_registry.py
- xmpp_agent_core: /health 免认证 + /send 端点
- Dashboard: SSH检测修复 + kanban版块 + 路径跨平台兼容
- 修复kanban-api-reference.md误导内容
- 修复R02: frp隧道heartbeat保活
2026-07-14 02:49:07 +08:00
hmo and Sisyphus
d406068c89
fix(easytier): add --no-listener flag to prevent port conflicts
...
Without --no-listener, EasyTier opens a listener on the TUN/TAP interface which can conflict with other EasyTier instances on the same network.
Ultraworked with Sisyphus
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-06-25 01:24:47 +08:00
zhiwei
1417552990
fix: group chat detection + article URL handling (Xiaohongshu/WeChat/zhihu)
...
- 群聊检测: 通过 protocol 的 group_id 字段识别群消息
- 引用消息: 处理 ref_msg 中的转发文章/引用内容
- 文章URL: 支持 mp.weixin.qq.com / xiaohongshu.com / xhslink.com / zhihu.com
- CDN图片: 占位函数,后续实现 AES 解密下载
- 图片OCR: 统一失败处理,不再发送两条消息
2026-06-23 20:48:57 +08:00
hmo
4cf125231e
docs: merge EasyTier into AgentsMeeting + cleanup hosts approach
2026-06-23 03:53:04 +08:00
hmo
5a5cc1b45d
feat: kanban session routing for xxm + xiaoguo
2026-06-22 11:39:27 +08:00
hmo
08f04e773b
fix(xxm): use send_message instead of send_raw for proper UTF-8 encoding
2026-06-21 16:23:28 +08:00
hmo
5d35d97f0a
merge: resolve conflict in xmpp_agent_core.py (keep unified version)
2026-06-21 16:17:21 +08:00
hmo
babbc46801
refactor(xxm): consolidate 4 bot implementations into unified xmpp_agent_core.py
...
- Merge bot_base.py, gateway/scripts/xmpp_bot.py, bots/*, xmpp_bot_rest.py
into single xmpp_agent_core.py with --agent flag (xxm|mohe|zhiwei|xiaoguo)
- Add xxm_bot.py wrapper (encoding=utf-8 for Windows exec)
- Fix slixmpp connect() API: use host=/port= keyword args (was tuple)
- Clean up orphans: bots/, scripts/, hermes_state.py, xmpp_bot.py, xmpp_bot_rest.py
- Add docs/CLEANUP_PLAN.md documenting the migration
- Update README.md project structure
- Also: fix WeChat agent path resolution (relative paths)
2026-06-21 16:13:57 +08:00
mohe
aa7b67fc2b
readonly: discard LLM response, never send; default=readonly for non-coordinator
2026-06-21 10:40:47 +08:00
mohe
f1590e08d1
revert bare-name match, keep only @ mention
2026-06-20 20:21:21 +08:00
mohe
9a45f155a8
match nick without @ (XMPP strips @ symbol)
2026-06-20 20:18:47 +08:00
mohe
be8699ae4c
lead= switch, @mention auto-grant
2026-06-20 20:16:09 +08:00
mohe
efc4cd1a9e
coordinator prompt: first job is to moderate, not to speak
2026-06-20 19:57:03 +08:00
mohe
ad3e0f004b
coordinator: default all can speak, REVOKE=read-only 5min, GRANT overrides
2026-06-20 19:54:37 +08:00
mohe
aabec04d8a
non-speaking bots still see messages for context (read-only LLM injection)
2026-06-20 19:07:50 +08:00
mohe
90429116c7
coordinator: use XMPP in-band signaling instead of shared DB (cross-machine compatible)
2026-06-20 19:02:04 +08:00
mohe
457ad27044
implement coordinator pattern: GRANT-based turn control, code-level speak permission
2026-06-20 18:53:44 +08:00
mohe
947bb1e6d0
intercept __SILENT__/__REPLY__ misuse in LLM response body
2026-06-20 01:48:37 +08:00
mohe
5051b0bfd7
add silent phrase interception: block LLM announcing silence instead of being silent
2026-06-20 01:41:42 +08:00
mohe
2d0f390657
unify xmpp bots: single xmpp_agent_core.py + --agent param wrappers
2026-06-20 01:05:12 +08:00