Skip to content

Latest commit

 

History

History
47 lines (35 loc) · 4.41 KB

File metadata and controls

47 lines (35 loc) · 4.41 KB

Production Launch Status

آخرین به‌روزرسانی: 2026-09-07

هشدار عملیاتی فعلی

  • اجرای اصلی Daily روی GitHub Actions از 2026-09-06/07 در لبهٔ x.com با پاسخ Cloudflare 403 روبه‌رو است؛ این failure پیش از دریافت GraphQL و مستقل از اعتبار cookie مشاهده شده است.
  • Nightly Fanfic Digest در همین بازه سالم اجرا شده، بنابراین outage به runtime اصلی X محدود است و به‌عنوان COMPLETE یا پنجرهٔ خالی معتبر ثبت نمی‌شود.
  • نسخهٔ curl/browser-TLS کتابخانه نیز روی GitHub-hosted runner همان Cloudflare challenge را دریافت کرده است؛ بنابراین ارتقای dependency به‌تنهایی recovery محسوب نمی‌شود.
  • تا زمان اثبات یک egress سالم، preflight آفلاین باید اسکن X را fail-fast کند، cursor را جلو نبرد و همهٔ منابع را صریحاً failed/unproven نگه دارد. آزمایش میزبان جایگزین فقط به‌صورت ناشناس و بدون انتقال cookie/secret انجام می‌شود.

وضعیت

  • محیط اجرا: GitHub Actions؛ بدون Render و بدون نیاز به کارت بانکی
  • شاخهٔ production: main
  • اجرای دستیار: cron تقریباً هر پنج دقیقه، بدون self-dispatch loop و با یک quiet window کوتاه اطراف nightly
  • فیک شبانه: هر روز ساعت ۲۲:۰۰ تهران (18:30 UTC)
  • مدل اصلی ترجمه: gemini-3.5-flash-lite (با fallback محدود به gemini-3.1-flash-lite)
  • مقصد: فقط چت خصوصی review؛ autopublish عمومی وجود ندارد

شواهد واقعی production

کنترل‌های لانچ

  • workflowهای Daily و Fanfic از یک concurrency group استفاده می‌کنند و state مشترک را هم‌زمان نمی‌نویسند.
  • اجرای موفق فیک همان روز مانع auto-dispatch تکراری بعد از commitهای مستنداتی می‌شود.
  • Telegram hard dependency است؛ X و Gemini در preflight به‌صورت صریح سالم یا degraded گزارش می‌شوند.
  • خطای quota ترجمه یک deadline تصاعدی و پایدار می‌سازد؛ آپدیت خام ارسال/seen نمی‌شود و تا بازشدن سهمیه در صف می‌ماند.
  • هر ویدیوی X پیش از ارسال با ffprobe اعتبارسنجی و به MP4 سازگار با Telegram/iOS و faststart نهایی می‌شود؛ duration، ابعاد و thumbnail صریح همراه sendVideo فرستاده می‌شوند و کش ویدیوهای ناسالم قدیمی versioned شده است.
  • کلید recovery در log mask می‌شود. اگر secret اختصاصی وجود نداشته باشد، workflow یک کلید پایدار از bot token مشتق می‌کند.
  • ciphertext artifact روی cadence محدود و با retention سه‌روزه ذخیره می‌شود؛ plaintext state آپلود نمی‌شود.

چک انسانی کوتاه

پس از باز کردن لینک عمومی بات، این فرمان‌های غیرمخرب را بفرستید: /start، /status و /fic. این مرحله ظاهر منو و دسترسی حساب خودتان را تأیید می‌کند؛ هیچ تست خودکار نمی‌تواند جای لمس واقعی UI با اکانت مالک را بگیرد.

جزئیات rollback، چرخش کلید و recovery در audit/OPERATIONS_RUNBOOK.md است.