close

DEV Community

yurenpai
yurenpai

Posted on

Don't Open Claude Code With a Non-Latin Directory Name. Your Conversations Are Disappearing.

Don't Open Claude Code With a Non-Latin Directory Name. Your Conversations Are Disappearing.

Confirmed across 4 languages. 6 layers of impact. One root cause.


A conversation vanished

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.


Digging into the encoding

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-------
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Two different folders — mapped to the same session directory.


This means three things

1. Cleanup in one directory deletes the other

Running claude project purge in 项目甲 deleted the project directory ---- — including all sessions from 测试乙. The user of 测试乙 never knew their conversations were deleted.

2. One directory can see the other's conversations

Running claude --resume in 测试乙 showed 项目甲's conversation. Someone who has never opened that project can resume its full chat history.

3. Not just Chinese

I tested Japanese (日本語テスト), Korean (한국어테스트), and Arabic (اختبار). All four languages produced the same collision. Every non-Latin script is affected.


Pre-existing collisions on real systems

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.


The root cause

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
Enter fullscreen mode Exit fullscreen mode

Who is affected

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:

  • Running claude project purge in one project silently deleting another project's conversations
  • Using --resume and seeing conversations from unrelated projects
  • autoUploadSessions syncing merged conversations from multiple projects to claude.ai
  • cleanupPeriodDays (default 30 days) operating on the collided directory — treating multiple projects as one

Detection tool — ai-config-guard

I 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 .
Enter fullscreen mode Exit fullscreen mode

It does three things:

  1. 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.

  2. 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.

  3. 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.
GitHub Issue: https://github.com/anthropics/claude-code/issues/70674

Top comments (0)