Skip to content

Сессии с подчёркиваниями в пути проекта не загружают сообщения #16

@NiKoV-HET

Description

@NiKoV-HET

Баг

Сессии, в пути проекта которых есть символ подчёркивания (_), не загружают детальные сообщения — в списке показывается "0 total", а в UI сообщения отсутствуют.

Причина

В src/data.js ключ проекта (projectKey) вычисляется так:

const projectKey = s.project.replace(/[\/\.]/g, '-');

Эта регулярка заменяет только / и . на -, оставляя _ как есть.

Однако сам Claude Code при создании директории проекта в ~/.claude/projects/ заменяет все не-алфавитно-цифровые символы (включая _) на -.

Из-за этого возникает рассогласование. Пример:

Путь проекта codedash вычисляет Реальная директория
/home/user/my_project -home-user-my_project -home-user-my-project
/home/user/some_other_app -home-user-some_other_app -home-user-some-other-app

Поскольку вычисленный путь не совпадает с реальной директорией, fs.existsSync(sessionFile) возвращает false, и сессия получает detail_messages: 0 и has_detail: false.

Затронутый код

Регулярка s.project.replace(/[\/\.]/g, '-') встречается в нескольких местах src/data.js:

  • Обогащение сессий Claude детальной информацией (~строка 712)
  • findSessionFile()
  • deleteSession()
  • exportSessionMarkdown()

Строка 286 (Cursor) использует ту же регулярку, но там логика другая и её менять не нужно.

Предлагаемый фикс

Заменить регулярку на ту, которая соответствует поведению Claude Code:

const projectKey = s.project.replace(/[^a-zA-Z0-9-]/g, '-');

Проверено локально — после замены сессии с _ в пути корректно загружают все сообщения.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions