fix(dashboard): reverse-chronological sort within decision status groups

Within resolved/superseded: most recently decided_at first.
Within open/escalated: soonest deadline first, then most recently
created_at (previously had no created_at fallback).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-11 22:06:13 +01:00
parent 9f744dd7f3
commit aef86a1934

View File

@@ -30,8 +30,16 @@ const decState = (async function*() {
const rank = {escalated: 0, open: 1, resolved: 2, superseded: 3};
const dr = (rank[a.status] ?? 9) - (rank[b.status] ?? 9);
if (dr !== 0) return dr;
// Resolved / superseded: most recently decided first
if (a.decided_at || b.decided_at) {
if (a.decided_at && b.decided_at) return b.decided_at.localeCompare(a.decided_at);
return a.decided_at ? -1 : 1;
}
// Open / escalated: soonest deadline first, then most recently created
if (a.deadline && b.deadline) return a.deadline.localeCompare(b.deadline);
return a.deadline ? -1 : b.deadline ? 1 : 0;
if (a.deadline) return -1;
if (b.deadline) return 1;
return b.created_at.localeCompare(a.created_at);
});
}
} catch {}