Commit Graph

  • 71c941555f Merge remote-tracking branch 'origin/master' master hmo 2026-08-26 12:27:24 +08:00
  • 8c0c0d08bf fix(router/dashboard): 429按打满档位精确冷却+limitName兜底; mark_key_failed尊重显式cooldown(原死参数上限600s); weekly>=100不派单且healthy对齐; /api/usage三来源统一stale标记+前端置灰 hmo 2026-08-26 12:20:47 +08:00
  • 0df627ca1b fix(wechat-qr): stop auto-refresh of login QR — manual get/refresh only, with cache (no more 10s auto-fetch + 5min auto-change) hmo 2026-08-26 04:02:05 +08:00
  • 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' hmo 2026-08-26 02:58:22 +08:00
  • 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 hmo 2026-08-26 02:48:32 +08:00
  • 811d2dd6db feat(rdp): robust RDP enable — step-machine + deep health check + self-heal + end-to-end verify + live progress & structured log hmo 2026-08-26 02:40:06 +08:00
  • 7036b667b1 refactor: article_processor as external service, disable wechat_qr_notifier hmo 2026-08-24 05:53:22 +08:00
  • df3a630084 fix: disable SenseNova+Kimi usage collectors (CDP consent spam) hmo 2026-08-24 05:40:29 +08:00
  • 13d8f8293f fix: kanban API timestamp normalization — _fmt_ts unify epoch/ISO to ISO 8601 output (from mohe, t_a1858603) hmo 2026-08-17 19:21:16 +08:00
  • 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 hmo 2026-08-17 19:18:36 +08:00
  • 5a736ddaa8 feat: streaming passthrough for stream=True + first-byte timeout (30s) — distinguish slow upstream (data flowing) vs hung key (no first byte); fix 180s cutoff killing legit 3-8min requests hmo 2026-08-15 20:22:22 +08:00
  • a7a42448d4 fix: 5xx (503) and read-timeout now try next key instead of break/fail — key1 down but key6/key5 healthy should succeed; wide 180s per-key timeout only as safety net (no per-request deadline) hmo 2026-08-15 20:10:58 +08:00
  • 8de5b6ccb6 fix: overall request deadline (180s) + upstream timeout 180->60s — prevent multi-key retry chain hanging 15min (2026-08-15 incident) hmo 2026-08-15 20:04:33 +08:00
  • aa0d005925 feat: router firewall — validate model against OCG whitelist + require messages; block client errors before upstream call (prevents rate-limit pollution) hmo 2026-08-15 17:37:39 +08:00
  • 42bcc4d4ec fix: return HTTP 400 (not 502) for client ModelError/bad model requests hmo 2026-08-15 17:32:32 +08:00
  • a800d5214d fix: ModelError 401 (bad model name) was cooling all keys -> cooldown avalanche 502; treat as client error, return 400 without cooling hmo 2026-08-15 17:30:33 +08:00
  • 3becd8ea08 fix: empty_content false-positive on reasoning models — deepseek-v4-flash/pro return content in reasoning_content; only treat as empty when no content AND no reasoning AND not finish_reason=length hmo 2026-08-15 16:56:49 +08:00
  • 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 hmo 2026-08-15 12:51:22 +08:00
  • 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 hmo 2026-08-15 12:45:07 +08:00
  • 1febfd0cb5 feat: 莫荷微信按需登录——消除未登录忙循环请求腾讯的风控诱因 hmo 2026-08-14 20:39:55 +08:00
  • 85ef30f896 feat: ocg_router key降级改指数退避——按key独立统计失败次数,失败冷却base2s×2^count指数增加(上限600s/10分钟),成功后重置计数; 空输出/报错立即换key+该key进入指数退避 mohe 2026-08-14 10:08:51 +08:00
  • ef4ead6a03 fix: ocg_router proc_guard API适配——_LockResult无pid属性,g.pid→g.message(修复502 Bad Gateway根因:启动检查AttributeError导致服务不稳定) mohe 2026-08-14 09:46:51 +08:00
  • 75026c9b7a feat: ocg_router空输出自动换key——_forward_request检测content为空→返回empty_content→_proxy_chat自动换下一个key重试(不冷却) mohe 2026-08-14 09:31:07 +08:00
  • 6a5c08a5df feat: ocg_router 并发模式——X-OCG-Mode: concurrent 时 round-robin 锁 key 轮询(每次请求轮着用key,避免并发压同一key触发429/401), 非并发模式保持按用量选最空闲; 测试验证key1→key4→key5→key6轮询 mohe 2026-08-14 04:06:26 +08:00
  • 936925c74f revert: Windows now static IP 192.168.1.16 (was .248 DHCP) — restore .16 in configs hmo 2026-08-12 21:51:08 +08:00
  • f19f93931a fix: wechat login status — logged in / message activity takes priority over stale QR text in docker logs hmo 2026-08-12 16:14:05 +08:00
  • a83ae177cb fix: ocg_router error classification — 400 client error no retry, 5xx/Router.Unavailable no longer kill keys into cooldown, client disconnect handled, max parallel 16 hmo 2026-08-12 16:08:14 +08:00
  • 44b77be525 fix: Windows IP changed 192.168.1.16 -> 192.168.1.248 — update dashboard bridge URL, health checks, agents.yaml hmo 2026-08-12 16:07:46 +08:00
  • 4b838b5a6b fix: ocg_router single-threaded HTTPServer blocks all requests on large body — switch to ThreadingHTTPServer hmo 2026-08-10 12:55:56 +08:00
  • 15a97696f7 fix: kanban-handler SKILL.md — replace nonexistent GET /api/kanban/t_xxx with POST :9580/kanban/show + comment/update examples hmo 2026-08-06 22:36:42 +08:00
  • c6d7d8b92d fix: 微信状态检测登录成功优先(logged in/Message), 消除历史日志干扰 mohe 2026-08-08 01:36:57 +08:00
  • 6f9161cd93 fix: dashboard 微信状态检测识别等待扫码/会话失效, 不再误报已登录 mohe 2026-08-08 01:30:19 +08:00
  • 8feed0092b fix: health_check 识别微信登录失效(loginCheck错误), 防止误报已登录 mohe 2026-08-08 01:03:13 +08:00
  • 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 hmo 2026-08-06 16:48:16 +08:00
  • 1dd3f9aad5 fix: watchdog revival — port 5807 in registry, skip remote/self-managed services, add to start.bat hmo 2026-08-05 09:57:51 +08:00
  • afcce956f0 fix: chat_bridge missing import sys -> xmpp_bot crash on startup; RDP/EasyTier bridge offline hmo 2026-08-05 02:22:20 +08:00
  • 745daaa1a2 fix: Router.Unavailable -> all keys short-cooldown 30s + cooldown error shows cause/expiry hmo 2026-08-04 11:09:27 +08:00
  • a83660ebd3 feat: enable/disable OCG keys via Dashboard — disabled keys removed from router pool instantly hmo 2026-08-03 11:45:16 +08:00
  • f25a15f3bf fix: usage collection error no longer kills keys; 401/403 treated as key failure; key3 (renewal cancelled) skipped via accounts.json hmo 2026-08-03 11:20:59 +08:00
  • be2b194b71 feat: WeChat QR code + status inline in Platform tab mohe 2026-08-02 04:43:16 +08:00
  • b0ad75b88e fix: detect system_event_logout for real WeChat status mohe 2026-08-02 04:32:37 +08:00
  • bd87a341dc fix: strip Transfer-Encoding from proxy response (buffered, not chunked) hmo 2026-08-02 04:25:44 +08:00
  • ad40956f33 docs: ocg_router spec file (human help + AI spec) hmo 2026-08-01 14:39:32 +08:00
  • e8111a3a59 merge: resolve dashboard.html conflict (keep proxy section) hmo 2026-08-01 12:40:47 +08:00
  • 79a9264cbd feat: OCG router proxy — quota-aware 6-key routing hmo 2026-08-01 12:39:35 +08:00
  • 7581bccda5 fix: cross-platform config path in chat_bridge.py mohe 2026-07-31 10:37:07 +08:00
  • 406446c3f1 fix: WeChat session context via X-Hermes-Session-Id (revert SessionRouter) mohe 2026-07-31 10:11:53 +08:00
  • 24be3b2aa5 feat: route WeChat messages through SessionRouter for per-user context mohe 2026-07-31 03:43:19 +08:00
  • fd6ea76f54 feat: WeChat status + QR on Dashboard, proactive login notifier mohe 2026-07-31 03:22:35 +08:00
  • 3e2a74d4d9 fix: SenseNova卡片不再混入OpenCode Go组 hmo 2026-07-23 22:52:53 +08:00
  • 0a3986238e feat: SenseNova Token Plan余量监控(参考OCG/Kimi CDP模式) hmo 2026-07-23 18:23:16 +08:00
  • e59c1bcc53 fix: 移除afw-proxy(已废弃试验)+ocg-key顺序由/api/keys配额动态决定 hmo 2026-07-23 16:47:28 +08:00
  • eddbee968c fix: provider链白名单与实际config脱节导致模型无响应 hmo 2026-07-23 15:54:38 +08:00
  • ea193a9881 chore: retire legacy wechat-hermes-gateway xmpp_bot, unify bridge to :5807 hmo 2026-07-23 13:59:11 +08:00
  • b3b8c8dec4 fix: RDP health check uses correct 19-byte X.224 packet hmo 2026-07-23 13:48:08 +08:00
  • 6553e51b8b fix: RDP tunnel status adopts detached/wild tunnels instead of false-disabled hmo 2026-07-23 13:34:06 +08:00
  • 8a27d8e847 fix: RDP enable auto-health-restore on handshake failure, anti-Huorong firewall rule hmo 2026-07-22 16:51:52 +08:00
  • d7b2ee0460 chore: gitignore rdp_tunnel.pid(运行时产物) hmo 2026-07-21 23:11:04 +08:00
  • 42a55f03c2 chore: 移除小果(agent-003)——已全线退役(dashboard默认agents/agents.yaml/auto_heal服务映射) mohe 2026-07-21 22:46:42 +08:00
  • 74496bacd9 chore: set executable bit on cron wrapper scripts hmo 2026-07-21 01:02:50 +08:00
  • 37bfbad921 feat: add cron wrapper scripts for OCG and Kimi local collectors hmo 2026-07-21 01:00:58 +08:00
  • c11222e55c feat: local Kimi collection via Playwright + headless Chrome on 246 hmo 2026-07-21 00:56:00 +08:00
  • 2598b286eb fix: kimi collector crash on CDP error + auto-start CDP proxy + dashboard renewal badge hmo 2026-07-20 23:18:40 +08:00
  • dc3b3d1868 fix: Kimi collector always reloads page for fresh data hmo 2026-07-19 22:17:12 +08:00
  • 9a6ff4a3bd fix: refresh endpoint triggers Kimi collector via SSH to Windows + scp result back hmo 2026-07-19 22:12:46 +08:00
  • 84423565f8 fix: Kimi collector targets correct membership/subscription tab, parses 3 usage metrics with dates hmo 2026-07-19 21:26:40 +08:00
  • c1232ed382 fix: OCG output includes provider field + Kimi collector uses membership/subscription page hmo 2026-07-19 21:09:01 +08:00
  • bfb6bfba59 fix: OCG collector skips non-opencode_go provider accounts (key7 Kimi was leaking into OCG section) hmo 2026-07-19 20:22:04 +08:00
  • e509334ff4 fix: /api/keys reads Kimi usage_stats_kimi.json for key7 data hmo 2026-07-19 19:47:46 +08:00
  • 7a43fec2b1 feat: multi-provider usage — Kimi collector via CDP, unified /api/usage, frontend grouping hmo 2026-07-19 19:46:08 +08:00
  • 94f5f9ec92 feat: add /api/keys endpoint — masked API keys with usage data (rolling/weekly/monthly) hmo 2026-07-19 10:53:32 +08:00
  • 3128db09c6 docs: add TEMPLATE-GUIDE — how to use AgentsMeeting as reference template for new projects or refactoring hmo 2026-07-19 10:19:27 +08:00
  • 0b345c2ca1 docs: add HEALTH-PIPELINE + DASHBOARD, update DEPLOY/OPS/QUICKSTART/README — Linux 246 as production standard hmo 2026-07-19 10:09:42 +08:00
  • 94250e9dda fix: match crontab entries by script filename (underscore) not task name (hyphen) hmo 2026-07-19 09:25:25 +08:00
  • 0ed048c327 fix: dashboard monitor checks local crontab + dev-spec adds Linux-first deployment rule hmo 2026-07-19 09:24:03 +08:00
  • d6950b0982 rewrite: health check, daily health, todo executor for Linux 246 deployment (native tools, no Windows deps) hmo 2026-07-19 09:21:26 +08:00
  • 1d4f083b10 fix: use 10s timeout for remote service HTTP checks hmo 2026-07-19 09:12:15 +08:00
  • b248fc62c5 fix: auto_heal extract service_key from composite key (agent-XXX:name) for SERVICE_UNIT_MAP lookup hmo 2026-07-19 09:10:39 +08:00
  • b56b1b3b47 fix: health check PID now advisory-only, remote services skip local port, add ?§ to task entries hmo 2026-07-19 09:05:16 +08:00
  • 4bba29965f fix: handle GBK encoding from Windows schtasks output via SSH hmo 2026-07-19 08:20:08 +08:00
  • 9fca8185a5 fix: monitor endpoint checks Windows schtasks via SSH instead of Linux systemd/crontab hmo 2026-07-19 08:18:54 +08:00
  • a87a4e6d5b fix: skip scheduled entries in Layer 3 loop to prevent duplicate 定时任务 section hmo 2026-07-18 22:29:02 +08:00
  • 7dc5cc1c74 fix: add missing hermes_gateway + omlx_server specs + all M map spec fields hmo 2026-07-18 13:28:50 +08:00
  • 0ac756b241 fix: F Tab unique keys per instance + spec buttons + dedup + naming rules hmo 2026-07-18 13:23:43 +08:00
  • c43486a6f2 feat: auto_heal.py + api/autoheal + F Tab auto-heal display hmo 2026-07-18 12:28:47 +08:00
  • e4a9b7ff55 fix: api_services cross-platform health URLs + frontend isHealthy() accepts online/remote hmo 2026-07-18 11:52:35 +08:00
  • 944ce33ac4 fix: wechat_bridge 401 false-negative + hermes xmpp_bot filter + M map key hmo 2026-07-18 11:47:15 +08:00
  • 471a643050 fix: add expected field back for frontend F Tab rendering hmo 2026-07-18 11:38:47 +08:00
  • 0139e2949d fix: xmpp type entries check via ejabberdctl JID online status hmo 2026-07-18 11:33:04 +08:00
  • 7eee60a7cf fix: _is_local_host helper for EJABBERD_HOST + local IP hmo 2026-07-18 11:30:31 +08:00
  • f5edce71c9 fix: F Tab expected dynamic + AGENTS.md encoding + dev-spec sync hmo 2026-07-18 10:39:35 +08:00
  • 6da8bf219a docs: add modify-existing-feature flow with pre-read-spec step; update AGENTS.md, dev-spec.md mohe 2026-07-17 13:29:56 +08:00
  • 525c53a51a docs: add 4th red line — implement then sync spec; record learned lesson hmo 2026-07-17 13:18:23 +08:00
  • bb26fb4207 chore: add junk file patterns to .gitignore hmo 2026-07-17 00:54:44 +08:00
  • f0b2e3f3cc docs: add architecture diagram + gitignore bot output and temp files hmo 2026-07-17 00:53:42 +08:00
  • c3d9f0e661 feat(gateway): 双轨规范体系完善 — 新增 7 个模块 spec (dashboard/xmpp_bot/health_service/watchdog/chat_bridge/session_router/usage_collector) + 修复 3 个已有 spec + dashboard status_reason + Platform ejabberd 集成 hmo 2026-07-17 00:33:44 +08:00
  • 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 hmo 2026-07-16 22:25:17 +08:00
  • c8b641bb65 feat: add ? and § dual-track buttons to Agents, Kanban, Infrastructure tabs hmo 2026-07-16 22:10:53 +08:00
  • d1b31dac15 feat: add module spec files for agents, kanban, infra tabs hmo 2026-07-16 22:10:34 +08:00
  • 6009c20f74 add ? and § dual-track buttons to G/K/F/H tabs + 4 spec JSON files hmo 2026-07-16 18:42:42 +08:00