# گزارش فاز ۱ — نسخه ۲.۹.۴

## ساخته/اجرا شد
- `php -l` همه‌ی فایل‌ها: بدون خطا. `preflight.php`: سبز (نبودن `.env` فقط هشدار است). `i18n-audit --strict` و `--hardcode`: بدون خطا.
- ۶ تست خودکار: bonus-grant 41 · contract 48 · kyc-card 29 · tracking-card 72 · user-control-panel 71 · user-control 20 — همه سبز.
- بوت روی Telegram ساختگی: راه‌اندازی، مهاجرت‌ها و حلقه‌ی اصلی بدون Fatal. کلیک خودکار روی دکمه‌ها برای ادمین (۱۶۰ کلیک) و کاربران de/ru/zh/he/ko/ar (حدود ۶۰ کلیک هرکدام): صفر خطا در لاگ، صفر متن/دکمه‌ی فارسی برای کاربران غیرفارسی.
- بررسی ایستای وابستگی‌ها: هیچ `Class::method` حل‌نشده در بستار `traderpro.php`؛ کلیدهای مینی‌اپ همه تعریف و ترجمه‌شده.

## باگ‌های رفع‌شده
1. `update.sh` همیشه برمی‌گشت (چک فایل ناموجود `contract-data.php`).
2. پیام تعلیق/رفع تعلیق/اخطار ادمین←کاربر فقط فارسی/انگلیسی بود ← ۲۱ زبان.
3. صفحه‌ی تأیید هویت با کارت خاموش هنوز «کارت‌به‌کارت» پیشنهاد می‌داد.
4. نام صاحب کارت و بانک برای کاربران غیرفارسی فارسی نمایش داده می‌شد ← نسخه‌ی لاتین (ادمین با `فارسی | Latin` می‌دهد؛ پیش‌فرض‌ها فرهنگ‌لغت دارند).
5. پیام خطای `kyc_required` در api.php فارسی بود.
6. `preflight` هشدار اشتباه «کلید تعریف‌نشده»؛ تست‌ها بدون Lang/stub و schema کهنه‌ی `referrals`.

## آنچه با شما می‌ماند (نیاز به سرور واقعی)
- آزمون‌های ۱-۳ با تلگرام واقعی: ارسال/دریافت فایل Word قرارداد، دابل‌کلیک تأیید، تریگر append-only، کارمزد ۷۵$/لات و نگهداری ۲٫۲۵$ روی معامله‌ی واقعی، مهاجرت `fees_v290`/`holding_units_v290` روی کپی دیتابیس واقعی.
- مینی‌اپ در مرورگر/تلگرام (صفحه‌ی قفل قرارداد) — فقط کلیدهای ترجمه‌اش بررسی شد.
- تصمیم‌های بخش ۰ سند: نسخه‌ی قرارداد (۱.۰ یا ۱.۱)، سقف سود بونوس، بند «متن فارسی ملاک است» (فاز ۲).
- `.env`: زیپ عمداً بدون توکن است؛ روی سرور `update.sh` همان `.env` قبلی را نگه می‌دارد. نصب تازه: `.env.example`.
