hmo
7acbe04aa1
F: rework fHealth into 3-layer view (summary + issues + grouped services)
2026-07-16 18:35:58 +08:00
hmo
cf53788627
fix: dev-spec.md API candidate 用 _PROJECT_DIR 确保 path 正确
2026-07-16 18:22:19 +08:00
hmo
8f2f3466b7
fix: dev-spec.md 移入 git 跟踪目录 docs/ + api candidates 更新
2026-07-16 18:19:40 +08:00
hmo
7df8df956e
restructure: 开发原则 Tab 精简为 G+K+F+H + 历史版本 + F 健康视图
2026-07-16 18:17:44 +08:00
hmo
7c2655dc95
fix: display usage timestamp in CST (UTC+8) not UTC
2026-07-15 22:47:21 +08:00
hmo
4e705f30de
fix: create logs dir before FileHandler init (246 compat)
2026-07-15 22:33:57 +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
47e323c8fc
refactor(spec): 拆分 easytier-rdp.json 为 easytier.json + rdp.json
...
遵守针对性+完整性原则:
- EasyTier section 的 ?/§ 只显示 EasyTier 内容
- RDP section 的 ?/§ 只显示 RDP 内容
- ai_spec.related_models 互相引用对方
- human_help.related 引用对方入口
dashboard.html:
- EasyTier 按钮调用 showModuleHelp('easytier', ...)
- RDP 按钮调用 showModuleHelp('rdp', ...)
- _renderSpecModal 新增 related_modules 显示, 每个 related 模块可点击跳转
2026-07-15 11:10:28 +08:00
hmo
ef34e6bd1a
feat: co-located module spec prototype (EasyTier/RDP)
...
- specs/easytier-rdp.json: 双层文档 — human_help(人看) + ai_spec(AI看)
- ai_spec 包含: apis, dependencies, architecture, constraints, must_not, tests, related_files
- dashboard.py: 新增 /api/module-spec/<module> 和 /api/module-specs endpoints
- dashboard.html: EasyTier/RDP 标题旁加 ? (人看) 和 § (AI看) 按钮
- 点击 ? 显示使用说明(人话), 点击 § 显示 AI spec(机器可读)
- CSS: .help-btn 圆形按钮, .spec-modal 全屏弹窗
2026-07-15 10:47:39 +08:00
hmo
b11b88887c
merge: 恢复077c649内容(开发原则/K tests/spec/prd paths) + 保留flicker-free EasyTier/RDP + Linux兼容改善
...
- dashboard.html: 应用fI()闪烁修复到077c649版本(create-once/update-state pattern)
- dashboard.py: 新增 /api/tests 端点 (import tests_api)
- dashboard.py: /api/git 改用 git log 命令优先, 降级到 reflog
- dashboard.py: /api/monitor + /api/expected 增加 Linux 支持(systemd timer/crontab)
- dashboard.py: /api/spec + /api/prd 增加 246 venv 路径候选
- dashboard.py: /api/metagrowth git路径探测改善
- 恢复: meta_growth.py, tests_api.py, checklist_audit.py, service_registry.py
- 恢复: sync-venv.sh, post-deploy-check.sh, meta-growth-design.md
2026-07-15 10:10:25 +08:00
hmo
ed165db8c9
fix: EasyTier/RDP sections created once, only state values updated each poll — eliminates flicker
2026-07-15 00:23:14 +08:00
hmo
c63fa0182a
fix: EasyTier/RDP buttons proxy to Windows xmpp_bot via XMPP_BRIDGE_URL (Linux-compatible)
2026-07-14 23:46:42 +08:00
hmo
4e71d5ba85
修复Infrastructure重复: 删除旧版fetchEasyTierStatus/RdpStatus
...
- 旧版函数与fI内的createElement冲突导致重复出现
- 删除旧函数+interval,所有逻辑归入fI
- Playwright验证: 各section出现一次,无闪
2026-07-14 03:38:05 +08:00
hmo
73098176c0
R02修复: 连接检测60s×3→exit→systemd重启
2026-07-14 03:13:53 +08:00
hmo
8a53e13aa1
修复Kanban: 恢复筛选器+卡片+指派者完整视图
2026-07-14 02:58:52 +08:00
hmo
5e7204016e
交付物: 测试套件完成(15/15通过) + 清单更新
...
- 创建tests/test_health_checks.py: 15个测试覆盖Tier1/Tier2/Registry/Watchdog/Executor
- 交付物清单: 测试套件❌ →✅ (已完成)
- 测试内容: pid/port/http/todo/service_registry/watchdog各维度
- 运行方式: pytest tests/test_health_checks.py -v
2026-07-14 02:49:09 +08:00
hmo
d656c3ac8c
自检循环2完成: E表 ⏸️ 修正 + R01→ 🔄
...
- checklist_audit: 支持⏸️ 表格单元格检测
- E元成长表: ❌ →⏸️ (Phase3暂缓)
- 自检报告: 19✅ /3🔄 /6⏸️ /4❌
- 剩余4❌ : R06(架构) + 交付物3项(文档)
2026-07-14 02:49:09 +08:00
hmo
3bd50e70ea
自检循环2: R01 Gateway监控 + 服务树扩展
...
- 新增gateway_mohe:8642 + gateway_zhiwei:8643到服务注册表
- 新增api_services返回2个Gateway的健康状态
- I功能树+J拓扑自动包含Gateway节点
- PRD R01状态: ❌ →🔄 (监控已加,auto-restart待systemd)
2026-07-14 02:49:09 +08:00
hmo
d743b0a274
增强自检: 表格单元格 ❌ 检测 + TODO写入
...
- 新增正则扫描表格中❌ 状态单元格
- 8个缺口写入checklist_gaps.jsonl
- 可被self_todo_executor消费
- 与annotations解析互补,全量覆盖
2026-07-14 02:49:09 +08:00
hmo
c3733cc2a9
自检循环1: F2时序拓扑 → J Tab 已实现
...
- 检测: dev-spec中标明❌ 未实现
- 实现: 新增J拓扑Tab,展示依赖/被依赖关系
- 测试: Playwright 0 errors
- 更新: dev-spec.md 时序拓扑→✅ J Tab已实现
2026-07-14 02:49:08 +08:00
hmo
a621aeeb94
QQ标注修正: section标题+R09都改为 ⏸️ 暂缓
...
- 2.1标题: QQ❌ →⏸️ 暂缓
- R09风险: ❌ 未开始→⏸️ 暂缓(无迫切需求)
2026-07-14 02:49:08 +08:00
hmo
e442c12558
自检驱动机制 + 标注修正(BOM/E暂缓)
...
- checklist_audit.py: 扫描文档标记→对比系统→输出差距报告
- metagrowth: 修复BOM导致JSON解析失败
- E标注: 🔄 →⏸️ 暂缓(Phase 3)
- QQ通道: ⏸️ 暂缓标记
- annotation审计: 24条标记,19✅ /3🔄 /2⏸️ /0❌
2026-07-14 02:49:08 +08:00
hmo
468aabeabc
F2功能树: 新增I Tab + checklist更新
...
- 实现: 从/api/services构建树状父子关系图
- 展示: 缩进层级 + 健康圆点 + WD标签 + 端口
- 底部统计: Health 4/4, Watchdog 3/4
- Playwright验证: 0 errors, 树渲染正确
- checklist标记: 功能树→✅ 已实现
2026-07-14 02:49:08 +08:00
hmo
5e822f85bc
PRD标注实现状态: 全部14节 + 风险表 + 交付物表
...
- 各节标题加<!-- ✅ /🔄 /❌ -->状态标记
- 已知问题表(R01-R09)新增当前状态列
- 交付物表新增实现情况列
- mdRender自动渲染为彩色标签
2026-07-14 02:49:08 +08:00
hmo
a3ff5062c5
文档checklist: dev-spec.md标注实现状态
...
- dev-spec.md: 每节标题加<!-- ✅ /🔄 /❌ -->状态标注
- 表格新增 状态 列, 逐条标记实现情况
- mdRender: 解析HTML注释渲染为彩色标签
- scrollTop保存修复文档阅读位置
2026-07-14 02:49:08 +08:00
hmo
48a420f922
修复文档滚动条跳回顶部: fill前保存scrollTop
...
- fS2/fH fill()前保存内层div的scrollTop
- fill()后用setTimeout恢复scrollTop
- 防止每10秒loadAll循环导致滚动位置重置
2026-07-14 02:49:08 +08:00
hmo
56c47a89cd
Markdown渲染 + PRD需求文档(H Tab)
...
- mdRender(): 支持h1-h6/table/list/code/bold/link/blockquote/hr
- G 规范: dev-spec.md 以渲染后HTML展示
- H 需求: PRD.md 以渲染后HTML展示
- /api/prd: 新增路由读取PRD.md
2026-07-14 02:49:08 +08:00
hmo
71407681dd
修复闪烁: fI内fill后同步appendChild不跨tick
...
- fill('infra',h)只含Platform+Ejabberd
- 同一async函数内立即createElement+appendChild添加EasyTier/RDP
- onclick通过.onclick赋值而非HTML属性
- 浏览器在JS执行完前不渲染,所有内容同时出现
- Playwright验证: 0 errors
2026-07-14 02:49:08 +08:00
hmo
1eee90c31e
修复EasyTier/RDP闪烁: fI await status重建
...
- fI fill后立即await fetchEasyTierStatus/fetchRdpStatus
- 消除setTimeout导致的500ms闪烁窗口
- sections在同一个update cycle内完成重建
- Playwright验证: 0 errors
2026-07-14 02:49:08 +08:00
hmo
debbd595ed
EasyTier+RDP开关按钮 + G规范MD展示
...
- EasyTier: Turn On/Turn Off按钮 (onclick通过JS赋值,无引号问题)
- RDP: Enable/Disable按钮 (按钮状态与tunnel/rdp状态联动)
- G规范: 用<pre>展示dev-spec.md完整内容
- 使用document.createElement+onclick避免HTML引号转义地狱
- Playwright验证: 0 errors, 所有功能正常
2026-07-14 02:49:08 +08:00
hmo
876a42343b
EasyTier+RDP恢复 + G规范Tab + dev-spec更新
...
- EasyTier VPN: /api/easytier + /api/easytier/toggle + dashboard展示
- RDP远程桌面: /api/rdp + /api/rdp/toggle + dashboard展示
- G规范子Tab: /api/spec路由 + dashboard展示完整dev-spec.md
- dev-spec.md: 新增G节(测试验证规范/弹窗铁律/路径规则)
- 修复JS函数名冲突导致页面白屏
- Playwright验证: 0 errors, 所有Tab正常
2026-07-14 02:49:08 +08:00
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
hmo and Sisyphus
d72c1a907c
chore: add Windows startup batch script, update service docs
...
- Replace start.ps1 with start.bat (avoids false-positive trojan warnings from Defender)
- Mark wechat_agent.py as stopped in README.md, add article_processor doc
- Keep start.ps1 deletion tracked
Ultraworked with Sisyphus
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-06-25 01:24:47 +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
hmo and Sisyphus
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
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
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
0b99d6b07e
fix: 文档补充核心操作手册 — XMPP 发送的正确方式 (UTF-8 编码)
2026-06-13 22:54:08 +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
2e708359f1
docs: add repo and dashboard links to README
2026-06-12 21:55:20 +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