# نسخه نهایی — رفع مورد ۵ و پاکسازی حرفه‌ای

مکمل `REVIEW-1405.05.03-remaining.md`.

## ۱) مورد ۵ — محل صحیح باکس آپلود

کارفرما با اسکرین‌شات تأیید کرد: در «مرکز کنترل پروژه ← مدیریت اسناد پروژه»، متن راهنما کاربر را به «باکس‌های بالا» ارجاع می‌داد، در حالی که باکس‌های بارگذاری واقعی **پایین‌تر از مرکز کنترل** رندر می‌شوند (`App.tsx`: ابتدا `<ControlCenter/>` سپس `<div id="uploader-anchor">` و `<FileUploader/>`). یعنی متن راهنما با چیدمان واقعی صفحه در تضاد بود.

**فایل:** `src/legacy/components/dashboard/ControlCenter.tsx`

- متن اصلاح شد به: «اسناد را از باکس‌های بارگذاری در پایینِ همین صفحه آپلود کنید؛ سپس از این بخش می‌توانید آن‌ها را مدیریت کنید.»
- دکمهٔ عملیاتی «⬇︎ بارگذاری اسناد (باکس‌های پایین)» به سربرگ همین بخش اضافه شد که با `onScrollToUploader` کاربر را با اسکرول نرم به `#uploader-anchor` می‌برد. بنابراین کاربر دیگر لازم نیست محل باکس را حدس بزند.

## ۲) رفع تناقض راهنمای مکانی در صفحهٔ نتایج

**فایل:** `src/legacy/components/ResultsDisplay.tsx`

- متن قدیمی «اسناد … را از پنل سمت راست بارگذاری کنید» مربوط به چیدمان قدیمی سایدبار بود و پس از انتقال باکس‌ها منسوخ شده بود.
- اصلاح شد به: «اسناد، مدارک و مستندات خود را از باکس‌های بارگذاری، پایینِ مرکز کنترل پروژه، بارگذاری کنید.»

## ۳) پاکسازی سطح انترپرایز

- `ResultsDisplay.handleFeedback`: `console.log` تشخیصی حذف و به‌جای آن بازخورد کاربر در `localStorage` با کلید `cm.reportFeedback.v1` (حداکثر ۲۰۰ رکورد اخیر، همراه با زمان ISO) ذخیره می‌شود تا قابل بازبینی و استخراج باشد.
- بررسی امنیتی: هیچ کلید API یا راز درون‌کدی (hardcoded secret) در سورس یافت نشد.
- تنها `console.log` باقی‌مانده در `services/smsOtp.ts` است که یک stub عمدی و مستند (`TODO [RID-12]`) برای اتصال به سرویس پیامک است و رفتار تولیدی محسوب نمی‌شود.
- صحت نحوی تمام فایل‌های تغییریافته با TypeScript بررسی و تأیید شد (بدون خطای دستهٔ TS1xxx).

## وضعیت بخشنامه ۱۳۰۰

قواعد بخشنامه ۱۳۰۰ در این فایل‌ها پیاده و مستند است: `utils/financialDelay5090.ts`، `utils/knowledgeBase.ts`، `utils/classification.ts`، `services/geminiService.ts`، و در UI از طریق `delay/FinancialDelayTab.tsx` و `delay/FinancialDelay5090Tab.tsx` نمایش داده می‌شود. ایجاد یک تب کاملاً مستقل برای ۱۳۰۰ یک تصمیم محصولی است، نه نقص عملکردی — محاسبات آن هم‌اکنون در مسیر ۵۰۹۰ اعمال می‌شود.
