# Launch SDK অ্যাকাউন্ট লগআউট পুনঃপ্রচেষ্টা সংশোধন

তারিখ: 2026-10-24। AUTH-07 সংশোধিত এবং Go, JavaScript, Python, C#, Java, Ruby, Rust, C, C++ অ্যাকাউন্ট জীবনচক্র এন্ট্রি সিঙ্ক করা হয়েছে। **SDK ডিপ্লয় বা প্রকাশ হয়নি, Git কমিট বা পুশ হয়নি।** এই কাজে Launch বা Licentivo সার্ভারের ব্যবসায়িক কোড বদলানো হয়নি।

## আচরণ

স্পষ্ট লগআউট প্রথমে নিরাপদ স্টোরেজের অ্যাকাউন্ট রেকর্ড “শুধু প্রত্যাহার অপেক্ষমাণ” চিহ্নিত করে, তারপর অফিসিয়াল SDK লগআউট কল ও Launch-এ অ্যাকাউন্ট সেশন প্রত্যাহার জমা দেয়। নেটওয়ার্ক বা বাতিল অবস্থা যাই হোক স্থানীয় রানটাইম থামে এবং সুরক্ষিত ফিচার চলতে পারে না।

Launch প্রত্যাহার নিশ্চিত না করলে SDK অপেক্ষমাণ কাজ ও পুনঃপ্রচেষ্টার মূল অ্যাকাউন্ট ক্রেডেনশিয়াল রাখে, কিন্তু এটিকে লগইন করা অ্যাকাউন্ট মনে করে না। আবার `Logout`, `Login` বা `Restore` মূল প্রত্যাহার অনুরোধ পুনরুদ্ধার করে; `Restore` অপেক্ষমাণ কাজ দিয়ে পরিচয় চায় না বা অনুমোদন রানটাইম শুরু করে না। সফল প্রতিক্রিয়া বা মূল সেশন আর প্রমাণীকৃত নয় বোঝানো HTTP 401 পেলে তবেই অপেক্ষমাণ কাজ মুছে যায়। তাই প্রতিক্রিয়া হারালেও পুনরুদ্ধার সম্ভব এবং “দ্বিতীয় লগআউট সফল কিন্তু প্রত্যাহার পুনরায় জমা হয়নি” ঘটে না।

স্বাভাবিক লগইন রেকর্ড এখনও v2 সামঞ্জস্যপূর্ণ। প্রত্যাহার অপেক্ষমাণ রেকর্ড ব্যক্তিগত v3 ফরম্যাট ব্যবহার করে; Java, Rust স্বাভাবিক লগইনের জন্য প্রয়োজনীয় ক্রেডেনশিয়াল ফিল্ডের গঠনও সরিয়েছে, যাতে পুরোনো SDK অপেক্ষমাণ কাজকে স্বাভাবিক লগইন না ভাবে। অপেক্ষমাণ কাজে স্বল্পমেয়াদি পরিচয় assertion, লাইসেন্স কী বা স্বাক্ষরিত অনুমতি থাকে না।

অ্যাকাউন্ট অপেক্ষমাণ কাজ আগের কনফিগার করা নিরাপদ `Store` ব্যবহার করে। **প্রক্রিয়া-পার পুনরুদ্ধারে স্থায়ী নিরাপদ স্টোরেজ প্রয়োজন**, যেমন Windows DPAPI বা SDK-সমর্থিত এনক্রিপ্টেড স্টোরেজ; ডিফল্ট `MemoryStore` শুধু এই প্রক্রিয়ায় ডেটা রাখে। পরবর্তী লগইন, পুনরুদ্ধার বা লগআউট পুনঃপ্রচেষ্টা শুরু করে, নতুন স্বাধীন ব্যাকগ্রাউন্ড কাজ নেই। স্টোরেজ বা প্রত্যাহার অসম্পূর্ণ হলে ত্রুটি বা অপেক্ষমাণ ফল ফেরে, সাফল্য দেখানো হয় না।

