Oak: کنترل نسخهای که برای ایجنتهای هوش مصنوعی ساخته شده
خلاصهٔ کاملتر
Oak یه سیستم کنترل نسخه (VCS) متنباز هست که با Rust نوشته شده و الان تو نسخهٔ بتای عمومی v0.105.0 قرار داره. سازندههاش میگن ایدهٔ اصلی اینه که کنترل نسخه رو دور شیوهٔ کار ایجنتهای کدنویسی بچینن، نه آدمها. شما ایجنت خودتون رو میارید (Claude Code، Codex، Cursor و بقیه) و Oak زیرساختی میشه که ایجنت باهاش میخونه، مینویسه، برنچ میزنه و همکاری میکنه.
چند تا تصمیم طراحی Oak رو از git جدا میکنه. واحد کار branch-per-session هست، یعنی هر جلسهٔ کاری ایجنت یه برنچ جدا داره. کامیتها پیام ندارن و بهجاش خود برنچ یه توضیح داره. ذخیرهسازی هم content-addressed هست، یعنی هر تیکه داده با هش محتواش (BLAKE3) شناخته میشه. طبق متن پروژه، این طراحی باعث میشه برای کار ایجنتها خیلی سریعتر از git باشه، ولی سرعت نتیجهٔ طراحیه، نه شعار اصلی.
پروژه دو بخش داره: کتابخونهٔ oakvcs-core که مدل داده (Blob، Manifest، Commit، Tree)، تکهتکه کردن محتوا، diff و merge رو پیاده میکنه، و ابزار خط فرمان oak. کتابخونه رو میشه جدا هم تو پروژهٔ خودتون استفاده کنید. اگه فقط مدل داده و هش رو بخواید، بدون SQLite و git، فیچرهای پیشفرض رو خاموش میکنید:
[dependencies]
oakvcs-core = { version = "0.105.0", default-features = false }برای ریپوهای خیلی بزرگ دو راه هست. اولی lazy mount هست، یعنی یه درخت کاری روی ریموت سوار میشه و هر فایل فقط وقتی بازش کنید دانلود میشه (روی macOS با FSKit، لینوکس با FUSE و ویندوز با ProjFS). دومی sparse clone به سبک Perforce هست که فقط یه زیرشاخه از ریپو رو روی دیسک میاره. همین مکانیزم پنهون کردن محتوا، دسترسی سطح پوشه رو هم با یه فایل .oak/PERMISSIONS شبیه CODEOWNERS ممکن میکنه.
سرور Oak خودش CI رو از فایلهای .oak/workflows/*.yml اجرا میکنه و تا وقتی CI برنچ قرمز یا در حال اجراست، merge روی main رو با خطای HTTP 412 رد میکنه. دستورهای oak ci وضعیت، لاگ و اجرای دوباره رو نشون میدن و oak merge --wait منتظر نتیجه میمونه. Oak یه skill آماده هم داره که با oak skill install نصب میشه و به ایجنت یاد میده Oak با git چه فرقی داره، تا دیگه سراغ git status نره.
به گفتهٔ خود سازندهها، تقریباً همهٔ کد این ریپو با هوش مصنوعی و زیر نظر آدم نوشته شده. لایسنسش Apache-2.0 هست و روی macOS، لینوکس و ویندوز نصب میشه.
نکات کلیدی:
- Oak الان تو بتای عمومی نسخهٔ v0.105.0 هست و لایسنس Apache-2.0 داره.
- کتابخونه با اسم oakvcs-core منتشر شده ولی تو کد با oak_core ایمپورت میشه.
- هش محتوا با BLAKE3 انجام میشه و ذخیرهٔ محلی روی SQLite و git پشتیبانی میشه.
- lazy mount روی macOS از FSKit، روی لینوکس از FUSE و روی ویندوز از ProjFS استفاده میکنه.
- سرور، merge روی main رو تا سبز شدن CI با خطای HTTP 412 رد میکنه.




