fix(ui): files panel sort cache goes stale at the 2000-row cap — newest entry never appeared without re-sorting
This commit is contained in:
parent
3573c6860a
commit
c75cb6c079
@ -68,6 +68,7 @@ let _historySortClicked = false;
|
||||
// Session-specific files for the "Files" panel (resets each session)
|
||||
let sessionFilesData = [];
|
||||
let _recentSeqCounter = 0;
|
||||
let _recentDataVersion = 0;
|
||||
const recentSortState = { key: 'date', direction: 'desc' };
|
||||
const selectedRecentIds = new Set();
|
||||
// Maintained incrementally — avoids O(n) filter() scans every 250ms in the status bar.
|
||||
@ -1464,6 +1465,7 @@ function deleteSelectedRecentFiles() {
|
||||
});
|
||||
_sessionDoneCount = Math.max(0, _sessionDoneCount - removedDone);
|
||||
_sessionErrorCount = Math.max(0, _sessionErrorCount - removedErr);
|
||||
_recentDataVersion++;
|
||||
selectedRecentIds.clear();
|
||||
renderRecentUploadsPanel();
|
||||
}
|
||||
@ -1475,6 +1477,7 @@ function clearAllRecentFiles() {
|
||||
_sessionFileKeys.clear();
|
||||
_sessionDoneCount = 0;
|
||||
_sessionErrorCount = 0;
|
||||
_recentDataVersion++;
|
||||
selectedRecentIds.clear();
|
||||
renderRecentUploadsPanel();
|
||||
}
|
||||
@ -2511,6 +2514,7 @@ function maybeAddSessionFile(job) {
|
||||
isError: false,
|
||||
order: _recentSeqCounter++
|
||||
});
|
||||
_recentDataVersion++;
|
||||
_sessionDoneCount++;
|
||||
// Drop oldest entries past the cap to keep render cost bounded.
|
||||
// Without this, sessionFilesData grows unbounded across the session
|
||||
@ -4175,7 +4179,7 @@ let _recentSortCache = { sig: '', result: [] };
|
||||
|
||||
function sortRecentFiles(data) {
|
||||
const { key, direction } = recentSortState;
|
||||
const sig = `${key}|${direction}|${data.length}`;
|
||||
const sig = `${key}|${direction}|${data.length}|${_recentDataVersion}`;
|
||||
if (_recentSortCache.sig === sig) return _recentSortCache.result;
|
||||
|
||||
const sorted = data.slice();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user