Licentivo SDK-এর ডিভাইস লগআউট টিকিট ও `.logout.json` তার নিজস্ব ব্যবস্থাপনায় থাকে; Launch তার ক্যাশ ডিরেক্টরি মুছে না এবং ডিভাইস, ফিচার বা অফলাইন অধিকার সিদ্ধান্ত নেয় না। নেটিভ উদাহরণ ও প্রতি ভাষার SDK নথিও আপডেট করা হয়েছে।

## যাচাই

| পরিসর | ফলাফল |
| --- | --- |
| Launch Go সোর্স প্যাকেজ | 185টি পাস রেকর্ড, উপপরীক্ষাসহ; ব্যর্থতা নেই; `go vet` পাস |
| বাস্তব Launch HTTP ও MySQL | লগআউট অনুরোধ বাধাগ্রস্ত হলে নিরাপদ অপেক্ষমাণ কাজ থাকে; SDK পুনর্নির্মাণের পর লগইন পুনরুদ্ধার অসম্ভব; নেটওয়ার্ক ফেরার পর প্রত্যাহার পুনরায় জমা, পুরোনো token-এর প্রমাণীকরণ ও পরিচয় ইন্টারফেস দুটোই প্রত্যাখ্যান করে |
| JavaScript | 10টি পাস, লগআউট ব্যর্থতা, পুনর্নির্মাণে পুনরুদ্ধার, 401 নিশ্চিতকরণসহ |
| Python | 8টি পাস, লগআউটের পর স্থানীয় অ্যাকাউন্ট পরিষ্কার, পুনর্নির্মাণে পুনরুদ্ধার ও Windows DPAPI সহ |
| C# | জীবনচক্র, অপেক্ষমাণ কাজ পুনরুদ্ধার, SDK লগআউট লগ সংরক্ষণ ও DPAPI পরীক্ষা পাস |
| Java | 7টি জীবনচক্র ও নিরাপত্তা পরীক্ষা গোষ্ঠী পাস, অফলাইন লগআউট পুনঃপ্রচেষ্টাসহ |
| Ruby | অ্যাকাউন্ট জীবনচক্র, অপেক্ষমাণ কাজ পুনরুদ্ধার ও এনক্রিপ্টেড স্টোরেজ রিগ্রেশন পাস |
| Rust | সব স্থানীয় পরীক্ষা পাস, অপেক্ষমাণ কাজ পুনর্নির্মাণ পুনরুদ্ধার ও বাস্তব SDK চলাসহ |
| C / C++ | বাস্তব স্বাক্ষরিত SDK, নেটওয়ার্ক বিচ্ছিন্নতায় পুনর্নির্মাণ পুনরুদ্ধার, 401 নিশ্চিতকরণ, DPAPI ও C++ রান এন্ট্রি পাস |
| বর্তমান Licentivo অনুমোদন সংশোধন | 45টি পাস রেকর্ড, ব্যর্থ বা বাদ নেই; নীতি বিচ্যুতিতে নেতিবাচক বিজ্ঞপ্তি, কম-ক্ষমতার ডিভাইস সমন্বয়, ম্যানুয়াল ডিভাইস সীমা ও বিদ্যমান অনুমোদন রিগ্রেশনসহ |
| অন্তর্ভুক্ত অফিসিয়াল SDK | ম্যানিফেস্টের 115টি ফাইল হ্যাশ সব মেলে, অনুমোদন বা এনক্রিপশন বাস্তবায়ন বদলানো হয়নি |

Launch সোর্স রিগ্রেশনে `TestMySQLBaseline`, `TestProductUploadRoundTrip`, `TestInitialAdministratorMustChangePasswordBeforeAdministration`, `TestNewPaymentProvidersAndRegistrationWithoutMail` চারটি অন্য নির্দিষ্ট ডেটাবেস-নির্ভর পরীক্ষা বাদ, পাসে গণনা নয়; এই SDK, অ্যাকাউন্ট HTTP, ক্রয় সিঙ্ক ও ম্যাপিং প্রবাহ পৃথক পরীক্ষা ডেটাবেসে যাচাই হয়েছে।

## উভয় পক্ষের যৌথ পরীক্ষা

