# Launch SDK 帳號退出與多實例修復、兩端聯調

日期：2026-10-24。已完成用戶授權的第 1、3 項中 Launch SDK 負責的修復，對應 AUTH-08 的帳號持久化部分及 AUTH-10。已同步 Licentivo 提供的更新并完成本機聯調。**本任務未上線、未發布 SDK、未提交或推送 Git。**

## 修復結果

帳號退出待辦與當前可恢復登錄使用安全存儲中的不同鍵。寫入退出標記失敗時，只清理屬于該實例的舊登錄，不刪除其他會話。額外的本機帳號退出意圖使用作用域及會話憑據的摘要記錄；恢復帳號前先檢查它，包含安全存儲寫入/刪除失敗、互斥鎖超時后的重啟場景。它不保存 bearer、身份斷言或許可證，不判斷功能權限。

同一 OS 用戶和設備上的帳號生命周期操作采用跨實例、跨進程協調。舊實例的遲到退出、HTTP 401 清理、失敗后的補交及成功后的再次退出，都不能覆蓋或刪除后來保存的新登錄。舊會話待辦可獨立補交帳號撤銷，不重建當前其他會話的授權運行時。

已同步 Go、JavaScript、Python、C#、Java、Ruby、Rust、C/C++ 的 Application 生命周期入口、原生示例及接入說明。安全 Store 的公開方法簽名保持不變，需正確支持多個不透明鍵和原子保存。預設 MemoryStore 的帳號憑據仍只在內存中保存。若安全 Store 和本機退出標記均無法持久化，SDK 明確報錯并停止本實例，不宣稱已完成可跨重啟的退出。

## Licentivo 更新

本輪實際運行測試使用官方 SDK 0.11.1，固定快照標識為 `local-20261024-5d74ba5ea131`。使用倉庫原有導入腳本同步，清單共 115 個文件，**實際變化 23 個、未變 92 個、無新增文件**。變化對應 17 個上游源文件，C 核心在原生、Ruby、Rust 包內重復打包。該受測導入在測試完成時已核對目標文件和上游快照哈希。

Licentivo 服務端源代碼未由本任務修改；SDK 的授權實現采用對方提供的版本。按其更新后的約定調整了本地測試：退出保留共享機器憑據與許可文件，由 SDK 的退出記錄阻止舊會話；重復解綁的第二個回執可以為 stale。仍檢查實際拒絕執行、新綁定恢復和自助額度，未放寬這些業務要求。


<!-- final-workspace-sdk-version-2026-10-24 -->

收尾時工作區已另更新至 Licentivo SDK **0.11.2**（`licentivo-sdk-v0.11.2-release-20261024`）。當前 115 個目標文件與清單、上游源文件的哈希均匹配。與本輪受測快照相比，上游源文件僅有 VERSION、Ruby VERSION 常量和 CMake 版本號變化；授權實現一致。當前導入腳本還增加了 Ruby gem 擴展目錄的原生庫查找。以上運行測試記錄對應固定的 0.11.1 快照，本報告不作為 0.11.2 發布包驗收記錄。

## 驗證

| 范圍 | 結果 |
| --- | --- |
| Launch Go 帳號 HTTP、DPAPI、退出存儲故障及跨進程鎖 | 26 條通過記錄，含子用例；無失敗、無跳過 |
| 同步官方 SDK 后 Go 帳號與簽名 SDK 回歸 | 21 條通過；兩個需要獨立資料庫的 HTTP 測試跳過，已在上一行及實際兩端聯調驗證 |
| 當前 Licentivo HTTP 授權回歸與專項控制 | 按用例合并兩次執行，62 條最終通過記錄；含修正重復回執斷言后的復核 |
| 當前官方 Go SDK | 67 條通過記錄，無失敗 |
| JavaScript / Python | 14 / 12 項通過，含實際簽名運行時 |
| C# / Java | 生命周期及官方運行時通過；Java 9 組帳號/安全測試通過 |
| Ruby / Rust | Ruby 17 項包裝層及實際原生 SDK 通過；Rust 16 項通過 |
| C / C++ | 兩個實際簽名 SDK 生命周期驅動均通過，覆蓋 DPAPI、斷網、存儲失敗和舊實例退出 |

真實兩端聯調使用實際 Launch、當前 Licentivo、MySQL、Go Launch SDK、官方授權 SDK 和 DPAPI，得到 **18 條階段通過記錄（17 個驗證階段及完成記錄）**。包含購買期限同步、實際受保護功能、普通關閉恢復、退出存儲寫入失敗/寫刪均失敗疊加兩端網路中斷、重啟拒絕恢復舊帳號、網路恢復后補交撤銷、新登錄、響應丟失、遠程解綁、續費退款及拒付后的授權拒絕。

專項實際服務驗證還確認：同一綁定代次提交不同操作編號只消耗一次自助額度；舊退出不刪除新綁定憑據和許可，斷網仍可恢復新綁定；同一舊 sid 換發新 JWT 不能恢復已退出綁定，新的真實登錄可激活；舊退出票據不影響新綁定；離線執行不越過已知簽名截止。

本輪未發現新增阻塞性業務問題。運行測試在 Windows 完成；真實兩端業務鏈使用 Go，其他語言完成本地簽名 SDK 測試。支付和翻譯服務為隔離模擬，沒有真實扣款、退款或部署；未訪問 192.168.2.177。臨時 Licentivo 服務和 MySQL 均已確認停止，原有服務與工作區其他變更保留。

原始日志、受測源碼快照和探針位于忽略目錄 `.local/account-store-fix-20261024/`。可分享摘要見 [驗證證據](https://github.com/spf86/licentivo-launch/blob/main/docs/account-store-fix-evidence-2026-10-24.json)。
