doper
مرحلة مبكرة — غير جاهز للإنتاجمحرك عرض Web Canvas مصمَّم من الصفر.
بيئة تشغيل TSX عالية الأداء مع تمرير افتراضي أصلي، ونواة Rust/WASM حتمية خلف واجهة ثنائية موثَّقة الإصدار، وعرض نصي كامل وتحرير أصلي داخل Canvas. اكتملت المراحل من M0 إلى M3، وستأتي المرحلة M4 بسلسلة التحرير والأحداث وتحديد الإصابة وإتاحة الوصول.
نظرة عامة
ليس doper بعد محرك عرض يمكن إدخاله في منتج، والمستودع يقول ذلك صراحةً. اكتملت المراحل P0/M0 حتى M3، والمرحلة التالية هي M4: سلسلة التحرير والأحداث وتحديد الإصابة وإتاحة الوصول. القرارات التقنية محسومة في `docs/design.md`، وترتيب التسليم وشروط الخروج في `docs/plan.md`.
ما يعمل اليوم هو `apps/platform-probe`: شريحة قياس لا عرض تجريبي. تسجّل فترات إطارات rAF في العامل، وزمن الوصول من الخيط الرئيسي إلى العامل عبر SharedArrayBuffer، واستقلال العامل أثناء حجب الخيط الرئيسي 200 مللي ثانية، وإنتاجية Canvas2D و scroll-copy، وحجم WASM وكلفة تحميله، ومسار الإدخال للتحرير داخل Canvas — عبر EditContext أولًا مع وسيط textarea مركزي كبديل — بما في ذلك جلسات إدخال IME مسجَّلة تُعاد بصورة حتمية.
تُثبت هذه الشريحة أن البيئة المحلية صالحة فقط — إذ يرسل خادم التطوير ترويسات COOP/COEP لعزل المصادر — لا أن النشر الإنتاجي يستوفي تلك الشروط. أما الأداء على أجهزة حقيقية وسلوك محررات الإدخال الفعلية فيُعدّان تأهيلًا منفصلًا للمنصة: وحتى تُؤهَّل المنصة عبر `pnpm platform:qualify`، لا يعلن المشروع أرقامها.
ماذا يفعل
- بيئة تشغيل TSX عالية الأداء يكون فيها التمرير الافتراضي عنصرًا أصيلًا لا إضافة لاحقة.
- نواة Rust/WASM حتمية خلف واجهة ثنائية موثَّقة الإصدار.
- تحرير نصي أصلي داخل Canvas: إدخال عبر EditContext أولًا، ووسيط textarea مركزي كبديل، وتسجيل وإعادة تشغيل حتميين لمحرر الإدخال.
- تأهيل المنصة منفصل صراحةً عن اكتمال المراحل — فالمنصات غير المؤهَّلة لا تُطرح لها ادعاءات أداء.
البدء
المتطلبات: Node.js 22.12+ و pnpm 10.33.2 و Rust 1.96.0 مع هدف wasm32-unknown-unknown.
تشغيل شريحة القياس من نسخة محلية من المستودع
pnpm install --frozen-lockfile && pnpm m0:check && pnpm probe:dev