تخطَّ إلى المحتوى
CADCAMFUN
الوثائق

الوثائق

واجهة مستخدم سطح المكتب

مساحات عمل SolidJS، وعميل API محلي، وTauri Shell الذي يمتلك التكامل الأصلي.

مترجم تلقائيًا من الإنجليزية. عرض الأصل بالإنجليزية

بنية التطبيق

يجمع تطبيق سطح المكتب بين عرض ويب SolidJS وVite وThree.js وTauri v2 Rust shell. يمتلك عرض الويب الشاشات وحالة التفاعل. يمتلك Bun Sidecar معالجات واجهة برمجة التطبيقات (API)، والوصول إلى قاعدة البيانات، وجلسات الذكاء الاصطناعي، وخدمات المشروع. تمتلك عملية Rust النافذة والقوائم والدرج ومربعات حوار نظام التشغيل والوصول إلى سلسلة المفاتيح والتحديثات ودورة حياة السايدكار.

apps/desktop/src/main.tsx يتصاعد التطبيق. app/App.tsx ينشئ اتصال API ويوفر الحالة المشتركة؛ app/routes.tsx يعين عناوين URL لوحدات الصفحة البطيئة. شاشات مميزة تعيش في features/. لا يشير وجود المسار إلى توفر خدماته الخارجية: تحتاج الفوترة إلى تكوين Stripe ويحتاج الذكاء الاصطناعي إلى موفر مهيأ.

بدء التشغيل واستعادة الاتصال

  1. يبدأ Shell السايدكار المجمعة باستخدام رمز الإطلاق المميز وبيانات التطبيق وأدلة الترحيل.
  2. يربط السايدكار منفذًا سريع الزوال 127.0.0.1، ينتظر إجابة المسار الصحي الخاص به، ويكتب JSON ready الحدث الذي يحتوي على المنفذ.
  3. يستدعي عرض الويب get_sidecar_endpoint ويقوم بإنشاء عميل واجهة برمجة التطبيقات (API) ووقت تشغيل التأثير المُدار.
  4. يؤدي طلب السلامة الناجح إلى إنشاء حالة التطبيق وتثبيت جهاز التوجيه والقشرة.

يتيح عرض الويب 150 ثانية لاستعادة الاتصال، مع مهلة تبلغ 30 ثانية لكل محاولة وإيقاف مؤقت لإعادة المحاولة يبلغ 750 ملي ثانية. تتجاهل المحاولات الفاشلة نقطة النهاية المخزنة مؤقتًا حتى يتمكن السايدكار المعاد تشغيله من توفير منفذ جديد. ينتظر مشرف Rust 60 ثانية لكل مصافحة جاهزة ويسمح بإعادة التشغيل التلقائي مرة واحدة. تصبح إعادة المحاولة متاحة عندما تنتهي ميزانية اتصال عرض الويب.

تستخدم معاينة المتصفح واجهة برمجة تطبيقات في الذاكرة

خارج Tauri، متصفح بدون VITE_SIDECAR_URL الاستخدامات src/testing/fake-api.ts. تكون بيانات المعاينة محلية للصفحة الجاري تشغيلها؛ المجموعات غير المدعومة ترجع HTTP 501. لتوصيل متصفح بسايدكار حقيقية، قم بتوفير كليهما VITE_SIDECAR_URL و VITE_SIDECAR_TOKEN عند بدء فيت.

طرق الشاشة

منطقةالطرق والوحدات
المشاريع/projects, /projects/create, /projects/:id، و /projects/:id/history; شاشات في features/projects/screens.
التصميم والتصنيع/cad يتصاعد CadPage; /cam يتصاعد CamPage. تحتوي الرسومات المحفوظة ومسارات الأدوات على مسارات تفصيلية منفصلة.
موارد/library, /materials, /tools, /machine، وتستخدم صفحات التفاصيل الخاصة بها وحدات ميزات المكتبة. تحتوي المكونات على طرق القائمة والتفاصيل.
مساعد/ai وتشارك لوحة المساعد الراسية حالة ميزة الذكاء الاصطناعي. يقوم نشاط الذكاء الاصطناعي بتبديل اللوحة.
إعدادات/settings, /settings/companionوإعدادات MCP وإعدادات الاشتراك.
الحساب والتعاونتقوم كل من المصادقة والملف الشخصي والمؤسسة والدعوة والدردشة والسوق والمكون الإضافي والتكاليف والتحليلات والإدارة بتوجيه وحدات ميزات التحميل.

