SSD Nodes Learn Hosting plans →
الأدلة Matt Connorبقلم Matt Connor · آخر تحديث في 2026-08-28

تثبيت DeepSeek Harness على VPS بأمان عبر نفق SSH

ثبّت DeepSeek Harness على خادم Linux، وثبّت إصدار npm، وافهم حدود الإضافات، ثم افتح واجهة الويب على المنفذ 3080 عبر نفق SSH دون تعريضها للعامة.

ماهية DeepSeek Harness

إن DeepSeek Harness (dsh) هو بيئة تشغيل لوكيل مبنية على Node.js يمكنك تشغيلها على VPS (خادم افتراضي خاص). والطريقة الآمنة لتشغيلها هي ربطها بالعنوان 127.0.0.1، ثم الوصول إليها من متصفحك عبر نفق SSH (shell آمن). توفّر البيئة واجهة ويب (واجهة مستخدم) على المنفذ 3080 بدلاً من تشغيلها داخل الطرفية. لا يطلب خادم الويب هذا كلمة مرور خاصة به، لذلك فإن نشر المنفذ 3080 يتيح لأي شخص يعثر عليه الوصول إلى وكيل يقرأ ملفاتك وينفّذ الأوامر بامتيازات مستخدم Linux الخاص بك.

أصدرت DeepSeek هذه البيئة في 13 August 2026 بموجب ترخيص MIT، على شكل حزمة npm باسم @deepseek-ai/dsh. يصف المشروع نفسه بأنه إصدار أولي للمطورين، ويذكر أن التغييرات التي تكسر التوافق متوقعة. كل رقم إصدار أدناه يمثل لقطة من August 2026، لذلك تحقّق من المستودع قبل نسخ أي جزء منها إلى خادم مهم.

تتكرر فكرة واحدة في التصميم كله: كل شيء عبارة عن plugin. فـmodel adapter وtool registry وsession log وsandbox وscheduler وagent loop نفسها هي plugins تُحمَّل في سياق مشترك واحد، ويمكن استبدال أيٍّ منها. لا توجد نواة ذات امتيازات تقتصر وظيفة plugins على تزيينها. وهذا ما يجعل تجربة harness جديرة بالاهتمام، وهو أيضاً موضع الخطر الحقيقي الوحيد. ويتوقف مدى صحة هذه المقايضة على ما تقارنها به، وتضع مقارنة أدائها مع Claude Code وOmnigent تصميم جعل كل شيء plugin إلى جانب إجابتين أخريين عن مدى الارتباط بالنموذج، والترخيص، وحجم موارد VPS التي يتطلبها كل حل.

الهارنس ليس نموذجاً

يشغّل الهارنس حلقة الوكيل. يحدث الاستدلال في نموذج موجود في مكان آخر، لذلك لن يعمل أي شيء قبل تزويده إما بمفتاح API (واجهة برمجة التطبيقات) أو بعنوان نقطة نهاية نموذج تستضيفها بنفسك. كل ما يرد في هذا المنشور يتعلق بإعداد الهارنس، وليس بسلوك النموذج، ومن المفيد فهم الحد الفاصل بينهما قبل أن تقضي فترة بعد الظهر في محاولة تحديد الجانب الذي صدر منه العطل.

تضبط ذلك من الواجهة ضمن Settings ثم Models. يتضمن الكتالوج بطاقات جاهزة لموفري API الرئيسيين (DeepSeek وOpenAI وAnthropic)، حيث تلصق المفتاح. أما الخيار المهم فهو "Add a custom provider": إذ يطلب معرّف الموفر، واسماً للعرض، وعنوان URL أساسياً، وبروتوكول API، وبيانات اعتماد. كما أنه يستخدم البروتوكول المتوافق مع OpenAI، لذلك يعمل معه أي gateway أو خادم محلي يطبّق هذا البروتوكول. ويمكن للموفرين المخصصين أيضاً الاستعلام عن نقطة النهاية المتوافقة مع OpenAI GET /models لملء قائمة النماذج تلقائياً.

