پرش به محتوای اصلی
پرش به محتوای مقاله

Wallfacer تاریخچه‌ی پراکنده‌ی عامل‌های کدنویسی را در یک پایگاه‌داده متمرکز کرد

·۱۵ مرداد ۱۴۰۵۶ دقیقه مطالعه
مدیر جلسه ترمینال برای Claude Code و موارد دیگر
مدیر جلسه ترمینال برای Claude Code و موارد دیگر
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

ایجاد نخستین لایه مدیریت متمرکز (Unified Session Manager) برای چندین عامل کدنویسی مختلف که اجازه می‌دهد جلسات ابزارهای رقیب در یک محیط واحد جست‌وجو و مدیریت شوند.

تصور کنید هفته‌هاست روی یک ویژگی پیچیده کار می‌کنید و حالا باید دقیقاً همان راهکاری را پیدا کنید که دو هفته پیش با یک عامل هوش مصنوعی در ترمینال به آن رسیدید، اما نمی‌دانید در کدام ابزار بود. مدیریت ده‌ها جلسه پراکنده در ابزارهای مختلف، یکی از بزرگ‌ترین موانع بهره‌وری در توسعه‌ی مدرن است.

Wallfacer که در ۶ اوت ۲۰۲۶ منتشر شد، این آشفتگی را با ایجاد یک مدیریت متمرکز برای جلسات ترمینال حل می‌کند. این ابزار تاریخچه‌ی گفتگوهای چندین عامل (Agent) — شبیه به یک دستیار هوشمند که می‌تواند مستقیماً کد بنویسد و اجرا کند — را در یک پایگاه‌داده SQLite متمرکز و قابل جست‌وجو می‌کند.

توسعه‌دهندگان امروزی مدام بین ابزارهای تخصصی جابه‌جا می‌شوند. همان‌طور که در تحلیل قبلی ما درباره‌ی چرخش برنامه‌نویسان از ابزارهای تکمیل خودکار به سمت Claude اشاره کردیم، گذار به سمت کدنویسی عامل‌محور (Agentic) مشکل جدیدی به نام «پراکندگی جلسات» ایجاد کرده است. هر ابزار تاریخچه را به شکل متفاوتی ذخیره می‌کند؛ برخی در فایل‌های JSONL بدون نام و برخی در پوشه‌هایی با نام‌های هش‌شده، که یافتن یک گفتگوی خاص از دو هفته پیش را تقریباً غیرممکن می‌کند.

بحران پراکندگی جلسات

طبق مستندات این پروژه، سازوکارهای ذخیره‌سازی در ابزارهای مختلف کاملاً متفاوت و گاهی متناقض است. Claude Code هر گفتگو را به صورت یک فایل JSONL بدون عنوان در مسیر ~/.claude/projects/ ذخیره می‌کند که بر اساس دایرکتوری جاری شما کلیدگذاری شده است. این ساختار ذخیره‌سازی، پیش‌نیاز ابزارهایی است که مدیریت نشست‌ها را در Claude Code تسهیل می‌کنند تا از فراموشی جلسات جلوگیری شود. Kiro CLI از یک پوشه‌ی تخت و ساده در مسیر ~/.kiro/sessions/cli/ استفاده می‌کند. Cursor CLI چت‌ها را در پوشه‌هایی با نام‌های هش‌شده (Hash-named) در مسیر ~/.cursor/chats/ دفن می‌کند، در حالی که Codex فایل‌های خروجی خود را بر اساس تاریخ در مسیر ~/.codex/sessions/ دسته‌بندی می‌کند.

پس از چند هفته، یک توسعه‌دهنده با ده‌ها متن گفتگو در چهار عامل مختلف مواجه می‌شود. بدون یک شاخص مرکزی، هیچ راهی برای تفکیک این جلسات یا بازیابی سریع یک راهکار خاص وجود ندارد.

