hmo
|
bfb6bfba59
|
fix: OCG collector skips non-opencode_go provider accounts (key7 Kimi was leaking into OCG section)
|
2026-07-19 20:22:04 +08:00 |
|
hmo
|
e509334ff4
|
fix: /api/keys reads Kimi usage_stats_kimi.json for key7 data
|
2026-07-19 19:47:46 +08:00 |
|
hmo
|
7a43fec2b1
|
feat: multi-provider usage — Kimi collector via CDP, unified /api/usage, frontend grouping
|
2026-07-19 19:46:08 +08:00 |
|
hmo
|
94f5f9ec92
|
feat: add /api/keys endpoint — masked API keys with usage data (rolling/weekly/monthly)
|
2026-07-19 10:53:32 +08:00 |
|
hmo
|
94250e9dda
|
fix: match crontab entries by script filename (underscore) not task name (hyphen)
|
2026-07-19 09:25:25 +08:00 |
|
hmo
|
0ed048c327
|
fix: dashboard monitor checks local crontab + dev-spec adds Linux-first deployment rule
|
2026-07-19 09:24:03 +08:00 |
|
hmo
|
d6950b0982
|
rewrite: health check, daily health, todo executor for Linux 246 deployment (native tools, no Windows deps)
|
2026-07-19 09:21:26 +08:00 |
|
hmo
|
1d4f083b10
|
fix: use 10s timeout for remote service HTTP checks
|
2026-07-19 09:12:15 +08:00 |
|
hmo
|
b248fc62c5
|
fix: auto_heal extract service_key from composite key (agent-XXX:name) for SERVICE_UNIT_MAP lookup
|
2026-07-19 09:10:39 +08:00 |
|
hmo
|
b56b1b3b47
|
fix: health check PID now advisory-only, remote services skip local port, add ?§ to task entries
|
2026-07-19 09:05:16 +08:00 |
|
hmo
|
4bba29965f
|
fix: handle GBK encoding from Windows schtasks output via SSH
|
2026-07-19 08:20:08 +08:00 |
|
hmo
|
9fca8185a5
|
fix: monitor endpoint checks Windows schtasks via SSH instead of Linux systemd/crontab
|
2026-07-19 08:18:54 +08:00 |
|
hmo
|
a87a4e6d5b
|
fix: skip scheduled entries in Layer 3 loop to prevent duplicate 定时任务 section
|
2026-07-18 22:29:02 +08:00 |
|
hmo
|
7dc5cc1c74
|
fix: add missing hermes_gateway + omlx_server specs + all M map spec fields
|
2026-07-18 13:28:50 +08:00 |
|
hmo
|
0ac756b241
|
fix: F Tab unique keys per instance + spec buttons + dedup + naming rules
|
2026-07-18 13:23:43 +08:00 |
|
hmo
|
c43486a6f2
|
feat: auto_heal.py + api/autoheal + F Tab auto-heal display
|
2026-07-18 12:28:47 +08:00 |
|
hmo
|
e4a9b7ff55
|
fix: api_services cross-platform health URLs + frontend isHealthy() accepts online/remote
|
2026-07-18 11:52:35 +08:00 |
|
hmo
|
944ce33ac4
|
fix: wechat_bridge 401 false-negative + hermes xmpp_bot filter + M map key
|
2026-07-18 11:47:15 +08:00 |
|
hmo
|
471a643050
|
fix: add expected field back for frontend F Tab rendering
|
2026-07-18 11:38:47 +08:00 |
|
hmo
|
0139e2949d
|
fix: xmpp type entries check via ejabberdctl JID online status
|
2026-07-18 11:33:04 +08:00 |
|
hmo
|
7eee60a7cf
|
fix: _is_local_host helper for EJABBERD_HOST + local IP
|
2026-07-18 11:30:31 +08:00 |
|
hmo
|
f5edce71c9
|
fix: F Tab expected dynamic + AGENTS.md encoding + dev-spec sync
|
2026-07-18 10:39:35 +08:00 |
|
hmo
|
c3d9f0e661
|
feat(gateway): 双轨规范体系完善 — 新增 7 个模块 spec (dashboard/xmpp_bot/health_service/watchdog/chat_bridge/session_router/usage_collector) + 修复 3 个已有 spec + dashboard status_reason + Platform ejabberd 集成
|
2026-07-17 00:33:44 +08:00 |
|
hmo
|
79e8480f3c
|
fix: remove stale Loading span in Infrastructure tab; add per-service ?/§ for Platform (WeChat Bridge, API Proxy, article_processor) and Ejabberd with dedicated spec files
|
2026-07-16 22:25:17 +08:00 |
|
hmo
|
c8b641bb65
|
feat: add ? and § dual-track buttons to Agents, Kanban, Infrastructure tabs
|
2026-07-16 22:10:53 +08:00 |
|
hmo
|
d1b31dac15
|
feat: add module spec files for agents, kanban, infra tabs
|
2026-07-16 22:10:34 +08:00 |
|
hmo
|
6009c20f74
|
add ? and § dual-track buttons to G/K/F/H tabs + 4 spec JSON files
|
2026-07-16 18:42:42 +08:00 |
|
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
|
8a53e13aa1
|
修复Kanban: 恢复筛选器+卡片+指派者完整视图
|
2026-07-14 02:58:52 +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
|
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
|
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 |
|