2 Commits

Author SHA1 Message Date
6c51e98108 Fix: per-user WebSocket push and file-based skill search in reasoning engine
- Replace shared ws_push callback with per-user ws_push_callbacks dict
  to prevent cross-user event leakage in concurrent sessions
- Add _current_user_id and _current_org_id tracking for user isolation
- Pass context parameter to harnessed_execute_tool for user isolation
- Add _search_skill_dir to search file-based skills in user and shared
  directories alongside DB-based skills
- Update _find_relevant_skills to search three sources: DB skills,
  user skills (~/.hermes/users/{id}/skills/), and shared skills
  (~/.hermes/skills/), with deduplication by skill name
- Update all _push() calls to pass user_id for per-user routing
- Update reasoning_console.wss to register per-user callbacks
- Clean up _current_user_id/_current_org_id in finally block
2026-05-13 13:41:42 +08:00
ea4a9e3bd9 feat: 推理过程可视化 - websocket实时推送推理步骤到前端
- core.py: 注入ws_push回调, 17个推理节点实时推送事件(上下文/规划/工具调用/执行)
- wwwroot/reasoning_console.wss: 新建websocket端点, 支持connect/start_reasoning/ping
- wwwroot/reasoning_console.ui: 重写HTML前端, 时间线式可视化展示推理过程
2026-05-09 15:48:12 +08:00