Confirmed across 4 languages. 6 layers of impact. One root cause.
June 24. I had a 30-minute session with Claude Code in C:\Users\...\Desktop\claude面试
. Went back in the afternoon. Gone. --resume
found nothing.
I didn't delete it. I didn't run cleanup. I didn't touch .claude
.
Claude Code stores all conversation history under .claude/projects/
— one directory per project. The directory name encodes the project path.
简历/ → C--Users-...-Desktop---
claude面试/ → C--Users-...-Desktop-claude--
测试中文目录/ → C--Users-...-Desktop-------
The Chinese characters are gone. Replaced by hyphens. Two Chinese characters become two hyphens. Six characters become six hyphens.
To verify, I created two different directories with the same character count:
项目甲 (3 chars) → C--Users-...-Desktop----
测试乙 (3 chars) → C--Users-...-Desktop---- ← Same directory
Two different folders — mapped to the same session directory.
Running claude project purge
in 项目甲
deleted the project directory ----
— including all sessions from 测试乙
. The user of 测试乙
never knew their conversations were deleted.
Running claude --resume
in 测试乙
showed 项目甲
's conversation. Someone who has never opened that project can resume its full chat history.
I tested Japanese (日本語テスト
), Korean (한국어테스트
), and Arabic (اختبار
). All four languages produced the same collision. Every non-Latin script is affected.
While investigating, I found that my own .claude/projects/
already contained 5 hyphen-only directories with sessions from real folders — not test directories. For example, C--Users-...-Desktop--------
contained sessions from C:\Users\...\Desktop\资料
. This bug has been silently colliding sessions for as long as these directories have existed.
Claude Code's path encoding strips every non-Latin character and replaces it with a hyphen. Different directory names with the same non-Latin character count collide to the same .claude/projects/
entry.
Real path: C:\Users\...\Desktop\测试中文目录
Encoded path: C--Users-...-Desktop-------
All 6 characters → 6 hyphens
Anyone using directory names with Chinese, Japanese, Korean, Arabic, Russian, Hebrew, Thai — or any non-Latin script. That's every developer who doesn't name their folders in ASCII.
At risk:
claude project purge
in one project silently deleting another project's conversations--resume
and seeing conversations from unrelated projectsautoUploadSessions
syncing merged conversations from multiple projects to claude.aicleanupPeriodDays
(default 30 days) operating on the collided directory — treating multiple projects as oneI built a free, open-source scanner that catches this before Claude Code silently loses your data. Point it at any project directory:
git clone https://github.com/yurenpai/ai-config-guard.git
cd ai-config-guard
node index.js .
It does three things:
Checks the directory name FIRST — if it contains non-Latin characters, you get an immediate warning with the encoded name and collision risk. This is the NON_LATIN_DIRNAME
rule — built from the discovery above.
Scans your project files — detects instructions that could make an AI coding assistant read your credentials, exfiltrate data, or execute hidden commands. 7 detection rules covering everything from CREDENTIAL_READ
to cross-language ambiguity.
Runs in CI/CD — GitHub Actions integration with SARIF export for GitHub Code Scanning.
Web dashboard included. Dark/light theme. Chinese/English bilingual. Zero dependencies beyond Node.js.
This is the only tool that currently detects the non-Latin path encoding bug. If your directory name has Chinese, Japanese, Korean, Arabic, or any non-Latin characters — it will tell you before Claude Code loses your conversations.
June 25, 2026 · Discovered, tested, reported, and built a detection tool for it.