CubeLV 平台 Bug 回報:並行對話鍛造聯動插件互相覆蓋(版本乒乓)

由 蔡其樺 分享的筆記

重現率 必現 並行 + 聯動 + 先後 publish 即觸發 傷害 靜默覆蓋 無警告、需人肉 diff 才發現 波及 版本乒乓 A 蓋 B → B 蓋 A 來回重演 一句話 分開修反而互相踩��:不是插件太多,是 聯動 + 舊基線直接 publish 讓後發布者把先發布者的版本吃掉。 現象 同時開兩個對話,各修一個插件(心態:剛好一對話一插件、互不干擾)。但兩個插件之間有聯動 —— 例如共用元件、共用 itemType / schema、或互相讀寫對方的對應邏輯 —— 結果: 對話 A 修完插件 A 並 pluginpublish → 遠端已是新版 A 對話 B 仍停在舊基線,修完插件 B 也 pluginpublish → 把 A 的新版蓋回舊版 對話 A 發現修改消失,再 publish 一次 → 又把 B 蓋掉 來回覆蓋形成「版本乒乓」,最後誰最後 publish 誰贏 重現步驟 準備兩個有聯動的插件(插件 A / 插件 B 共用某個前端元件、schema 或跨插件讀寫邏輯) 開 對話 A 修插件 A、開 對話 B 修插件 B,並行進行 對話 A 完成鍛造流程並 pluginpublish (發布 A 的新版) 對話 B 在 未同步最新 main 的狀態下也 pluginpublish (發布 B 的新版) 回到對話 A 檢查 → A 的修改被 B 的發布覆蓋/回退;回到對話 B 也可能被下一輪 A 的修補再覆蓋 若雙方未察覺基線已落後,重複 publish 即穩定復現來回覆蓋 時序圖 對話 A 修插件 A → publish A v2 ✅  (遠端:A v2 / B v1) 對話 B 基線仍是舊版 (沒拉到 A v2)→ 修插件 B → publish B v2   覆蓋回 A v1  (遠端:A v1 / B v2) 對話 A 發…

用 AStockTeam 製作