Wallfacer به عنوان یک لایه‌ی خواندنی (Read-only overlay) عمل می‌کند. این ابزار پوشه‌های محلی Claude Code، Cursor CLI، Kiro CLI و Codex را اسکن کرده و مسیرهای کاری، برچسب‌های زمانی و نخستین پرامپت‌ها را فهرست می‌کند. چون این ابزار هرگز فایل‌های اصلی عامل‌ها را تغییر نمی‌دهد، برای مدیریت پروژه‌های حساس و کدبیس‌های استراتژیک کاملاً امن است.

سازمان‌دهی متمرکز و جست‌وجوی پیشرفته

این ابزار دو رابط کاربری اصلی ارائه می‌دهد: یک رابط گرافیکی ترمینالی (TUI) برای تعامل انسانی و یک رابط خط فرمان (CLI) برای استفاده در اسکریپت‌ها. کاربران می‌توانند تاریخچه‌ی خود را از طریق سازوکارهای زیر مدیریت کنند:

  • نام‌گذاری و برچسب‌زنی: تغییر نام جلسات بدون عنوان و افزودن برچسب‌های سفارشی برای گروه‌بندی وظایف مرتبط.
  • دسته‌بندی پروژه‌ای: اختصاص جلسات به پروژه‌های خاص برای تفکیک کارهای مربوط به مخازن (Repositories) مختلف. این رویکرد با استفاده از ساختارهای دایرکتوری‌محور برای اتوماسیون کد هم‌راستا است تا جریان کاری توسعه‌دهنده سازمان‌یافته‌تر شود.
  • جست‌وجوی سراسری: جست‌وجوی هم‌زمان در عناوین، نخستین پرامپت‌ها، مسیرهای دایرکتوری و برچسب‌ها.
  • فیلتر چند-عاملی: مشاهده‌ی جلسات تمام عامل‌ها در کنار هم یا فیلتر کردن بر اساس یک عامل خاص با استفاده از زیررشته‌های غیرحساس به حروف بزرگ و کوچک (مثلاً جست‌وجوی "kiro" یا "cursor").

مدیر جلسه ترمینال برای Claude Code و موارد دیگر

کنترل‌ها و ناوبری در TUI

با اجرای دستور ساده‌ی wallfacer در ترمینال، یک مرورگر تمام‌صفحه باز می‌شود که در سمت چپ فهرستی از جلسات و در سمت راست پنل جزئیات جلسه انتخاب‌شده را نمایش می‌دهد. این پنل جزئیات دقیقاً همان اطلاعاتی را نشان می‌دهد که دستور wallfacer show چاپ می‌کند. اگر عرض پنجره کمتر از ۱۰۰ ستون باشد، پنل جزئیات برای بهینه‌سازی فضا مخفی شده و لیست تمام عرض را در اختیار می‌گیرد.

تعاملات کلیدی در این محیط شامل موارد زیر است:

  • جابه‌جایی: استفاده از کلیدهای ↑/↓ یا j/k برای حرکت و فیلتر کردن سریع (Fuzzy Filter) در میان عناوین، پروژه‌ها، دایرکتوری‌ها، برچسب‌ها و نام عامل‌ها.
  • فیلترینگ: کلیدهای P ،T و A برای چرخش بین فیلترهای پروژه، برچسب و عامل؛ و کلید x برای پاک‌سازی تمام فیلترهای فعال.
  • مدیریت: کلید n برای شروع جلسه جدید (که از کاربر نام عامل، دایرکتوری، عنوان، پروژه و برچسب‌ها را می‌پرسد)، در حالی که کلیدهای r ،t و p امکان تغییر نام، ویرایش برچسب‌ها و تعیین پروژه را فراهم می‌کنند.
  • اجرا: با فشردن کلید enter جلسه از سر گرفته شده و کنترل ترمینال به عامل تحویل داده می‌شود. پس از خروج از جلسه عامل، کاربر مجدداً به مرورگر Wallfacer بازمی‌گردد.

معماری فنی و امنیت داده‌ها