স্থানীয় বিচ্ছিন্ন MySQL 8.0.32, বর্তমান Launch, Licentivo পরিষেবা ও তার ওয়ার্কার, বাস্তব Go Launch SDK ও অফিসিয়াল অনুমোদন রানটাইম, DPAPI অ্যাকাউন্ট স্টোরেজ দিয়ে **15টি ব্যবসায়িক পর্যায়** সম্পন্ন।

লগআউট ব্যর্থতার দুটি যাচাই যোগ করা হয়েছে:

1. **অনুরোধ Launch-এ পৌঁছায়নি**: অ্যাকাউন্ট লগআউট ইন্টারফেস সাময়িক 503 ফেরত দেয়। SDK স্থানীয় ফিচার থামায়, বাস্তব Licentivo ডিভাইস বাইন্ডিং রিলিজ হয়, অ্যাকাউন্ট প্রত্যাহার অপেক্ষমাণ থাকে। SDK পুনর্নির্মাণের পরও শুধু লগআউট পুনঃপ্রচেষ্টা হয়; সংযোগ ফিরলে মূল Launch সেশন প্রত্যাহৃত এবং Licentivo সংশ্লিষ্ট সেশন বিজ্ঞপ্তি পাওয়া নিশ্চিত করে।
2. **সার্ভার প্রত্যাহার করেছে, কিন্তু প্রতিক্রিয়া হারিয়েছে**: Launch লগআউট প্রক্রিয়া করেছে, পরীক্ষা প্রক্সি প্রতিক্রিয়া 503 দিয়ে বদলায়। অপেক্ষমাণ কাজ SDK পুনর্নির্মাণের পরও থাকে; সংযোগ ফিরলে HTTP 401 দিয়ে মূল সেশন অকার্যকর নিশ্চিত করে অপেক্ষমাণ কাজ মুছে দেয়। এ সময় লগইন পুনরুদ্ধার বা ডিভাইস পুনঃঅ্যাক্টিভেশন হয়নি।

অন্য পর্যায়ে বাস্তব ক্রয় সিঙ্ক ও স্বাক্ষরিত ফিচার চলা, সাধারণ বন্ধের পর পুনরুদ্ধার, স্বাভাবিক লগআউট, দূরবর্তী আনলিঙ্ক ও পুরোনো জেনারেশন, নবায়ন রিফান্ড, অ্যাকাউন্ট প্রত্যাহার ও পুনরায় লগইন, সম্পূর্ণ রিফান্ডে নির্বাহ প্রত্যাখ্যান, রিফান্ড পুনরুদ্ধার, চার্জব্যাক ও বড় নথি অনুবাদ রিগ্রেশন অন্তর্ভুক্ত। Licentivo-এর তিন আপডেট তার দায়িত্বপ্রাপ্ত পক্ষ দিয়েছে; এই কাজ শুধু বিল্ড ও যাচাই করেছে।

পেমেন্ট চ্যানেল ও DeepL বিচ্ছিন্ন সিমুলেটেড পরিষেবা, বাস্তব চার্জ, রিফান্ড বা অর্থপ্রদত্ত অনুবাদ নয়। বাস্তব যৌথ পরিষেবা যাচাই Go-তে; অন্য ভাষায় স্থানীয় SDK রিগ্রেশন সম্পন্ন, নয়টি ভাষায় পৃথক বাস্তব পরিষেবা ডিপ্লয় গ্রহণযোগ্যতা দাবি নয়।

এই পর্বে `192.168.2.177` অ্যাক্সেস করা হয়নি। MySQL ও Licentivo অস্থায়ী প্রক্রিয়া বন্ধ হয়েছে, বিদ্যমান পরিষেবা ও পরীক্ষার প্রমাণ রাখা হয়েছে। মূল উপকরণ `.local/logout-retry-fix-20261024/`-এ, সারাংশ ও সোর্স হ্যাশ [যাচাই প্রমাণ](https://github.com/spf86/licentivo-launch/blob/main/docs/logout-retry-fix-evidence-2026-10-24.json)-এ।