يستخدم app/routes.tsx لأسماء المعلمات الدقيقة و pages/ لتحديد موقع الشاشة المثبتة على عنوان URL. محولات التوجيه صغيرة عن قصد؛ قراءة الشاشة واستدعاءات API الخاصة بها عند تشخيص عرض فارغ أو إجراء فاشل.

منظمة المصدر

  • app/: بدء التشغيل، جهاز التوجيه، عميل API العالمي، التكامل الأصلي، الصدفة، واختصارات لوحة المفاتيح.
  • pages/: محولات الطريق استيراد أو إعادة تصدير الشاشات.
  • features/: مناطق المنتج التي تحتوي على الشاشات والمكونات والخطافات والحالة والمساعدين الخاصين بالمجال.
  • shared/: عناصر التحكم القابلة لإعادة الاستخدام، ومكونات الصدفة، وحالة التطبيق، والتخزين المؤقت للاستعلام، وسجل الأوامر.
  • viewport/: رسم القماش، والالتقاط، وإيماءات الأداة، وعرض Three.js، والربط، والتشغيل.
  • i18n/, styles/، و testing/: الترجمات، والأنماط العالمية، وتركيبات الاختبار.

سطح المكتب يعتمد على @cadcamfun/api لعقد HTTP وعلى @cadcamfun/core لعمليات الهندسة وCAM. يظل استمرار قاعدة البيانات خلف واجهة برمجة تطبيقات السايدكار. يختلف سجل المحرر المحلي عن إصدارات الرسم المستمر أو مسار الأدوات وعن التحكم في إصدار المشروع.

قذيفة أصلية

نافذة الإنتاج هي 1440 × 900 بشكل افتراضي، بحد أدنى 960 × 600. يقوم Tauri بمراحل الواجهة الأمامية من apps/desktop/dist، سايدكار خاصة بالهدف من src-tauri/binaries، وولدت الهجرات كموارد. فإنه يسجل .cadcam, .nc، و .gcode جمعيات الملفات. يؤدي فتح ملف مدعوم أو تشغيل مثيل ثانٍ إلى إعادة توجيه مسارات الملفات إلى النافذة الحالية.

src-tauri/src/sidecar.rs يشرف على عملية الطفل. إغلاق التطبيق يكتب أ {"event":"shutdown"} خط إلى stdin الطفل وينتظر لفترة وجيزة قبل جني ذلك؛ يلاحظ الطفل أيضًا إغلاق stdin. رمز الإطلاق المميز هو 32 بايت عشوائي، مشفر سداسي عشري كأحرف 64، ويتم تنقيح سطور سجل السايدكار التي قد تحتوي على بيانات اعتماد. السجلات منفصلة عن stdout، الذي يحمل تأكيد الاتصال للجاهزية/الخطأ. يتم الوصول إلى الأسرار الأصلية من خلال src-tauri/src/secrets.rs باستخدام سلسلة مفاتيح نظام التشغيل.

في نظام التشغيل macOS، يقوم الغلاف بتسجيل المكون الإضافي Liquid Glass. يتبع عرض الويب إعداد الزجاج ويتراجع عندما يكون التأثير غير متاح. يقوم تكوين متجر التطبيقات بتعطيل خيار واجهة برمجة التطبيقات الخاصة؛ التكوين العادي يتيح ذلك. هذه تكوينات بناء منفصلة.

حدود الأمن والثبات

تسمح سياسة محتوى الإنتاج بالأصول المحلية واتصالات API الاسترجاعية وصور البيانات/الكائنات الثنائية الكبيرة وتقييم WebAssembly. لا يمنح تنفيذ البرنامج النصي عن بعد التعسفي. يتم تحديد نطاق الأذونات الأصلية في src-tauri/capabilities; تسمح سياسة التطوير أيضًا بـ Vite ومقبس الويب الخاص به.

