DeltaDB؛ کنترل نسخهای که مکالمه با ایجنت رو ذخیره میکنه
خلاصهٔ کاملتر
نویسنده که از مدیرهای Zed هست، با این جمله شروع میکنه که هیچوقت طرفدار pull request نبوده. به گفتهٔ اون، تیمشون معمولاً تو یه worktree مشترک و همزمان کار میکنن و درست موقع نوشتن کد دربارش حرف میزنن، ولی GitHub اجازه نمیده تا قبل از کامیت و push راجع به کد صحبت کنی؛ تا اون موقع مهمترین گفتگوها معمولاً تموم شدن.
نویسنده میگه حالا با اومدن ایجنتها این مسئله مهمتر هم شده، چون بهمرور همون مکالمهای که کد رو تولید میکنه داره به منبع اصلی نرمافزار تبدیل میشه. این گفتگو پیوسته جلو میره و باید به کدی که مدام عوض میشه گره بخوره، در حالی که Git از اول حول کامیتهای مجزا طراحی شده و برای این کار ساخته نشده.
راهحلشون DeltaDB هست. بهجای اینکه مثل Git سر هر کامیت یه snapshot بگیره، هر عملیات بین کامیتها رو هم به شکل یه delta ثبت میکنه و به هر کدوم یه هویت پایدار میده. چون هر delta رو میشه جداگانه آدرس داد، میتونی به کد تو هر لحظه از تکاملش اشاره کنی، حتی وقتی هنوز داره تغییر میکنه. هر پیام و تغییری که ایجاد کرده هم کنار هم ثبت میشن تا از هم جدا نیفتن.
نکتهٔ فنی دیگه اینه که DeltaDB از worktreeهای CRDT (همگامسازی بدون تعارض) استفاده میکنه، برای همین چند نفر و چند ایجنت میتونن همزمان و از روی ماشینهای مختلف یه فایل رو ویرایش کنن. این فایلها واقعیان: ایجنتها از طریق ترمینال توشون کار میکنن و هر وقت بخوای میتونی کل worktree رو روی دیسک mount کنی تا با ابزارهای خودت بازش کنی.
به گفتهٔ نویسنده چون هر ارجاع بهجای شمارهٔ خط به یه delta وصله، با جابهجا شدن کد هم سرجاش میمونه. از هر خط تو یه گفتگوی قدیمی میتونی به همون کد بپری (چه وضعیت الانش، چه همون لحظهای که ایجنت نوشتتش) و برعکس، از هر خط کد میتونی گفتگویی که اون رو ساخته پیدا کنی. خود ایجنتها هم میتونن از این زمینه استفاده کنن و بفهمن کد چرا اونجوری نوشته شده.
هدف نهایی که نویسنده میگه سادهست: مکالمه با ایجنت بشه تنها مکالمهای که لازم داری. یه همتیمی میتونه وسط کار بهت ملحق شه، با ایجنتی که کار رو انجام داده حرف بزنه و همونجا یادداشت بذاره، بدون اینکه منتظر کامیت و push تو بمونه. نویسنده معتقده pull request و ریویوها فقط برای این وجود دارن که بحث و کد جدا از هم زندگی میکنن؛ وقتی هر دو رو یه جا بذاری، اون تشریفات حذف میشه و Git و CI برای کاری که توش خوبن (اجرای تستها و اتصال به دنیای بیرون) میمونن.
نکات کلیدی:
- DeltaDB یه کنترل نسخهٔ جدید از تیم Zed هست که دور delta میچرخه، نه کامیت
- هر عملیات یه هویت پایدار میگیره، پس میشه به کد تو هر لحظه از تغییرش اشاره کرد
- مکالمهٔ آدم یا ایجنت کنار خود کد ذخیره میشه و این دو از هم جدا نمیافتن
- استفاده از worktreeهای CRDT اجازه میده چند نفر و چند ایجنت همزمان یه فایل رو ویرایش کنن
- نسخهٔ بتا چند هفتهٔ دیگه برای اولین کاربرها میاد و فعلاً waitlist داره




