diff --git a/app/releases.js b/app/releases.js index c975fe5..2c65042 100644 --- a/app/releases.js +++ b/app/releases.js @@ -18,9 +18,14 @@ export function selectReleasesToDelete(releases, keepCount) { return Number.isNaN(time) ? 0 : time } // 先一次性計算每筆的時間戳,避免在排序比較中重複呼叫 Date.parse。 + // 時間相同時以 id(數值,大者為新)作為次要鍵,確保排序結果具決定性。 return releases - .map((release) => ({ release, time: createdTime(release) })) - .sort((a, b) => b.time - a.time) + .map((release) => ({ + release, + time: createdTime(release), + id: Number(release?.id) || 0, + })) + .sort((a, b) => b.time - a.time || b.id - a.id) .map((entry) => entry.release) .slice(keepCount) }