# Claude Code ลบประวัติหลัง 30 วัน: วิธีบันทึกไว้

> Claude Code เก็บเซสชันไว้ที่ใด วิธีตั้งค่า cleanupPeriodDays และวิธีจัดระเบียบคลังเก็บถาวรภายนอกโดยใช้ rsync, launchd หรือ cron

Source: https://ailoot.ai/blog/th/claude-code-history-30-days/
Canonical: https://ailoot.ai/blog/th/claude-code-history-30-days/
Language: th
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-056
Revision: sha256-b5e947e3e32469ca75cf4ac16e9bd77c7a7b083dfcbe6a455dc19cfc187a9453


หากต้องการความช่วยเหลือในการใช้บริการ โปรดดู[เอกสารประกอบของ Ailoot](https://ailoot.ai/docs/)



## Claude Code ลบประวัติเซสชันจริงหรือไม่?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

ประเด็นสำคัญ

จริง ทุกครั้งที่ Claude Code เริ่มทำงาน โปรแกรมจะลบไฟล์เซสชันที่มีอายุเกิน 30 วัน การตั้งค่า `cleanupPeriodDays` ใน `~/.claude/settings.json` เป็นตัวกำหนดเรื่องนี้ โดยค่าเริ่มต้นคือ `30` การลบเกิดขึ้นโดยไม่มีคำเตือน ไม่ขอความยินยอม และไม่มีวิธีกู้คืนไฟล์

</div>

คุณเปิด Claude Code เพื่อกลับไปทำงานต่อในเซสชันเมื่อสองเดือนก่อน แต่เซสชันนั้นหายไปแล้ว ไฟล์ถูกลบออกจากดิสก์อย่างสมบูรณ์ นี่ไม่ใช่ข้อผิดพลาดหรือบั๊กที่เกิดขึ้นได้ยาก แต่เป็นการทำงานของกลไกล้างข้อมูลตามค่าเริ่มต้น

มีการตั้งค่าเดียวที่ควบคุมการล้างข้อมูล นั่นคือ `cleanupPeriodDays` ค่าเริ่มต้นคือ `30` ทุกครั้งที่ Claude Code เริ่มทำงาน โปรแกรมจะสแกนโฟลเดอร์ประวัติและลบทุกอย่างที่เก่ากว่าระยะเวลานี้ ฉันไม่มีการตั้งค่านี้ใน `~/.claude/settings.json` เลย ซึ่งหมายความว่ามีการใช้ค่าเริ่มต้น และเซสชันเก่าบางส่วนของฉันก็หายไปแล้ว

มีรายงานบั๊กเกี่ยวกับเรื่องนี้หลายรายการในคลังโค้ดของ Anthropic และยังไม่มีรายการใดได้รับการแก้ไข

## Claude Code เก็บประวัติเซสชันไว้ที่ใด?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

ประเด็นสำคัญ

ประวัติของแต่ละเซสชันจะเก็บไว้ที่ `~/.claude/projects/<project-path>/<session-id>.jsonl` ชื่อโฟลเดอร์คือพาธแบบสัมบูรณ์ของไดเรกทอรีทำงานที่คุณใช้เรียก Claude Code โดยแทนเครื่องหมายทับด้วยขีดกลาง ไฟล์ `.jsonl` มีบทสนทนาทั้งหมด โดยแยกบรรทัดละรายการ ได้แก่ พรอมป์ต์ของคุณ คำตอบจากโมเดล การเรียกใช้เครื่องมือ และการแก้ไขไฟล์ นี่คือความทรงจำที่การล้างข้อมูลลบออก

</div>

ค้นหาประวัติได้ง่าย ๆ เปิดเทอร์มินัลแล้วดูเนื้อหาในโฟลเดอร์:

```bash
ls ~/.claude/projects/
```

โฟลเดอร์ย่อยแต่ละโฟลเดอร์คือโครงการหนึ่งโครงการ ชื่อโฟลเดอร์เข้ารหัสพาธไว้ ตัวอย่างเช่น โครงการใน `/Users/alex/dev/shop` จะกลายเป็นโฟลเดอร์ `-Users-alex-dev-shop` ภายในมีไฟล์เซสชัน:

```bash
ls -lt ~/.claude/projects/-Users-alex-dev-shop/
# 3f8a1c2e-....jsonl   ← หนึ่งเซสชัน = หนึ่งไฟล์
# a91b7d40-....jsonl
```

ไฟล์ `.jsonl` แต่ละไฟล์เป็นบันทึกแบบแยกบรรทัด โดยหนึ่งบรรทัดเท่ากับเหตุการณ์หนึ่งรายการในเซสชัน เนื้อหาไม่ได้มีแค่ข้อความสนทนา แต่ยังเก็บตรรกะเบื้องหลังการตัดสินใจของคุณด้วย เช่น เหตุใดจึงเลือกโครงสร้างฐานข้อมูลแบบหนึ่ง ตัวเลือกใดที่ปฏิเสธ Claude ทำผิดพลาดตรงไหน และคุณแก้ไขอย่างไร

กล่าวโดยสรุป นี่คือบันทึกการพัฒนาโครงการ การสูญเสียไฟล์จึงเจ็บปวด เพราะสิ่งที่หายไปไม่ใช่แค่ “แชต” แต่เป็นบริบทที่คุณสะสมมานานหลายสัปดาห์ ฉันอธิบายโครงสร้างของบริบทนี้ไว้ในคู่มือ [“Claude Memory เทียบกับ CLAUDE.md”](https://ailoot.ai/blog/th/claude-memory-claude-md-auto-memory/)

## ทำไม Anthropic จึงลบทรานสคริปต์หลัง 30 วัน?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

ประเด็นสำคัญ

จุดยืนของ Anthropic คือเรื่องความเป็นส่วนตัวและความปลอดภัย ไฟล์เซสชันเก็บอยู่บนดิสก์ในรูปข้อความธรรมดา และอาจมีซอร์สโค้ด รหัสผ่าน และ API keys การเก็บไฟล์เหล่านี้ไว้ตลอดไปมีความเสี่ยง หากแล็ปท็อปถูกขโมยหรือมีคนเข้าถึงดิสก์ พวกเขาก็จะได้ข้อมูลอ่อนไหวทั้งหมดไป ระยะเวลา 30 วันเป็นการประนีประนอมระหว่าง “กลับมาทำงานล่าสุดต่อ” กับ “ไม่เก็บความลับไว้บนดิสก์นานเกินจำเป็น”

</div>

การลบมีเหตุผลรองรับ และควรทำความเข้าใจก่อนปิดการทำงานทั้งหมด ทรานสคริปต์เป็นข้อความธรรมดา หาก Claude อ่านไฟล์ `.env` ระหว่างเซสชัน แทรกคีย์ลงในคำสั่ง หรือคุณวางรหัสผ่านลงในพรอมป์ต์ ข้อมูลทั้งหมดนั้นก็จะไปอยู่ใน `.jsonl` ในรูปข้อความธรรมดา ยิ่งไฟล์ดังกล่าวอยู่บนดิสก์นาน โอกาสที่ข้อมูลจะรั่วไหลสักวันหนึ่งก็ยิ่งสูง

Anthropic อธิบายตรงไปตรงมาว่า ทรานสคริปต์อาจมีซอร์สโค้ด ข้อมูลรับรอง และข้อมูลอ่อนไหวอื่น ๆ การเก็บไว้บนดิสก์นานเกินจำเป็นก่อให้เกิดความเสี่ยงต่อความเป็นส่วนตัวอย่างแท้จริง โดยเลือกระยะเวลา 30 วันเป็นทางประนีประนอม

ข้อคัดค้านของชุมชนมีสามประเด็น ได้แก่ การลบเกิดขึ้นอย่างเงียบ ๆ (ไม่มีคำเตือนระหว่างตั้งค่าหรือเมื่อเริ่มทำงาน) ไม่มีการขอความยินยอม (ไม่มีใครถามคุณ) และไม่มีวิธีกู้คืน (ไฟล์ไม่ถูกย้ายไปถังขยะและไม่มีการย้อนกลับ) ในissue \#59248 นักพัฒนากำลังขอสิ่งเดียว: ทำให้การล้างข้อมูลเป็นธรรม โดยแจ้งเตือน ให้มีระยะเวลากู้คืน และใช้ระยะเวลาเริ่มต้นที่ไม่เข้มงวดเกินไป

## ทำไมสคริปต์สำรองข้อมูลจึงอาจทำให้เกิดการลบเสียเอง?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

ประเด็นสำคัญ

การล้างข้อมูลตัดสินใจว่าจะลบอะไรโดยอิงจากเวลาแก้ไขไฟล์ (mtime) โดยไม่ได้ตรวจสอบกิจกรรมล่าสุดจริง ๆ ในเซสชัน กระบวนการใดก็ตามที่แตะไฟล์ `.jsonl` ไม่ว่าจะเป็นการซิงก์คลาวด์, rsync, โปรแกรมแก้ไขข้อความ หรือสคริปต์ ก็อาจเปลี่ยน mtime จนเซสชันใหม่ดูเหมือนล้าสมัยได้ เมื่อ Claude Code เริ่มทำงานครั้งถัดไป โปรแกรมจะมองว่าเซสชันนั้นเก่าและลบทิ้ง ความย้อนแย้งก็คือ ความพยายามสำรองประวัติแบบไม่ระวังภายในโฟลเดอร์ที่ระบบจัดการกลับเร่งให้ข้อมูลสูญหายเร็วขึ้น

</div>

นี่เป็นส่วนที่ซับซ้อนที่สุด และทำให้คนที่พยายามปกป้องข้อมูลด้วยตนเองพลาดได้ การล้างข้อมูลตรวจดู mtime ซึ่งเป็นเวลาที่แก้ไขไฟล์ครั้งล่าสุด โดยสมมติว่า mtime สะท้อนเวลาที่คุณทำงานในเซสชันนั้นครั้งล่าสุด ในทางปฏิบัติ อะไรก็เปลี่ยน mtime ได้ ไม่ว่าจะเป็นไคลเอนต์ซิงก์ Dropbox หรือ iCloud, `rsync`, ซอฟต์แวร์ป้องกันไวรัส โปรแกรมทำดัชนี หรือสคริปต์สำรองข้อมูลของคุณเอง

นี่คือกับดัก คุณตัดสินใจบันทึกประวัติและตั้งค่าซิงก์คลาวด์ให้กับ `~/.claude/projects/` ในบางครั้ง บริการซิงก์อาจเขียนไฟล์ใหม่และกำหนด mtime ให้เป็นวันที่ก่อนหน้า (กรณีนี้อาจเกิดขึ้นเมื่อกู้คืนจากสำเนาบนคลาวด์) Claude Code เห็นไฟล์ “เก่า” ตอนเริ่มทำงานและลบทิ้ง คุณตั้งใจจะบันทึกไฟล์ไว้ แต่กลับทำให้ถูกลบเร็วขึ้น

มีข้อสรุปเดียว: **ต้องเก็บข้อมูลสำรองไว้นอก `~/.claude/projects/`** การล้างข้อมูลทำงานเฉพาะภายในโฟลเดอร์นี้ สำเนาที่เก็บไว้นอกโฟลเดอร์จะอยู่พ้นจากการเข้าถึงของระบบล้างข้อมูล ฉันจะสร้างวิธีแก้ปัญหาโดยยึดหลักการนี้

## จะหยุดการลบประวัติได้อย่างไรในตอนนี้?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

ประเด็นสำคัญ

มีการตั้งค่าเดียว เปิด `~/.claude/settings.json` แล้วกำหนด `cleanupPeriodDays` เป็นตัวเลขจำนวนมาก เช่น `3650` (สิบปี) ในทางปฏิบัติ วิธีนี้จะปิดการลบอัตโนมัติ เพราะไม่มีไฟล์ใดเก่าเกินขีดจำกัด ข้อสำคัญ: การตั้งค่านี้ปกป้องเฉพาะสิ่งที่ยังไม่ถูกลบ ประวัติที่การล้างข้อมูลลบไปแล้วกู้คืนไม่ได้ ดังนั้นขั้นแรกคือลงมือก่อนที่คุณจะเสียอีกเซสชันหนึ่ง

</div>

หยุดการลบได้ในสามขั้นตอน:

1.  เปิดไฟล์การตั้งค่า: `~/.claude/settings.json` (หากไม่มีไฟล์นี้ ให้สร้างขึ้น)
2.  เพิ่มการตั้งค่า `cleanupPeriodDays` พร้อมกำหนดค่าให้สูง:

```json
{
  "cleanupPeriodDays": 3650
}
```

3.  บันทึกไฟล์ การตั้งค่านี้จะมีผลในครั้งถัดไปที่ Claude Code เริ่มทำงาน

ค่า `3650` หมายถึงสิบปี ในทางปฏิบัติ การลบจะไม่เกิดขึ้นอีก หากต้องการคงการล้างข้อมูลไว้แต่เพิ่มเวลา ให้ตั้งค่าเป็น `365` (หนึ่งปี) จากนั้นจะมีเพียงเซสชันที่เก่ากว่าหนึ่งปีเท่านั้นที่หายไป คุณตรวจสอบได้ว่าระบบใช้การตั้งค่านี้แล้วด้วยคำสั่งต่อไปนี้:

```bash
grep cleanupPeriodDays ~/.claude/settings.json
```

ข้อควรระวังที่มองข้ามได้ง่าย: การขยายระยะเวลาไม่ได้กู้คืนสิ่งที่ถูกลบไปแล้ว การล้างข้อมูลทำงานเมื่อเริ่มต้น และทุกอย่างที่ถูกลบในการทำงานครั้งก่อน ๆ จะหายไปถาวร จึงควรตั้งค่านี้ก่อน เพื่อป้องกันการสูญเสียในอนาคต แต่ไม่สามารถนำสิ่งที่ถูกลบไปแล้วกลับมาได้ หากต้องการหลีกเลี่ยงการสูญเสียประวัติ Claude Code รวมถึงปกป้องโครงการจากคำสั่งที่เผลอใช้ โปรดดูคู่มือ [“วิธีกำหนดค่า Claude Code เพื่อไม่ให้ทำให้โครงการของคุณเสียหาย”](https://ailoot.ai/blog/th/claude-code-safe-overnight-setup/)

ประวัติเซสชันของคุณเป็นส่วนหนึ่งของสมองที่สองของโครงการ เพราะมีตรรกะการตัดสินใจที่คุณไม่ได้บันทึกไว้ที่อื่น `cleanupPeriodDays` ช่วยเก็บไฟล์ไว้ แต่ไม่ได้เปลี่ยนไฟล์เหล่านั้นให้เป็นระบบที่ช่วยค้นหาสิ่งที่ต้องการได้ในอีกหกเดือนข้างหน้า



## จะเก็บประวัติอัตโนมัตินอกโฟลเดอร์ล้างข้อมูลได้อย่างไร?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

ประเด็นสำคัญ

คัดลอกเซสชันไปยังคลังเก็บถาวรที่อยู่นอก `~/.claude/projects/` ซึ่งไม่ได้รับผลจากการล้างข้อมูล การใช้ `rsync -a` คัดลอกไปยังไดเรกทอรีแยกต่างหากวันละครั้งก็เพียงพอ: ไฟล์ใหม่จะถูกเพิ่ม ส่วนไฟล์เก่าก็ยังอยู่ เนื่องจากคลังเก็บถาวรอยู่ภายนอก ทั้ง `cleanupPeriodDays` และบั๊ก mtime จึงไม่ส่งผล ตั้งเวลาให้ทำงานอัตโนมัติด้วย launchd (macOS) หรือ cron (Linux) แล้วประวัติของคุณจะสะสมไปเรื่อย ๆ

</div>

แนวคิดเรียบง่าย: ปล่อยให้ Claude Code จัดการโฟลเดอร์ของตัวเองตามต้องการ ขณะที่คุณเก็บคลังแยกไว้ภายนอก คลังรอดจากกลไกล้างนี้ แต่ยังสูญจากดิสก์เสีย ลบโดยไม่ตั้งใจ หรือคัดลอกล้มเหลวได้ ตั้งค่าดังนี้:

1.  สร้างโฟลเดอร์คลังเก็บถาวรนอกไดเรกทอรีที่ระบบจัดการ:

```bash
mkdir -p ~/claude-history-archive
```

2.  คัดลอกประวัติปัจจุบันไปไว้ที่นั่น แฟล็ก `-a` จะรักษาโครงสร้างและเวลาไว้ ส่วน `--ignore-existing` จะไม่แตะต้องไฟล์ที่คัดลอกไปแล้ว:

```bash
rsync -a ~/.claude/projects/ ~/claude-history-archive/
```

3.  ตั้งเวลาให้ทำงานอัตโนมัติวันละครั้ง บน macOS ให้ใช้ launchd สร้างไฟล์ `~/Library/LaunchAgents/com.example.claudearchive.plist`:

```xml
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.example.claudearchive</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/bin/rsync</string>
    <string>-a</string>
    <string>/Users/YOUR_NAME/.claude/projects/</string>
    <string>/Users/YOUR_NAME/claude-history-archive/</string>
  </array>
  <key>StartInterval</key>
  <integer>86400</integer>
</dict>
</plist>
```

4.  โหลดเอเจนต์เพื่อให้ทำงานอยู่เบื้องหลัง:

```bash
launchctl load ~/Library/LaunchAgents/com.example.claudearchive.plist
```

บน Linux ทำแบบเดียวกันได้โดยเพิ่มหนึ่งบรรทัดใน crontab (`crontab -e`):

```bash
0 3 * * * rsync -a ~/.claude/projects/ ~/claude-history-archive/
```

เหตุใดวิธีนี้จึงได้ผล ทั้งที่การซิงก์จากส่วนก่อนหน้าล้มเหลว? คลังเก็บถาวรอยู่นอก `~/.claude/projects/` ระบบล้างข้อมูลจึงมองไม่เห็นเลย การคัดลอกเป็นทางเดียว (จากโฟลเดอร์ที่ใช้งานอยู่ไปยังคลังเก็บถาวร) และเราไม่แตะ mtime ของไฟล์ที่ใช้งานอยู่ จึงไม่เกิดบั๊ก mtime แม้ Claude Code จะลบเซสชันออกจากโฟลเดอร์ของตัวเองในวันพรุ่งนี้ สำเนาในคลังเก็บถาวรก็ยังอยู่

## จะเปลี่ยนคลังเก็บเซสชันให้เป็นสมองที่สองซึ่งค้นหาได้อย่างไร?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

ประเด็นสำคัญ

นำคลังเก็บถาวรเข้า git แล้วคุณจะได้ฐานข้อมูลเซสชันทั้งหมดที่ค้นหาได้และมีการจัดการเวอร์ชัน เรียกใช้ `git init` ในโฟลเดอร์คลังเก็บถาวร จากนั้นใช้ `git add -A && git commit` ทุกวันเพื่อสร้างประวัติการเปลี่ยนแปลงและป้องกันการเขียนทับโดยไม่ตั้งใจ คุณค้นหาเซสชันที่ผ่านมาได้ด้วย grep ทั่วไป และดึงเนื้อหาที่มีโครงสร้างด้วย jq เพราะ `.jsonl` คือ JSON ที่แบ่งเป็นบรรทัด วิธีนี้เปลี่ยนคลังเก็บถาวรให้เป็นเครื่องมือใช้งานได้จริง

</div>

แค่สะสมไฟล์ไว้อย่างเดียวยังไม่พอ คุณต้องเข้าถึงไฟล์เหล่านั้นได้ด้วย สองขั้นตอนจะเปลี่ยนคลังเก็บถาวรให้เป็นเครื่องมือที่ใช้งานได้

ขั้นแรก จัดการเวอร์ชันด้วย git เริ่มต้นคลังเก็บในโฟลเดอร์คลังเก็บถาวร:

```bash
cd ~/claude-history-archive
git init
git add -A && git commit -m "First snapshot of Claude Code history"
```

เพิ่ม `git add -A && git commit` ลงในการทำงานประจำวันเดียวกับ rsync ตอนนี้คุณมีประวัติเวอร์ชันแล้ว จึงดูได้ว่ามีอะไรเพิ่มขึ้นและเพิ่มเมื่อใด รวมทั้งย้อนคืนการเขียนทับโดยไม่ตั้งใจได้ด้วยคำสั่งเดียว

ขั้นที่สอง ค้นหาไฟล์ `.jsonl` เป็น JSON ที่แบ่งเป็นบรรทัด จึงใช้เครื่องมือที่คุ้นเคยกับไฟล์เหล่านี้ได้ ค้นหาว่าเซสชันใดพูดถึงหัวข้อหนึ่งโดยเฉพาะ:

```bash
grep -rl "database migration" ~/claude-history-archive/
```

ดึงเฉพาะข้อความพรอมป์ต์ของคุณจากเซสชันหนึ่ง (ใช้ jq เพราะข้อมูลเป็น JSON):

```bash
jq -r 'select(.type=="user") | .message.content' session.jsonl
```

เมื่อถึงจุดนี้ ประวัติเซสชันของคุณก็เริ่มทำหน้าที่เป็นสมองที่สองของโครงการ เป็นฐานข้อมูลที่ช่วยค้นหาได้ในไม่กี่วินาทีว่า “เราตัดสินใจเรื่องนี้อย่างไรในเดือนมีนาคม” หากต้องการรายละเอียดแยกต่างหากว่าบริบทอยู่ตรงไหนในเซสชันและจัดการอย่างไร โปรดดูคู่มือ [“โทเค็นไปอยู่ที่ไหนใน Claude Code”](https://ailoot.ai/blog/th/where-claude-code-tokens-go/)

## กู้คืนเซสชันที่ถูกลบไปแล้วได้หรือไม่?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

ประเด็นสำคัญ

ไม่มีวิธีที่มีมาให้ในระบบ Claude Code ไม่ย้ายไฟล์ที่ถูกลบไปยังถังขยะและไม่มีระบบย้อนกลับ ไฟล์ถูกลบถาวร โอกาสเดียวคือมีสำเนาภายนอกที่ทำไว้ก่อนการลบ เช่น สแนปช็อต Time Machine บน macOS ประวัติเวอร์ชันของ OneDrive หรือ Dropbox หรือข้อมูลสำรองที่ทำด้วยตนเอง หากไม่มีสิ่งเหล่านี้ เซสชันก็สูญหาย นั่นคือเหตุผลที่ต้องตั้งค่าการป้องกันไว้ล่วงหน้า ก่อนที่จะมีอะไรให้สูญเสีย

</div>

คำตอบตามตรงคือ: อาจกู้คืนไม่ได้ Claude Code ไม่มีฟีเจอร์กู้คืน ไม่มีถังขยะ และไม่มีบันทึกการเลิกทำสำหรับทรานสคริปต์ที่ถูกลบ ไฟล์จะหายไปจากดิสก์เลย

มีทางเลือกหนึ่ง คือข้อมูลสำรองของระบบ หากเปิดใช้ไว้ล่วงหน้า:

1.  **Time Machine บน macOS** — หากสแนปช็อตบันทึก `~/.claude/projects/` ไว้ก่อนการลบ คุณก็ดึงไฟล์จากข้อมูลสำรองของวันที่ต้องการได้
2.  **ประวัติเวอร์ชันของ OneDrive / Dropbox** — หากโฟลเดอร์ซิงก์ไว้โดยเปิดใช้การจัดการเวอร์ชัน ให้ค้นหาไฟล์ในประวัติเวอร์ชันของคลาวด์ (แต่โปรดจำกับดัก mtime: การซิงก์อาจเป็นสาเหตุให้เกิดการลบได้เช่นกัน)
3.  **สำเนาที่ทำด้วยตนเอง** — ไฟล์ใดก็ตามที่คุณคัดลอกด้วย `rsync`/`cp` ไปยังตำแหน่งนอกโฟลเดอร์ที่ระบบจัดการ

หากไม่มีสิ่งเหล่านี้ เซสชันก็หายไปแล้ว และนี่ไม่ใช่เรื่องที่เกิดขึ้นได้ยาก: ผู้เขียนรายหนึ่งของบั๊กในคลังโค้ดของ Anthropic มีระเบียน 26 จาก 38 รายการเสียหาย ซึ่งเป็นงานที่สะสมมาหลายเดือน การป้องกันที่เชื่อถือได้มีเพียงการตั้งค่าไว้ก่อนเกิดการสูญเสีย ตั้งค่า `cleanupPeriodDays` และการเก็บถาวรอัตโนมัติวันนี้ ขณะที่ยังมีสิ่งให้บันทึกอยู่

## ควรเลือกค่าใดสำหรับ cleanupPeriodDays?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

ประเด็นสำคัญ

สำหรับคนส่วนใหญ่ ให้ใช้ `3650` (สิบปี ซึ่งแทบจะปิดการลบได้) ร่วมกับคลังเก็บถาวรภายนอกแบบอัตโนมัติ คงค่าเริ่มต้น `30` ไว้เฉพาะเมื่อคุณไม่ต้องการประวัติ และการไม่เก็บความลับไว้บนดิสก์สำคัญกว่า ค่า `365` เป็นทางสายกลางที่เหมาะสม โดยล้างข้อมูลปีละครั้ง อีกทางเลือกหนึ่งคือไม่เขียนประวัติเลย ใช้ตัวแปรสภาพแวดล้อม `CLAUDE_CODE_SKIP_PROMPT_HISTORY` หรือแฟล็ก `--no-session-persistence` แต่ตัวเลือกเหล่านี้ตอบโจทย์ตรงกันข้าม

</div>

มีการตั้งค่าเดียว แต่ใช้ให้ได้ผลหลายแบบ เปรียบเทียบตัวเลือกแล้วเลือกให้เหมาะกับการใช้งานของคุณ:

| ค่า | ทำอะไร | เหมาะกับใคร |
|----|----|----|
| `30` (ค่าเริ่มต้น) | ลบเซสชันที่เก่ากว่า 30 วันเมื่อเริ่มทำงาน | คุณไม่ต้องการประวัติ และการหลีกเลี่ยงการจัดเก็บข้อมูลอ่อนไหวบนดิสก์สำคัญกว่า |
| `365` | เก็บประวัติไว้หนึ่งปี แล้วล้างปีละครั้ง | คุณต้องการประวัติล่าสุด แต่ไม่ต้องการคลังเก็บถาวรแบบไม่มีกำหนด |
| `3650` | แทบจะปิดการลบ | คุณต้องการเก็บทุกอย่าง + มีคลังเก็บถาวรภายนอก (แนะนำ) |
| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | ไม่เขียนประวัติลงดิสก์เลย | ความเป็นส่วนตัวสูงสุด; คุณไม่ต้องการประวัติเลย |

ข้อควรระวังด้านความปลอดภัยที่สำคัญ: หากคุณตั้งค่า `3650` และเก็บทุกอย่างไว้ เท่ากับยอมรับการจัดเก็บทรานสคริปต์ที่อาจมีคีย์และโค้ดบนดิสก์ นี่คือการแลกเปลี่ยนอย่างตั้งใจระหว่างความสะดวกของการมีคลังเก็บถาวรกับความเสี่ยง ลดความเสี่ยงด้วยการเก็บคลังไว้บนดิสก์ที่เข้ารหัส (FileVault บน macOS) อย่านำไปไว้บนคลาวด์สาธารณะ และอย่า commit ลงในคลัง git สาธารณะ ฉันจัดทำคู่มือแยกเกี่ยวกับข้อมูลที่อาจรั่วไหลผ่าน Claude Code ไว้ที่นี่: [“ความปลอดภัยของข้อมูลใน Claude Code”](https://ailoot.ai/blog/th/claude-code-data-access-safety/)

## วันนี้ควรทำอะไร: รายการตรวจสอบ

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

ประเด็นสำคัญ

ขั้นเหล่านี้ลดการสูญประวัติ: เพิ่ม retention ด้วย `cleanupPeriodDays: 3650` คัดลอกเซสชันออกนอก `~/.claude/projects/` และเก็บเวอร์ชันคลัง เฉพาะไฟล์ที่คัดลอกสำเร็จรอดจากการล้างของ Claude Code ตารางรายวันยังทำให้ข้อมูลเปลี่ยนล่าสุดได้ถึงหนึ่งวันไม่ถูกเก็บ แม้งานสำเร็จ หากพลาดหรือล้มเหลวช่องว่างจะยาวขึ้น สำเนาบนดิสก์เดียวไม่ป้องกันดิสก์เสีย

</div>

ตั้งค่าการป้องกันทีละขั้นตอน:

1.  ตั้ง `cleanupPeriodDays: 3650` ใน `~/.claude/settings.json` — เท่านี้ก็หยุดการลบแล้ว
2.  สร้าง `~/claude-history-archive` นอกโฟลเดอร์ที่ระบบจัดการ แล้วเรียก `rsync -a` ครั้งแรก
3.  ตั้งเวลาให้ทำงานทุกวันด้วย launchd (macOS) หรือ cron (Linux)
4.  เริ่มต้น git ในคลังเก็บถาวร และเพิ่ม `git add -A && git commit` ในการทำงานเดียวกัน
5.  ตรวจสอบว่าคลังเก็บถาวรอยู่บนดิสก์ที่เข้ารหัสและไม่ได้ซิงก์กับคลาวด์สาธารณะ
6.  ตรวจทุกรอบตามตารางว่าคัดลอกสำเร็จ แล้วตรวจเซสชันล่าสุดในคลัง และกู้ตัวอย่างลงโฟลเดอร์ชั่วคราวแยกเป็นระยะเพื่อยืนยันว่าอ่านได้
7.  หากต้องป้องกันอุปกรณ์หรือดิสก์สูญหาย ให้เก็บสำรองอิสระที่มีสิทธิ์เหมาะสมและทดสอบกู้ด้วย ประวัติ Git บนดิสก์เดียวไม่ใช่สำรองอิสระ

ประวัติเซสชันเป็นเพียงชั้นหนึ่งของบริบทที่ทำให้ Claude ทำงานได้อย่างน่าเชื่อถือ

<div class="section" role="doc-bibliography" aria-label="Sources">

### แหล่งที่มา

- [เอกสาร Claude Code - การตั้งค่า settings.json (cleanupPeriodDays)](https://code.claude.com/docs/en/settings)
- [เอกสาร Claude Code - มีอะไรใหม่](https://code.claude.com/docs/en/whats-new)

</div>





มาทำความรู้จักกับ [Ailoot](https://ailoot.ai/)

## คำถามที่พบบ่อย

### เก็บคลังรายวันรับประกันว่าไม่มีเซสชันสูญได้หรือไม่?

ไม่รับประกัน ป้องกันเฉพาะไฟล์ที่คัดสำเร็จจากการล้างโฟลเดอร์จัดการ แม้รันรายวันสำเร็จก็อาจขาดการเปลี่ยนล่าสุดได้ถึงหนึ่งวัน งานล้มเหลวทำช่องว่างยาวขึ้น และสำเนาดิสก์เดียวเสียพร้อมต้นฉบับได้

### ตรวจว่าคลังใช้ได้จริงอย่างไร?

ยืนยันว่าคัดลอกตามตารางสำเร็จ ตรวจเซสชันล่าสุด และกู้ตัวอย่างลงโฟลเดอร์ชั่วคราวแยกเป็นระยะ หากป้องกันอุปกรณ์หรือดิสก์สูญหาย ให้ทดสอบสำรองที่เก็บอิสระจากต้นฉบับด้วย


## Ailoot · บริษัทและพอร์ตโฟลิโอโครงการของบริษัท

Ailoot อาศัยประสบการณ์การดำเนินงานที่สั่งสม ฐานลูกค้าขนาดใหญ่ บริการที่เสถียร และการติดตาม KPI อย่างต่อเนื่อง

บริษัทและพอร์ตโฟลิโอโครงการของบริษัท: ลูกค้าหลายล้านราย; ยอดขายระดับหลายพันล้านต่อเดือน.

Ailoot นำประสบการณ์การดำเนินงานนี้มาใช้เพื่อให้เข้าถึงฟังก์ชัน AI ผ่าน API ในผลิตภัณฑ์ของลูกค้า เอเจนต์ แอปพลิเคชัน และระบบอัตโนมัติ
