diff --git a/server/src/dashboard.html b/server/src/dashboard.html
index 02f936f..6a91368 100644
--- a/server/src/dashboard.html
+++ b/server/src/dashboard.html
@@ -977,10 +977,10 @@
const history = await response.json();
const feed = document.getElementById('activity-feed');
feed.innerHTML = '';
- history.forEach(item => {
+ [...history].reverse().forEach(item => {
const div = document.createElement('div');
div.className = 'feed-entry';
- const timeStr = new Date(item.time).toLocaleTimeString([], {hour: '2-digit', minute:'2-digit', second:'2-digit'});
+ const timeStr = new Date(item.time).toLocaleString([], {month: '2-digit', day: '2-digit', hour: '2-digit', minute:'2-digit', second:'2-digit'});
div.innerHTML = `[${timeStr}] ${item.message || item.data}`;
feed.appendChild(div);
});
@@ -1000,17 +1000,17 @@
const data = JSON.parse(event.data);
if (data.type === 'activity') {
// Check scroll state before appending
- const isScrolledToBottom = feed.scrollHeight - feed.clientHeight <= feed.scrollTop + 20;
+ const isScrolledToTop = feed.scrollTop <= 20;
const div = document.createElement('div');
div.className = 'feed-entry';
- const timeStr = new Date(data.data.time).toLocaleTimeString([], {hour: '2-digit', minute:'2-digit', second:'2-digit'});
+ const timeStr = new Date(data.data.time).toLocaleString([], {month: '2-digit', day: '2-digit', hour: '2-digit', minute:'2-digit', second:'2-digit'});
div.innerHTML = `[${timeStr}] ${data.data.message || data.data.data || data.data}`;
- feed.appendChild(div);
+ feed.prepend(div);
// Enforce max history
while (feed.children.length > MAX_ACTIVITY_HISTORY) {
- feed.removeChild(feed.firstChild);
+ feed.removeChild(feed.lastChild);
}
// Auto-scroll logic
@@ -1169,3 +1169,4 @@