bullswarm 0.18.3 → 0.18.4
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/CHANGELOG.md +5 -0
- package/package.json +1 -1
- package/src/workflow/dashboard.js +8 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# bullswarm changelog
|
|
2
2
|
|
|
3
|
+
## 0.18.4 — reliable auto-follow tail
|
|
4
|
+
|
|
5
|
+
- Timestamp-aligned mobile auto-follow now preserves the newest workflow
|
|
6
|
+
milestone instead of replacing it with a spurious newer-rows marker.
|
|
7
|
+
|
|
3
8
|
## 0.18.3 — mobile timeline polish
|
|
4
9
|
|
|
5
10
|
- Auto-follow now begins at a timestamped milestone instead of exposing an
|
package/package.json
CHANGED
|
@@ -559,18 +559,20 @@ function renderWorkflowOverviewPanel(model, width, height, spinnerFrame, timelin
|
|
|
559
559
|
const timelineRows = Math.max(1, contentRows - liveRows - nextRows);
|
|
560
560
|
const maxTimelineScroll = Math.max(0, timeline.lines.length - timelineRows);
|
|
561
561
|
const scroll = clamp(timelineScroll, 0, maxTimelineScroll);
|
|
562
|
-
|
|
562
|
+
const end = Math.max(0, timeline.lines.length - scroll);
|
|
563
|
+
let start = Math.max(0, end - timelineRows);
|
|
563
564
|
if (start > 0) {
|
|
564
|
-
|
|
565
|
+
start = Math.max(0, end - Math.max(0, timelineRows - 1));
|
|
566
|
+
while (start < end && !/^\d{2}:\d{2}\s/.test(timeline.lines[start])) start += 1;
|
|
565
567
|
}
|
|
566
|
-
|
|
567
|
-
let visibleTimeline = timeline.lines.slice(start, start + historyRows);
|
|
568
|
+
let visibleTimeline = timeline.lines.slice(start, end);
|
|
568
569
|
if (start > 0) {
|
|
569
570
|
visibleTimeline.unshift(dimText(`↑ ${start} earlier timeline rows`, inner));
|
|
570
571
|
}
|
|
571
|
-
const end = start + historyRows;
|
|
572
572
|
if (end < timeline.lines.length && visibleTimeline.length) {
|
|
573
|
-
|
|
573
|
+
const marker = dimText(`↓ ${timeline.lines.length - end} newer timeline rows`, inner);
|
|
574
|
+
if (visibleTimeline.length >= timelineRows) visibleTimeline[visibleTimeline.length - 1] = marker;
|
|
575
|
+
else visibleTimeline.push(marker);
|
|
574
576
|
}
|
|
575
577
|
const visibleLive = live.lines.slice(0, liveRows);
|
|
576
578
|
const visibleNext = next.slice(0, nextRows);
|