Wallfacer با زبان Go (نسخه ۱.۲۲ به بالا) نوشته شده و متاداده‌ها را در یک پایگاه‌داده محلی SQLite در مسیر ~/.local/share/wallfacer/ ذخیره می‌کند. فرآیند همگام‌سازی به صورت افزایشی (Incremental) طراحی شده است تا سرعت ابزار حتی با وجود صدها جلسه فهرست‌شده کاهش نیابد. دستور wallfacer sync دیسک را مجدداً اسکن می‌کند، هرچند این عملیات پیش از اجرای هر دستور به صورت خودکار انجام می‌شود.

امنیت در فرآیند حذف داده‌ها به طور ساختاری لحاظ شده است. وقتی کاربر جلسه‌ای را با دستور rm حذف می‌کند، Wallfacer فایل‌ها را به جای پاک‌شدن کامل، به یک پوشه‌ی زباله (Trash) منتقل می‌کند. تنها در صورتی که پرچم --purge استفاده شود، حذف دائمی رخ می‌دهد.

برای عامل‌های پیچیده‌ای که یک جلسه را در چندین فایل پخش می‌کنند، Wallfacer تضمین می‌کند که تمام مجموعه به صورت یکپارچه جابه‌جا شوند:

  • Kiro CLI: انتقال هم‌زمان متن گفتگو، فایل متاداده (sidecar)، تاریخچه‌ی پرامپت و پوشه‌ی موقت (scratch directory).
  • Cursor CLI: جابه‌جایی هم‌زمان پوشه‌ی چت و متن ثبت‌شده تحت عنوان پروژه.

این رویکرد مانع از آن می‌شود که جلسات حذف‌شده در انتخاب‌گر داخلی خودِ عامل‌ها باقی بمانند.

مدیر جلسه ترمینال برای Claude Code و بیشتر

یکپارچه‌سازی با گردش کار

توسعه‌دهندگان می‌توانند جلسات جدید را مستقیماً از طریق wallfacer new [dir] آغاز کنند که در آن ابتدا باید عامل مورد نظر انتخاب شود. به طور پیش‌فرض Claude Code انتخاب شده است و اگر تنها یک آداپتور ثبت شده باشد، مرحله‌ی انتخاب عامل نادیده گرفته می‌شود. برای بازگشت به جلسات قدیمی، دستور wallfacer resume <ref> کاربرد دارد؛ در اینجا مرجع (ref) می‌تواند یک پیشوند کوتاه از شناسه (مثلاً resume 5f2) یا عنوان دقیق جلسه (مثلاً resume "smoke test") باشد.

برای اتوماسیون، CLI از پرچم --json پشتیبانی می‌کند تا توسعه‌دهندگان بتوانند لیست جلسات خود را به اسکریپت‌های دیگر پاس دهند. همچنین یک سیستم بررسی به‌روزرسانی کش‌شده وجود دارد که روزانه یک بار گیت‌هاب را برای اطلاع از نسخه‌های جدید چک می‌کند. این عملیات توسط مرورگر مدیریت می‌شود تا از مسدود شدن ترمینال به دلیل تأخیرهای شبکه جلوگیری شود؛ زیر-دستورها صرفاً پاسخ کش‌شده را از دایرکتوری داده‌ها می‌خوانند. کاربران می‌توانند این قابلیت را با تنظیم متغیر محیطی WALLFACER_NO_UPDATE_CHECK=1 کاملاً غیرفعال کنند.

چشم‌انداز مدیریت جلسات هوش مصنوعی

