Commit Graph
37 Commits
Author SHA1 Message Date
hmo 5fb04dd2d5 修复dashboard: JS语法错误导致页面完全空白
- 根因: Python脚本中引号嵌套导致生成无效JS
- 改用Python字符串拼接避免转义问题
- 0 JS errors (Playwright验证)
- 4 agent卡/启停按钮/服务标签/日志面板完整呈现
- 4个Tab: Agents/Kanban/Infrastructure/开发原则(A-F)
2026-07-14 02:49:08 +08:00
hmo d97a64ce2b 恢复正式版agent控制面板 + 开发原则父Tab
- Agents Tab: 完整agent卡/启停按钮/服务标签/日志查看
- Kanban Tab: 看板任务
- Infrastructure Tab: 平台服务+Ejabberd
- 开发原则 Tab: A-F子Tab(A源码/B服务/C监控/D修复/E成长/F期望)
- 排在后位,不喧宾夺主
2026-07-14 02:49:08 +08:00
hmo 3238ba54fb 自检修复: reflog读git + threaded=True + TODO误判修正
- Git: 从.git/logs/HEAD读取提交历史,不依赖git二进制
- Flask: threaded=True防止单线程阻塞
- TODO: 'already running'→completed而非failed
- E元成长: 改用reflog行数计算commit数
2026-07-14 02:49:08 +08:00
hmo f284ddfd3f A-F父Tab + E元成长API + 界面重排
- 结构: Overview / Kanban / Infra / 开发原则(A-F子Tab)
- E: 新增/api/metagrowth路由 + dashboard展示
- 排序: 开发原则排在最后
- 前端: 父Tab切换子Tab, localStorage记忆
2026-07-14 02:49:08 +08:00
hmo 8f5250b900 Tab布局 + 中文locale修复 + false positive修复
- Tab导航: A-F各一个Tab,body自动保存当前Tab
- 中文locale: schtasks输出'就绪'正确识别为scheduled
- 假阳性修复: watchdog检查兼容中文系统
- HTML精简至4KB内联,所有API 200
2026-07-14 02:49:07 +08:00
hmo 69fa67e24f F可视化: dashboard 完整实现 A-F 六原则呈现 + 弹窗修复
- A: git log + dirty status
- B: 服务架构矩阵 (/health + watchdog覆盖 + 拓扑依赖)
- C: Tier1/Tier2 监控结果 + 定时任务状态
- D: TODO执行记录 + escalation日志
- F: 期望状态 vs 实际状态合规矩阵
- Kanban: dashboard内嵌版块
- 弹窗修复: 计划任务改用pythonw.exe + subprocess加CREATE_NO_WINDOW
- 修复ast_grep_replace导致的
2026-07-14 02:49:07 +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
hmoandSisyphus c6795bcb46 fix: decode HTML entities in wechat article URL from XML
WeChat XML uses & to encode & in forwarded article URLs. Without html.unescape(), chksm and other query params were passed encoded to WeChat servers, causing signature mismatch and captcha block.

Ultraworked with Sisyphus

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-25 01:23:21 +08:00
zhiwei ef93f066e3 fix: stop user-level gateway service conflicting with system-level one
Root cause: user-level hermes-gateway.service was running the same
-p default gateway as the system-level hermes-gateway@default.service,
causing the two to SIGTERM each other every ~5 minutes. This killed
in-flight Hermes API requests with 'Remote end closed connection'.

Fix: disabled the redundant user-level service.
Also: simplified webhook to just forward raw message content (no
system prompt, no ACK, no max_tokens overrides). Removed unused
_get_ack method.
2026-06-24 19:53:24 +08:00
zhiwei b7993a54d5 cleanup: archive unused scripts, finalize docs
- Moved old GDB hook and memory monitor scripts to archive/
- Updated README with final Docker solution
- Updated .env.example, .gitignore
- Added final-note.md documenting deployment decision
- All research scripts preserved in archive/ for reference
2026-06-24 02:03:24 +08:00
zhiwei f1630ebb03 feat: WeChat Linux bot via docker-wechatbot-webhook
- Docker container with auto-restart
- systemd webhook receiver on :5804
- Full send/receive loop: WeChat ↔ Docker ↔ Hermes
- Fixed login token for persistence
- Firewall rules for container-host communication
2026-06-24 01:59:44 +08:00
zhiwei 255729bb8c docs: complete handover documentation for Mohe
重写 architecture.md 含:
- 完整方案评估(GDB vs LD_PRELOAD vs wine vs iLink)
- 所有信息源链接和参考价值
- 当前状态检查清单(已完成/待完成)
- 分 Phase 的实施指南
- 常见问题和风险说明
- 项目文件结构

更新 README.md 指向架构文档
2026-06-23 23:12:47 +08:00
zhiwei 9c73e8b107 docs: architecture design doc + gitignore update
架构文档记录方案一(GDB Hook)的技术路线和关键信息源。
.gitignore 新增 *.AppImage / *.exe / *.dll 规则
2026-06-23 21:24:20 +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
zhiwei 7727e907e6 feat: 莫荷微信Bot Linux iLink版
新增 gateway/linux/ 目录,基于腾讯官方 iLink Bot API 的 Linux 原生实现。
替代 Windows wxhelper DLL 注入方案。

