P Pitchbar مستندات

مدیریت پلتفرم

تغییرات برنامه

تاریخچه تغییرات برنامه در آدرس /changelog، سطح عمومی یادداشت‌های انتشار برای خریداران است. نویسندگی در /admin/changelog قرار دارد (فقط مدیران ارشد).

قالب

هر ورودی یک ردیف است که با یک نسخه غیرقابل تغییر (semver: v1.4.0) کلیدگذاری می‌شود. ورودی‌ها از قرارداد Keep a Changelog پیروی می‌کنند — مارک‌داون با بخش‌های زیر ## Added / ## Changed / ## Fixed / ## Removed / ## Security. نمایش‌دهنده عمومی از تیترها، لیست‌های گلوله‌ای، **bold** و بخش‌های `code` پشتیبانی می‌کند؛ بقیه موارد به‌صورت متن ساده عبور داده می‌شوند.

چرخه حیات وضعیت

وضعیتکاربرد
پیش‌نویس پیش‌فرض در زمان ایجاد. برای خریداران نامرئی است؛ صفحه عمومی /changelog پیش‌نویس‌ها را فیلتر می‌کند.
منتشر شده قابل مشاهده برای خریداران. نسخه ورودی غیرقابل تغییر می‌شود — خریداران ممکن است به /changelog#v1.4.0 لینک داده باشند و تغییر بی‌صدا در آنچه که آن لنگر به آن اشاره می‌کند، تاریخچه را بازنویسی می‌کند. برای تغییر شماره نسخه، ابتدا ورودی را بایگانی کنید و یک ورودی جدید ایجاد کنید.
بایگانی شده از لیست عمومی پنهان می‌شود اما در جدول نگهداری می‌شود تا لینک‌های قدیمی خریداران همچنان کار کنند. به‌جای حذف سخت از این استفاده کنید.

خوراک JSON

/changelog.json همان ورودی‌های منتشر شده را به‌صورت JSON قابل خواندن توسط ماشین ارائه می‌دهد که به ۱۰۰ مورد آخر محدود شده است. خریداران می‌توانند آن را برای نصب ویجت‌های "چه خبر جدید" در داشبوردهای خود یا اشتراک از طریق یک محرک نظرسنجی Make/Zapier استخراج کنند.

{
  "brand": "Pitchbar",
  "entries": [
    {
      "version": "v1.4.0",
      "released_at": "2026-05-09T00:00:00+00:00",
      "title": "ویرایشگر بصری فرآیند خودکار + انواع مرحله فاز ۲",
      "body": "## Added\n- بوم React Flow\n…"
    }
  ]
}

بنر "چه خبر جدید"

اعضای فضای کاری تأییدشده، یک بنر باریک "چه خبر جدید در vX.Y.Z" را در بالای پوسته مدیریت می‌بینند هر زمان که یک ورودی منتشر شده جدیدتر از زمان users.last_changelog_seen_at کاربر باشد. رد کردن بنر، یک درخواست POST به /changelog/seen ارسال کرده و زمان را ثبت می‌کند؛ بنر تا زمانی که ورودی جدیدی منتشر نشود، مخفی می‌ماند. مدیران ارشد بنر را نمی‌بینند — آنها خودشان ورودی‌ها را می‌نویسند.

خط فرمان

php artisan changelog:add یک ورودی را از ترمینال اضافه می‌کند — برای ذخیره یادداشت‌های انتشار همراه با کدی که آنها را ارسال می‌کند، مفید است.

php artisan changelog:add v1.4.0 \
  --title="ویرایشگر بصری فرآیند خودکار" \
  --status=published \
  --body="$(cat <<'EOT'
## Added
- بوم React Flow در /app/workflows/{id}/canvas
- انواع مرحله شاخه / برچسب مشتری / وب‌هوک

## Fixed
- سرریز قهرمان صفحه اصلی موبایل در نمای‌های کمتر از ۴۸۰px
EOT
)"

نسبت به version idempotent است — اجرای مجدد با همان semver، ردیف موجود را دست نخورده باقی می‌گذارد. برای ویرایش یک ورودی منتشر شده، از فرم مدیریت در /admin/changelog/{id}/edit استفاده کنید.

ذخیره‌سازی

ورودی‌های تاریخچه تغییرات به‌صورت یک فایل JSON در storage/app/private/changelog-entries.json ذخیره می‌شوند — همان الگوی تخته کانبان داخلی. ذخیره‌سازی عمداً یک جدول پایگاه داده نیست، بنابراین php artisan migrate:fresh در زمان توسعه هرگز یادداشت‌های انتشار را پاک نمی‌کند.

در هر بار خواندن، فروشگاه به‌طور خودکار از فایل‌های مارک‌داون منبع در database/changelog-entries/v*.md تغذیه می‌شود. نسخه‌های جدید روی دیسک درج می‌شوند؛ ورودی‌های موجود هرگز بازنویسی نمی‌شوند (ویرایش‌های مدیریت در رابط کاربری، منبع حقیقت پس از راه‌اندازی هستند). این یک فرآیند خودکار "ارسال منبع در git، همگام‌سازی با دیسک در اولین درخواست" با صفر مرحله دستی ارائه می‌دهد — استقرار کد جدید، یک بار بازدید از /changelog، ورودی‌ها ظاهر می‌شوند.

شکل مارک‌داون منبع

---
version: v1.1.0
title: ویرایشگر بصری فرآیند خودکار، فرم جذب مشتری قابل تنظیم و بهبود ویجت
released_at: 2026-05-09
---

## قابلیت‌های جدید

**ویرایشگر بصری فرآیند خودکار.** گردش‌های چت شاخه‌ای را روی یک بوم
کشیدن و رها کردن بسازید...

## بهبودها

...

## رفع‌ها

...

سه فیلد frontmatter الزامی هستند: version، title و released_at. بدنه مارک‌داون ساده است که توسط صفحه عمومی تاریخچه تغییرات نمایش داده می‌شود.

غیرفعال کردن تغذیه اولیه

changelog.bootstrap_dir را در پیکربندی یا محیط خود روی یک رشته خالی تنظیم کنید. زمانی مفید است که یک تاریخچه تغییرات خالی می‌خواهید و می‌خواهید ورودی‌ها را از طریق رابط مدیریت از ابتدا ایجاد کنید.

زبان خود را انتخاب کنید