fix: reconcile stale staged updates
TallyNote release / linux-x64 (push) Successful in 6m50s

This commit is contained in:
Qiufeng
2026-09-05 16:31:53 +08:00
parent efbd0e0d87
commit 6c96cddd4e
4 changed files with 20 additions and 5 deletions
+3 -2
View File
@@ -439,7 +439,7 @@ function recoveryStateJobId(filePath: string): string | null {
}
}
function currentReleaseVersion(config: AppConfig): string | null {
export function currentReleaseVersion(config: AppConfig): string | null {
try {
const target = realpathSync(config.currentLink);
const releases = realpathSync(config.releasesDir);
@@ -498,7 +498,8 @@ export function reconcileOrphanedUpdateJobs(database: Database.Database, config:
// completes the same release) before returning to this page. Treat the
// archive as an expired terminal task so it cannot keep blocking the
// queue or appear as an "apply" action for the current version.
if (row.status === "staged" && !isNewerVersion(config.appVersion, row.version) && !matchingFreshRequest && !matchingFreshState) {
const effectiveCurrentVersion = releaseVersion ?? config.appVersion;
if (row.status === "staged" && !isNewerVersion(effectiveCurrentVersion, row.version) && !matchingFreshRequest && !matchingFreshState) {
const changed = database.transaction(() => {
const result = database.prepare(`
UPDATE update_jobs