UNF*؛ برگردوندنِ هر فایل به هر لحظه
خلاصهٔ کاملتر
UNF* (که unfudged هم صداش میزنن) یه ابزارِ خطِ فرمانه که مدامِ هر نسخه از فایلهات رو موقعِ هر ذخیره ضبط میکنه. به گفتهٔ سازنده مشکلی که حل میکنه اینه: گیت وقتی کامیت نزدی بهدردت نمیخوره، بعدِ بستنِ ادیتور دیگه Ctrl+Z فایده نداره و Time Machine ساعتی یهبار اجرا میشه؛ ولی UNF* هر ذخیره و هر ثانیه رو نگه میداره، پس هرچی فایلسیستم دیده، این هم داره.
انگیزهٔ اصلیش دورانِ ایجنتهای هوش مصنوعیه: یه ایجنت ممکنه دهها فایل رو بازنویسی کنه، فایلِ .env رو «زائد» حساب کنه و پاکش کنه، یا وسطِ یه ریفکتور خطا بخوره و همهچی رو به نسخههای قدیمی برگردونه. به گفتهٔ نویسنده با UNF* میتونی برگردی و دقیق ببینی چی عوض شده و بعد هر فایل رو به قبل برگردونی.
ساختارش سهمرحلهایه. مرحلهٔ Watch با FSEvents روی مک و inotify روی لینوکس فایلها رو زیرِ نظر میگیره، به .gitignore احترام میذاره، باینریها رو رد میکنه و کمتر از ۱٪ CPU و زیرِ ۱۰۰ مگابایت رم میگیره. مرحلهٔ Store با هشِ محتواییِ BLAKE3 و SQLite ذخیره میکنه و چون content-addressed ـه، فایلهای یکسان فقط یهبار ذخیره میشن. مرحلهٔ Rewind هم بازگرداندنِ نقطهبهنقطه به هر لحظه رو ممکن میکنه.
کارِ روزمرهش سادهست؛ کافیه تو پوشهٔ پروژه ضبط رو روشن کنی و بعداً هر لحظه رو ببینی یا برگردونی:
unf watch
unf diff --at 10m
unf restore --at 10mکنارِ اینها دستورهایی مثلِ unf log برای تایملاینِ یه فایل، unf cat --at برای دیدنِ محتوا تو یه لحظه و unf recap برای خلاصهٔ یه نشست هم داره و همهشون فلگِ --json دارن. همهچی لوکال و بدونِ حساب، تلهمتری یا شبکهست، پیشفرض تو ~/.unfudged/ ذخیره میشه و متنبازِ MIT/Apache-2.0 ـه (نیازمندِ Rust 1.80 به بالا).
نکات کلیدی:
- ضبطِ پیوستهٔ هر نسخهٔ فایل موقعِ هر ذخیره، بدونِ نیاز به کامیت
- طراحیشده برای دورانِ ایجنتهای هوش مصنوعی که فایلها رو بازنویسی یا پاک میکنن
- سه مرحلهٔ Watch/Store/Rewind با BLAKE3 و SQLite و ذخیرهٔ حذفِ تکراری
- مصرفِ کمتر از ۱٪ CPU و زیرِ ۱۰۰MB رم، کاملاً لوکال و بدونِ شبکه
- دستورهای ساده مثلِ unf restore --at و خروجیِ --json؛ متنبازِ MIT/Apache