open_path تحديد المسارات بشكل متعارف عليه، وتقييدها بأدلة المستخدم/التطبيق المسموح بها، ورفض الامتدادات القابلة للتنفيذ مثل .exe, .app, .sh, .bat, .msi، و .jar. .. لا يمكن للمقاطع والارتباطات الرمزية الهروب من المجلدات المسموح بها لأن كلا الجانبين متعارف عليهما. انتقاء الملفات وحفظها يستخدم مربعات الحوار الأصلية والتحقق من صحتها. يمنح رمز الإطلاق إمكانية الوصول إلى واجهة برمجة تطبيقات التطبيق المحلي؛ تعامل معه بشكل منفصل عن الرمز المميز المصاحب أو رمز جسر الذكاء الاصطناعي على نطاق المشروع.

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

تكامل الميزة

تقوم وحدات ميزات CAD وCAM بتكوين مكونات إطار عرض قابلة لإعادة الاستخدام مع لوحاتها الخاصة ومخازنها وتدفقات الحفظ. تتلقى اللوحة المساعدة سياق المشروع والمحرر وأحداث أداة التدفق من خلال حالة ميزة الذكاء الاصطناعي. تستخدم شاشات الموارد عميل API بدلاً من الوصول مباشرة إلى قاعدة البيانات.

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

تحميل الطريق والأخطاء

يستخدم كل مسار حدود الاستيراد البطيئة الخاصة بـ Solid. يتضمن الجدول صفحة شاملة، /500, /offline، والطرق القانونية. يجب تقديم التنقل المباشر للمتصفح من خلال خادم تطوير Vite أو عرض الويب المعبأ حتى يتمكن جهاز توجيه العميل من حل عنوان URL.

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

واجهة الأوامر الأصلية

يأمرغاية
get_sidecar_endpointانتظر السايدكار الخاضعة للإشراف وأعد عنوان URL الأساسي ورمز الإطلاق المميز. يغطي الانتظار عملية إعادة تشغيل واحدة: مهلة جاهزة مدتها 60 ثانية بالإضافة إلى 5 ثانية (125 ثانية).
get_logs_dir, open_pathقم بحل دليل سجل التطبيق كسلسلة، وافتح المسار المطلق الموجود باستخدام أداة فتح نظام التشغيل. يجب أن يتم حل المسارات ضمن بيانات التطبيق أو السجل أو المستندات أو التنزيلات أو مجلد سطح المكتب.
secret_get, secret_set, secret_deleteقم بالوصول إلى إدخالات سلسلة المفاتيح الأصلية ضمن com.cadcamfun.app خدمة. المفاتيح هي 1–128 بايت من أحرف ASCII وأرقامها و . _ - : (على سبيل المثال ai.anthropic.apiKey); secret_get يعود null لإدخال مفقود.
pick_file, save_filepick_file({ filters: [{ name, extensions }] }) إرجاع المسار المختار أو null على الإلغاء. save_file({ defaultName, contents }) يكتب نص UTF-8 إلى المسار المختار ويعيده، أو null عند الإلغاء؛ تم رفض الدلائل والملحقات القابلة للتنفيذ.
set_recent_projectsقم بتحديث قائمة المشروعات الحديثة في الدرج.
check_for_updates, install_updateاطلب التحقق من التحديث، أو قم بتثبيت تحديث معلق. install_update يقبل اختياري unsavedWork العلم (الافتراضي false) لذلك لا يؤدي التثبيت إلى مقاطعة المحرر المفتوح.

The invoke handler is registered in src-tauri/src/lib.rs. Capabilities and generated command permissions also control availability; command registration alone does not establish webview access. Command errors are serialized as { kind, message } with kinds such as sidecar, invalid_path, io, dialog, and path; no command panics.

الأحداث الأصلية

تنبعث القشرة sidecar-status لتغييرات دورة الحياة، open-file مع المسارات المدعومة، menu لاختيار القائمة، و update://status لتقدم المحدث. يتم تمثيل تحديدات المشروع الأخير في الدرج بواسطة tray.recent.<projectId> معرفات القائمة. تحدد وحدات القائمة والدرج الخاصة بالصدفة مجموعات المعرفات الكاملة الخاصة بها.

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

التطوير والتحقق

تشغيل من جذر المستودع
bun run --filter @cadcamfun/desktop dev
bun run desktop:dev
bun run --filter @cadcamfun/desktop typecheck
bun test apps/desktop/src
bun run build:desktop