بهذه الطريقة توجّه الهارنس إلى نموذج موجود على VPS نفسه. يوفّر Ollama واجهة API متوافقة مع OpenAI على http://127.0.0.1:11434/v1/، ويتطلب ملء حقل مفتاح API بأي سلسلة نصية، وتكون ollama هي القيمة المتعارف عليها، لأن الحقل إلزامي ثم يجري تجاهل قيمته. أما السؤال الأصعب فهو ما إذا كان نموذج صغيراً بما يكفي للعمل على VPS لديك يستطيع تشغيل وكيل بكفاءة. ويحدد الفرق بين Ollama وvLLM باعتبارهما خادمي نماذج محليين مقدار الذاكرة RAM التي ستحتاج إليها الإجابة.

المفاتيح التي تكتبها في الواجهة لا يمكن قراءتها منها لاحقاً. يخزن الهارنس هذه المفاتيح في $DSH_HOME/.credentials.yaml، ويحتفظ فقط بمرجع إلى بيانات الاعتماد في settings.yaml. تكون $DSH_HOME مضبوطة افتراضياً على ~/.dsh. تعامل مع هذا الملف باعتباره ملف كلمات مرور، لأنه كذلك فعلاً: فمن يقرأه يستطيع إنفاق ميزانية API الخاصة بك. إذا أردت تعديل هذه الملفات مباشرة بدلاً من التنقل عبر Settings، يوضح الدليل التفصيلي لملفات إعدادات dsh والمفاتيح ونقاط نهاية النماذج وظيفة كل مفتاح وما الذي يغادر خادمك في كل وضع.

ما تحتاج إليه قبل التثبيت

  • VPS يعمل بنظام Ubuntu 24.04 أو توزيعة Linux حديثة أخرى، مع إمكانية الوصول عبر SSH
  • Node.js 22.19 أو أحدث ضمن سلسلة 22.x، أو Node.js 24 أو أحدث، وهي الإصدارات التي يبني المشروع ويختبر عليها
  • حساب مستخدم عادي، وليس root، لأن الوكيل ينفّذ أوامر shell بصلاحيات المستخدم الذي بدأ العملية
  • pnpm ضمن PATH إذا كنت تخطط لتثبيت الإضافات، لأن أمر الإضافة يستدعيه عبر shell
  • إغلاق المنفذ 3080 في جدارك الناري وفي جدار الشبكة الناري المنفصل لدى مزود الخدمة

حزمة nodejs الخاصة بـUbuntu أقدم من الإصدار الذي يحتاج إليه إطار الاختبار، لذلك ثبّت Node من NodeSource أو nvm بدلاً من استخدام apt install nodejs. إذا كان VPS جديداً، فمن المفيد تخصيص عشر دقائق لتقوية SSH قبل أي شيء آخر، لأن النفق الذي ستعتمد عليه لا يكون أقوى من خادم SSH الذي يقف خلفه.

ثبّت DeepSeek Harness على VPS بإصدار محدد

node --version
npx @deepseek-ai/dsh@0.1.0-rc.6 web

يقوم npx بتنزيل الحزمة وتشغيل الملف الثنائي dsh الخاص بها. وweb هو اسم مستعار لـ--profile web، الذي يشغّل تطبيق المتصفح، ثم تطبع العملية العنوان الذي تستمع عليه. القيمة الافتراضية هي http://127.0.0.1:3080. هذه الأرقام قرار ربط فعلي وليست قيمة افتراضية تجميلية، ويوضح سبب طباعة dsh لعنوان loopback ما سيستجيب له الـharness وما لن يستجيب له قبل أن تبحث عنه من حاسوبك المحمول.

ثبّت الإصدار. يحل npx @deepseek-ai/dsh web الوسم الذي يشير إليه latest في اللحظة التي تشغّله فيها، وقد أطلق المشروع بالفعل عدة إصدارات مرشحة، كما ذكر أن تغييرات كاسرة للتوافق قادمة. يشير 0.1.0-rc.6 إلى الموضع الذي كان latest يشير إليه في 13 August 2026. يضمن الإصدار المثبّت أن يتصرف الخادم الذي أعددته اليوم بالطريقة نفسها في الشهر المقبل، لذلك تصبح الترقية قراراً تتخذه بدلاً من حادث تكتشفه. عندما يبدأ أمر مثبّت رغم ذلك بالإصدار الخاطئ أو يرفض التثبيت كلياً، يوضح أخطاء تثبيت dsh وإصداره الشائعة كيفية مسح ذاكرة npx المؤقتة والتحقق من إصدار npm المضمّن مع Node لديك.

