- 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