يقوم الأمر الأول بتشغيل معاينة المتصفح. desktop:dev يقوم بتجميع السايدكار الحقيقية ومراحل الهجرات قبل بدء Tauri. حزمة سطح المكتب tauri:dev يقوم البرنامج النصي بدلاً من ذلك بإنشاء كعب روتين ثنائي فقط في حالة عدم وجود ثنائي؛ استخدمه في عمل الصدفة المعزول وتحقق من الثنائي الموجود قبل تفسير استجابات واجهة برمجة التطبيقات (API) الخاصة به.

سطح المكتب build يعمل البرنامج النصي vite build فقط؛ فهو لا يجمع السايدكار أو يحزم حزمة Tauri. يستخدم bun scripts/build.ts للحصول على خط أنابيب الإصدار الكامل (انظر يطلق).

التفضيلات والإعدادات

يحتفظ مخزن الإعدادات المشتركة بسجل تم التحقق من صحته ضمن cadcamfun.settings في التخزين المحلي لعرض الويب. تتراجع الحقول المفقودة أو غير الصالحة أو غير القابلة للقراءة بشكل مستقل. لا تتوقف منطقة التخزين الممتلئة أو المحظورة عن التحرير، ولكن قد تفشل تغييرات التفضيلات في الاستمرار. تنتمي تفضيلات معاينة المتصفح إلى أصل المتصفح وهي منفصلة عن تفضيلات عرض الويب الأصلية.

جلسةالقيم المقبولة/الافتراضيةالتأثير التشغيلي
سمةlight, dark, system; النظام الافتراضييتبع وضع النظام تغييرات نظام ألوان نظام التشغيل.
وحدات العرضmm أو in; ملم الافتراضيضوابط العرض. إحداثيات الرسم الأساسية تبقى ملليمترات.
الكسور العشريةعدد صحيح 0–6; الافتراضي 3دقة عرض الطول.
المشاركة الافتراضيةgrbl, linuxcnc, smoothwb, gcode, fanuc; grbl الافتراضيتعتبر القواعد النحوية المحددة للمخرجات بمثابة تفضيل، وليست دليلاً على تكوين الجهاز أو التحقق منه.
رسم التسامحالتحقق من صحة التسامح الأساسية. الافتراضي 0.01 ملمتفضيل الدقة المشترك الذي يستخدمه مستهلكو الرسم/مسار الأدوات.
حالة المفاجئةمنطقية؛ تم تمكينه بشكل افتراضيتفضيلات الحالة المشتركة. يمتلك المحررون الفرديون سلوكهم الخاطف؛ المستقل Editor2D يتيح حاليًا إمكانية التقاط شبكته داخليًا.
زجاجمنطقية؛ تم تمكينه بشكل افتراضييطلب مواد نافذة macOS عندما يدعمها المضيف الأصلي.

تحتوي شاشة الإعدادات على علامات التبويب الملف الشخصي والحساب والأمان والاشتراك والإشعارات والذكاء الاصطناعي والأجهزة واللغة. تتضمن علامة التبويب "الأجهزة" لوحة البوابة المصاحبة. تتضمن إعدادات اللغة زر التبديل الزجاجي. يقوم مخزن اللغة العام حاليًا بالتحقق من صحة اللغة الافتراضية؛ لا تستنتج تغطية ترجمة إضافية من قائمة تسميات العرض.

حفظ وإعادة فتح برنامج CAM

  1. قم بإنشاء أو تحميل رمز NC في CAM وافتح مربع حوار الحفظ/التصدير من نقطة الإدخال الحالية.
  2. لتصدير ملف، اختر G-code أو تنسيق مسار الأدوات المحمول. يقوم G-code بتنزيل نص NC الحالي؛ يقوم اختيار مسار الأدوات بكتابة ملف منظم .cam.json لقطة.
  3. لاستمرارية التطبيق، اختر مشروعًا موجودًا أو مشروعًا جديدًا أو قم بتحديث البرنامج المحفوظ بالفعل. قم بتوفير اسم البرنامج وحقول الوجهة المطلوبة.
  4. عند التحديث، يسجل تدفق الحفظ البرنامج الكامل السابق كإصدار مسار الأدوات قبل استبدال البيانات الحالية.
  5. افتح العنصر المحفوظ في مسار تفاصيل مسار الأدوات الخاص به لفحص الإصدارات أو استعادتها.

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

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

تصدير الملفات واستمرارية المشروع هما عمليتان مختلفتان

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

لوحة المفاتيح وتشخيص الأعطال