للاستخدام اليومي، ثبّته مرة واحدة بدلاً من إعادة حل الإصدار عند كل تشغيل.

npm install -g @deepseek-ai/dsh@0.1.0-rc.6
dsh --profile web --help

يستحق السطر الثاني التشغيل، لأن launcher وتطبيق الويب يستخدمان مجموعتي flags منفصلتين. يعرض dsh --help خيارات launcher نفسه. ويعرض dsh --profile web --help flags التي يقبلها تطبيق الويب، ومنها --port و--host و--trusted-host القابل للتكرار.

تحقق الآن مما يستمع عليه.

ss -tlnp | grep 3080

يجب أن يقرأ عمود العنوان المحلي 127.0.0.1:3080. إذا قرأ 0.0.0.0:3080، فستكون واجهة المستخدم قابلة للوصول من الإنترنت، وعليك إيقاف العملية قبل تنفيذ أي إجراء آخر.

لماذا يجب ألا تنشر المنفذ 3080 مطلقاً

لا يحتوي خادم الويب على طبقة مصادقة. يحدد إعدادُه عنوان الاستماع ومنفذ الاستماع، وهذا هو كامل سطح الوصول. أما التحكم في الوصول عند النشر خارج loopback، فهو إعداد منفصل للمضيف الموثوق، وليس شاشة تسجيل دخول.

أضف الآن ما يوجد خلف هذا المنفذ. يحرّر الوكيل الملفات في مساحة العمل وينفّذ أوامر shell، كما توجد بيانات اعتماد المزوّد على القرص بجانبه. لذلك، فإن فتح المنفذ 3080 يعني توفير shell عن بُعد بواجهة محادثة، يعمل بحساب المستخدم الذي شغّله، وترفق به API key الخاصة بك. لا يحتاج المهاجم إلى استغلال ثغرة. يكفيه رقم المنفذ، وتجد أدوات الفحص أرقام المنافذ خلال ساعات من اتصال المضيف بالإنترنت.

وتتوافق CLI (واجهة سطر الأوامر) مع ذلك. اعتباراً من 0.1.0-rc.6، لا تدعم عمداً --host 0.0.0.0، وتخرج بخطأ في الاستخدام بدلاً من البدء. هذا الرفض ميزة، لذلك لا تبحث عن patch يزيله.

هناك طريقتان معقولتان أخريان للنشر عندما لا يناسبك النفق. ضع الخادم على شبكة overlay خاصة، بحيث لا يملك إلا عنواناً تستطيع أجهزتك أنت توجيه المسارات إليه. وهذا ما يوفّره خادم تحكم Headscale مستضاف ذاتياً. أو ضع reverse proxy أمامه لمصادقة الطلب قبل وصوله إلى المنفذ 3080، مثل خادم تسجيل الدخول الموحّد Authentik الذي ينفّذ forward auth. وجود reverse proxy بلا مصادقة أمامه ليس إجراءً أمنياً. إنه عنوان URL أطول.

الوصول إلى واجهة الويب عبر نفق SSH

نفّذ هذا على حاسوبك المحمول، وليس على الخادم.

ssh -N -L 3080:127.0.0.1:3080 you@your-server

يفتح -L المنفذ 3080 على حاسوبك المحمول، ويوجّه أي اتصال يصل إليه عبر جلسة SSH المشفّرة. يُحلّ الجزء 127.0.0.1:3080 على الخادم، لذلك يصل الاتصال إلى harness من loopback، تماماً كما لو كنت تستخدم الجهاز مباشرةً. ويعني -N عدم بدء shell بعيد، لأنك تريد التوجيه فقط.

افتح http://127.0.0.1:3080 في المتصفح المحلي لديك. إذا كان المنفذ 3080 مستخدماً على حاسوبك المحمول، فغيّر الرقم الموجود على اليسار: ssh -N -L 3180:127.0.0.1:3080 you@your-server، ثم انتقل إلى http://127.0.0.1:3180. الرقم الموجود على اليسار محلي، أما الرقم الموجود على اليمين فيخص الخادم، لذلك لا تغيّر إلا الرقم الموجود على اليسار.

احفظه في ~/.ssh/config، ولن تضطر إلى كتابته مرة أخرى.

Host dsh
  HostName 203.0.113.10
  User deploy
  IdentityFile ~/.ssh/id_ed25519
  LocalForward 3080 127.0.0.1:3080

