uv-suite 0.24.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uv-suite",
3
- "version": "0.24.0",
3
+ "version": "0.25.0",
4
4
  "description": "Portable framework for AI-assisted software development. 10 agents, 9 skills, 5 hooks, 4 personas. Works with Claude Code, Cursor, and Codex.",
5
5
  "author": "Utsav Anand",
6
6
  "license": "MIT",
@@ -111,7 +111,12 @@
111
111
  <select id="filterSession"><option value="">All sessions</option></select>
112
112
  <button id="btnHumanOnly" onclick="toggleHumanOnly()">Human needed</button>
113
113
  <button id="btnClear" onclick="clearEvents()">Clear</button>
114
- <button id="btnAutoScroll" class="active" onclick="toggleAutoScroll()">Auto-scroll</button>
114
+ </div>
115
+
116
+ <!-- Loader at top — latest events appear here -->
117
+ <div class="timeline-end" id="timelineEnd">
118
+ <div class="loader"></div>
119
+ <div class="waiting" id="waitingText">Listening for events...</div>
115
120
  </div>
116
121
 
117
122
  <div class="timeline" id="timeline">
@@ -121,11 +126,6 @@
121
126
  </div>
122
127
  </div>
123
128
 
124
- <!-- Bottom loader — always visible, shows system is listening -->
125
- <div class="timeline-end" id="timelineEnd">
126
- <div class="loader"></div>
127
- <div class="waiting" id="waitingText">Listening for events...</div>
128
- </div>
129
129
 
130
130
  <script>
131
131
  const timeline = document.getElementById('timeline');
@@ -329,14 +329,17 @@ function addEvent(ev) {
329
329
  const div = renderEvent(ev);
330
330
  div.classList.add('latest');
331
331
  lastEventDiv = div;
332
- timeline.appendChild(div);
332
+
333
+ // Prepend — newest at top
334
+ timeline.prepend(div);
333
335
 
334
336
  updateStats();
335
337
  updateFilterType(ev);
336
338
  updateWaitingText(ev);
337
339
 
340
+ // Scroll to top to show latest
338
341
  if (autoScroll) {
339
- document.getElementById('timelineEnd').scrollIntoView({ behavior: 'smooth' });
342
+ timeline.scrollTop = 0;
340
343
  }
341
344
  }
342
345