From 3975326103cbe47747b99411727c34e7337a0d55 Mon Sep 17 00:00:00 2001 From: mamad Date: Fri, 28 Aug 2026 19:52:24 +0330 Subject: [PATCH] docs: add release notes file and sync Telegram bot release notes broadcast --- RELEASE_NOTES.md | 34 ++++++++++++++++++++++++++++++++++ services/admin_bot.py | 26 ++++++++++++-------------- 2 files changed, 46 insertions(+), 14 deletions(-) create mode 100644 RELEASE_NOTES.md diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md new file mode 100644 index 0000000..b95cbca --- /dev/null +++ b/RELEASE_NOTES.md @@ -0,0 +1,34 @@ +📢 گزارش تغییرات و انتشارهای اخیر سیستم (Release Notes): + +🔹 کامیت ad8df0b: monitoring: streamline storage dashboard to single time series panel and filter real host mounts +• حذف پنل‌های اضافه و متمرکزسازی روی یک نمودار کامل ۲۴ ستونه برای روند زمانی فضای آزاد درایوها. +• فیلتر کردن متریک‌های قدیمی بدون برچسب و حذف خط قرمز خالی () در نمودار گرافانا. +• پایش انحصاری پارتیشن‌های واقعی و تاییدشده سیستم‌عامل سرور (/ روی /dev/sda1 با ~۱۹.۱۵ گیگابایت آزاد و /projects روی /dev/sda2 با ~۳۶.۸۵ گیگابایت آزاد). + +🔹 کامیت ad4c111: app: update service orchestration, environment configs, and documentation +• اتصال مسیر درایوهای واقعی هاست در داکر کامپوز (/home, /projects, /run/media). +• ارسال خودکار گزارش تغییرات و قابلیت‌های جدید به ادمین‌ها و کانال بررسی در زمان راه‌اندازی اولیه. + +🔹 کامیت 55c9c2a: metrics: add host multi-mount storage metrics, Prometheus exporter, and Grafana panels +• ثبت متریک‌های تفکیکی حافظه در پرومتئوس با برچسب‌های mountpoint و device. +• نمایش وضعیت خوانا (Human-Readable) دیسک در دستور /stats تلگرام و داشبورد گرافانا. + +🔹 کامیت cbd5247: admin_bot: add emergency pause, manual fallback configuration, and admin management UI +• دکمه‌های کنترل اضطراری 🛑 توقف اضطراری سیستم و ▶️ راه‌اندازی و ادامه سیستم در منوی اصلی. +• منوی تنظیم دستی ارائه‌دهنده پشتیبان (Fallback) برای هر سرویس هوش مصنوعی به صورت زنجیره‌ای. +• دستورات /changes و /notes برای مشاهده آخرین تغییرات. + +🔹 کامیت a7c1c37: core: add provider integrations, reasoning controls, and multimodal vision support +• ارسال تصاویر پست‌های ورودی به مدل‌های هوش مصنوعی (Vision Multimodal). +• درک و تحلیل متن درون عکس‌ها، نمودارها و تصاویر در بازنویسی با هوش مصنوعی. +• تنظیم عمق تفکر و استدلال (Reasoning Effort). + +🔹 کامیت 2137a11: services: update ingestion collector, paced publisher, and deduplication +• ارسال مستقیم پست‌های خام به کانال بررسی ادمین با دکمه‌های اقدام سریع بازنویسی. +• صف انتشار زمان‌بندی‌شده و هوشمند در ردیس (Paced Queue). +• حذف کدهای قدیمی و یکپارچه‌سازی فرآیند جمع‌آوری و انتشار. + +🔹 کامیت db2e726: db: extend schema for categories, channel profiles, and error logs +• ایجاد جداول دسته‌بندی کانال‌ها (Channel Categories) و ارائه‌دهندگان هوش مصنوعی. +• پشتیبانی از لحن (Personality)، فوتر سفارشی و پرامپت اختصاصی برای هر کانال مقصد. +• جدول لاگ خطاهای سیستم و قابلیت علامت‌گذاری به عنوان رفع‌شده. diff --git a/services/admin_bot.py b/services/admin_bot.py index 33fa738..31c53bf 100644 --- a/services/admin_bot.py +++ b/services/admin_bot.py @@ -1262,20 +1262,18 @@ class AdminBotService: await event.reply(help_text, parse_mode="html", buttons=menu) def get_latest_change_notes(self) -> str: - """Return the formatted change notes in Persian.""" - return ( - "📢 یادداشت تغییرات و قابلیت‌های جدید سیستم (Release Notes):\n\n" - "1️⃣ تنظیم دستی زنجیره پشتیبان هوش مصنوعی (Manual Fallback Chain):\n" - "• امکان تعیین ارائه‌دهنده پشتیبان اختصاصی برای تک‌تک سرویس‌دهنده‌ها در منوی هوش مصنوعی.\n" - "• هدایت دقیق زنجیره به ارائه‌دهنده مدنظر شما در صورت بروز خطا و ارسال اعلان لحظه‌ای به ادمین.\n\n" - "2️⃣ پشتیبانی کامل از تصاویر و مالتی‌مدال (Vision Multimodal):\n" - "• ارسال تصاویر پست‌های ورودی به مدل‌های هوش مصنوعی (AGY، OpenAI Vision، Gemini).\n" - "• درک و تحلیل متن درون عکس‌ها، نمودارها و اینفوگرافیک‌ها در بازنویسی.\n\n" - "3️⃣ پایش دیسک سیستم‌عامل سرور (Host OS Disk Metrics):\n" - "• نمایش ظرفیت واقعی، فضای مصرف‌شده و آزاد دیسک اصلی سرور در گرافانا و دستور /stats.\n\n" - "4️⃣ دکمه توقف و شروع اضطراری (Emergency Stop):\n" - "• دکمه توقف و ازسرگیری مستقیم از منوی اصلی، با فعال ماندن همیشگی پاسخگویی ربات به ادمین‌ها." - ) + """Return the formatted change notes in Persian from RELEASE_NOTES.md.""" + notes_file = os.path.join(os.path.dirname(os.path.dirname(__file__)), "RELEASE_NOTES.md") + if os.path.exists(notes_file): + try: + with open(notes_file, "r", encoding="utf-8") as f: + content = f.read().strip() + if content: + return content + except Exception as e: + logger.debug(f"Error reading RELEASE_NOTES.md: {e}") + + return "📢 گزارش تغییرات سیستم (Release Notes):\nسیستم با آخرین به‌روزرسانی‌ها در حال اجرا است." async def broadcast_change_notes(self): """Send latest change notes to admins and review channel."""