স্টোরেজ লেআউট
সমস্ত ডেটা ~/.somtum/-এর অধীনে থাকে:
~/.somtum/
├── config.json ← গ্লোবাল কনফিগ (প্রজেক্ট কনফিগের সাথে মার্জ করা)
├── hook.log ← প্রতিটি হুক এক্সিকিউশনের টাইমস্ট্যাম্পযুক্ত লগ
├── session/
│ └── lh_<id>.json ← প্রতি প্রজেক্টে শেষ ক্যাশ-হিট স্টেট (false-hit সনাক্তকরণ)
│ ২৪ ঘণ্টার বেশি পুরনো ফাইলগুলি স্বয়ংক্রিয়ভাবে বাদ দেওয়া হয়
├── warmstart/
│ └── ws_<id>_<timestamp>.json ← PreCompact-এর পরে লেখা warm-start কনটেক্সট (৩০ মিনিট TTL)
│ একযোগে উইন্ডোগুলি একে অপরকে ওভাররাইট না করতে টাইমস্ট্যাম্পযুক্ত
└── projects/
└── <project_id>/
├── db.sqlite ← সত্যের উৎস (SQLite WAL)
├── index.md ← মানব-পঠনযোগ্য মিরর (rebuild-এ পুনর্জন্ম)
└── memories/
└── YYYY-MM/
└── <ulid>.md ← প্রতি-পর্যবেক্ষণ markdown ফাইলপ্রজেক্ট ID
প্রজেক্ট ID git রিমোট URL থেকে উদ্ভূত (বা রিমোট না থাকলে ডিরেক্টরি পাথ)। একই প্রজেক্ট মেশিন জুড়ে একই ID-তে ম্যাপ হয় যতক্ষণ রিমোট URL মেলে — এটাই মাল্টি-ডিভাইস সিঙ্ককে কাজ করায়।
সত্যের উৎস
SQLite হল সত্যের উৎস। হাতে নয়, somtum edit <id> দিয়ে পর্যবেক্ষণ সম্পাদনা করুন। index.md এবং প্রতি-পর্যবেক্ষণ .md ফাইলগুলি DB থেকে তৈরি মানব-পঠনযোগ্য মিরর।
হুক লগ
প্রতিটি হুক এক্সিকিউশন ~/.somtum/hook.log-এ যোগ করা হয়। ডিবাগ করার সময় পরীক্ষা করুন:
cat ~/.somtum/hook.log
tail -20 ~/.somtum/hook.logWarm-start ফাইল
একটি PreCompact ইভেন্টের পরে (কনটেক্সট উইন্ডো কম্প্যাকশন), Somtum সবচেয়ে সাম্প্রতিক কনটেক্সট ধারণকারী একটি warm-start ফাইল লেখে। পরবর্তী প্রম্পটে, এটি স্বয়ংক্রিয়ভাবে ইনজেক্ট হয় যাতে Claude যেখান থেকে ছেড়েছিল সেখান থেকে তুলে নেয়। ফাইলগুলি ৩০ মিনিটের পরে মেয়াদ শেষ হয়।
ব্যাকআপ বা মাইগ্রেট করা
আপনার মেমরি একটি নতুন মেশিনে নিয়ে যেতে:
# পুরনো মেশিন থেকে এক্সপোর্ট করুন
somtum export --format jsonl --output obs.jsonl
# নতুন মেশিনে কপি করুন, তারপর ইমপোর্ট করুন
somtum import obs.jsonlঅথবা বিল্ট-ইন সিঙ্ক ব্যবহার করুন:
somtum config set sync.remote "user@newhost:/path/.somtum/projects/<id>"
somtum sync push