این پروژه به گونه‌ای طراحی شده که از طریق آداپتورهای قابل تعویض (Pluggable Adapters) گسترش یابد. نقشه راه آینده شامل موارد زیر است:

  • آداپتورهای جدید: افزودن پشتیبانی از opencode.
  • جست‌وجوی پیشرفته: پیاده‌سازی جست‌وجوی تمام‌متن (Full-text search) در محتوای جلسات با استفاده از SQLite FTS5.
  • ابزارهای CLI: افزودن دستور wallfacer restore برای بازیابی جلسات از زباله‌دان و قابلیت خروجی گرفتن از متن گفتگوها به فرمت Markdown. این قابلیت در کنار استفاده از فایل‌های مارک‌دان محلی برای سازمان‌دهی تیم‌های AI، امکان مستندسازی دقیق‌تر تعاملات را فراهم می‌کند.
  • تحلیل داده‌ها: ارائه آمارهای مربوط به تعداد جلسات به تفکیک پروژه/هفته و میزان اشغال فضای دیسک.
  • اپلیکیشن دسکتاپ: ساخت یک GUI با استفاده از Wails و xterm.js، شامل سایدبار جلسات، ترمینال داخلی و تب‌های متعدد.

این تغییر رویکرد نشان‌دهنده تحولی گسترده‌تر در تجربه توسعه‌دهندگان است. ما از دنیای «تعاملات تک-پرامپتی» به سمت «همکاری‌های بلندمدت عامل‌محور» حرکت می‌کنیم. وقتی یک برنامه‌نویس هفته‌ها با یک هوش مصنوعی روی یک ویژگی پیچیده همکاری می‌کند، تاریخچه جلسه به یک قطعه اصلی از مستندات پروژه تبدیل می‌شود.

با تبدیل متن گفتگوها به یک پایگاه‌داده قابل جست‌وجو به جای مجموعه‌ای از فایل‌های لاگ پنهان، Wallfacer چت‌های زودگذر را به یک پایگاه دانش ساختاریافته تبدیل می‌کند و بار شناختی برای یادآوری این موضوع که «کدام باگ را با کدام عامل حل کردم» را به شدت کاهش می‌دهد.

برای شروع، کاربران macOS و لینوکس می‌توانند از Homebrew استفاده کنند:
brew tap pradipta/wallfacer https://github.com/pradipta/wallfacer
brew install pradipta/wallfacer/wallfacer
یا از طریق Go نصب کنند: go install github.com/pradipta/wallfacer@latest.

گام بعدی شما

  • اگر از چندین CLI مختلف برای کدنویسی استفاده می‌کنید، Wallfacer را نصب کنید تا از گم شدن راهکارهای قدیمی جلوگیری کنید.
  • جلسات فعلی خود را با برچسب‌های موضوعی (مثلاً #refactor یا #bugfix) سازمان‌دهی کنید تا جست‌وجوی آینده سریع‌تر شود.
  • در صورت استفاده از اسکریپت‌های اتوماسیون، خروجی JSON ابزار را برای تحلیل الگوهای تعامل با مدل‌ها به کار ببرید.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

چرا این موضوع مهم است؟

این ابزار با تبدیل لاگ‌های پراکنده به یک پایگاه دانش، بهره‌وری توسعه‌دهندگان در پروژه‌های بلندمدت عامل‌محور را افزایش می‌دهد. اعتبار این راهکار در استفاده از SQLite برای دسترسی سریع و عدم دستکاری در فایل‌های اصلی مدل‌هاست.

تأثیر برای ایران

این ابزار به دلیل متن‌باز بودن و اجرا در محیط محلی، برای توسعه‌دهندگان ایرانی که با محدودیت‌های API یا تحریم‌های ابزارهای ابری مواجه‌اند، راهکاری ایده‌آل برای سازمان‌دهی دانش فنی است.

·نگاه ما
تحریریه دات‌هوش

Wallfacer در واقع دارد مفهوم «حافظه بلندمدت» را نه در لایه مدل، بلکه در لایه ابزار (Tooling) پیاده می‌کند. این رویکرد نشان می‌دهد که تا زمان رسیدن به پنجره‌های متنی بی‌نهایت، مدیریت متاداده‌های جلسات به یک نیاز حیاتی برای توسعه‌دهندگان تبدیل خواهد شد. در واقع، تاریخچه چت‌ها در حال تبدیل شدن به جایگزینی برای مستندات داخلی پروژه است.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.