مفتوح المصدر · رخصة MIT · ملف ثنائي واحد

اعرف من غيّر ماذا.
حتى لو لم يكن إنسانًا.

تتبّع تعديلات الكود في الوقت الفعلي مع فروقات ذكية، وإسناد Git، وإشعارات فورية. ملف ثنائي واحد. بدون إعداد. رؤية شاملة.

تثبيت 0diff عرض على GitHub
$ curl -fsSL https://0diff.dev/install.sh | sh copy
0diff watch — ~/project/flin
$ 0diff watch
▶ Watching 847 files across 23 directories...
▶ Git: main branch, 3 contributors tracked
 
[14:32:05] src/parser.rs +12 -3 (alice on feature/parser)
@@ -45,3 +45,12 @@
- fn parse_expression(&mut self) -> Result<Expr> {
+ fn parse_expression(&mut self, precedence: u8) -> Result<Expr> {
+ let left = self.parse_primary()?;
 
[14:33:41] src/typechecker/checker.rs +47 -2 ( Claude Agent on fix/enum-collision)
@@ -189,2 +189,49 @@
+ // Resolve enum variant / entity name collision
+ fn resolve_name_shadowing(&mut self, scope: &Scope) {
 
→ Slack #dev-changes notified
→ Discord #code-watch notified

كل فريق عاش هذا الكابوس.
التعديلات غير المتتبّعة في قواعد الكود المعقّدة تكلّف الفرق أيامًا من التنقيح، ومواعيد نهائية ضائعة، وثقة مهدورة. هذه القصص تحدث كل يوم.

انهيار الإنتاج في الثالثة صباحًا

الإنتاج معطّل. فريقك يتكالب للعثور على ما تغيّر. 47 ملفًا تم تعديلها عبر 6 فروع في آخر 24 ساعة. لا أحد يتذكّر أنه لمس ملف ترحيل قاعدة البيانات. تنفّذ git log على كل ملف واحدًا تلو الآخر. بعد ثلاث ساعات، تجد تعديلًا من سطر واحد في ملف إعدادات لم ينبّه إليه أحد.

"Who touched the connection pool settings? Nobody remembers. git blame says it was merged 3 days ago buried in a 200-file PR."

التعديل الشبحي

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

"Cursor auto-formatted my Python file. It looked cosmetic. It changed the indentation of a nested if-block. Took us 2 days to find it."

مشكلة "لم أكن أنا"

خمسة مطوّرين يعملون على نفس الوحدة. يظهر تراجع بعد الدمج. الجميع يقول إنه لم يلمس ذلك الملف. Git blame يُظهر عملية دمج -- غير مفيد. أنت بحاجة لمعرفة من غيّر ماذا، ومتى، وعلى أي فرع، قبل أن يُدمج ويُسحق التاريخ.

"After squash merge, git blame shows one author for 500 lines. The actual modification that broke things? Lost in the squash."

وكيل الذكاء الاصطناعي المتمرّد

تشغّل 5 وكلاء Claude Code بالتوازي عبر طرفيات مختلفة. الوكيل 3 يقرّر "إصلاح" دالة مساعدة يعتمد عليها الوكلاء 1 و2 و4 و5. كل شيء ينهار. كل وكيل يلتزم باسمك. لا توجد طريقة لمعرفة أي وكيل غيّر أي ملف دون قراءة كل فرق يدويًّا.

"I had 100 agents spawned on a complex Rust project. One agent refactored a shared module. 4 other agents started failing silently. I didn't know for 45 minutes."

الملف ذو الـ5,000 سطر الذي لا يقرأه أحد

وحدتك الأساسية أكثر من 5,000 سطر. منطق أعمال حرج، مُوازن بعناية على مدى سنوات. مطوّر مبتدئ أو مساعد ذكاء اصطناعي يجري تعديلًا صغيرًا في السطر 3,847. لا أحد يراجعه لأن فرق طلب السحب ضخم جدًّا. يُنشر. بعد أسبوعين، تظهر حالة حدّية. إيجاد أي من التعديلات الأربعين في ذلك الملف تسبّب بها يصبح تنقيبًا أثريًّا.

"We have a 7,000 line legacy controller. We literally cannot review every change to it. We just pray."

مفاجأة الجمعة الخامسة مساءً

شخص ما دفع "إصلاحًا سريعًا" في الساعة 4:58 مساء الجمعة. بدون مراجعة، بدون إشعار. صباح الاثنين: بيئة الاختبار لا تُقلع. مهمة نهاية الأسبوع الدُّفعية أفسدت 10,000 سجل بسبب قاعدة تحقّق مُغيّرة. لو تم إشعار أي شخص في الوقت الفعلي، لكان الإصلاح في 5 دقائق. بدلًا من ذلك، أصبحت كارثة صباح الاثنين.

"If I had gotten a Slack notification when that file changed, I would have caught it in 30 seconds. Instead it cost us the whole weekend's data."
التكلفة الحقيقية
التعديلات غير المتتبّعة لا تسبّب أخطاءً فحسب.
إنها تكلّف أموالًا حقيقية.
23%
من وقت المطوّرين يُنفق في تنقيح مشاكل ناتجة عن تعديلات غير متتبّعة
4.2h
متوسط الوقت لتحديد السبب الجذري لتراجع مرتبط بتعديل
$680K
متوسط التكلفة السنوية لكل فريق هندسي من حوادث مرتبطة بالتعديلات كان يمكن تفاديها
67%
من حوادث الإنتاج تعود إلى تعديل كود تجاوز المراجعة المناسبة

رؤية فورية لكل تعديل.
قبل أن يصبح مشكلة.
0diff يراقب قاعدة الكود الخاصة بك، ويحسب فروقات ذكية، ويحدّد من أجرى كل تعديل، ويُشعر فريقك فورًا. كل ذلك في ملف ثنائي واحد.

مراقبة الملفات في الوقت الفعلي

مراقبة على مستوى نظام التشغيل باستخدام inotify (Linux)، وFSEvents (macOS)، وReadDirectoryChanges (Windows). مع إزالة التكرار لتجنّب الضوضاء. اكتشاف فوري، بدون حمل على المعالج.

0diff watch

محرّك فروقات ذكي

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

filter.ignore_whitespace = true

إسناد Git

يكتشف تلقائيًّا الفرع الحالي، وينفّذ git blame على الأسطر المُعدّلة، ويحدّد المؤلف. اعرف بالضبط من غيّر كل سطر، حتى قبل الالتزام.

0diff log --author "alice"

إشعارات فورية

إرسال إشعارات إلى Slack (بتنسيق Block Kit)، وwebhooks لـDiscord، أو أي نقطة نهاية HTTP. تجميع حسب الملف للحفاظ على نظافة القنوات. اعرف لحظة تغيّر أي شيء.

0diff test

سجل قابل للبحث

كل تعديل يُسجَّل في ملف JSON-lines محلي. استعلم حسب المؤلف، أو الملف، أو نطاق التاريخ، أو الفرع. مسار تدقيق كامل دون الاعتماد على أركيولوجيا git log.

0diff log --file "parser.rs"

بدون إعداد

نفّذ 0diff init وابدأ المراقبة. إعدادات افتراضية ذكية تتولّى أنماط التجاهل، والامتدادات، وإزالة التكرار. خصّص لاحقًا بملف TOML بسيط. يعمل مع أي لغة، أي مشروع.

0diff init

عفريت خلفي

شغّل 0diff كعفريت خلفي يستمر عبر جلسات الطرفية. شغّله مرة واحدة، وانسَ أمره. حارس فريقك دائمًا في الخدمة.

0diff watch --daemon

ملخّص يومي

احصل على ملخّصات دورية: "اليوم، 47 ملفًا تم تعديلها من قبل 3 مؤلفين. الأكثر تعديلًا: parser.rs (12 تعديلًا)." العرض التنفيذي لقادة الفرق والمديرين التقنيين.

notifications.digest.interval_hours = 4

ملف ثنائي واحد

مكتوب بلغة Rust. يُترجم إلى ملف ثنائي ساكن واحد أقل من 10MB. بدون بيئة تشغيل، بدون اعتماديات، بدون node_modules. ثبّته بـcurl، شغّله في أي مكان. متعدّد المنصات.

curl -fsSL 0diff.dev/install.sh | sh

مبني لطريقة عملك الفعلية.
سواء كنت مطوّرًا منفردًا، أو فريقًا موزّعًا، أو تدير جيشًا من وكلاء الذكاء الاصطناعي.

تبني وحدك. لكنك لم تعد وحدك بعد الآن.

تستخدم Copilot، وCursor، وClaude Code. يكتبون الكود في ملفاتك بينما تركيزك في مكان آخر. تعود إلى التبويب وشيء ما مختلف لكنك لا تستطيع تحديد ماذا. تنفّذ git diff باستمرار لكنك تنسى التحقّق. بعد ساعات، يظهر خطأ خفي وليس لديك فكرة متى أُدخل.

مع 0diff، كل تعديل يُسجَّل لحظة حدوثه. ترى بالضبط ما تغيّر، حتى عبر جلسات مساعدة ذكاء اصطناعي متعدّدة. لا مزيد من "انتظر، هل أنا كتبت هذا أم الذكاء الاصطناعي؟"

سيناريو

تعدّل auth.rs في تبويب. Copilot يُكمل تلقائيًّا دالة في utils.rs في تبويب آخر. 0diff يلتقطها فورًا ويُظهر لك الفرق الدقيق مع إشعار في الطرفية -- قبل حتى أن تبدّل التبويبات.

0diff — solo workflow
[09:14:22] src/auth.rs +3 -1 (you)
+ let token = jwt::encode(&claims)?;
 
[09:14:23] src/utils.rs +18 -0 ( Copilot)
+ pub fn validate_token(token: &str)
+ -> Result<Claims, AuthError> {
+ let decoded = jwt::decode(
+ token, &KEY, &Validation::default()
+ )?;
...
 
ℹ 2 files changed in last 5 min

5 مطوّرين. 200 ملف. لا أحد يعرف ما يلمسه الآخر.

فريقك موزّع عبر 3 مناطق زمنية. أليس تعيد هيكلة دالة مساعدة في الثانية صباحًا بتوقيتك. بوب يبدأ البناء على الواجهة القديمة في الثامنة صباحًا. بحلول الظهر، هناك تعارض يستغرق 4 ساعات لفكّه. Git يُظهر تعارض الدمج. لكنه لا يُظهر لحظة بداية الانحراف.

مع إرسال 0diff إلى قناة Slack مشتركة، كل مطوّر يرى كل تعديل لحظة حدوثه. التعارضات تُمنع، لا تُحل فقط. فريقك يصبح واعيًا بعمل بعضه البعض في الوقت الفعلي.

سيناريو

أليس تعدّل api/routes.rs. بوب يحصل على إشعار Slack فورًا مع الفرق الدقيق. يعدّل نهجه قبل كتابة سطر متعارض واحد.

#dev-changes — Slack
┌─────────────────────────────────────┐
alice modified api/routes.rs
feature/v2-endpoints
+22 -8 lines · 3 hunks │
- GET /api/users/:id
+ GET /api/v2/users/:id
Bob also has this file open
└─────────────────────────────────────┘

تحتاج الصورة الكاملة، لا كل فرق.

كقائد تقني أو CTO، لا تحتاج لرؤية كل تغيير في كل سطر. تحتاج لمعرفة: أي ملفات حرجة تم تعديلها اليوم؟ كم تعديلًا أصاب كودًا حساسًا للإنتاج؟ هل المطوّر الجديد يلمس ملفات لا يجب أن يلمسها؟

الملخّص اليومي من 0diff يعطيك هذا بالضبط. ملخّص دوري لجميع التعديلات، مجمّع حسب المؤلف والملف، مع اكتشاف النقاط الساخنة للملفات كثيرة التعديل. رؤية تنفيذية بدون ضوضاء.

مثال على الملخّص اليومي

"اليوم: 127 تعديلًا عبر 34 ملفًا من قبل 5 مؤلفين. النقاط الساخنة: core/engine.rs (23 تعديلًا)، db/migrations/ (8 تعديلات). تنبيه: مساهم جديد لمس security/auth.rs."

0diff log --summary
═══ Daily Summary — Feb 14, 2026 ═══
 
Authors:
alice +342 -89 │ 14 files
bob +127 -43 │ 8 files
agent-3 +891 -202 │ 12 files
 
Hotspots:
core/engine.rs │ 23 changes │ HIGH
db/schema.rs │ 8 changes │ MEDIUM
security/auth.rs │ 3 changes │ SENSITIVE

بعض الملفات لا تحتمل تعديلات صامتة.

ترحيلات قاعدة البيانات. منطق المصادقة. معالجة المدفوعات. مفاتيح التشفير. هذه الملفات تحتاج مستوى مختلفًا من اليقظة. تعديل واحد غير مُراجع في payment_handler.rs يمكن أن يكلّف الملايين. تعديل صامت على .env.production يمكن أن يكشف الأسرار.

0diff يتيح لك تهيئة تنبيهات الملفات الحرجة مع إشعارات مرتفعة -- قنوات مختلفة، تنبيهات أعلى صوتًا، محفّزات مراجعة إلزامية. التعديلات على المسارات الحساسة مستحيلة التفويت.

مثال على الإعدادات

راقب db/migrations/*، security/*، .env* مع رسالة Slack مباشرة فورية لقائد الفريق التقني + تنبيه Discord إلى #security-audit. عدم تسامح مطلق مع التعديلات الصامتة.

.0diff.toml — critical paths
# Critical file monitoring
[[watch.critical]]
paths = ["db/migrations/", "security/"]
alert_level = "urgent"
notify = ["slack-dm:@cto", "discord:#security"]
 
[[watch.critical]]
paths = [".env*", "secrets/"]
alert_level = "critical"
notify = ["slack-dm:@cto", "webhook:pagerduty"]
block_unreviewed = true

مبنية لعصر
التطوير بمساعدة الذكاء الاصطناعي.

تستخدم Copilot، وCursor، وClaude Code، وCodex. يكتبون الكود في ملفاتك، باسمك، دون إذن. الأدوات التقليدية بُنيت لعالم كان البشر فيه المؤلفين الوحيدين. 0diff هي أول أداة مصمّمة لقواعد الكود المشتركة بين البشر والذكاء الاصطناعي.

اكتشاف الوكلاء

اكتشاف أنماط أدوات الذكاء الاصطناعي المعروفة (Claude، Cursor، Copilot). وسم التعديلات غير البشرية تلقائيًّا بعلامة .

تتبّع الوكلاء المتعدّدين

تشغّل 5 وكلاء في طرفيات متوازية؟ 0diff يتتبّع كلًّا منها بشكل مستقل ويُظهر أي وكيل عدّل أي ملف.

اكتشاف التصادمات

عندما يعدّل الوكيل أ ملفًا يعتمد عليه الوكيل ب، 0diff ينبّه فورًا -- قبل أن تبدأ الإخفاقات المتتالية.

المقارنة
لماذا لا تستخدم فقط git diff؟
يمكنك ذلك. لكن إليك ما ستفقده.
القدرة git diff watchexec fswatch 0diff
مراقبة الملفات في الوقت الفعلي
فروقات ذكية (إظهار ما تغيّر)
إسناد المؤلف (يدوي)
إشعارات Slack / Discord
سجل تعديلات قابل للبحث
تصفية المسافات البيضاء / التعليقات (خيارات)
اكتشاف وكلاء الذكاء الاصطناعي
ملف ثنائي واحد، بدون اعتماديات (ترجمة)
وضع العفريت الخلفي

التثبيت في 10 ثوانٍ. المراقبة في 20.
ملف ثنائي واحد. بدون اعتماديات. بدون بيئة تشغيل. بدون هراء.

التثبيت السريع (macOS / Linux)

curl -fsSL https://0diff.dev/install.sh | sh copy

البناء من المصدر

git clone https://github.com/zerosuite-inc/0diff.git && cd 0diff && cargo install --path . copy

Cargo (من GitHub)

cargo install --git https://github.com/zerosuite-inc/0diff.git copy

إلغاء التثبيت

rm $(which 0diff) copy

ملف ثنائي واحد، بدون ملفات إعدادات خارج مشروعك. احذف الملف الثنائي وانتهى الأمر.

First run
$ cd my-project
$ 0diff init
✓ Created .0diff.toml with smart defaults
✓ Detected: Rust project, 847 files
 
$ 0diff watch
▶ Watching 847 files...
▶ Ready. Edit a file to see 0diff in action.

توقّف عن التخمين.
ابدأ المراقبة.

مفتوح المصدر. مجاني للأبد. مبني بلغة Rust.
منتج من ZeroSuite.

تثبيت 0diff نجمة على GitHub