عن المشروع

ohmyboring هو نظام ذاكرة شخصية ذاتي الاستضافة لوكلاء البرمجة. يلتقط كيفية حلّك للأمور في Claude Code وKimi Code وجلسات Codex المؤهلة، ويستخلص كل جلسة إلى ملاحظة markdown منسّقة تُخزَّن في خزنة محلية، ويعيد تلك الملاحظات عندما تسأل "كيف فعلت هذا في المرة الماضية؟". كل شيء يعمل محليًا: التضمين والتوليف يمرّان عبر خادم نموذج لغوي محلي (Ollama أو LM Studio أو أي نقطة نهاية متوافقة مع OpenAI)، دون واجهات برمجية خارجية أو رموز. كيف تدخل الذاكرة: - تلقائيًا عند انتهاء الجلسة: خطاف SessionEnd يستخلص النص ويخزّنه؛ وخطاف UserPromptSubmit المقترن يحقن ما يصل إلى ثلاث مقتطفات سابقة ذات صلة في المطالبات الجديدة، كل منها يحمل ادعاءات مستقرة. - عامل Codex: بما أن Codex لا يملك خطاف SessionEnd، يفحص عامل مضيف ~/.codex/sessions كل 20 دقيقة ويستوعب النصوص المؤهلة. - التعبئة الرجعية: `make collect` يبذر خزنة فارغة من تاريخ Claude Code السابق (الأحدث أولًا، متكرر بأمان، N لكل تشغيل)؛ و`make collect-kimi` يفعل الشيء نفسه لـ Kimi Code. - أثناء الجلسة: `make distill-now` يعيد استخلاص النص الحالي، و`make remember M="..."` يحفظ ملاحظة صريحة. الذاكرة markdown أولًا: ملاحظات عادية مقروءة بشريًا وقابلة للفرق عبر git في vault/wiki، ويمكن فتحها مباشرة كخزنة Obsidian لعرض الرسم البياني والروابط الخلفية والوسوم والبحث النصي الكامل. مسرّع pgvector اختياري (BORING_VECTOR=on) يضيف بحث التشابه وGraphRAG عند الحاجة إلى التوسع. تفصل البنية بين باب قراءة سريع بلا نموذج لغوي (`make ask`، recall.py، MCP recall) وباب كتابة مُبوَّب (distill-session.py يستدعي النموذج المحلي ويكتب عبر أداة remember MCP حتمية). بوابة التكرار تتخطى الملاحظات المكررة لكنها تسمح لملاحظة أغنى بإعادة كتابة ملف الويكي نفسه. عقد رسم سير عمل مُنمَّط على جانب Rust في drudge/src/workflow.rs يحدد مفردات العقد والحواف لاكتشاف الجلسات والاستخلاص والتحقق والإصلاح والتذكر وتحديث العلامات وتسجيل الأحداث وإسقاط الجاهزية، بينما لا تزال خطافات Python والعمال ينفذون إدخال/إخراج المضيف. الإعدادات في boring.json (من boring.example.json): لغة الملاحظات، مزوّد النموذج/base_url/النموذج/نموذج التضمين وأبعاده، قواعد أصل المستودع، ومحولات نصوص الوكلاء. تبديل الواجهات الخلفية كتلة إعداد واحدة؛ و`make up` يوزّع على سكربتات تمهيد خاصة بالمزوّد. تغيير نموذج التضمين يغيّر أبعاد المتجه، لذا يجب تحديث llm.embed_dim وتشغيل `make reset`. ملف .env يحمل الأسرار والتجاوزات وقت التشغيل مثل BORING_VECTOR وتجاوزات LLM وحدود الاستخلاص وأعداد ادعاءات الاسترجاع وقياس الصلة وإعدادات مصرف/بكرة الأحداث ونوافذ الجاهزية ورمز مالك لاستدعاءات الكتابة. تشمل الأدوات التشغيلية `make verify-llm` (المزوّد ومعرّفات النموذج وأبعاد التضمين)، و`make doctor` (الحزمة والخطافات وعامل/طابور Codex وأحدث استيعاب)، و`make readiness` (بوابة صارمة قبل الإحاطة)، و`make peek` (صفحة محلية للقراءة فقط تُظهر الملاحظات التي حقنها الاسترجاع ومدى وصول المسترجع)، و`make usage` (استخدام الرموز والنموذج مجمّعًا من النصوص المحلية). بوابة للبيانات الشخصية/الحساسة في vault/rules/pii.yaml تدعم إجراءات الحجب والتنقيح والوسم مع علامات إعفاء لكل سطر. تشمل التكاملات الاختيارية مساعد Slack وعمال Hermes cron لإحاطات الصباح. المتطلبات هي Docker وPython 3 وjq وcurl وgit وmake وخادم نموذج لغوي محلي. النسخة المستنسخة الجديدة تبدأ بخزنة فارغة، لذا لا يجد الاسترجاع في اليوم الأول شيئًا حتى تُعبَّأ السجلات رجعيًا. المشروع مرخّص بـ MIT ويوثّق إرشادات إقران النماذج المحلية حسب ذاكرة الجهاز وأوامر القياس وأداء الاستخلاص/التضمين المقاس.