Commit Graph
52 Commits
Author SHA1 Message Date
hmo 8c0c0d08bf fix(router/dashboard): 429按打满档位精确冷却+limitName兜底; mark_key_failed尊重显式cooldown(原死参数上限600s); weekly>=100不派单且healthy对齐; /api/usage三来源统一stale标记+前端置灰 2026-08-26 12:20:47 +08:00
hmo 39a73db9b3 feat: WeChat QR get button — trigger container /api/bot/login (DISABLE_AUTO_LOGIN) via POST /api/wechat/trigger-login; show QR block when logged_out even without qr_url 2026-08-17 19:18:36 +08:00
hmo f4af37fe49 fix: Kimi/SenseNova collection fails with utf-8 decode error — SSH output is GBK on Windows; use bytes+errors=replace + PYTHONIOENCODING=utf-8 via cmd /c 2026-08-15 12:51:22 +08:00
hmo fd71e8ffcd fix: Kimi/SenseNova usage not auto-refreshed — auto-timer only collected OCG; extract _collect_kimi_usage/_collect_sensenova_usage, refresh every 30min in timer 2026-08-15 12:45:12 +08:00
hmo 936925c74f revert: Windows now static IP 192.168.1.16 (was .248 DHCP) — restore .16 in configs 2026-08-12 21:51:08 +08:00
hmo f19f93931a fix: wechat login status — logged in / message activity takes priority over stale QR text in docker logs 2026-08-12 16:14:05 +08:00
hmo 44b77be525 fix: Windows IP changed 192.168.1.16 -> 192.168.1.248 — update dashboard bridge URL, health checks, agents.yaml 2026-08-12 16:07:46 +08:00
mohe c6d7d8b92d fix: 微信状态检测登录成功优先(logged in/Message), 消除历史日志干扰 2026-08-08 01:36:57 +08:00
mohe 6f9161cd93 fix: dashboard 微信状态检测识别等待扫码/会话失效, 不再误报已登录 2026-08-08 01:30:19 +08:00
hmo a8b46178e3 fix: spec audit — align specs with reality (xmpp_bot 5807, dashboard missing endpoints, article_processor X-Lines, api_proxy capability, health_check JSON escape); fix 5802->5807 across dashboard/health_check/watchdog consumers 2026-08-06 16:48:16 +08:00
hmo a83660ebd3 feat: enable/disable OCG keys via Dashboard — disabled keys removed from router pool instantly 2026-08-03 11:45:16 +08:00
mohe b0ad75b88e fix: detect system_event_logout for real WeChat status
Previously only looked for WeChat send OK/error in last 200 log lines.
system_event_logout was missed, so dashboard showed 正常 when session
was actually dead. Now:
- Greps full webhook log for system_event_login/logout
- Logout after login => logged_out status
- WeChat send timeout (Hermes error) also counts as failure
2026-08-02 04:32:37 +08:00
hmo e8111a3a59 merge: resolve dashboard.html conflict (keep proxy section) 2026-08-01 12:40:47 +08:00
hmo 79a9264cbd feat: OCG router proxy — quota-aware 6-key routing 2026-08-01 12:39:35 +08:00
mohe fd6ea76f54 feat: WeChat status + QR on Dashboard, proactive login notifier
- /api/wechat/status: real login detection via webhook log + docker logs
- /api/platform: wechat_bridge now returns login_ok, message, qr_url
- Platform tab: inline QR code with 5min expiry + refresh button
- wechat_qr_notifier.py: 40h session-age WeChat warning + XMPP logout alert
- agents_health_check.py: login_check via docker logs
- wechat_webhook.py: timeout 180→600s
2026-07-31 03:22:35 +08:00
hmo 3e2a74d4d9 fix: SenseNova卡片不再混入OpenCode Go组
- accounts.json移除key8/9/10(它们是同一SenseNova账户的3个模型视角,非OCG账号)
  否则OCG采集器会把它们当OCG账户采集,前端归到OpenCode Go组
- /api/keys: 注册表外的用量条目(sensenova)以独立provider追加,不进OCG
- 前端provider名映射补sensenova
2026-07-23 22:52:53 +08:00
hmo 0a3986238e feat: SenseNova Token Plan余量监控(参考OCG/Kimi CDP模式)
- usage_collector_sensenova.py: CDP刮platform.sensenova.cn/console三模型余量
  (锚定'模型名+换行+数字%剩余'防图例区误匹配)
- dashboard: /api/usage和/api/keys合并sensenova数据; refresh流程加SSH采集+scp回传
- accounts.json注册key8/9/10(同一SenseNova key三模型视角)
2026-07-23 18:23:16 +08:00
mohe 42a55f03c2 chore: 移除小果(agent-003)——已全线退役(dashboard默认agents/agents.yaml/auto_heal服务映射) 2026-07-21 22:46:42 +08:00
hmo 9a6ff4a3bd fix: refresh endpoint triggers Kimi collector via SSH to Windows + scp result back 2026-07-19 22:12:46 +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 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 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 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 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 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 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 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 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 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 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 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