{"title":"آتی‌وام — تاریخچه تغییرات","home":"https://vam.ati.ir/changelog","timezone":"Asia/Tehran","calendar":"persian","updatedAt":"2026-07-09T04:15:00+03:30","releases":[{"id":"2026-07-09-v2-29-marketer-panel","version":"2.29.0","cycle":"P10 · Marketer Panel · CoreState v11","title":"پنل بازاریاب کامل — marketer-engine · CoreState v11 · TLS زنده","summary":"M1–M6: ثبت‌نام سه‌مسیره، قرارداد Emzano، پنج نوع معرفی، Rule Engine چهارسطحی، تسویه دستی/ماهانه، Mini-CRM و ۱۲ منوی agent روی vam.ati.ir.","at":"2026-07-09T04:15:00+03:30","atTehran":"پنجشنبه ۱۸ تیر ۱۴۰۵ — ۰۴:۱۵","tags":["feature","deploy","docs"],"items":["src/lib/engines/marketer-engine.ts — MarketerRegistry · planMarketerCommission · cascade · settlement","CoreState v11 — marketerRegistry · migrate از v10 · DEMO_AGENT → ریشهٔ فعال شبکه","پنل /dashboard/agent/* — home · referrals · crm · commission · settlement · network · reports · contracts · profile · notifications · support","ثبت‌نام عمومی /bayabuy/collaborate · لینک ?refm= · پنج introductionType","هوک رویداد: فعال‌سازی پذیرنده/تأمین‌کننده · اعتبار · اولین خرید · agentEarned چندبازاریابی","engine-tests: بلوک Marketer Panel · backend migrate v11 · health 2.29.0","TLS LIVE vam.ati.ir · docs/MARKETER-PANEL · DEVELOPMENT-PLAN-MARKETER-PANEL · DOMAIN-GLOSSARY §۹","صفحات کارفرما: /changelog · /presentation · /requirements · /demo به‌روز"],"url":"https://vam.ati.ir/changelog#2026-07-09-v2-29-marketer-panel"},{"id":"2026-07-08-v2-28-security-integrate","version":"2.28.0","cycle":"امنیت · یکپارچه‌سازی v2","title":"تثبیت امنیت — rate limit یکپارچه در همهٔ APIها","summary":"حذف Mapهای پراکنده · enforce.ts · یکپارچگی/شبانیک/فینوتک/امضانو/CR24/ADT · Retry-After یکسان · تست backend.","at":"2026-07-08T02:50:00+03:30","atTehran":"چهارشنبه ۱۷ تیر ۱۴۰۵ — ۰۲:۵۰","tags":["improvement","fix","deploy","docs"],"items":["src/lib/security/enforce.ts — enforceIpRateLimit · enforceRateLimit · rateLimitJson","یکپارچه‌سازی: shabanic · finnotech · emzano · cr24 → RATE_LIMITS","OTP · core/action · AI · ADT → پاسخ ۴۲۹ یکسان با Retry-After","adtRateLimitReject — ADT با هدر استاندارد","backend-tests: ۴ تست rate limit · SECURITY.md §۱.۳"],"url":"https://vam.ati.ir/changelog#2026-07-08-v2-28-security-integrate"},{"id":"2026-07-08-v2-27-security-hardening","version":"2.27.0","cycle":"امنیت · Security Headers v2","title":"تقویت استانداردهای امنیتی — CSP · rate limit · middleware","summary":"هدرهای متمرکز + CSP/COOP/CORP · rate limit یکپارچه OTP/core/AI · ضد brute-force OTP · nginx hardening · SECURITY.md.","at":"2026-07-08T02:35:00+03:30","atTehran":"چهارشنبه ۱۷ تیر ۱۴۰۵ — ۰۲:۳۵","tags":["improvement","fix","deploy","docs"],"items":["src/lib/security/headers.ts — منبع واحد هدرها + RATE_LIMITS","src/lib/security/rate-limit.ts — checkRateLimit · Retry-After · getClientIp","middleware: اعمال هدر روی همهٔ مسیرها · poweredByHeader: false","OTP: ۱۰ req/min IP · verify ۸/۱۵min per mobile","nginx-production-hardening.conf — CSP · server_tokens off · deny .git/.env","COOKIE_SECURE env · smoke scripts/security-smoke.mjs","docs/SECURITY.md §۱.۱–۱.۱۱ به‌روز"],"url":"https://vam.ati.ir/changelog#2026-07-08-v2-27-security-hardening"},{"id":"2026-07-08-v2-26-pwa-install","version":"2.26.0","cycle":"PWA · نصب وب‌اپ","title":"نصب PWA — ویندوز · macOS · لینوکس · اندروید · iOS","summary":"آیکن PNG · manifest کامل · beforeinstallprompt · صفحه /install · بنر نصب · docs/PWA.md.","at":"2026-07-08T02:22:00+03:30","atTehran":"چهارشنبه ۱۷ تیر ۱۴۰۵ — ۰۲:۲۲","tags":["feature","deploy","docs"],"items":["آیکن‌های PNG 72–512 + maskable — npm run pwa:icons","manifest: shortcuts · display_override · categories · apple-touch-icon","sw.js v3 — precache manifest و آیکن‌ها","InstallAppPrompt + InstallAppButton + useInstallPrompt","صفحه /install — راهنمای گام‌به‌گام هر OS به فارسی","Footer و منوی موبایل: لینک نصب وب‌اپ","docs/PWA.md + DESIGN-BRIEF"],"url":"https://vam.ati.ir/changelog#2026-07-08-v2-26-pwa-install"},{"id":"2026-07-08-v2-25-responsive-rtl","version":"2.25.0","cycle":"UX · ریسپانسیو موبایل/تبلت","title":"بهبود ریسپانسیو موبایل و تبلت — RTL فارسی","summary":"پایه safe-area و touch-target · Navbar تبلت · DashboardShell و AuthModal · TableScroll برای جداول · DESIGN-BRIEF §ریسپانسیو.","at":"2026-07-08T02:08:00+03:30","atTehran":"چهارشنبه ۱۷ تیر ۱۴۰۵ — ۰۲:۰۸","tags":["improvement","deploy","docs"],"items":["globals.css: overflow-x clip · safe-top/bottom · touch-target 44px · فونت 16px فیلدها در موبایل","viewportFit: cover · Container padding موبایل‌محور","Navbar: منوی موبایل فقط <md · ناوبری افقی فشرده md–lg · اهداف لمسی","DashboardShell: breadcrumb truncate · گرید پورتال 2×3 · padding و safe-bottom","AuthModal: bottom sheet · max-h 92dvh · safe-area","TableScroll + requirements/baseline/changelog","DESIGN-BRIEF.md — بخش ریسپانسیو موبایل/تبلت فارسی"],"url":"https://vam.ati.ir/changelog#2026-07-08-v2-25-responsive-rtl"},{"id":"2026-07-08-changelog-audit","version":"2.24.0","cycle":"Changelog · اصلاح زمان و نسخه","title":"اصلاح زمان‌بندی تهران و تفکیک نسخه Next/.NET","summary":"بازبینی timestamps برای monotonic بودن (بدون ساعت آینده)؛ برچسب .NET v3/v4 جدا از Next v2.x؛ اصلاح ورودی آینهٔ VM که اشتباهاً v3.0.0 بود.","at":"2026-07-08T01:52:00+03:30","atTehran":"چهارشنبه ۱۷ تیر ۱۴۰۵ — ۰۱:۵۲","tags":["fix","docs","improvement"],"items":["رفع `2026-07-08T23:30` و ساعات 02:00–04:00 همان روز که نسبت به انتشار واقعی جلوتر بودند","ترتیب v2.13/v2.14 در ۷ تیر — زمان‌بندی monotonic","`formatChangelogVersion` — نمایش `.NET v4.x` در برابر `v2.x` برای Next.js","ورودی آینهٔ VM: نسخهٔ صحیح Next `2.9.0` (نه 3.0.0)"],"url":"https://vam.ati.ir/changelog#2026-07-08-changelog-audit"},{"id":"2026-07-08-v2-24-phase-a-kickoff","version":"2.24.0","cycle":"فاز A v3 · Admin Operations","title":"Kickoff فاز A — schema رابطه‌ای + صف ops کامل از DB","summary":"Merchant/Supplier index · AdminOperationLog · GET /api/admin/operations · اتاق فرمان cross-user از Prisma.","at":"2026-07-08T01:48:00+03:30","atTehran":"چهارشنبه ۱۷ تیر ۱۴۰۵ — ۰۱:۴۸","tags":["feature","improvement","docs"],"items":["گام ۱ — Prisma: MerchantApplicationIndex · SupplierApplicationIndex · AdminOperationLog","گام ۲ — migration 20260708133000_relational_ops_kickoff","گام ۳ — syncRelationalIndexes: dual-write پذیرنده/supplier + وام/پروفایل","گام ۴ — GET /api/admin/operations: صف وام · KYC · پذیرنده · supplier + stats","گام ۵ — admin-action.ts: cross-user با elevate sysadmin + ممیزی AdminOperationLog","گام ۶ — AdminOperationsPanel: همه صف‌ها از DB · تأیید/رد cross-user","گام ۷ — backfill گسترش‌یافته · health relational v2.24.0","گام ۸ — BACKEND.md §۱۱ · baseline · changelog کارفرما"],"url":"https://vam.ati.ir/changelog#2026-07-08-v2-24-phase-a-kickoff"},{"id":"2026-07-08-baseline-operational-sync","version":"2.23.0","cycle":"Baseline کارفرما · OPERATIONAL","title":"به‌روزرسانی یکپارچه baseline — §۲ و §۷ + UI کارفرما","summary":"هم‌ترازی DEVELOPMENT-PLAN-OPERATIONAL با v2.22–2.23 · KPI 11/11 · product ~83٪ · پنل /requirements.","at":"2026-07-08T01:28:00+03:30","atTehran":"چهارشنبه ۱۷ تیر ۱۴۰۵ — ۰۱:۲۸","tags":["docs","improvement"],"items":["§۲ baseline: ۱۳ حوزه + جدول دارایی‌ها + انتشارات v2.20–2.23 + صفحات کارفرما","§۷ KPI: merchant/supplier 11/11 · npm test 166 · SDK 5/5 · LoanIndex prod · Go-Live ~58٪","NEWDEVDOC §۱۲ gap matrix هم‌تراز — حذف اعداد منسوخ ۵/۱۱ و ۰/۱۱","src/lib/requirements/product-baseline.ts — منبع واحد UI و مستندات","ProductBaselinePanel در /requirements — نمودار پیشرفت + جدول KPI","stack-comparison: testCount 166 · maturity 83٪ · ۴ migration","هم‌تراز v2.22 Merchant SDK و v2.23 relational در baseline"],"url":"https://vam.ati.ir/changelog#2026-07-08-baseline-operational-sync"},{"id":"2026-07-08-v2-23-relational-index","version":"2.23.0","cycle":"فاز A v3 · Relational Index","title":"ایندکس رابطه‌ای وام/پروفایل — صف admin از DB","summary":"گام‌به‌گام: schema Prisma · dual-write · backfill · API stats · health relational · دیپلوی VM.","at":"2026-07-08T01:12:00+03:30","atTehran":"چهارشنبه ۱۷ تیر ۱۴۰۵ — ۰۱:۱۲","tags":["feature","improvement","deploy","docs"],"items":["گام ۱ — Prisma: مدل‌های LoanIndex و ProfileReviewIndex + migration 20260707210148_relational_index_a1","گام ۲ — syncRelationalIndexes: همگام‌سازی خودکار پس از persistCoreForUser (dual-write سبک)","گام ۳ — admin-queue: اولویت صف عملیات از ایندکس رابطه‌ای؛ fallback به snapshot scan","گام ۴ — GET /api/admin/stats: آمار loanIndex · pending loans · profileReview · eventLog","گام ۵ — scripts/backfill-relational-index.mjs برای پر کردن ایندکس از CoreSnapshot موجود","گام ۶ — /api/health: نسخه 2.23.0 + بلوک relational (شمارش ایندکس‌ها)","گام ۷ — تست backend: upsert/hard-delete LoanIndex و ProfileReviewIndex","گام ۸ — مستندات baseline: DEVELOPMENT-PLAN-OPERATIONAL · HANDOFF · V3 فاز A","گام ۹ — دیپلوی production VM 185.116.112.4 + prisma migrate deploy + backfill"],"url":"https://vam.ati.ir/changelog#2026-07-08-v2-23-relational-index"},{"id":"2026-07-08-v2-22-merchant-sdk","version":"2.22.0","cycle":"EXT-4 · Merchant SDK","title":"Merchant SDK + PrestaShop scaffold + صفحات کارفرما","summary":"packages/ativam-merchant-sdk · integrations/prestashop · /presentation و /requirements به‌روز · تست golden HMAC.","at":"2026-07-08T00:58:00+03:30","atTehran":"چهارشنبه ۱۷ تیر ۱۴۰۵ — ۰۰:۵۸","tags":["feature","integration","docs","deploy"],"items":["AtiVamMerchantClient (create/verify/cancel) + golden.json","PrestaShop 8 module scaffold · Shopify app stub","PluginsEcosystemSection در /presentation · فی/معماری در /demo","docs/DEVELOPMENT-PLUGIN-FRAMEWORKS.md · npm run test:merchant-sdk"],"url":"https://vam.ati.ir/changelog#2026-07-08-v2-22-merchant-sdk"},{"id":"2026-07-08-v2-21-wordpress-plugin","version":"2.21.0","cycle":"WordPress · v1.1.0","title":"افزونه وردپرس BNPL — محاسبه‌گر · Handoff · WC gateway","summary":"افزونه کامل wordpress-plugin/ati-vam v1.1.0 — دانلود /ati-vam-wp.zip · مستند DEVELOPMENT-WORDPRESS.","at":"2026-07-08T00:46:00+03:30","atTehran":"چهارشنبه ۱۷ تیر ۱۴۰۵ — ۰۰:۴۶","tags":["feature","docs","deploy","integration"],"items":["WC gateway + callback HMAC + cron sync + cancel API","[ativam_calculator] · Handoff · CTA shortcodes · Gutenberg block","npm run pack:wordpress → public/ati-vam-wp.zip","docs/DEVELOPMENT-WORDPRESS.md · DEVELOPMENT-TOOLING.md"],"url":"https://vam.ati.ir/changelog#2026-07-08-v2-21-wordpress-plugin"},{"id":"2026-07-08-v2-20-waves-11-13","version":"2.20.0","cycle":"Wave 11–13 · financial + supplier + CI","title":"گزارش مالی admin · onboarding تأمین‌کننده · GitHub Actions","summary":"تکمیل Phase 4–6 PRD: aging/BS/P&L، supplier onboarding، CI workflow و E2E ops.","at":"2026-07-08T00:34:00+03:30","atTehran":"چهارشنبه ۱۷ تیر ۱۴۰۵ — ۰۰:۳۴","tags":["feature","deploy","integration"],"items":["finance-reports.ts — aging · balance sheet · income statement","AdminFinancePanel: گزارش‌های Phase 4","submitSupplierApplication · reviewSupplierApplication + UI/admin queue","user/supplier-request · GitHub Actions ci.yml · e2e/ops-pages.spec.ts"],"url":"https://vam.ati.ir/changelog#2026-07-08-v2-20-waves-11-13"},{"id":"2026-07-08-v2-19-wave10-integrations-panel","version":"2.19.0","cycle":"Wave 10 · ops","title":"پنل health یکپارچه‌سازی‌ها · integrations:health","summary":"نمایش زنده CR24/Emzano/SMS در /requirements و اسکریپت ops برای بررسی production.","at":"2026-07-08T00:22:00+03:30","atTehran":"چهارشنبه ۱۷ تیر ۱۴۰۵ — ۰۰:۲۲","tags":["improvement","integration","deploy"],"items":["IntegrationHealthPanel در صفحه requirements","npm run integrations:health — بررسی /api/health + cr24/emzano detail",".env.example: CR24_BRIDGE_URL · EMZANO_* · CR24_MODE","DemoGuide: سناریو onboarding پذیرنده (Emzano)"],"url":"https://vam.ati.ir/changelog#2026-07-08-v2-19-wave10-integrations-panel"},{"id":"2026-07-08-v2-18-wave9-integrations","version":"2.18.0","cycle":"Wave 9 · integrations","title":"Emzano onboarding پذیرنده · CR24 live bridge · .NET allowlist","summary":"امضای قرارداد پذیرنده via Emzano، پل async CR24_BRIDGE_URL، health emzano/cr24 در /api/health.","at":"2026-07-08T00:10:00+03:30","atTehran":"چهارشنبه ۱۷ تیر ۱۴۰۵ — ۰۰:۱۰","tags":["feature","improvement","deploy"],"items":["startMerchantApplicationEsign + Emzano OTP در merchant-request","cr24/live.ts — runCr24Async + CR24_BRIDGE_URL","health: emzano + cr24.hasBridge",".NET CoreActionAllowlist هم‌تراز Node (merchant + payment + CR24)"],"url":"https://vam.ati.ir/changelog#2026-07-08-v2-18-wave9-integrations"},{"id":"2026-07-08-v2-17-wave8-onboarding","version":"2.17.0","cycle":"Wave 8 · newdevdoc","title":"onboarding پذیرنده · LegalBankCs · CR24 health","summary":"فرم کامل درخواست پذیرندگی با flow تأیید/امضا، LegalBankCs در درخواست سازمانی، و وضعیت CR24 در health.","at":"2026-07-07T23:58:00+03:30","atTehran":"سه‌شنبه ۱۶ تیر ۱۴۰۵ — ۲۳:۵۸","tags":["feature","improvement","deploy"],"items":["P7 onboarding: submitMerchantApplication · review · signMerchantApplicationContract","UI: `/dashboard/user/merchant-request` + صف اتاق فرمان","P4/P9: LegalBankCs در submitOrgCreditRequest + hub","merchant profile: success/failed/cancel URL","health + `/api/integrations/cr24?op=health`: hasCredentials · liveBridge"],"url":"https://vam.ati.ir/changelog#2026-07-08-v2-17-wave8-onboarding"},{"id":"2026-07-07-v2-16-wave7-merchant","version":"2.16.0","cycle":"Wave 7 · newdevdoc","title":"تکمیل ۱۱ منوی پنل پذیرنده + تنظیمات supplier","summary":"شعب، گزارش، قرارداد، اعلان و پشتیبانی merchant — پوشش کامل P7؛ supplier settings (P8-11).","at":"2026-07-07T23:46:00+03:30","atTehran":"سه‌شنبه ۱۶ تیر ۱۴۰۵ — ۲۳:۴۶","tags":["feature","improvement","deploy"],"items":["P7-2/3/4: `/dashboard/merchant/branches|reports|contracts|notifications|support`","P8-11: `/dashboard/supplier/settings`","MERCHANT_MENU_IDS ۱۱ آیتم · SUPPLIER_MENU_IDS ۱۱ آیتم"],"url":"https://vam.ati.ir/changelog#2026-07-07-v2-16-wave7-merchant"},{"id":"2026-07-07-v2-15-wave6-supplier","version":"2.15.0","cycle":"Wave 6 · newdevdoc","title":"تکمیل ۱۰ منوی پنل تأمین‌کننده","summary":"گزارش، قرارداد، پروفایل، اعلان و پشتیبانی supplier — پوشش کامل منوی P8 به‌جز تنظیمات پیشرفته.","at":"2026-07-07T23:34:00+03:30","atTehran":"سه‌شنبه ۱۶ تیر ۱۴۰۵ — ۲۳:۳۴","tags":["feature","improvement","deploy"],"items":["P8-02: `/dashboard/supplier/reports|contracts|profile|notifications|support`","panel-registry: SUPPLIER_MENU_IDS ۱۰ آیتم","DemoGuide: highlights به‌روز"],"url":"https://vam.ati.ir/changelog#2026-07-07-v2-15-wave6-supplier"},{"id":"2026-07-07-v2-14-wave5","version":"2.14.0","cycle":"Wave 5 · newdevdoc","title":"پنل supplier ۵ منو · استعلام صیاد در submitCollateral","summary":"زیرصفحات تأمین‌کننده (صندوق، وام، تراکنش، برداشت) و اعتبارسنجی چک/سفته الکترونیک هنگام ثبت وثیقه.","at":"2026-07-07T23:22:00+03:30","atTehran":"سه‌شنبه ۱۶ تیر ۱۴۰۵ — ۲۳:۲۲","tags":["feature","improvement","deploy"],"items":["P8-01: `/dashboard/supplier/home|fund|loans|transactions|withdrawals` + panel-registry","P1-11: `submitCollateral` — sayad_inquiry ۱۶ رقم + سفته ≥۱۰ رقم","مستندات: gap matrix و baseline عملیاتی به‌روز"],"url":"https://vam.ati.ir/changelog#2026-07-07-v2-14-wave5"},{"id":"2026-07-07-v2-13-newdevdoc","version":"2.13.0","cycle":"newdevdoc · Wave 4","title":"جدول ضمانت A/B/C · تسویه زودهنگام · مسدودیت معوق","summary":"هم‌ترازی ScoringEngine با DOMAIN-SPEC §4.1، payEarlySettlement با تنزیل سود، و قفل درخواست اعتبار جدید هنگام قسط معوق.","at":"2026-07-07T23:10:00+03:30","atTehran":"سه‌شنبه ۱۶ تیر ۱۴۰۵ — ۲۳:۱۰","tags":["feature","improvement","deploy"],"items":["P3-01/P1-04: groupLimit · groupMinLimit · groupCollaterals per رتبه A/B/C","validateLoanRequest: بازه مبلغ انفرادی بر اساس رتبه","payEarlySettlement + UI تسویه کامل در پنل کاربر","مسدودیت requestLoan در صورت قسط overdue فعال","golden credit-group-samples.json (۳ case)","CreditRequestWizard: نمایش بازه مبلغ و اعتبارسنجی پیش از ثبت","پنل پذیرنده: `/dashboard/merchant/refunds`"],"url":"https://vam.ati.ir/changelog#2026-07-07-v2-13-newdevdoc"},{"id":"2026-07-07-v2-12-wave3","version":"2.12.0","cycle":"Wave 3","title":"KYC زنده CR24 · پرداخت جزئی قسط · Admin cross-user","summary":"grace ۵ روزه طرح‌های ماهانه، OTP اعتبارسنجی CR24، payPartialInstallment + کیف نقدی در بازپرداخت، صف عملیات admin از DB.","at":"2026-07-07T22:30:00+03:30","atTehran":"سه‌شنبه ۱۶ تیر ۱۴۰۵ — ۲۲:۳۰","tags":["feature","integration","improvement"],"items":["W3-06: graceDays=5 برای individual/organizational/insurance_purchase + golden penalty","W3-01/02: runCr24 یکپارچه، sendCr24ScoringOtp/verifyCr24ScoringOtp، mobileMatching در KYC","W3-04: payPartialInstallment + UI پنل کاربر + وضعیت partial","W3-05: payInstallment با split کیف نقدی + شاپرک","W3-07: GET /api/admin/operations/queue + POST action cross-user"],"url":"https://vam.ati.ir/changelog#2026-07-07-v2-12-wave3"},{"id":"2026-07-07-v2-11-newdevdoc-wave2","version":"2.11.0","cycle":"سیکل ۶ · تیر ۱۴۰۵ — newdevdoc Wave 2","title":"Wave 2: Payment API کامل، QR، Callback HMAC، پنل پذیرنده","summary":"Create/Verify/Pay/Cancel با Api-Key، توکن یکبارمصرف، Callback HMAC-SHA256 و پنل پذیرنده چندصفحه‌ای.","at":"2026-07-07T20:00:00+03:30","atTehran":"سه‌شنبه ۱۶ تیر ۱۴۰۵ — ۲۰:۰۰","tags":["feature","integration","deploy"],"items":["POST/GET /api/payments/* — create، verify، pay، cancel، [token]","HMAC-SHA256 callback + X-Merchant-Api-Key auth","merchantProfiles + cancelPaymentInvoice + atomic purchase rollback","پنل پذیرنده: home، invoices، orders، settlements، profile","PaymentQrCode (Nayuki MIT) + MERCHANT_MENU_IDS"],"url":"https://vam.ati.ir/changelog#2026-07-07-v2-11-newdevdoc-wave2"},{"id":"2026-07-07-v2-10-newdevdoc-wave1","version":"2.10.0","cycle":"سیکل ۶ · تیر ۱۴۰۵ — newdevdoc Wave 1","title":"Wave 1 newdevdoc: CR24، fee 170k، QR پرداخت، split خرید","summary":"هم‌ترازی با مستندات کارفرما: هزینه تشکیل پرونده ۱۷۰k، CR24 mock، schedule از فعال‌سازی، فاکتور QR و Payment API.","at":"2026-07-07T18:15:00+03:30","atTehran":"سه‌شنبه ۱۶ تیر ۱۴۰۵ — ۱۸:۱۵","tags":["feature","integration","deploy"],"items":["CASE_FORMATION_FEE_TOMAN = 170_000 (newdevdoc)","CR24 mock + /api/integrations/cr24 + hub credit_bureau","schedule rebuild at loan activation (first due next month)","purchase credit+cash split + spendForPurchase","createPaymentInvoice / payPaymentInvoice + /pay/[token]","POST /api/payments/create + verify — merchant API scaffold","پنل پذیرنده: ایجاد فاکتور QR"],"url":"https://vam.ati.ir/changelog#2026-07-07-v2-10-newdevdoc-wave1"},{"id":"2026-07-07-requirements-v4-0-1-deploy","version":"4.0.1","cycle":"سیکل ۵ · تیر ۱۴۰۵ — requirements + دیپلوی dual-stack","title":"به‌روزرسانی /requirements + دیپلوی زنده Next.js و .NET","summary":"صفحه requirements با v4.0.1، parity 5/5، ops 29/29 و compiled-only همسان شد؛ دیپلوی مجدد dual-stack روی VM.","at":"2026-07-07T11:30:00+03:30","atTehran":"سه‌شنبه ۱۶ تیر ۱۴۰۵ — ۱۱:۳۰","tags":["docs","deploy","improvement"],"items":["`stack-comparison.ts` — parityScenarios، opsChecks، compiledOnly، liveVmUrl","`RequirementsPage` — نمایش v4.0.1 و متریک‌های امنیتی","`push-nextjs-vm.sh` + `package-vm-nextjs.sh` — دیپلوی standalone بدون خاموش .NET","VM: `/requirements` 200 + dotnet health 4.0.1"],"url":"https://vam.ati.ir/changelog#2026-07-07-requirements-v4-0-1-deploy"},{"id":"2026-07-07-v4-0-1-security-lockdown","version":"4.0.1","cycle":"سیکل ۵ · تیر ۱۴۰۵ — v4.0.1 سخت‌سازی compiled-only","title":"v4.0.1: استقرار compiled-only + Swagger خاموش + بدون PDB","summary":"Publish Release بدون نماد دیباگ؛ Swagger در production و nginx مسدود؛ Next standalone؛ حذف src از دیسک VM پس از build.","at":"2026-07-07T11:30:00+03:30","atTehran":"سه‌شنبه ۱۶ تیر ۱۴۰۵ — ۱۱:۳۰","tags":["deploy","improvement","fix"],"items":["`Directory.Build.props` + publish-linux/windows — `DebugType=none`، حذف PDB","`deploy/verify-dotnet-artifact.sh` — gate قبل از دیپلوی","nginx: deny `.cs/.ts/.pdb` · `/dotnet/swagger` → 404","Next.js: `STANDALONE_DEPLOY=1` + `productionBrowserSourceMaps: false`","VM Next.js: اجرای `server.js` از `.next/standalone` + حذف `src/` پس از build","`ATIVAM_VM_SUDO_PASS` env — بدون رمز hardcoded در اسکریپت‌های commit‌شده","ops ۲۹/۲۹ · parity ۵/۵ · health `4.0.1`"],"url":"https://vam.ati.ir/changelog#2026-07-07-v4-0-1-security-lockdown"},{"id":"2026-07-07-cutover-v4-sync-import-deploy","version":"4.0.0","cycle":"سیکل ۵ · تیر ۱۴۰۵ — v4.0 Cutover parity سبز + sync/import .NET","title":"v4.0: پاریتی ۵/۵ سبز + API sync/import در .NET + دیپلوی","summary":"رفع adapt آرگومان در compare-engine-parity (ensureUser + updateValueRiskParameter). POST /api/core/sync و /import در .NET — قرارداد یکسان با Node.","at":"2026-07-07T10:30:00+03:30","atTehran":"سه‌شنبه ۱۶ تیر ۱۴۰۵ — ۱۰:۳۰","tags":["feature","deploy","fix"],"items":["`compare-engine-parity.mjs` — adapt mobile برای ensureUser و شکل Node برای updateValueRiskParameter","`POST /api/core/sync` + `POST /api/core/import` در CoreController (.NET)","health `parity.coreSyncImport: true` · نسخه 4.0.0","`GET /api/core/state` — فیلد `version:10` در خروجی .NET (سازگاری sync/import)","ops test: sync/import smoke + parity 5/5 از workstation","دیپلوی v4.0.0 روی `185.116.112.4`"],"url":"https://vam.ati.ir/changelog#2026-07-07-cutover-v4-sync-import-deploy"},{"id":"2026-07-07-cutover-phase9-deploy-v3-9","version":"3.9.0","cycle":"سیکل ۵ · تیر ۱۴۰۵ — فاز ۹ Cutover/Parity + دیپلوی v3.9","title":"فاز ۹ .NET: اعتبارسنجی پاریتی + ابزار cutover + پاریتا ۱۰۰٪ + دیپلوی v3.9","summary":"اسکریپت compare-engine-parity (۵ سناریو)، e2e-backend با --base، health با بلوک parity، snippet canary nginx. نقشه ۹ فاز تکمیل شد.","at":"2026-07-07T09:00:00+03:30","atTehran":"سه‌شنبه ۱۶ تیر ۱۴۰۵ — ۰۹:۰۰","tags":["feature","deploy","improvement"],"items":["`scripts/compare-engine-parity.mjs` — ۵ سناریو: basic-kyc · loan-request-cancel · org-iam · value-risk · cash-wallet","`e2e-backend.mjs --base URL` — تست remote بدون spawn سرور محلی","`GET /api/health` — بلوک `parity` (71/71 اکشن، ۹/۹ فاز، cutoverReady)","`deploy/dotnet-parity-test.sh` + `nginx-canary-snippet.conf` (canary 0% پیش‌فرض)","پاریتا backend: ۱۰۰٪ · ۱۲۶ تست C# · ops ۲۶/۲۶","دیپلوی v3.9.0 روی `185.116.112.4`","Canary production: تصمیم کارفرما + sticky session (runbook در فاز ۹ doc)"],"url":"https://vam.ati.ir/changelog#2026-07-07-cutover-phase9-deploy-v3-9"},{"id":"2026-07-07-ef-migrations-phase8-deploy-v3-8","version":"3.8.0","cycle":"سیکل ۵ · تیر ۱۴۰۵ — فاز ۸ EF Migrations + دیپلوی v3.8","title":"فاز ۸ .NET: EF Core Migrations رسمی + OTP DB + سخت‌سازی systemd + دیپلوی v3.8","summary":"EnsureCreated با Migrate() جایگزین شد؛ migrationهای InitialCreate و AddOtpTable؛ baseline امن برای DBهای legacy؛ OTP live در جدول Otp؛ health با migrations. باینری v3.8.0 روی VM.","at":"2026-07-07T08:00:00+03:30","atTehran":"سه‌شنبه ۱۶ تیر ۱۴۰۵ — ۰۸:۰۰","tags":["feature","deploy","improvement"],"items":["EF Migrations: `InitialCreate` (۴ جدول) + `AddOtpTable` — `DatabaseBootstrap.MigrateSafely()`","Baseline خودکار برای DBهای EnsureCreated قدیمی — بدون از‌دست‌رفتن داده","OTP live از in-memory به جدول `Otp` (SQLite) منتقل شد","`GET /api/health` — فیلد `migrations` (applied/pending/latest)","systemd: `ProtectSystem=strict` + `ProtectHome` + `LimitNOFILE`","۳ تست migration xUnit — مجموع ۱۲۶ تست C# سبز","ops test: ۲۶/۲۶ + بررسی migrations در health","دیپلوی v3.8.0 روی `185.116.112.4`","فاز بعدی: Cutover و parity validation (فاز ۹)"],"url":"https://vam.ati.ir/changelog#2026-07-07-ef-migrations-phase8-deploy-v3-8"},{"id":"2026-07-07-integrations-phase7-deploy-v3-7","version":"3.7.0","cycle":"سیکل ۵ · تیر ۱۴۰۵ — فاز ۷ یکپارچگی‌ها + دیپلوی v3.7","title":"فاز ۷ .NET: REST یکپارچگی‌ها (شبانیک/امضانو/فینوتک) + OTP live + دیپلوی v3.7","summary":"۴ endpoint REST پروکسی (mock/upstream fallback)، ConnectorHub circuit-breaker، health با connectors/sms، و OTP live با کاوه‌نگار. باینری v3.7.0 روی VM دیپلوی شد.","at":"2026-07-07T07:00:00+03:30","atTehran":"سه‌شنبه ۱۶ تیر ۱۴۰۵ — ۰۷:۰۰","tags":["feature","deploy","integration"],"items":["`POST /api/integrations/shabanic|emzano|finnotech` — mock دترمینیستیک + upstream fallback","`ConnectorHub` + `IntegrationRuntimeStore` — rate limit ۳۰/دقیقه/IP، mirror ConnectorHealth","`GET /api/health` — فیلدهای `connectors`، `otpMode`، `sms`","OTP live: `AtiVam:OtpMode=live` + `KavenegarSmsService` (fallback in-memory بدون کلید)","۱۲ تست xUnit (`IntegrationEngineTests`) — مجموع ۱۲۳ تست C# سبز","ops test: ۲۶/۲۶ (health + ۳ integration + جریان KYC/Value/Risk/IAM/loan)","دیپلوی v3.7.0 روی `185.116.112.4` — health `version:3.7.0`","فاز بعدی: EF Core Migrations (فاز ۸)"],"url":"https://vam.ati.ir/changelog#2026-07-07-integrations-phase7-deploy-v3-7"},{"id":"2026-07-07-value-risk-phase6-deploy-v3-6","version":"3.6.0","cycle":"سیکل ۵ · تیر ۱۴۰۵ — فاز ۶ Value/Risk + دیپلوی v3.6","title":"فاز ۶ .NET: اتاق فرمان Value/Risk (۳ اکشن) + پاریتی ۱۰۰٪ بک‌اند + دیپلوی v3.6","summary":"کاتالوگ ۲۹ پارامتر Value/Risk، توسعه طرح محصول و قطع کانکتور پورت شد؛ تمام ۷۱ اکشن allowlist در NativeEngineBridge فعال شد. باینری v3.6.0 روی VM دیپلوی شد.","at":"2026-07-07T06:00:00+03:30","atTehran":"سه‌شنبه ۱۶ تیر ۱۴۰۵ — ۰۶:۰۰","tags":["feature","deploy","improvement"],"items":["`ValueRiskEngine` + `ValueRiskCatalog` (۲۹ پارامتر) · `PlatformValueRiskBundle` در GlobalCoreState","۳ اکشن: updateValueRiskParameter · updateProductSchemeExtension · setConnectorDown","`ConnectorHealth` + `ConnectorId` برای circuit-breaker (پایه فاز ۷)","۱۳ تست xUnit (`ValueRiskEngineTests`) — مجموع ۱۱۱ تست C# سبز","پاریتی بک‌اند: ۷۱/۷۱ اکشن (٪۱۰۰) · dispatch کامل NativeEngineBridge","دیپلوی v3.6.0 روی `185.116.112.4` — health `version:3.6.0`","فاز بعدی: یکپارچگی‌های REST (فاز ۷)"],"url":"https://vam.ati.ir/changelog#2026-07-07-value-risk-phase6-deploy-v3-6"},{"id":"2026-07-07-guarantor-contract-phase5-deploy-v3-5","version":"3.5.0","cycle":"سیکل ۵ · تیر ۱۴۰۵ — فاز ۵ ضامن/قرارداد + دیپلوی v3.5","title":"فاز ۵ .NET: ضامن، امضای قرارداد امضانو، ارسال فیزیکی (۶ اکشن) + دیپلوی زنده v3.5","summary":"جریان کامل ضامن و قرارداد الکترونیک پورت شد؛ `completeContractSignature` با overload واقعی (contractId + EmzanoSession) جایگزین میان‌بر دمو شد. پاریتی بک‌اند به ۹۴٪ (۶۷/۷۱) رسید.","at":"2026-07-07T05:00:00+03:30","atTehran":"سه‌شنبه ۱۶ تیر ۱۴۰۵ — ۰۵:۰۰","tags":["feature","deploy","improvement"],"items":["مدل‌ها: `ContractModels.cs` — LoanContract، ContractSignature، EmzanoSession، GuarantorInvite، PhysicalShipment","۶ اکشن: inviteGuarantor · acceptGuarantorByCode · submitPhysicalShipment · confirmPhysicalDocsReceived · recordContractEsignSession · completeGuarantorContractSignature","`completeContractSignature` — مسیر واقعی امضانو + سازگاری میان‌بر تک‌آرگومان (loanId)","`CreditCommitteeApprove` اکنون قرارداد (`GenerateContract` + `ContractHash`) صادر می‌کند","۱۱ تست xUnit جدید (`GuarantorContractEngineTests`) — مجموع ۹۸ تست C# سبز","دیپلوی v3.5.0 روی `185.116.112.4` — health `version:3.5.0`","پاریتی: ۶۷/۷۱ اکشن (٪۹۴ بک‌اند) · فاز بعدی: Value/Risk (فاز ۶)"],"url":"https://vam.ati.ir/changelog#2026-07-07-guarantor-contract-phase5-deploy-v3-5"},{"id":"2026-07-07-kyc-advanced-phase4-deploy-v3-4","version":"3.4.0","cycle":"سیکل ۵ · تیر ۱۴۰۵ — فاز ۴ KYC پیشرفته + دیپلوی v3.4","title":"فاز ۴ .NET: KYC پیشرفته (۷ اکشن) + دیپلوی زنده v3.4","summary":"پروفایل کاربر، تأیید/رد کارشناسی، پذیرش شرایط طرح و پرداخت هزینه‌های اعتبارسنجی/تشکیل پرونده پورت شد؛ پاریتی بک‌اند به ۸۷٪ (۶۲/۷۱) رسید و باینری v3.4.0 روی VM دیپلوی شد.","at":"2026-07-07T04:00:00+03:30","atTehran":"سه‌شنبه ۱۶ تیر ۱۴۰۵ — ۰۴:۰۰","tags":["feature","deploy","improvement"],"items":["فیلدهای `UserProfile` گسترش یافت — ثنا، معرف‌ها، وضعیت بررسی، `CreditApplication`","۷ اکشن: submitUserProfile · approveUserProfile · rejectUserProfile · acceptPlanTerms · payScoringFee · payCaseFormationFee · payCaseFormationFeePreLoan","`RunAssessment` اکنون `ScoringFeePaid` را وقتی `CreditApplication` وجود دارد چک می‌کند","۱۱ تست xUnit جدید (`KycAdvancedEngineTests`) — مجموع ۸۷ تست C# سبز","دیپلوی v3.4.0 روی `185.116.112.4` — health `version:3.4.0`","پاریتی: ۶۲/۷۱ اکشن (٪۸۷ بک‌اند) · فاز بعدی: ضامن/قرارداد (فاز ۵)"],"url":"https://vam.ati.ir/changelog#2026-07-07-kyc-advanced-phase4-deploy-v3-4"},{"id":"2026-07-07-org-iam-phase3-deploy-v3-3","version":"3.3.0","cycle":"سیکل ۵ · تیر ۱۴۰۵ — فاز ۳ IAM سازمانی + دیپلوی v3.3","title":"فاز ۳ .NET: IAM سازمانی کامل (۱۷ اکشن) + دیپلوی زنده v3.3","summary":"زیرسیستم IAM سازمانی (`OrgIamEngine` + `Organization` سراسری) با ۱۷ اکشن پورت شد؛ پاریتی بک‌اند به ۷۷٪ (۵۵/۷۱) رسید و باینری v3.3.0 روی VM دیپلوی شد.","at":"2026-07-07T03:00:00+03:30","atTehran":"سه‌شنبه ۱۶ تیر ۱۴۰۵ — ۰۳:۰۰","tags":["feature","deploy","improvement"],"items":["موتور `OrgIamEngine` — نقش‌ها، مجوزها، پرسنل، پالیسی، seed سازمان دمو","مدل‌ها: `OrgIamModels.cs` — Organization، Staff، Policy، LegalProfile، Signatory، CreditRequest","۱۷ اکشن: setOrgActor · addOrgStaff · updateOrgStaff · linkStaffToCurrentUser · updateOrgPolicy · updateOrgSettings · updateLegalEntityProfile · updateOrgLegalProfile · addOrgSignatory · verifyOrgSignatoryOtp · submitOrgCreditRequest · approveOrgCreditRequest · inviteOrgEmployee · bulkInviteOrgEmployees · verifyOrgStaffOtpShahkar · setOrgInstallmentPayer · setOrgPerEmployeeCap","`GlobalCoreState.Organization` + `OrgCreditRequests` سراسری · `NativeCoreState.OrgActor` per-session","۸ تست xUnit جدید (`OrgIamEngineTests`) — مجموع ۷۶ تست C# سبز","دیپلوی v3.3.0 روی `185.116.112.4` — health `version:3.3.0`","پاریتی: ۵۵/۷۱ اکشن (٪۷۷ بک‌اند) · فاز بعدی: KYC پیشرفته (فاز ۴)"],"url":"https://vam.ati.ir/changelog#2026-07-07-org-iam-phase3-deploy-v3-3"},{"id":"2026-07-07-settlement-phase2-deploy-v3-2","version":"3.2.0","cycle":"سیکل ۵ · تیر ۱۴۰۵ — فاز ۲ تسویه + دیپلوی v3.2","title":"فاز ۲ .NET: تسویهٔ پذیرنده/پورسانت/استرداد + دیپلوی زنده v3.2 روی VM","summary":"چهار اکشن تسویه و دفتر کل سراسری (`settleMerchant`، `reverseEntry`، `payoutAgent`، `refundPurchase`) پورت شد؛ باینری v3.2.0 روی VM-AtiVaam (از مسیر h91) دیپلوی و health تأیید شد. پاریتی بک‌اند به ۵۴٪ رسید.","at":"2026-07-07T02:40:00+03:30","atTehran":"سه‌شنبه ۱۶ تیر ۱۴۰۵ — ۰۲:۴۰","tags":["feature","deploy","improvement"],"items":["فاز ۲: `JournalEntry.Refs`، `GlobalCoreState.Purchases`، `Merchants.cs` (۴ پذیرنده + بازاریاب دمو)","اکشن‌ها: `settleMerchant` · `reverseEntry` · `payoutAgent` · `refundPurchase` — dispatch در NativeEngineBridge","`CoreEngine.Purchase` اکنون `PurchaseTx` سراسری ثبت می‌کند (برای تسویه/مرجوعی)","۸ تست xUnit جدید (`SettlementEngineTests`) — مجموع ۶۸ تست C# سبز","دیپلوی v3.2.0 روی `185.116.112.4` via jump `h91` — systemd `ativam-dotnet` restart · nginx dual-stack · health ۲۰۰","آدرس‌ها: http://185.116.112.4/dotnet/api/health · http://185.116.112.4/dotnet/swagger","پاریتی: ۳۸/۷۱ اکشن (٪۵۴ بک‌اند) · فاز بعدی: Org IAM (فاز ۳)"],"url":"https://vam.ati.ir/changelog#2026-07-07-settlement-phase2-deploy-v3-2"},{"id":"2026-07-07-cash-wallet-phase1-v3-1","version":"3.1.0","cycle":"سیکل ۵ · تیر ۱۴۰۵ — فاز ۱ کیف ریالی .NET","title":"فاز ۱ مهاجرت .NET: کیف پول ریالی (Cash Wallet Engine) — ۷ اکشن + ۱۳ تست golden","summary":"موتور کیف پول ریالی به‌طور کامل به C# پورت شد: زنجیره حسابداری متمرکز (FNV-1a بیت‌به‌بیت با Node)، شارژ کارت/شاپرک، برداشت شبا/کارت با کارمزد، و ۷ اکشن allowlist در NativeEngineBridge. پاریتی بک‌اند از ۳۸٪ به ۴۸٪ رسید.","at":"2026-07-07T02:10:00+03:30","atTehran":"سه‌شنبه ۱۶ تیر ۱۴۰۵ — ۰۲:۱۰","tags":["feature","improvement"],"items":["فایل‌های جدید: `CentralizedChain.cs`، `CashWalletEngine.cs`، `CashWalletModels.cs`، `IranBanking.cs`","اکشن‌ها: `ensureCashWallet` · `linkCashCard` · `linkCashSheba` · `depositCashRial` · `requestCashWithdraw` · `completeCashWithdraw` · `failCashWithdraw`","بردار طلایی: `docs/golden/cash-wallet-samples.json` + اسکریپت `scripts/gen-cash-wallet-golden.mjs`","۱۳ تست xUnit جدید (`CashWalletEngineTests`) — هش genesis و deposit بیت‌به‌بیت با Node تأیید شد","۶۰ تست C# سبز (از ۴۷) · پوشش allowlist ۳۴/۷۱ (٪۴۸) · `CashWallet` در `NativeCoreState` + `MergeState`","مرجع: `docs/migration/dotnet-100/01-CASH-WALLET.md` — فاز ۱ تکمیل ✅"],"url":"https://vam.ati.ir/changelog#2026-07-07-cash-wallet-phase1-v3-1"},{"id":"2026-07-07-dotnet-100-docs-v3-0-1","version":"3.0.1","cycle":"سیکل ۵ · تیر ۱۴۰۵ — نقشهٔ ۱۰۰٪ .NET + به‌روزرسانی ارائه","title":"نقشهٔ اجرایی ۹ فاز تا پاریتای کامل .NET + به‌روزرسانی صفحات presentation/requirements","summary":"مستندات تفصیلی مهاجرت تا ۱۰۰٪ پاریتای .NET (۹ فاز موازی/گام‌به‌گام برای Cursor Auto Ultra) تکمیل شد؛ درصد پیشرفت واقعی (~۲۸٪ کل / ~۳۸٪ بک‌اند) در سند عملیاتی و صفحات داخلی ارائه/نیازمندی‌ها منعکس گردید.","at":"2026-07-07T01:45:00+03:30","atTehran":"سه‌شنبه ۱۶ تیر ۱۴۰۵ — ۰۱:۴۵","tags":["docs","improvement"],"items":["فهرست اصلی `docs/migration/dotnet-100/00-INDEX.md` — ۹ فاز از کیف ریالی تا cutover؛ ~۴۴ اکشن باقی‌مانده · تخمین ~۱۶ هفته تک‌عامل / ~۴–۵ هفته موازی","فازهای ۰۱–۰۹: Cash Wallet، Settlement، Org IAM (۱۷ اکشن)، KYC پیشرفته، ضامن/قرارداد، Value/Risk، یکپارچگی‌ها، EF Migrations، اعتبارسنجی پاریتی — هر کدام با مرجع TypeScript، مدل C#، الگوریتم، dispatch، تست و معیار پذیرش","سند `docs/DOTNET-PARITY-AND-PRODUCTION-LOCKDOWN.md` — فرمول شفاف پاریتی، جدول ۲۷/۷۱ اکشن، نقشه قفل سورس روی سرور بهره‌برداری، چک‌لیست ممیزی ماهانه","به‌روزرسانی `docs/INDEX.md`، `docs/migration/CHECKLIST.md`، `docs/HANDOFF.md` با لینک‌های نقشهٔ جدید","صفحهٔ `/requirements`: اعداد واقعی (۱۳۰ تست Node + ۴۷ C# = ۱۷۷ مجموع) · بلوغ .NET ۳۸٪ · پوشش ۲۷/۷۱ اکشن","صفحهٔ `/presentation`: آمار hero (۳۹٬۶۶۳+ خط · ۱۷۷ تست · ۲۳ نسخه) · بخش پاریتی .NET · تایم‌لاین از changelog v3.0.1","فایل `deploy/nginx-production-hardening.conf` — مسدودسازی `src/`، `.git`، `.env` روی production"],"url":"https://vam.ati.ir/changelog#2026-07-07-dotnet-100-docs-v3-0-1"},{"id":"2026-07-07-vm-mirror-dotnet-v3-0","version":"2.9.0","cycle":"سیکل ۵ · تیر ۱۴۰۵ — آینهٔ production Next v2.9 + تکمیل .NET","title":"آینهٔ کامل ativam.freegpt.ir روی VM + تکمیل موتور .NET (گردش کار پرونده و لغو)","summary":"سرور VM-AtiVaam (185.116.112.4) اکنون آینهٔ کامل Next.js v2.9.0 است — همان لندینگ، داشبوردها و API Node/Prisma. موتور native .NET با ۱۲ اکشن جدید (گردش کار ۵مرحله‌ای پرونده، لغو پرونده، انصراف KYC) تکمیل شد و به‌صورت dual-stack در کنار Next.js روی همان IP در دسترس است.","at":"2026-07-07T00:15:00+03:30","atTehran":"سه‌شنبه ۱۶ تیر ۱۴۰۵ — ۰۰:۱۵","tags":["deploy","feature","improvement","docs"],"items":["دیپلوی آینهٔ کامل Next.js v2.9.0 روی VM-AtiVaam — Docker `ativam` (node:22-alpine) + nginx پورت ۸۰ → :3000؛ ۸۴ route بیلد شد؛ Prisma migrate (۳ مهاجرت)؛ OTP دمو `1234`","تأیید عملیاتی: `/`, `/demo`, `/changelog`, `/requirements`, `/presentation`, `/dashboard/user` همه ۲۰۰؛ health → `version:2.9.0`؛ جریان OTP + core/action سبز","معماری dual-stack: UI/API اصلی از Next.js (`/api/*`) · API مستقل .NET از `/dotnet/api/*` و Swagger از `/dotnet/swagger`","تکمیل .NET native: `CaseCancellation` (هم‌تراز case-cancellation.ts) — `cancelLoan`/`cancelLoanByUser`/`cancelLoanByAdmin`/`cancelLoanByOrgAdmin`، `withdrawKycApplication`","گردش کار پرونده: `startLoanReview` → `approveLoanDocuments` → `rejectLoanDocument` → `creditCommitteeApprove` → `completeContractSignature` + `LoanCaseStage` روی مدل Loan","اکشن `creditPendingReferralRewards` و `rejectLoan` — پوشش allowlist اکنون ۲۷ از ۷۸ اکشن (٪۳۵)؛ ۴۷ تست C# سبز (از ۴۴)","اسکریپت‌های دیپلوی: `deploy/full-deploy-vm-nextjs.sh`، `deploy/patch-dotnet-vm.sh`، `deploy/nginx-ativam-dual.conf`، `deploy/mirror-ops-test.sh`","سند عملیاتی: `docs/DOTNET-PARITY-AND-PRODUCTION-LOCKDOWN.md` — پاریتای ~۲۸٪ کل / ~۳۸٪ بک‌اند · نقشه رسیدن به ۱۰۰٪ · قفل سورس روی سرور بهره‌برداری","تفاوت آینه با production: OTP=demo (نه live کاوه‌نگار)، بدون CDN/HTTPS، AI غیرفعال — برای parity کامل env production لازم است"],"url":"https://vam.ati.ir/changelog#2026-07-07-vm-mirror-dotnet-v3-0"},{"id":"2026-07-06-dotnet-referral-org-arch-v2-9","version":"2.9.0","cycle":"سیکل ۴ · تیر ۱۴۰۵ — تکمیل شکاف‌های v2.4.0","title":"شبکهٔ دعوت و صندوق سازمانی در .NET، معماری Tenant/Global، دیاگرام‌های ارائه","summary":"موتور شبکهٔ دعوت (Referral) و صندوق سازمانی/تأمین‌کننده مالی (Org/Provider) به‌طور کامل به C# پورت شد و در حین توسعه یک نقص معماری واقعی (اشتراک‌گذاری نادرست دادهٔ سراسری بین کاربران) کشف و با جداسازی صحیح Tenant/Global state رفع گردید — با تست end-to-end چندکاربره تأیید شد. صفحات /requirements و /presentation با دیاگرام معماری، تایم‌لاین توسعه و شبکهٔ استانداردها/ابزارها تکمیل شدند.","at":"2026-07-06T09:10:00+03:30","atTehran":"دوشنبه ۱۵ تیر ۱۴۰۵ — ۰۹:۱۰","tags":["feature","improvement","fix","docs"],"items":["پورت کامل `ReferralEngine` به C# (`AtiVam.Domain/Services/ReferralEngine.cs`): کد دعوت قطعی (deterministic hash)، زنجیرهٔ ۳سطحی بالاسری، پاداش ثبت‌نام/خرید، idempotency — با ۶ تست جدید منطبق بر `docs/golden/referral-samples.json`","پورت `OrgProviderEngine` (صندوق سازمانی + تخصیص تأمین‌کننده مالی با Load Balancing بر اساس بیشترین ظرفیت آزاد) — تست‌های exposure/pickProvider/orgFundAvailable","کشف و رفع یک نقص معماری واقعی حین توسعه: دفتر کل، رجیستری دعوت و تأمین‌کنندگان به‌اشتباه per-user ذخیره می‌شدند (کد دعوت کاربر A برای کاربر B قابل مشاهده نبود) — رفع با معماری دوسطحی جدید `NativeCoreState` (per-tenant، جدول `CoreSnapshot`) + `GlobalCoreState` (سراسری/singleton، جدول جدید `GlobalState`) — دقیقاً مطابق جداسازی «دفاتر مؤسسه» از «حساب مشتری» در بانکداری واقعی","اکشن‌های جدید در `CoreEngine`: `applyReferralCode`، `setOrgFundCap`، `joinOrganization`، `setProviderCap` — همراه با اعمال خودکار پاداش شبکهٔ دعوت پس از تأیید KYC و پس از هر خرید اعتباری","`approveLoan` اکنون تأمین‌کنندهٔ مالی واقعی را با ظرفیت آزاد کافی تخصیص می‌دهد و رکورد `LoanFunding` ثبت می‌کند (نه فقط یک ورودی دفتر کل عمومی)؛ طرح سازمانی اکنون عضویت صندوق و سقف صندوق را واقعاً بررسی می‌کند","تست end-to-end زندهٔ HTTP دو-کاربره روی موتور native: کاربر الف کد دعوت صادر می‌کند، کاربر ب آن را اعمال و KYC می‌کند (۳ پاداش ثبت‌نام)، صندوق سازمانی می‌سازد، وام سازمانی می‌گیرد (تخصیص خودکار به `prov_melal`)، خرید می‌کند (۲ پاداش خرید بیشتر) — مجموع ۵ پاداش صحیح و مشترک بین هر دو کاربر","۴۴ تست C# سبز (از ۳۸)؛ کدبیس .NET به ۳۵ فایل/۲٬۴۹۲ خط رسید (از ۲۹ فایل/۱٬۸۴۳ خط)؛ پوشش اکشن‌های allowlist اکنون ۱۵ از ۷۱ (٪۲۱) — شامل چرخهٔ کامل «ورود تا خرید اعتباری» با شبکهٔ دعوت و تخصیص تأمین‌کننده","دیاگرام معماری کامل سامانه (`ArchitectureDiagram`) در `/requirements` — لایه‌های کلاینت/CDN/Next.js/.NET/دیتابیس/یکپارچه‌سازی‌ها با نمایش بردارهای طلایی به‌عنوان پل تضمین صحت بین دو موتور","تایم‌لاین بصری توسعهٔ نسخه‌ها (`DevelopmentTimeline`) در `/presentation` — مستقیماً از تاریخچهٔ واقعی changelog، بدون هیچ دادهٔ ساختگی","شبکهٔ استانداردها/ابزارها/مخازن (`TechStandardsGrid`) در `/presentation` — دسته‌بندی فرانت‌اند، بک‌اند Node، بک‌اند .NET، کیفیت/تست، استانداردها، DevOps، دیتابیس، مخزن","به‌روزرسانی `dotnet/README.md`، `dotnet/DEPLOY.md`، `docs/MIGRATION-DOTNET.md`، `docs/migration/CHECKLIST.md` با آمار و معماری واقعی جدید"],"url":"https://vam.ati.ir/changelog#2026-07-06-dotnet-referral-org-arch-v2-9"},{"id":"2026-07-06-requirements-presentation-rbac-v2-8","version":"2.8.0","cycle":"سیکل ۴ · تیر ۱۴۰۵ — تکمیل شکاف‌های v2.4.0","title":"صفحات نیازمندی/ارائه، خروج از حالت دموی عمومی، حجم دادهٔ حداکثری","summary":"صفحهٔ داخلی مقایسهٔ فنی سه استک استقرار (/requirements)، صفحهٔ ارائهٔ استانداردهای توسعه به کارفرما (/presentation) با معرفی ابزار ADT، خروج پنل‌ها از حالت دموی عمومی (دسترسی دقیقاً بر اساس نقش حساب)، و افزایش حجم دادهٔ نمونه/اعلانات برای تجربه‌ای نزدیک‌تر به نسخهٔ نهایی عملیاتی.","at":"2026-07-06T06:45:00+03:30","atTehran":"دوشنبه ۱۵ تیر ۱۴۰۵ — ۰۶:۴۵","tags":["feature","docs","improvement"],"items":["صفحهٔ داخلی `/requirements` — مقایسهٔ دقیق و مبتنی بر اندازه‌گیری واقعی سه استک (لینوکسی Next.js/Node، .NET روی لینوکس، .NET روی ویندوز): حجم کد، تعداد فایل/کتابخانه، حجم build/publish، استانداردها، بلوغ، پیش‌نیازهای سخت‌افزاری/نرم‌افزاری حداقلی/مناسب/حداکثری","قالب استاندارد JSON برای اعلام نیازمندی‌های API — بخش اختصاصی در `/requirements`","صفحهٔ داخلی `/presentation` — طراحی اختصاصی با انیمیشن‌های پیشرفته: استاندارد پیشنهادی مستندسازی (md/xlsx/json/csv در برابر PDF)، معرفی و دعوت به استفاده از ابزار گزارش اشکال ADT، تعهد تیم الفبا به کیفیت صددرصدی مستقل از قالب ارتباط، اهمیت مستندسازی به‌موقع برای توسعهٔ چابک، و یادآوری محترمانهٔ اهمیت نظم پرداخت برای برنامه‌ریزی منابع تیم","بر اساس تشخیص و تحلیل تیم توسعه بر اساس نیاز نزدیک‌شدن به نسخهٔ نهایی اشاره‌شده توسط نماینده کارفرما — خروج از «حالت دموی عمومی»: دسترسی پنل‌ها (`resolveAccountAccess`) از این پس دقیقاً بر اساس نقش حساب واردشده است؛ سوییچر آزاد بین همهٔ پورتال‌ها و نقش‌های ستادی حذف شد","`CommandRoleBar` به نوار نمایش فقط‌خواندنی نقش تبدیل شد (بدون امکان تعویض آزاد نقش)","افزایش حجم دادهٔ نمونه در `seedDemoData`: ۶ خرید اعتباری (از ۳)، ۶ کارمند سازمانی (از ۳)، تراکنش‌های کیف ریالی بیشتر (شامل سناریوی خطا)، گذر زمان تدریجی با پرداخت قسط اول/دوم و معوق‌ماندن عمدی قسط سوم — ۷۶ رویداد/اعلان (از ۶۸)","به‌روزرسانی `docs/DEMO-ACCOUNTS.md` با نکات RBAC جدید و حجم دادهٔ به‌روزشده"],"url":"https://vam.ati.ir/changelog#2026-07-06-requirements-presentation-rbac-v2-8"},{"id":"2026-07-06-dotnet-standalone-v2-7","version":"2.7.0","cycle":"سیکل ۴ · تیر ۱۴۰۵ — تکمیل شکاف‌های v2.4.0","title":"نسخهٔ مستقل .NET (ویندوز + لینوکس) و پاکسازی ناوبری","summary":"موتور دامنهٔ اصلی (اقساط، امتیازدهی، جریمه، دفتر کل) به‌طور کامل به C# پورت و با بردارهای طلایی تأیید شد؛ API .NET اکنون کاملاً مستقل از Node.js روی هر دو پلتفرم Windows و Linux به‌صورت self-contained قابل publish و اجراست. لینک «تغییرات» از ناوبری اصلی حذف و مانند /demo به لینک فرعی مستقیم تبدیل شد.","at":"2026-07-06T04:20:00+03:30","atTehran":"دوشنبه ۱۵ تیر ۱۴۰۵ — ۰۴:۲۰","tags":["feature","improvement","deploy","docs"],"items":["پورت کامل موتورهای دامنه به C# در `AtiVam.Domain`: `ScheduleBuilder`، `ScoringEngine`، `PenaltyEngine`، `LedgerEngine` — عیناً منطبق با TypeScript","بازتولید و تطبیق بردارهای طلایی (`docs/golden/*.json`) با پیوست ativam فعلی + ۳۸ تست جدید C# سبز (`dotnet test --filter Category=Golden`)","موتور native مستقل `CoreEngine` (بدون Node): ورود، KYC، اعتبارسنجی، درخواست وام، مدارک/تضامین، فعال‌سازی، پرداخت قسط، خرید اعتباری — تست زندهٔ end-to-end با HTTP","`NativeEngineBridge` جایگزین پیش‌فرض `NodeEngineBridge` — `Engine:Mode=native` (config-switchable، پل Node هنوز برای اکشن‌های پورت‌نشده در دسترس است)","دیتابیس SQLite با `EnsureCreated()` خودکار — بدون نیاز به dotnet-ef یا Prisma برای بوت‌استرپ مستقل","Publish مستقل self-contained: `dotnet/publish-windows.ps1` (win-x64 + web.config برای IIS) و `dotnet/publish-linux.sh` (linux-x64 + systemd) — هر دو تست و اجرا شدند","`dotnet/Dockerfile` چندمرحله‌ای (Alpine) برای دیپلوی کانتینری لینوکس","سند جامع `dotnet/DEPLOY.md` — راهنمای کامل دیپلوی هر دو پلتفرم، متغیرهای محیطی، پذیرش","بر اساس تشخیص و تحلیل تیم توسعه بر اساس نیاز دیپلوی مستقل اشاره‌شده توسط نماینده کارفرما — حذف لینک «تغییرات» از Navbar/Footer؛ `/changelog` مانند `/demo` فقط با آدرس مستقیم و خارج از sitemap در دسترس است","ارجاع متقابل `/demo` ↔ `/changelog` برای تیم ارائه"],"url":"https://vam.ati.ir/changelog#2026-07-06-dotnet-standalone-v2-7"},{"id":"2026-07-06-demo-operational-v2-6","version":"2.6.0","cycle":"سیکل ۴ · تیر ۱۴۰۵ — تکمیل شکاف‌های v2.4.0","title":"عملیاتی‌سازی دموی نهایی — داده نمونه جامع و حساب‌های ارائه","summary":"موتور داده نمونه برای همه اجزای سامانه (۳۳ گام: دو وام فعال، خریدها، کیف ریالی، سازمان کامل، تسویه و پورسانت)، صفحه داخلی /demo با فهرست کامل حساب‌ها/نقش‌ها و سناریوهای ارائه — بدون لینک از سایت اصلی و noindex.","at":"2026-07-06T03:30:00+03:30","atTehran":"دوشنبه ۱۵ تیر ۱۴۰۵ — ۰۳:۳۰","tags":["feature","docs","deploy"],"items":["موتور داده نمونه `seedDemoData` — سفر ۱۷ مرحله‌ای تا وام فعال + ضامن، وام خرد دوم، ۳ خرید اعتباری، کیف ریالی (شارژ/شبا/برداشت)، سازمان با پروفایل حقوقی و ۲ صاحب امضای OTP شده، ۳ کارمند دعوت‌شده، تسویه پذیرنده + پورسانت، گذر زمان ۳۵ روزه و پرداخت قسط","صفحه مخفی `/demo`: دکمه بارگذاری داده نمونه با گزارش گام‌به‌گام، جدول ۹ حساب دمو (موبایل/OTP/نقش) با ورود سریع، تشریح ۶ پنل و ۵ سناریوی ارائه — noindex + disallow در robots","سند `docs/DEMO-ACCOUNTS.md` — مرجع نام کاربری/رمز/نقش برای دموی نهایی و عملیاتی","اسکریپت صحت‌سنجی `npm run demo:seed-check` — اجرای کامل seed در Node (۳۳ گام سبز)","بر اساس تشخیص و تحلیل تیم توسعه بر اساس نیاز دموی عملیاتی اشاره شده توسط نماینده کارفرما — quick-login بدون دستکاری state مشترک برای نقش‌های ستادی"],"url":"https://vam.ati.ir/changelog#2026-07-06-demo-operational-v2-6"},{"id":"2026-07-06-org-legal-guarantor-sign-v2-5","version":"2.5.0","cycle":"سیکل ۴ · تیر ۱۴۰۵ — تکمیل شکاف‌های v2.4.0","title":"پروفایل حقوقی سازمان، امضای ضامن و E2E موتور ۱۷مرحله‌ای","summary":"پروفایل حقوقی ۱۴فیلدی سازمان با استعلام شرکت و OTP شاهکار صاحبان امضا، امضای قرارداد توسط ضامن (تا تکمیل همه امضاها پرونده فعال نمی‌شود)، و اسکریپت E2E سطح موتور برای کل ۱۷ مرحله پیوست.","at":"2026-07-06T01:45:00+03:30","atTehran":"دوشنبه ۱۵ تیر ۱۴۰۵ — ۰۱:۴۵","tags":["feature","improvement"],"items":["پروفایل حقوقی ۱۴فیلدی سازمان (نام، تاریخ ثبت، شناسه ملی، شماره ثبت، زمینه فعالیت، پرسنل، حقوق ماهیانه، نوع شرکت، …) + استعلام شرکت شبانیک — سرکار خانم مهندس حسنی، نماینده کارفرما (طرح سازمانی.pdf §۴.۱)","صاحبان امضا و هیئت مدیره: استعلام شاهکار + تأیید OTP همه مدیران در «پروفایل سازمان» — سرکار خانم مهندس حسنی، نماینده کارفرما (طرح سازمانی.pdf §۴.۱)","امضای قرارداد توسط ضامن از «ضمانت‌های من» — تا ثبت امضای کاربر و ضامن، پرونده در «در انتظار امضا» می‌ماند — سرکار خانم مهندس حسنی، نماینده کارفرما (روند ورود کاربر.pdf §مرحله ۱۳)","اکشن‌های جدید: updateOrgLegalProfile، addOrgSignatory، verifyOrgSignatoryOtp، completeGuarantorContractSignature (در allow-list سرور)","بر اساس تشخیص و تحلیل تیم توسعه بر اساس مورد تست ۱۷ مرحله‌ای فاز ۱۲ اشاره شده توسط نماینده کارفرما — اسکریپت `npm run test:e2e:journey` (۳۸ ادعا، شامل رد اعتبارسنجی ناموفق، رد پروفایل با دلیل، امضای دومرحله‌ای)"],"url":"https://vam.ati.ir/changelog#2026-07-06-org-legal-guarantor-sign-v2-5"},{"id":"2026-07-05-ativam-gaps-v2-4-1","version":"2.4.1","cycle":"سیکل ۴ · تیر ۱۴۰۵ — تکمیل شکاف‌های v2.4.0","title":"تکمیل شکاف‌های باقی‌مانده پیوست ativam","summary":"E2E Playwright ۱۷مرحله‌ای، OTP تغییر موبایل، شاهkar مدیران سازمان، بارگذاری اکسل کارکنان.","at":"2026-07-05T23:45:00+03:30","atTehran":"یکشنبه ۱۴ تیر ۱۴۰۵ — ۲۳:۴۵","tags":["feature","fix","improvement"],"items":["OTP ورود: «تغییر شماره موبایل» + «ارسال مجدد کد» — سرکار خانم مهندس حسنی، نماینده کارفرما (روند ورود کاربر.pdf §مرحله ۲)","OTP + شاهkar برای مدیران و صاحبان امضای سازمان — سرکار خانم مهندس حسنی، نماینده کارفرما (طرح سازمانی.pdf §۴.۱)","بارگذاری اکسل/CSV کارکنان با preview و bulkInvite — سرکار خانم مهندس حسنی، نماینده کارفرما (منوی پنل سازمان §کارکنان)","بر اساس تشخیص و تحلیل تیم توسعه بر اساس مورد E2E ۱۷مرحله‌ای فاز ۱۲ DEVELOPMENT-PLAN-ATTACHMENTS اشاره شده توسط نماینده کارفرما — Playwright e2e/user-wizard-17-steps.spec.ts","inviteOrgEmployee: ذخیره mobile، creditLimit، months، installmentPayer"],"url":"https://vam.ati.ir/changelog#2026-07-05-ativam-gaps-v2-4-1"},{"id":"2026-07-05-ativam-attachments-v2-4","version":"2.4.0","cycle":"سیکل ۴ · تیر ۱۴۰۵ — همسان‌سازی پیوست ativam","title":"پیاده‌سازی جامع پیوست کارفرما (ativam · DEVELOPMENT-PLAN-ATTACHMENTS)","summary":"همسان‌سازی ۵ طرح اعتباری، فرآیند ۱۷ مرحله‌ای کاربر حقیقی، KYC سه‌رنگ، منوی ۱۱/۱۰تایی پنل کاربر و سازمان، پرداخت اعتبارسنجی و تشکیل پرونده، ضمانت و مشاوره AI — مطابق مستندات ativam (سرکار خانم مهندس حسنی).","at":"2026-07-05T22:30:00+03:30","atTehran":"یکشنبه ۱۴ تیر ۱۴۰۵ — ۲۲:۳۰","tags":["feature","improvement","docs","deploy"],"items":["فاز ۱ — موتور طرح‌ها: ادغام A/B/C در «اعتبار آتی / اشخاص حقیقی»، بیمه زندگی ۱۰۰M/۳٪/۶–۱۸م، سازمانی ۶–۱۸م، فیلد walletChargeTime — سرکار خانم مهندس حسنی، نماینده کارفرما (جدول XLSX ativam)","فاز ۲ — نوار KYC سه‌رنگ (قرمز/زرد/سبز)، فرم تکمیل پروفایل با استان، شهر، دو معرف، نحوه آشنایی، ایمیل + تأیید/رد کارشناس — سرکار خانم مهندس حسنی، نماینده کارفرما (روند ورود کاربر.pdf)","فاز ۳–۴ — پذیرش شرایط طرح، پرداخت هزینه اعتبارسنجی (عودت‌ناپذیر)، هزینه تشکیل پرونده ۷۱٬۰۰۰ تومان + راهنمای رد اعتبارسنجی — سرکار خانم مهندس حسنی، نماینده کارفرما","فاز ۵–۷ — مدارک سه‌گانه (هویتی/شغلی/تضمین)، استعلام ثنا، راهنمای چک «آتی پی مهر گستر»، ارسال فیزیکی با کد رهگیری — سرکار خانم مهندس حسنی، نماینده کارفرما","فاز ۶ — ضمانت‌های من، کد یکتای وام، دعوت ضامن — سرکار خانم مهندس حسنی، نماینده کارفرما","فاز ۹ — منوی ۱۱ آیتم پنل کاربر (داشبورد، درخواست، اعتبارها، تراکنش‌ها، کیف‌ها، ضمانت‌ها، پذیرندگی، معرفی، تیکت، اعلان، مشاوره AI) — سرکار خانم مهندس حسنی، نماینده کارفرما (منو پنل کاربر حقیقی.pdf)","فاز ۱۰–۱۱ — فرم درخواست سازمان، صندوق ویژه (روش پرداخت اقساط)، افزودن کارمند، منوی ۱۰ آیتم پنل سازمان — سرکار خانم مهندس حسنی، نماینده کارفرما (طرح سازمانی.pdf)","مشاوره هوشمند پیشنهاد طرح بر اساس درآمد و شغل","بر اساس تشخیص و تحلیل تیم توسعه بر اساس مورد تست attachment در product-spec.ts اشاره شده توسط نماینده کارفرما — golden test همسان‌سازی XLSX","بر اساس تشخیص و تحلیل تیم توسعه: تست‌های engine برای diff صفر نسبت به XLSX پیوست","به‌روزرسانی ARCHITECTURE.md §۵، ENGINES.md، panel-registry.ts"],"url":"https://vam.ati.ir/changelog#2026-07-05-ativam-attachments-v2-4"},{"id":"2026-07-03-adt-gadget-kavenegar","version":"2.3.0","cycle":"سیکل ۳ · تیر ۱۴۰۵ — بک‌اند واقعی و آمادگی v3","title":"ابزار توسعه و تحویل (ADT) + OTP زنده کاوه‌نگار","summary":"گجت گزارش اشکال کارفرما با ورود پیامکی، triage هوشمند، بانک دانش agent، و اتصال عملیاتی SMS کاوه‌نگار — آماده استخراج به repo مستقل alef.ba AI Development.","at":"2026-07-03T20:30:00+03:30","atTehran":"جمعه ۱۲ تیر ۱۴۰۵ — ۲۰:۳۰","tags":["feature","integration","docs"],"items":["مسیر `/adt` — ورود OTP، فرم گزارش لینوکس/ویندوز، آپلود/اسکرین‌شات، نشانه‌گذاری canvas","API: `POST /api/adt/triage` · `GET/POST /api/adt/tickets` — پرونده `ADT-YYYYMMDD-XXXX`","Prisma: `OtpChallenge`، `AdtTicket`، `AdtAttachment`، `AdtKbEntry`","OTP زنده: `OTP_MODE=live` + `SMS_PROVIDER=kavenegar` — lookup با fallback `sms/send`","`scripts/kavenegar-health.mjs` · `scripts/ai-health.mjs` · `scripts/seed-adt-kb.mjs` · `.env.example`","ویجت شناور «ارسال اشکال» در همه صفحات (به‌جز `/adt`) — `AdtFloatingWidget`","OTP: نرمال‌سازی موبایل، نمایش راهنمای دمو/زنده، بازیابی نشست، پیام خطای فارسی کاوه‌نگار","مستندات: `docs/ADT-GADGET.md`","الگوی `ativam-otp` در صف تأیید کاوه‌نگار — ارسال با `sms/send` فعال است"],"url":"https://vam.ati.ir/changelog#2026-07-03-adt-gadget-kavenegar"},{"id":"2026-07-03-windows-mirror-dotnet","version":"2.2.0","cycle":"سیکل ۳ · تیر ۱۴۰۵ — بک‌اند واقعی و آمادگی v3","title":"نسخهٔ آینه‌ای ویندوز — ASP.NET Core 8","summary":"راه‌اندازی stack موازی .NET برای دیپلوی همزمان روی ویندوز: API با parity کامل auth/core/health، پل موتور TypeScript، پریویو محلی با Next.js (WINDOWS_MIRROR)، و golden tests C#.","at":"2026-07-03T17:00:00+03:30","atTehran":"جمعه ۱۲ تیر ۱۴۰۵ — ۱۷:۰۰","tags":["feature","docs","deploy"],"items":["Solution `dotnet/AtiVam.sln` — Domain، Application، Infrastructure، Api، Domain.Tests","API .NET روی :5100 — `/api/auth/*`، `/api/core/state`، `/api/core/action`، `/api/health` (runtime=dotnet)","پل موتور `scripts/windows-engine-host.ts` روی :5101 — ۴۹ اکشن AtiCore بدون بازنویسی فوری C#","EF Core SQLite — اشتراک `prisma/dev.db` با نسخه Node (دیپلوی آینه‌ای داده)","Golden tests C#: ۶ case اعتبارسنجی ایرانی (`dotnet test --filter Category=Golden`)","پریویو محلی: `npm run dev:windows` یا `scripts/preview-windows.ps1` — Next :3000 + proxy `/api` → .NET","`src/middleware.ts` — پروکسی fetch `/api/*` → .NET وقتی `WINDOWS_MIRROR=1`","E2E: `npm run test:e2e:windows` — ۸ سناریو (health، OTP، state، ensureUser)","مستندات: `dotnet/README.md` · به‌روزرسانی `docs/migration/`","گام بعدی M0: پورت موتورهای schedule/scoring/ledger به C# (حذف تدریجی engine-host)"],"url":"https://vam.ati.ir/changelog#2026-07-03-windows-mirror-dotnet"},{"id":"2026-07-03-v3-planning-docs-stabilize","version":"2.1.0","cycle":"سیکل ۳ · تیر ۱۴۰۵ — بک‌اند واقعی و آمادگی v3","title":"مستندسازی v3.0 و تثبیت پروژه","summary":"بستهٔ کامل برنامه‌ریزی فاز v3 (چندکاربره، یکپارچگی زنده، رشد، استحکام، آمادگی مهاجرت .NET) با ~۴۰ مرحله اجرای خودکار؛ آرتیفکت‌های مستقل از زبان برای تیم C#؛ بردارهای تست طلایی و CI gate.","at":"2026-07-03T14:45:00+03:30","atTehran":"جمعه ۱۲ تیر ۱۴۰۵ — ۱۴:۴۵","tags":["docs","improvement"],"items":["سند master `docs/DEVELOPMENT-PLAN-V3.md` — ۴۰ مرحله (فازهای G/A/B/C/D/E) با پروتکل agent و معیار پذیرش","`docs/DOMAIN-SPEC.md` — فرمول‌ها، ماشین‌های وضعیت، قواعد ایرانی (مستقل از TypeScript)","`docs/API-SPEC.md` + `docs/api/openapi.yaml` — قرارداد OpenAPI 3.1 برای auth، core، admin (planned)، integrations","`docs/MIGRATION-DOTNET.md` — نقشه مهاجرت .NET 8 + هشدار ASPX + جایگزین Razor/Blazor","بردارهای تست طلایی: `scripts/golden-vectors.mjs` + `docs/golden/` (۴۱ case) — suite پذیرش C#","CI gate: `scripts/ci-check.mjs` + اسکریپت‌های `npm run ci` و `npm run test:golden`","`/api/health` هم‌تراز با نسخه 2.1.0 · به‌روزرسانی `CHANGELOG-POLICY.md`","به‌روزرسانی `ROADMAP.md` · `INDEX.md` · `AGENTS.md` · `HANDOFF.md` · `README.md`","صفحه `/changelog`: گروه‌بندی سیکل انتشار + تکمیل bulletهای جاافتاده v1.1–v2.0","بدون تغییر رفتار production — ۱۰۰ تست موتور/بک‌اند همچنان پاس"],"url":"https://vam.ati.ir/changelog#2026-07-03-v3-planning-docs-stabilize"},{"id":"2026-07-03-backend-real-ui-pack-v2-0","version":"2.0.0","cycle":"سیکل ۳ · تیر ۱۴۰۵ — بک‌اند واقعی و آمادگی v3","title":"بک‌اند واقعی + بستهٔ «وای» رابط کاربری","summary":"مهاجرت از localStorage به بک‌اند واقعی (Prisma + SQLite + نشست httpOnly) بدون تغییر موتورها یا کامپوننت‌های موجود؛ مرکز اعلان زنده، نمودارهای تحلیلی، موبایل drawer، خروجی گزارش و PWA.","at":"2026-07-03T02:15:00+03:30","atTehran":"جمعه ۱۲ تیر ۱۴۰۵ — ۰۲:۱۵","tags":["feature","improvement","integration","docs","deploy"],"items":["Auth واقعی: OTP + نشست httpOnly (`/api/auth/otp`, `/me`, `/logout`) — بدون تغییر تجربهٔ دموی فعلی","Action API با فهرست مجاز صریح ~۴۰ اکشن کسب‌وکاری (`/api/core/action`) + `/state` + `/sync` + `/import`","AtiCore اکنون سمت سرور هم قابل نمونه‌سازی است (الگوی stateless-per-request) — موتور دست‌نخورده ماند","useAtiCore v2: تطبیق خودکار state محلی/سرور در mount + همگام‌سازی پس‌زمینهٔ debounce شده + fallback آفلاین کامل","کارت طرح وام سبک Blu در ویزارد اعتبار (`PlanCard`: نرخ، قسط، هزینه عملیات، کل بازپرداخت، محل دریافت)","مرکز اعلان زنده: `NotificationBell` + شمارنده unread + toast سراسری aria-live","موبایل: سایدبار per-portal به کشوی همبرگری با backdrop تبدیل شد","نمودارهای تحلیلی recharts: ترکیب پرتفوی و جریان نقدی (فرمان)، مصرف صندوق (سازمان)، سقف/مانده تعهدات (تأمین‌کننده)، فروش روزانه به تفکیک کانال (پذیرنده)","خروجی CSV دفتر کل و جدول اقساط + PDF خلاصهٔ پرونده (`loan-report-print`)","UI رد مدرک با یادداشت در پنل اپراتور + اکشن‌دار شدن کامل AdminCompliancePanel","PWA: manifest، service worker سبک (اپ‌شل)، preload فونت‌های Bold/Black","a11y: skip-link در همهٔ لی‌اوت‌ها، ناوبری کیبورد فلش‌دار در PanelTabs، احترام به prefers-reduced-motion","۱۰۰ تست خودکار (۷۶ موتور + ۲۴ بک‌اند) + E2E اختیاری · دیپلوی production (tar-over-ssh + `prisma migrate deploy`)","سند فنی جدید `docs/BACKEND.md` — معماری، schema، رویهٔ مهاجرت و deploy"],"url":"https://vam.ati.ir/changelog#2026-07-03-backend-real-ui-pack-v2-0"},{"id":"2026-07-02-credit-wizard-finnotech-v1-2","version":"1.2.0","cycle":"سیکل ۲ · تیر ۱۴۰۵ — محصول و سفر اعتباری","title":"ویزارد یکپارچه اعتبار و اتصال فینوتک","summary":"درخواست اعتبار در یک ویزارد ۱۰ مرحله‌ای (استپر + خلاصه درخواست)؛ زیرساخت واقعی فینوتک برای اعتبارسنجی؛ سند فنی نیازمندی API برای کارفرما.","at":"2026-07-02T18:20:00+03:30","atTehran":"پنجشنبه ۱۱ تیر ۱۴۰۵ — ۱۸:۲۰","tags":["feature","integration","docs","deploy"],"items":["ویزارد ۱۰ مرحله‌ای: ورود، انتخاب طرح، هویت، احراز، مالی، اعتبارسنجی، مدارک، چک، قرارداد، نتیجه","سفر اعتباری بدون اسکرول عمودی — `CreditWizardShell` با پنجره‌های متوالی و استپر مستقل","کارت طرح وام (`PlanCard`) — نمایش نرخ، دوره بازپرداخت، مبلغ قسط، هزینه عملیات، کل بازپرداخت و محل دریافت (الگوی Blu)","تاگل مدت بازپرداخت و پیش‌نمایش زنده اقساط روی همان کارت طرح","سایدبار «خلاصه درخواست» + استپر شمارشی قابل‌کلیک (الگوی درخواستی کارفرما)","فیلدهای هویتی «نام پدر» و «وضعیت تأهل» به پروفایل کاربر افزوده شد","اتصال فینوتک (بانکداری باز/اعتبارسنجی) — OAuth2 Client-Credentials با mock دمو","سند فنی `API-INTEGRATION-BRIEF.md` — نیازمندی API، سرویس‌دهنده پیشنهادی، اطلاعات لازم به/از تأمین‌کننده","مستندسازی کامل payload امضانو برای Handoff به تیم فنی امضانو","منوی per-portal (سوییچر پنل‌ها) تأیید و روی production فعال است"],"url":"https://vam.ati.ir/changelog#2026-07-02-credit-wizard-finnotech-v1-2"},{"id":"2026-07-02-panels-case-flow-v1-1","version":"1.1.0","cycle":"سیکل ۲ · تیر ۱۴۰۵ — محصول و سفر اعتباری","title":"منوی اختصاصی پنل‌ها و گردش پرونده اعتبار","summary":"هر پنل منوبار مستقل با سوییچر؛ مراحل ۵‌گانه پرونده با اقدامات اپراتور؛ دریافت مدارک و تضمین جدا؛ اعتبار سازمانی ۶–۱۸ ماه؛ تفکیک فروش حضوری/مجازی.","at":"2026-07-02T14:40:00+03:30","atTehran":"پنجشنبه ۱۱ تیر ۱۴۰۵ — ۱۴:۴۰","tags":["feature","improvement","deploy","docs"],"items":["سایدبار per-portal: منوی فقط پنل فعال + سوییچر جابه‌جایی بین پورتال‌ها","ناوبری PanelTabs در پنل‌ها — جایگزینی اسکرول عمودی با تب/صفحه مستقل","مراحل پرونده: ثبت اولیه → بازبینی اولیه → تایید مدارک → کمیته اعتبار → فعالسازی","دکمه «درخواست لغو اعتبار» و timeline مرحله‌ای در پنل کاربر","اقدامات مرحله‌ای اپراتور در اتاق فرمان (بازبینی، تأیید مدارک، تصویب کمیته)","پنل حقیقی: دو تب مستقل «دریافت مدارک» و «دریافت تضمین» با بارگذاری/ثبت","کیف پول ریالی: واریز (شاپرک) و برداشت با زنجیره متمرکز دمو","پنل سازمانی: افزودن کاربر، تفکیک مدیران و کارمندان، لیست پرسنل","اعتبار سازمانی: بازپرداخت ۶ تا ۱۸ ماه","پنل پذیرنده: تفکیک فروش حضوری و مجازی (KPI، فیلتر، برچسب کانال)","پنل بازاریاب: نردبان پاداش شبکه ۳ سطحی (۱٪ · ۰٫۵٪ · ۰٫۲۵٪)","CoreState نسخه ۱۰ (مرحله پرونده، مدارک، کانال خرید)؛ ۷۶ تست موتور"],"url":"https://vam.ati.ir/changelog#2026-07-02-panels-case-flow-v1-1"},{"id":"2026-07-02-professionalization-v1","version":"1.0.0","cycle":"سیکل ۲ · تیر ۱۴۰۵ — محصول و سفر اعتباری","title":"حرفه‌ای‌سازی چهرهٔ عمومی","summary":"صفحات حقوقی و شرکتی، SEO، اعتماد شفاف، ماشین‌حساب هم‌تراز با موتور، health API و بهبود a11y.","at":"2026-07-02T10:30:00+03:30","atTehran":"پنجشنبه ۱۱ تیر ۱۴۰۵ — ۱۰:۳۰","tags":["feature","improvement","deploy","docs"],"items":["صفحات `/about` · `/business` · `/contact` · `/legal/terms` · `/legal/privacy`","Footer و Navbar بدون لینک مرده؛ بنر «نسخه نمایشی» در لندینگ","KPIهای واقع‌گرایانه Trust · نشان‌های اعتماد «به‌زودی»","`sitemap.xml` · `robots.txt` · OG image · JSON-LD Organization","ماشین‌حساب لندینگ از `buildMarketingPreview` (موتور products)","صفحه ۴۰۴ برندشده · `/api/health`","شبانیک: برچسب «مسیر در انتظار» برای ۴ سرویس","AuthModal: رفع الگوی hydration با remount"],"url":"https://vam.ati.ir/changelog#2026-07-02-professionalization-v1"},{"id":"2026-07-01-changelog-page","version":"0.9.1","cycle":"سیکل ۱ · تیر ۱۴۰۵ — زیرساخت و شفافیت","title":"صفحهٔ تاریخچه تغییرات (Changelog)","summary":"انتشارهای پلتفرم با تاریخ شمسی و ساعت تهران — فیلتر، جستجو، گروه‌بندی ماهانه و ناوبری نسخه‌ها.","at":"2026-07-01T13:15:00+03:30","atTehran":"چهارشنبه ۱۰ تیر ۱۴۰۵ — ۱۳:۱۵","tags":["feature","improvement","deploy"],"items":["مسیر عمومی `/changelog` با تایم‌لاین انتشارها","نمایش تاریخ هجری شمسی + ساعت رسمی تهران (IRST)","فیلتر برچسب، جستجوی متنی و گروه‌بندی ماه شمسی","نوار KPI، ناوبری سریع نسخه‌ها (دسکتاپ و موبایل)","لینک مستقیم هر انتشار (`#شناسه`) + کپی در کلیپ‌بورد","فید JSON در `/changelog/feed` برای یکپارچه‌سازی","لینک در Navbar و Footer"],"url":"https://vam.ati.ir/changelog#2026-07-01-changelog-page"},{"id":"2026-06-27-panels-referral-value-risk","version":"0.9.0","cycle":"سیکل ۱ · تیر ۱۴۰۵ — زیرساخت و شفافیت","title":"تفکیک پنل‌ها، شبکه دعوت و Value/Risk","summary":"هر موضوع مسیر مستقل؛ RBAC ستادی؛ موتور Referral سه‌سطحی؛ پارامترهای ارزش/ریسک فقط برای مدیر ارشد.","at":"2026-06-27T18:45:00+03:30","atTehran":"شنبه ۶ تیر ۱۴۰۵ — ۱۸:۴۵","tags":["feature","deploy","docs"],"items":["۱۷ مسیر داشبورد با `panel-registry` و `PanelAccessGate`","شبکه دعوت Referral — `/dashboard/agent/referral` + کد `?ref=` در ثبت‌نام","اتاق Value/Risk — `/dashboard/admin/value-risk` (مجوز `value_risk.configure`)","CoreState نسخه ۹ — `referralRegistry` و `platformValueRisk`","۶۳ تست موتور؛ `LoanRequestStudio` از طرح‌های توسعه‌یافته Value/Risk","به‌روزرسانی AGENTS، HANDOFF، ENGINES و سایر مستندات","دیپلوی production روی https://ativam.freegpt.ir"],"url":"https://vam.ati.ir/changelog#2026-06-27-panels-referral-value-risk"},{"id":"2026-06-23-brand-identity","version":"0.8.0","cycle":"سیکل ۰ · خرداد ۱۴۰۵ — برند و پایه","title":"هویت بصری رسمی ۱۴۰۵","summary":"فونت ایران‌یکان، لوگوی SVG رسمی و پالت برند در کل سامانه.","at":"2026-06-23T14:59:00+03:30","atTehran":"سه‌شنبه ۲ تیر ۱۴۰۵ — ۱۴:۵۹","tags":["feature","deploy","improvement"],"items":["فونت Iran Yekan FaNum — `public/fonts/IranYekan-*.woff2`","لوگو و نشان — `public/brand/` + کامپوننت `Logo`","پالت سرمه‌ای `#001F3F` و سبز `#8DC63F`","favicon و `icon.svg`","مستند `docs/BRAND-IDENTITY.md`"],"url":"https://vam.ati.ir/changelog#2026-06-23-brand-identity"},{"id":"2026-06-12-silk-steel","version":"0.7.0","cycle":"سیکل ۰ · خرداد ۱۴۰۵ — برند و پایه","title":"بازطراحی UI «ابریشم و فولاد»","summary":"زبان طراحی واحد در لندینگ، پنل‌ها و احراز هویت.","at":"2026-06-12T03:54:00+03:30","atTehran":"جمعه ۲۲ خرداد ۱۴۰۵ — ۰۳:۵۴","tags":["improvement","integration","docs"],"items":["توکن‌های motion و سطح در `globals.css`","Navbar شیشه‌ای، AuthModal مرحله‌ای، KPIهای tick-in","قرارداد زنده شبانیک تأیید و مستندسازی production","استپر سفر اعتباری و کانکتورهای پالس‌دار اتاق فرمان","بریف طراحی — `docs/DESIGN-BRIEF.md`"],"url":"https://vam.ati.ir/changelog#2026-06-12-silk-steel"},{"id":"2026-06-11-engines-dashboards","version":"0.6.0","cycle":"سیکل ۰ · خرداد ۱۴۰۵ — برند و پایه","title":"پنل‌های BNPL و موتورهای دامنه","summary":"شش پورتال داشبورد و ۱۴+ موتور سمت کلاینت با state دمو.","at":"2026-06-11T18:23:00+03:30","atTehran":"پنجشنبه ۲۱ خرداد ۱۴۰۵ — ۱۸:۲۳","tags":["feature","integration"],"items":["پنل‌های کاربر، سازمان، بازاریاب، پذیرنده، تأمین‌کننده و اتاق فرمان","موتورهای وام، کیف، دفتر کل، امتیازدهی، تقلب و تسویه","پروکسی امن شبانیک — `api/integrations/shabanic`","کیف ریالی و زنجیره متمرکز دمو","IAM سازمانی، timeline پرونده و لغو case","یکپارچه‌سازی امضانو برای امضای قرارداد"],"url":"https://vam.ati.ir/changelog#2026-06-11-engines-dashboards"},{"id":"2026-05-16-handbook","version":null,"cycle":"سیکل ۰ · خرداد ۱۴۰۵ — برند و پایه","title":"راهنمای توسعه و پنل‌ها","summary":null,"at":"2026-05-16T19:19:00+03:30","atTehran":"شنبه ۲۶ اردیبهشت ۱۴۰۵ — ۱۹:۱۹","tags":["docs"],"items":["افزودن PDF راهنمای توسعه و پنل‌ها به مخزن","پایه‌گذاری مستندات ARCHITECTURE و ENGINES"],"url":"https://vam.ati.ir/changelog#2026-05-16-handbook"},{"id":"2026-05-16-landing","version":"0.1.0","cycle":"سیکل ۰ · خرداد ۱۴۰۵ — برند و پایه","title":"لندینگ اولیه آتی‌وام","summary":"صفحه بازاریابی RTL با ماشین‌حساب اقساط و معرفی محصول.","at":"2026-05-16T19:11:00+03:30","atTehran":"شنبه ۲۶ اردیبهشت ۱۴۰۵ — ۱۹:۱۱","tags":["feature"],"items":["لندینگ فارسی RTL با Next.js App Router","بخش‌های Hero، ماشین‌حساب، فروشگاه‌ها و FAQ","پایهٔ استک: Next.js 16، React 19، Tailwind v4"],"url":"https://vam.ati.ir/changelog#2026-05-16-landing"}]}