* fix(session-search): encode underscores (and all non-alphanumerics) in project dir name
encodeProjectPath replaced only / \ . : , leaving underscores intact. Claude
Code names ~/.claude/projects/<dir> by replacing every non-alphanumeric char
with '-', so any project whose path contained '_' was looked up under a dir
that never existed -> session_search returned 0 matches in 'current' scope
(project: 'all' was unaffected). Widen the class to [^a-zA-Z0-9], a superset
that still covers the path-separator/dot/drive-colon cases. Mirror the change
in the hook-runtime .mjs copy and add regression tests.
Fixes#3329
* docs: clarify Claude Code path encoding scope
---------
Co-authored-by: Yeachan-Heo <hurrc04@gmail.com>
Co-authored-by: Codex Review <codex-review@example.com>
Merge PR #3300: hook runtime transcript resolution now shares the canonical project-path encoding for separators, dots, and Windows drive colons, plus basename-based session filename extraction.