Cmd/Ctrl+K يفتح لوحة الأوامر و Cmd/Ctrl+J تبديل لوحة المساعد. يتم تجاهل اختصارات Shell عندما يكون التركيز على عنصر إدخال أو منطقة نص أو تحديد أو عنصر قابل للتحرير. تتمتع لوحات المحرر بمعالجة لوحة المفاتيح الخاصة بها. العديد من عمليات الاسترجاعات لأوامر shell، بما في ذلك الحفظ/التصدير في جدول الاختصارات العام، هي عناصر نائبة؛ استخدم عناصر التحكم في الحفظ/التصدير الفعلية للميزة بدلاً من افتراض أن كل مُسرّع مدرج يقوم بإجراء عملية مستند.

السلوك الملاحظيفحص
ينتظر بدء التشغيل، ثم تظهر إعادة المحاولةخطأ Sidecar/الإخراج الجاهز، والهدف الثنائي، وموارد الترحيل، وسجلات التطبيق. قد ينتمي المنفذ المخزن مؤقتًا إلى عملية سابقة.
يتم عرض الشاشة ولكن الطلبات ترجع 501وضع تثبيت المتصفح. ابدأ تشغيل السايدكار الحقيقية وقم بتمرير متغيرات نقطة نهاية Vite.
تختلف بيانات سطح المكتب عن البرنامج النصي اليدويدليل البيانات والرمز المميز لكل عملية؛ اسم الملف وحده لا يحدد قاعدة البيانات.
الأمر الأصلي غير متوفراستدعاء التسجيل وأذونات القدرة ودعم نظام التشغيل وما إذا كان الرمز يعمل داخل Tauri.
تعود الإعدادات بعد إعادة التشغيلتوافر التخزين والتحقق من صحتها. الحقول المخزنة غير الصالحة تعود إلى الإعدادات الافتراضية.
يختلف دليل البرنامج المحفوظ عن NCما إذا كان قد تم تحرير NC بعد الجيل. أعد حساب التحقق المناسب للنص/البرنامج الفعلي.

مراسي التنفيذ: shared/state/settings.ts, app/shortcuts.ts, features/settings/screens/settings.tsx، و features/cam/components/SaveCamModal.tsx.

حمولات الأحداث الأصلية

حدثالحمولةملحوظات
sidecar-status{ state: "starting" }, { state: "ready", port }, { state: "restarting" }, { state: "failed", message }بعد restarting، يتصل get_sidecar_endpoint مرة أخرى؛ يتغير المنفذ.
update://statusstatus: checking, upToDate (version), available (version, notes, date, critical), downloading (downloaded, total), ready (version), failed (message); زائد dismissibleلا يمكن رفض التحديث المهم وإعادة التشغيل المعلقة. لا يتم عرض عملية التحقق الفاشلة أبدًا كخطأ حظر.
menuمعرف عنصر القائمة، مثل file.new, file.open, file.save, view.devtools, help.documentationاستخدام عناصر الدرج tray.quit و tray.recent.<projectId>.
open-fileمسارات .cadcam, .nc، أو .gcode ملفاتيتم إرساله عندما يفتح نظام التشغيل ملفًا باستخدام التطبيق أو يتم تشغيل مثيل ثانٍ.
install_update يمكن رفضه لسبب مكتوب: unsavedWork ("المحرر لديه عمل غير محفوظ؛ قم بتطبيق التحديث بمجرد حفظه")، noneAvailable (لا يوجد شيء معلق، أو مثبت بالفعل)، أو failed (فشل التنزيل أو التحقق من التوقيع). يقوم بتثبيت التحديث الذي أعلنه الفحص الأخير فقط.
استدعاء الأوامر الأصلية من عرض الويب
import { invoke } from "@tauri-apps/api/core"
import { listen } from "@tauri-apps/api/event"

const { baseUrl, token } = await invoke<{ baseUrl: string; token: string }>("get_sidecar_endpoint")

const path = await invoke<string | null>("pick_file", {
  filters: [{ name: "G-code", extensions: ["nc", "gcode"] }],
})                                    // null when the user cancels

await invoke("save_file", { defaultName: "part.nc", contents: gcodeText })

const unlisten = await listen<{ state: string; port?: number }>("sidecar-status", (e) => {
  if (e.payload.state === "ready") reconnect()
})
// later: unlisten()

