إنتقل إلى المحتوى الرئيسي

الحالة والملفات

يخزن EstaCoda الحالة في نطاقين: عام (تحت ~/.estacoda/) ومحلي للملف الشخصي (تحت ~/.estacoda/profiles/<profile-id>/). يتم تتبع الملف الشخصي النشط على مستوى عام؛ كل شيء آخر مملوك للملف الشخصي المحدد.

الحالة العامة

الجذر الافتراضي: ~/.estacoda/

المسارالغرضالمنشئ
active-profile.jsonمؤشر الملف الشخصي النشطestacoda init، estacoda profile switch
trust.jsonمنح الثقة في مساحات العملestacoda workspace trust
workspace-approvals.jsonمنح الموافقة في مساحات العملأوامر الموافقة
sessions.sqliteقاعدة بيانات الجلسات العامة مع تحديد النطاق بواسطة profile_idتهيئة التشغيل
update-cache.jsonذاكرة تخزين مؤقت لفحص التحديث (عامة، TTL 6 ساعات)التحميل المسبق عند البدء، أمر التحديث
packs/registry.jsonlذاكرة تخزين مؤقت للحزم العامةعمليات الحزم
memory/shared/مقتطفات الذاكرة المشتركة العامةعمليات الذاكرة
python-env/بيئة Python الافتراضية المُدارة لـ STT المحلي عبر faster-whisperestacoda voice setup --stt-provider local
cache/huggingface/ذاكرة تخزين النموذج الافتراضية لـ faster-whisper / Hugging Faceتشغيل faster-whisper STT
cache/pip/ذاكرة pip المؤقتة المحصورة تحت حالة EstaCoda لإعداد STT المحلي المُدارإعداد Python المُدار
logs/update.logسجل عملية التحديث (وضع البوابة وتحديثات managed-source)أمر التحديث
.backups/<label>/نسخ احتياطية لحالة المستخدم قبل تعديل managed-sourceestacoda update

لا يتم حذف الحالة العامة عند إزالة ملف شخصي. إذا أردت بداية نظيفة، احذف الجذر العام. قم بنسخ قاعدة بيانات الجلسات احتياطياً أولاً إذا كنت تهتم بالتاريخ.

بيئة STT المحلية المُدارة وذاكرة النموذج منفصلتان عمداً:

~/.estacoda/python-env
~/.estacoda/cache/huggingface

ذاكرة النموذج لا تعيش داخل venv. حذف أحد المسارين لا يصلح الآخر؛ أعد تشغيل estacoda voice setup --stt-provider local لإعادة إنشاء بيئة Python المُدارة.

بيئات Python المدارة

تعيش بيئات قدرات Python المدارة تحت جذر حالة EstaCoda.

<stateRoot>/python-envs/<capability-id>/
<stateRoot>/python-envs/<capability-id>/env.json
<stateRoot>/cache/pip/<capability-id>/

يخزن مسار البيئة بيئة Python الخاصة بقدرة مسجلة واحدة. يسجل ملف البيان بصمة المواصفة المثبتة، وقائمة الحزم، والمجموعات الاختيارية، والمسارات، والطوابع الزمنية، وحالة التحقق. وتكون ذاكرة pip المؤقتة منفصلة لكل قدرة.

هذه المسارات ليست خاصة بملف شخصي. حالة المهارة الخاصة بالملف الشخصي، والذاكرات المؤقتة، والمخرجات التي يراها المستخدم، كلها حدود منفصلة.

يحافظ faster-whisper المحلي لتحويل الكلام إلى نص على مسار بيئته المدارة الحالي للتوافق. لا ينقله هذا التغيير بصمت إلى مسار القدرات العام.

الحالة المحلية للتثبيت

قد تحتوي أدلة تثبيت المصدر على ملف .install-method.json يثبت ملكية التثبيت. يستخدمه EstaCoda للتمييز بين التثبيت managed-source (مملوك من قبل المثبت، قد يتم تعديله بواسطة التحديث) وmanual-source (مملوك من قبل المساهم، لا تعديل ذاتي أبداً).

المسارالغرضالمنشئ
.install-method.jsonختم طريقة التثبيت: الطريقة، عنوان المصدر، الفرع، دليل التثبيتالمثبت (scripts/install.sh، scripts/setup-estacoda.sh)