بعد ذلك، يبدأ ssh -N dsh النفق. يعني ظهور رسالة تفيد برفض الاتصال في المتصفح عادةً أن النفق يعمل، لكن لا توجد خدمة تستمع في الطرف الآخر، لأن SSH يوجّه المنفذ سواء كان harness قيد التشغيل أم لا. تحقّق من الخادم باستخدام الأمر ss الوارد أعلاه.

استمر في تشغيل harness بعد تسجيل الخروج

يتوقف الأمر npx مع shell الخاص بك. أما خدمة systemd للمستخدم فتستمر في العمل، وتعيد تشغيل harness بعد حدوث عطل أو إعادة تشغيل النظام. الوحدة هنا بسيطة عمداً؛ إذا أردت تشغيل harness ضمن حساب مستقل مقيّد الصلاحيات، مع تثبيت الإصدار داخل الوحدة وسجلات يمكنك البحث فيها فعلياً، فإن إعداد systemd بلا واجهة لـdsh يشرح ذلك بالكامل.

loginctl enable-linger $USER
mkdir -p ~/.config/systemd/user
command -v dsh

يهم enable-linger لأن خدمات المستخدم تتوقف عادةً عند انتهاء جلستك الأخيرة. وبدونه، يتوقف harness لحظة إغلاق النفق. خذ المسار المطلق الذي يطبعه command -v dsh وضعه في الوحدة، لأن systemd لا يبحث في PATH الذي ينشئه shell عند تسجيل الدخول.

[Unit]
Description=DeepSeek Harness web UI
After=network-online.target

[Service]
Type=simple
WorkingDirectory=%h/projects/site
ExecStart=/usr/local/bin/dsh web
Restart=on-failure
RestartSec=5

[Install]
WantedBy=default.target

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

systemctl --user daemon-reload
systemctl --user enable --now dsh
systemctl --user status dsh

الوحدة التي ترفض البدء تكون في الغالب بسبب مسار ExecStart غير صحيح أو إصدار Node يرفضه الملف الثنائي، ويوضح journalctl --user -u dsh -n 50 أيّهما السبب. وينطبق النمط نفسه على إبقاء أي وكيل برمجي قيد التشغيل على VPS، كما أن حالات الفشل متطابقة.

ما يُسمح للمكوّن الإضافي بفعله