try {
  await invoke("install_update", { unsavedWork: editorIsDirty })
} catch (error) {
  // { kind, message }: the update variant carries the refusal (unsavedWork | noneAvailable | failed)
}

get_sidecar_endpoint يعود { baseUrl, token } (متسلسل في حالة الجمل من SidecarEndpoint). تصل الأخطاء من كل أمر كقيمة مرفوضة لـ invoke، على شكل { kind, message }.

اختصارات لوحة المفاتيح

الاختصارفعلمجموعة
Cmd/Ctrl+Kافتح لوحة الأوامرملاحة
Cmd/Ctrl+Shift+Pمشروع جديدملاحة
Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Zالتراجع / الإعادةيحرر
Cmd/Ctrl+S, Cmd/Ctrl+Shift+Eالحفظ والتصدير (العناصر النائبة للصدفة؛ استخدم عناصر التحكم الخاصة بالميزة)يحرر
Cmd/Ctrl+0تكبير لتناسبمنظر
Cmd/Ctrl+= / Cmd/Ctrl+-تكبير / تصغيرمنظر
Cmd/Ctrl+Jتبديل لوحة المساعدبالنيابة
Cmd ينطبق على نظام التشغيل MacOS و Ctrl في مكان آخر. معرف كل اختصار هو أيضًا لاحقة مفتاح الترجمة الخاصة به (على سبيل المثال settings.shortcut.palette)، وتعرض شاشة الإعدادات نفس الجدول، لذلك لا يمكن أن تتباعد الوثائق والتطبيق عن بعضهما البعض.

كل طريق الشاشة

جهاز التوجيه في apps/desktop/src/app/routes.tsx يعلن عن 68 مسارات، تم تحميل كل منها بتكاسل منها apps/desktop/src/pages/ (القطاعات الديناميكية هي _id_.tsx الملفات). مجمعة حسب الجزء الأول:

منطقةالطرق
**
500/500
admin/admin/analytics /admin/feature-flags
ai/ai
analytics/analytics/history /analytics
auth/auth/forgot-password /auth/magic-link /auth/magic-link/verify /auth/reset-password /auth/signin /auth/signup /auth/two-factor /auth/verify-email /auth/verify
cad/cad
cam/cam
costs/costs
components/components/:id /components
drawings/drawings/:id
//
invitations/invitations/:token
legal/legal/privacy /legal/terms /legal/third-party-licenses
library/library
machine/machine/:id /machine
marketplace/marketplace /marketplace/items/:id /marketplace/purchase/success /marketplace/purchases /marketplace/seller/dashboard
materials/materials/:id /materials
mcp/mcp/directory /mcp/servers/:id
offline/offline
organizations/organizations/:id /organizations/:id/chat/:conversationId /organizations/:id/chat /organizations/:id/chat/new-group /organizations/:id/chat/new /organizations/create /organizations
plugins/plugins/:id /plugins
pricing/pricing
profile/profile /profile/settings
projects/projects/:id/history /projects/:id /projects/create /projects
settings/settings /settings/companion /settings/mcp/config-editor /settings/mcp/edit/:id /settings/mcp /settings/subscription
third-party-licenses/third-party-licenses
toolpaths/toolpaths/:id /toolpaths
tools/tools/:id /tools
waitlist/waitlist
* يعرض الصفحة 404 و /500 صفحة الخطأ. /offline يعرض الشاشة غير المتصلة بالإنترنت؛ مثل صفحات المصادقة والدعوة و404 و500 وصفحات نجاح الشراء، فإنها تستخدم التخطيط المستقل بدون تطبيق chrome. نظرًا لأن كل صفحة يتم استيرادها ببطء، فلا يتم تحميل رمز الشاشة إلا عند الزيارة الأولى؛ تظهر فشل عملية تحميل القطعة كخطأ في المسار، وليس كتطبيق فارغ.

في 3د

طوبولوجيا عملية سطح المكتب اسحب إلى المدار · قم بالتمرير للتكبير · اسحب بزر الماوس الأيمن للتحريك
Processes at run time. The Tauri shell spawns the sidecar and waits for its {”event”:”ready”,”port”:N} line on stdout (sidecar.rs); the webview then talks HTTP to 127.0.0.1 on that port with the bearer token. The sidecar owns the SQLite database, the embedded nikcli AI host (CADCAMFUN_AI_HOST=nikcli, the default) and plugins; the mobile app reaches it through companion pairing.