- wechat_agent.py: 核心 Agent (消息处理/OCR/文章处理/图片生成/5801服务)
- requirements.txt: weixin-bot-sdk + aiohttp + requests
- mohe-wechat.service: systemd 服务单元
- .env.example: 配置模板
- README.md: 使用说明

工作原理: iLink Bot API (ilinkai.weixin.qq.com)
  → QR扫码登录 → 长轮询收消息 → Hermes Gateway(:8642) 处理 → 回复
2026-06-23 20:40:19 +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
hmo b9df510f31 feat(xxm): implement coordinator protocol (aligned with mohe/zhiwei/xiaoguo)
- GRANT: [GRANT:xxm] one-time speak permission, overrides REVOKE
- REVOKE: [REVOKE:xxm] 5-min speak ban, read-only mode
- Coordinator switch: hmo can change with 'coordinator=xxm'
- Shut-up: hmo says keywords → 5-min silence (was 30s)
- Read-only mode: revoked agents see messages but output __SILENT__
- Removed old _is_silenced/_SILENCE_UNTIL, unified under _REVOKED_UNTIL
2026-06-20 20:09:01 +08:00
hmo 885439f3c4 refactor(xxm): use [YOU] prefix for TUI context (align with Hermes) 2026-06-20 01:31:04 +08:00
hmo e8fba49cb8 feat(xxm): dynamic TUI session context injection for coregroup
- chat_bridge: mark_active_tui_session() + get_active_tui_session()
  Tracks active TUI session via temp/.active_tui_session.json,
  auto-expires after 1 hour (matching Hermes state_meta pattern)
- chat_bridge: inject TUI context when processing coregroup messages
  Bot now sees what hmo was discussing in TUI when replying in group
- session_router: record active session ID on every TUI message
  Uses _resolve_session() to get the current bound session ID
2026-06-20 01:27:39 +08:00
hmo ee86052219 fix(xxm): adopt improved __SILENT__ observer prompt (align with mohe/zhiwei)
- Changed from vague '别人对话→ __SILENT__' to explicit 3-condition rule
- LLM response must be ONLY '__SILENT__' (10 chars), nothing else
- Prevents LLM from saying '好的,我输出 __SILENT__' which leaked as chat message
2026-06-20 00:19:38 +08:00
hmo 2206dbb3a3 fix: bot默认走deepseek直连(跳过火山doubao) 2026-06-15 03:18:23 +08:00
hmo c639281988 feat: bot接入火山方舟Coding Plan(doubao-seed-code) 2026-06-15 03:14:00 +08:00
hmo ffbe278fc7 fix: 提示词精简——80行砍到10行核心规则 2026-06-15 02:45:53 +08:00
hmo b4a3c77021 feat: 上下文感知框架——判断是否在对话中再决定搜不搜 2026-06-15 02:35:51 +08:00
hmo 19f8381e86 fix: 动手之前先搜session——避免重复劳动 2026-06-15 02:33:40 +08:00
hmo 8c801b60aa fix: 自消息错误回环过滤 2026-06-15 02:29:43 +08:00
hmo 5103aff586 fix: @mention必须回放最后 + 简洁版规则 2026-06-15 02:17:01 +08:00
hmo ca37d24ba2 fix: @mention必须回复不准__SILENT__ 2026-06-15 02:15:33 +08:00
hmo 248b55687a fix: 多源信息合成原则 — 通用推理规则 2026-06-14 13:13:20 +08:00
hmo 9a618e483b fix: 证据合成规则 — 计划vs现状不矛盾 2026-06-14 13:11:42 +08:00
hmo f7e8ec12e8 fix: 去除硬编码IP + 证据冲突时信任session优先 2026-06-14 13:05:20 +08:00
hmo d1a0348c77 fix: 自消息放行 + session搜索策略细化 2026-06-14 12:18:36 +08:00
hmo 28523beccf feat: search_sessions 跨session搜索工具 + 提示词强化 2026-06-14 12:02:39 +08:00
hmo 8c0ab4d63a fix: 群聊沉默协议 — 禁止确认循环 2026-06-14 02:52:37 +08:00
hmo e7719d9d5c feat: bot言出必行 — 提示词强化 + git_pull/read/write 命令
1. chat_bridge.py: 系统提示增加「言出必行」规则
   - 说去做某事必须同时用 run_command 真正执行
   - 只说不做被视为空话

2. session_router.py: 新增命令处理器
   - git_pull 拉代码 / git_push 推代码
   - read_file 读文件 / write_file 写文件
   - run 执行shell命令
   - 命令指南自动注入 LLM prompt
2026-06-14 02:34:48 +08:00
hmo 399c77ccbc fix: health_check now queries /health endpoint before log analysis
If xmpp_connected=false, force restart immediately instead of
waiting 10 minutes for message timeout. This catches the most
common failure mode: process alive but XMPP dead.
2026-06-13 02:22:36 +08:00
hmo 1b2b935832 Initial: multi-agent XMPP communication system with dashboard
- Platform-based architecture (Windows/Linux/Mac)
- Agent instance registry (agents.yaml)
- Management dashboard with cross-platform monitoring
- xmpp_bot with HTTP bridge + health endpoints
- wechat_agent with WeChat-Hermes bridging
- Platform services: ProcessGuardian, HealthProbe, APIRouter, ChannelBridge
- Deployment: systemd (Linux) + PowerShell (Windows)
- Monitoring: SSH+ejabberdctl for cross-platform presence
2026-06-12 21:51:36 +08:00