المكوّن الإضافي هو وحدة تضيف خدمات وأحداثاً ذات أنواع وتأثيرات قابلة للعكس إلى سياق مشترك. نقاط التوسعة هي الجزء الذي يستحق القراءة بعناية:

  • تسجيل موفّر نموذج على ctx.llm
  • إضافة أدوات موجّهة إلى النموذج على ctx.tools
  • توفير الواجهة الخلفية للـshell خلف ctx.shell
  • توفير الوصول إلى نظام الملفات أو السياسة خلف ctx.fs
  • تسجيل أوامر المستخدم على ctx.commands
  • تشغيل أعمال في الخلفية عبر ctx.jobs
  • تغليف العمليات التي يتم تشغيلها باستخدام واجهة خلفية ctx.sandbox
  • اعتراض الطلبات واستدعاءات الأدوات عبر حدثَي agent/* وtools/*
  • توسيع حالة الجلسة الدائمة
  • التحكم في واجهة المستخدم عبر ctx.agents

اقرأ هذه القائمة بالطريقة التي سيقرأها بها مهاجم. يمكن للمكوّن الإضافي توفير طبقة نظام الملفات وطبقة الـshell، كما يمكنه التوسط في كل استدعاء أداة يجريه النموذج. لا يوجد مربع حوار للأذونات بين المكوّن الإضافي ونقاط التكامل هذه، لأن المكوّن الإضافي هو كود Node عادي يتم تحميله في العملية نفسها التي تعمل فيها بقية المكوّنات. تثبيت مكوّن إضافي يعني تشغيل كود يخص جهة غير موثوقة باستخدام أذونات وكيلك، وأذونات وكيلك هي أذونات مستخدم Unix الخاص بك.

هذا هو قرار الثقة نفسه الذي تتخذه عند إرفاق خادم MCP بوكيل على VPS، حيث إن MCP هو بروتوكول سياق النموذج. ولهذا السبب يبدأ تشغيل وكيل برمجة بأمان على VPS بالحساب الذي يعمل به، وليس بالنموذج، كما يفسر سبب كون هجمات سلسلة توريد npm شديدة التأثير على الخوادم: خطوة التثبيت هي الاختراق، ولا يظهر أي طلب تأكيد.

مصدر الإضافات

توجد الإضافات ضمن الملفات التعريفية. الملف التعريفي هو تركيب مُسمّى يُخزَّن ضمن $DSH_HOME، والقيمة الافتراضية له هي ~/.dsh، ويحتوي مجلد كل ملف تعريفي على الإضافات الخارجية عن الشجرة التي يثبّتها. تديرها واجهة CLI بتمرير الوسائط مباشرةً إلى pnpm، مع استخدام مجلد الملف التعريفي باعتباره مجلد العمل.

dsh plugin --profile web add github:deepseek-harness/turtle-ui
dsh plugin --profile web remove turtle-ui

بما أنّ الوسائط تصل إلى pnpm دون تغيير، فإنّ add وremove وupdate وwhy تعمل بالطريقة نفسها المتّبعة في أي مشروع pnpm، ويمكن أن تكون الإضافة حزمة npm أو مرجع GitHub. يجب أن يكون pnpm موجوداً أولاً ضمن PATH. في Node 22 والإصدارات الأحدث، يضعه corepack enable pnpm هناك.

تتم عملية اكتشاف الإضافات عبر موضوع على GitHub. يضيف مؤلفو الإضافات موضوع dsh-plugin إلى مستودعاتهم، ومن خلال تصفح هذا الموضوع تجد الإضافات المتاحة. الموضوع هو تسمية يطبّقها المؤلف على مستودعه بنفسه. لا يراجعه أحد ولا يوقّعه أحد، كما أنّ صفحة الموضوع ترتّب النتائج حسب عدد النجوم، وهو مقياس للشعبية وليس للسلامة.

تساعد أربع ممارسات على إبقاء ذلك قابلاً للإدارة. اقرأ الشيفرة المصدرية قبل التثبيت، لأنّ معظم الإضافات صغيرة بما يكفي لقراءتها خلال عشر دقائق. ثبّت الإصدار أو commit المحدد بدلاً من تتبّع فرع. شغّل بيئة الاختبار باستخدام مستخدم لا يملك أي شيء آخر، وعلى VPS تكون مستعداً لإعادة بنائه. امنح الوكيل مفتاح API خاصاً به مع حد إنفاق خاص به، منفصلاً عن المفتاح الذي تستخدمه خدمات الإنتاج. عندما تجلس لقراءة إضافة وتريد معرفة الملفات التي تحمل المخاطر، يشرح الدليل العملي لفحص إضافة dsh ملف البيان ونقطة الدخول ونقاط التوسعة التي تسجّلها الإضافة.

إذا كنت تفضّل مقارنة التصاميم قبل اعتماد أحدها، فإن إطار Omnigent متعدد الوكلاء يعالج المشكلة نفسها ببنية مختلفة، وتصبح المفاضلات واضحة عند استخدام الإضافات. إذا انتهيت إلى تشغيل إطارين أو ثلاثة منها على الخادم نفسه بدلاً من اختيار واحد، فإن وضع كل إطار خلف API مستضاف ذاتياً واحد يغنيك عن إنشاء نفق لكل منفذ، مقابل إضافة خدمة أخرى يجب ربطها بواجهة loopback وتزويدها بكلمة مرور فعلية منذ اليوم الأول.

ما الذي يتعطل أولاً

إصدار Node قديم جداً. يستهدف المشروع Node 22.19 والإصدارات الأحدث ضمن السلسلة 22.x، أو Node 24 وما بعده، وتختبر هذه الإصدارات في CI. يفشل وقت التشغيل الأقدم عند بدء التشغيل لأن التعليمات البرمجية تستخدم صياغة وواجهات API غير متوفرة فيه. شغّل node --version قبل أي شيء آخر.

المنفذ 3080 مستخدم بالفعل. قد يكون السبب harness آخر، أو عملية متبقية، أو تطبيقاً آخر يستخدم المنفذ 3080 أيضاً. اعثر عليه باستخدام ss -tlnp | grep 3080، ثم أوقفه أو شغّل harness في مكان آخر باستخدام dsh web --port 3180. ينتمي --port إلى تطبيق الويب، لذلك يأتي بعد web.

يتعذر على المتصفح الاتصال عبر النفق. تأكد من أنك انتقلت إلى 127.0.0.1 وليس إلى العنوان العام للخادم، لأن المنفذ المُعاد توجيهه موجود على حاسوبك المحمول فقط. ثم تأكد من أن harness يستمع على الخادم، لأن SSH ينشئ إعادة التوجيه سواء كانت هناك خدمة تستجيب في الطرف البعيد أم لا.

يفشل dsh plugin فوراً. الأمر عبارة عن غلاف حول pnpm، لذلك يؤدي غياب الملف التنفيذي pnpm إلى إيقافه قبل بدء أي عمل خاص بالإضافات.

لا يستطيع agent رؤية مشروعك. تكون مساحة العمل افتراضياً هي الدليل الذي بدأت منه العملية، لذلك فإن الوحدة التي يكون فيها WorkingDirectory هو الدليل الرئيسي تمنح agent الدليل الرئيسي لديك. اختر مساحة العمل من واجهة المستخدم، أو أصلح الوحدة ثم أعد تحميلها.

FAQ

هل من الآمن إتاحة واجهة الويب لـDeepSeek Harness على المنفذ 3080؟

لا. لا يتضمن خادم الويب نظام تسجيل دخول خاصاً به، كما أن الوكيل الذي يعمل خلفه يحرر الملفات وينفذ أوامر shell باسم المستخدم الذي بدأ العملية، مع تخزين مفتاح API الخاص بالمزوّد على القرص نفسه. أبقِ المستمع على 127.0.0.1، واتصل به عبر نفق SSH. ويمكنك أيضاً استخدام شبكة overlay خاصة، أو reverse proxy يصادق على كل طلب قبل وصوله إلى المنفذ. اعتباراً من الإصدار 0.1.0-rc.6، يرفض CLI الأمر --host 0.0.0.0 ويخرج بخطأ في الاستخدام، وهذا يوضح رأي المؤلفين في هذه الفكرة.

هل أحتاج إلى مفتاح DeepSeek API، أم يمكنني استخدام نموذج محلي؟

كلا الخيارين يعمل، لأن harness بيئة تشغيل وليس نموذجاً. ضمن Settings ثم Models، يمكنك لصق مفتاح في بطاقة موفّر من الكتالوج، أو اختيار "Add a custom provider" وتزويده بعنوان أساسي يتحدث ببروتوكول متوافق مع OpenAI. يستجيب خادم Ollama محلياً على http://127.0.0.1:11434/v1/ ويقبل أي سلسلة نصية في حقل مفتاح API. تُخزَّن المفاتيح في $DSH_HOME/.credentials.yaml، الذي تكون قيمته الافتراضية ~/.dsh/.credentials.yaml.

ماذا يحصل عليه المكوّن الإضافي فعلياً عند تثبيت مكوّن إضافي لـDeepSeek Harness؟

يحصل على صلاحيات الحساب الذي يشغّل harness. المكوّن الإضافي عبارة عن تعليمات Node تُحمّل داخل العملية نفسها، وتشمل نقاط التوسعة shell backend، وطبقة نظام الملفات، وسجل الأدوات، والأحداث التي تحيط بكل استدعاء لأداة. لا يعزل أي شيء المكوّن الإضافي عن هذه المنافذ الداخلية، إلا إذا وفّر المكوّن الإضافي آلية العزل بنفسه. اقرأ الشيفرة المصدرية قبل التثبيت، وشغّل harness كمستخدم لا يملك أي موارد تهمك.

ما الإصدار الذي ينبغي تثبيته، وهل سيستمر في العمل؟

ثبّت إصداراً محدداً، مثل npx @deepseek-ai/dsh@0.1.0-rc.6 web. كان ذلك هو الإصدار الذي أشار إليه الوسم latest في 13 August 2026. يصف المشروع نفسه بأنه معاينة للمطورين، ويذكر أن التغييرات التي تكسر التوافق متوقعة؛ لذلك قد يتصرف أمر غير المقيّد بإصدار بطريقة مختلفة من يوم إلى آخر. افحص المستودع قبل الترقية، وتوقع تغيّر مفاتيح الإعدادات وواجهات المكوّنات الإضافية ما دام رقم الإصدار يبدأ بـ0.