الحالة المحلية للملف الشخصي

جذر الملف الشخصي: ~/.estacoda/profiles/<id>/

المسارالغرضمنشئ
config.jsonإعدادات التشغيل للملف الشخصي المحددestacoda init، estacoda setup، التحرير اليدوي
.envأسرار الملف الشخصي المحددتدفقات الإعداد، مخزن الأسرار
auth.jsonحالة مصادقة OAuth للملف الشخصي المحددإعداد Codex OAuth
USER.mdتفضيلات المستخدم وأسلوب التواصل للملف الشخصيترقية الذاكرة، memory.curate
SOUL.mdهوية وذاكرة الأمان للملف الشخصيmemory.curate
MEMORY.mdالحقائق والاتفاقيات المكتسبة للملف الشخصيترقية الذاكرة، memory.curate
promotions.jsonبيانات وصفية للترقيةترقية الذاكرة
gateway/حالة البوابة: الجلسات، الموافقات، وضع الصوت، رموز التسليمتشغيل البوابة
cron/jobs.jsonتعريفات مهام Cronestacoda cron create
skills/المهارات المثبتة للملف الشخصيعمليات المهارة، التعلم
skills/.usage.jsonتليمتري استخدام المهاراتالتشغيل
skills/.evolution/مقترحات وتوجيهات تطور المهاراتتطور المهارات
logs/سجلات الملف الشخصيالبوابة، التشغيل
channel-media/تنزيلات مرفقات القنواتمحولات البوابة
audio-cache/ذاكرة التخزين المؤقت للصوتأدوات الصوت
image-cache/ذاكرة التخزين المؤقت للصور المُنشأة والمعدّلةimage.generate, image.edit
temp/الملفات المؤقتةعمليات متنوعة
temp/delegation/تشخيصات timeout/stale-heartbeat محدودة للتفويض عند تفعيلهاRuntime التفويض
temp/audio/تسجيلات CLI، ملفات auto-TTS المؤقتة، تحويل Telegram، استقبال Discordعمليات الصوت
external-memory/سجلات الذاكرة الخارجية المدعومة بالملفاتالذاكرة الخارجية (إذا مُفعلة)

يسجل التفويض أيضًا صفوف/أحداث جلسات في sessions.sqlite. جلسات الأطفال مرتبطة بـ parentSessionId. ذاكرة نتائج التفويض، عند تفعيلها، تُخزن عبر مزود الذاكرة المضبوط كـ metadata محدودة للمهمة/الحالة فقط. تحذيرات stale-file هي metadata في الجلسة/النتيجة ولا تخزن محتوى ملفات أو diffs.

قاعدة الملكية

  • الملفات العامة مشتركة بين جميع الملفات الشخصية.
  • الملفات المحلية للملف الشخصي تنتمي إلى ملف شخصي واحد بالضبط.
  • الأوامر التي تنشئ حالة تُبلغ عن الملف الشخصي المالك للتغيير.
  • الأوامر التي تفحص الحالة تتطلب الملف الشخصي المحدد أو علامة --profile صريحة.

الاسترداد والفحص

# انظر أي ملف شخصي نشط
cat ~/.estacoda/active-profile.json

# فحص إعدادات الملف الشخصي
estacoda config show

# سرد جميع الملفات الشخصية
estacoda profiles list

# التحقق من شجرة حالة ملف شخصي محدد
ls -la ~/.estacoda/profiles/work/

# عرض السجلات للملف الشخصي المحدد
tail -f ~/.estacoda/profiles/work/logs/gateway.log

ما لا يجب فعله

  • لا تُعدّل sessions.sqlite مباشرة ما لم تعرف المخطط.
  • لا تنسخ ملفات .env بين الملفات الشخصية دون تحديث المسارات والأسرار.
  • لا تحذف gateway/ بينما البوابة قيد التشغيل; أوقف البوابة أولاً.
  • لا تحذف .install-method.json إلا إذا كنت تنوي تحويل تثبيت managed-source إلى manual-source.
  • لا تحرّر update-cache.json يدوياً; هو ذاكرة آلية.

صفحات ذات صلة