mindwalk: پخش سشن ایجنت روی نقشهٔ سهبعدی کد
خلاصهٔ کاملتر
مسئلهای که نویسندهٔ mindwalk مطرح میکنه اینه: لاگ یه سشن ایجنت ثبت میکنه که ایجنت چه کارهایی کرد، اما نشون نمیده تکلیف رو چطور فهمیده — اینکه کدوم بخشهای مخزن رو مرتبط دونسته، قبل از اقدام کجاها رو گشته، و اینکه ردپاش با محدودهای که تو ذهنت بوده جور درمیاد یا نه. خوندن خطبهخط فایل JSONL هیچکدوم از اینها رو جواب نمیده.
ایدهٔ ابزار ساده و بصریه: مخزن رو مثل یه نقشهٔ شبانه بکش و سشن رو مثل حرکت نور روی اون پخش کن. هرجا ایجنت جستوجو کرده، خونده یا ویرایش کرده روشن میشه و بقیهٔ نقشه تاریک میمونه؛ اینطوری برداشت ایجنت از تکلیف تبدیل به یه شکل میشه که با یه نگاه میفهمیش. کل ابزار یه باینری Goه که لاگ سشن Claude Code و Codex رو میخونه و کاملاً محلی کار میکنه — هیچ دادهٔ سشنی از دستگاه خارج نمیشه.
بدون هیچ آرگومانی، پوشههای پیشفرض سشنها رو اسکن میکنه، رابط کاربری رو روی یه پورت محلی تصادفی بالا میاره و مرورگر رو باز میکنه. زیرفرمانهایی هم داره برای باز کردن یه سشن مشخص، ساختن خروجی JSON نقشهٔ مخزن، و گرفتن خروجی JSON ردِ نرمالشدهٔ سشن.
برای خوندن تصویر چند نما داره: مخزن رو میشه بهصورت درخت شعاعی یا treemap دید، و شدت درخشش هر فایل متناسبه با اینکه چقدر عمیق و چند بار بهش دست زده شده. هر فایل عمیقترین وضعیت تماسش رو نگه میداره — دیدهشده، خوندهشده، ویرایششده، یا اصلاً بازدیدنشده — و هرکدوم رنگ خودشون رو دارن.
نوار HUD چند سیگنال اصطکاک رو جمع میکنه: نرخ خطا، فایلهایی که مدام دوباره تغییر کردن، و ویرایشهایی که بعد از آخرین مرحلهٔ راستیآزمایی انجام شدن. یه پنل پخش هم هست که میتونی سشن رو روی هیستوگرام زمانی جلو و عقب ببری؛ میلهها روی طیف سرد و گرم نشستهان، یعنی کارهای مشاهدهای مثل جستوجو و خوندن سرد میمونن و ویرایش و راستیآزمایی گرم میشن تا فازهای تغییر کد فوری به چشم بیان.
روی خط زمان، نشانههایی برای فشردهسازی کانتکست، اجرای زیرایجنتها و نوبتهای کاربر گذاشته شده که هرکدوم قابل کلیکان و پخش رو به همون لحظه میبرن. با کلیک روی هر فایل هم تاریخچهٔ بازدیدهاش پین میشه و از هر ردیف بازدید میشه پرید به همون نقطه از سشن. میانبرهای صفحهکلید هم برای پخش، قدمزدن، پرش به ویرایش یا خطای بعدی در نظر گرفته شده.
معماریاش عمداً دو تکهست: یکی «trace» که لاگ سشن رو به یه جریان مرتب از رویدادهای تماس با فایلها نرمال میکنه (برای هر فرمت ایجنت یه adapter جدا)، و دیگری «citymap» که چیدمان مخزن رو بهشکل قطعی میسازه — یعنی یه درخت مشخص همیشه همون نقشه رو تولید میکنه و بازپخشهای سشنهای مختلف با هم قابلمقایسه میمونن. یه سرور محلی Go این دوتا رو به هم وصل میکنه و فرانتاند React/Three.js رو سرو میکنه.
قواعد مشارکت هم روی همین مرزها تأکید داره: adapterها از رندر خبر ندارن، تولید نقشه به پخش وابسته نیست و سرور فقط این دو رو به هم میچسبونه. پروژه با لایسنس MIT منتشر شده.
نکات کلیدی:
- لاگ سشن میگه ایجنت چه کرد، ولی نه اینکه چطور تکلیف رو فهمید؛ mindwalk همین شکاف رو هدف گرفته
- مخزن بهشکل نقشهٔ شبانه رسم میشه و فایلهای لمسشده متناسب با عمق و تکرار تماس روشن میشن
- یه باینری Go کاملاً محلی که لاگ Claude Code و Codex رو میخونه؛ دادهای بیرون نمیره
- HUD سیگنالهای اصطکاک مثل نرخ خطا و ویرایش بعد از آخرین راستیآزمایی رو نشون میده
- نقشهٔ مخزن قطعیه، پس بازپخش سشنهای مختلف قابلمقایسهست




