@beastmode-develeap/beastmode 0.1.312 → 0.1.314
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/dist/web/board.html +94 -9
- package/dist/web/build-commit.txt +1 -1
- package/dist/web/build-stamp.txt +1 -1
- package/package.json +1 -1
package/dist/web/board.html
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
}
|
|
16
16
|
</script>
|
|
17
17
|
<!--BOARD_DATA-->
|
|
18
|
-
<script>window.__BUILD_STAMP__ = "20260529-
|
|
18
|
+
<script>window.__BUILD_STAMP__ = "20260529-090337-9d073a5";</script>
|
|
19
19
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
20
20
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
21
21
|
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
@@ -3551,6 +3551,76 @@ input[type="range"]::-webkit-slider-thumb {
|
|
|
3551
3551
|
.loading-text { font-size: 13px; color: var(--text-muted); }
|
|
3552
3552
|
.empty-text { font-size: 13px; color: var(--text-muted); }
|
|
3553
3553
|
|
|
3554
|
+
/* Timeline rail */
|
|
3555
|
+
.timeline-rail {
|
|
3556
|
+
position: relative;
|
|
3557
|
+
padding-left: 32px;
|
|
3558
|
+
}
|
|
3559
|
+
.timeline-rail::before {
|
|
3560
|
+
content: '';
|
|
3561
|
+
position: absolute;
|
|
3562
|
+
left: 11px;
|
|
3563
|
+
top: 16px;
|
|
3564
|
+
bottom: 16px;
|
|
3565
|
+
width: 2px;
|
|
3566
|
+
background: var(--border);
|
|
3567
|
+
}
|
|
3568
|
+
.timeline-rail.single-entry::before {
|
|
3569
|
+
display: none;
|
|
3570
|
+
}
|
|
3571
|
+
|
|
3572
|
+
/* Timeline node */
|
|
3573
|
+
.timeline-node {
|
|
3574
|
+
position: relative;
|
|
3575
|
+
margin-bottom: 8px;
|
|
3576
|
+
}
|
|
3577
|
+
.timeline-dot {
|
|
3578
|
+
position: absolute;
|
|
3579
|
+
left: -25px;
|
|
3580
|
+
top: 14px;
|
|
3581
|
+
width: 8px;
|
|
3582
|
+
height: 8px;
|
|
3583
|
+
border-radius: 50%;
|
|
3584
|
+
background: var(--accent);
|
|
3585
|
+
border: 2px solid var(--bg-card);
|
|
3586
|
+
z-index: 1;
|
|
3587
|
+
}
|
|
3588
|
+
.timeline-dot.dot-system { background: var(--text-muted); }
|
|
3589
|
+
.timeline-dot.dot-bot { background: var(--accent); }
|
|
3590
|
+
.timeline-dot.dot-user { background: var(--info); }
|
|
3591
|
+
|
|
3592
|
+
/* Author badge */
|
|
3593
|
+
.timeline-author-badge {
|
|
3594
|
+
display: inline-block;
|
|
3595
|
+
font-size: 9px;
|
|
3596
|
+
font-weight: 700;
|
|
3597
|
+
letter-spacing: 0.5px;
|
|
3598
|
+
padding: 1px 5px;
|
|
3599
|
+
border-radius: 3px;
|
|
3600
|
+
margin-left: 6px;
|
|
3601
|
+
vertical-align: middle;
|
|
3602
|
+
}
|
|
3603
|
+
.timeline-author-badge.badge-sys {
|
|
3604
|
+
background: var(--bg-input);
|
|
3605
|
+
color: var(--text-muted);
|
|
3606
|
+
}
|
|
3607
|
+
.timeline-author-badge.badge-bot {
|
|
3608
|
+
background: var(--accent-subtle);
|
|
3609
|
+
color: var(--accent);
|
|
3610
|
+
}
|
|
3611
|
+
.timeline-author-badge.badge-user {
|
|
3612
|
+
background: var(--info-subtle);
|
|
3613
|
+
color: var(--info);
|
|
3614
|
+
}
|
|
3615
|
+
|
|
3616
|
+
/* Timeline time label (left gutter) */
|
|
3617
|
+
.timeline-time-gutter {
|
|
3618
|
+
position: absolute;
|
|
3619
|
+
left: -32px;
|
|
3620
|
+
top: 14px;
|
|
3621
|
+
width: 0;
|
|
3622
|
+
}
|
|
3623
|
+
|
|
3554
3624
|
/* ================================================================
|
|
3555
3625
|
CREATE TASK MODAL
|
|
3556
3626
|
================================================================ */
|
|
@@ -5105,6 +5175,14 @@ function CollapsibleUpdate({ html: content }) {
|
|
|
5105
5175
|
|
|
5106
5176
|
// ── Update Item with threaded replies ──
|
|
5107
5177
|
|
|
5178
|
+
function classifyAuthor(creatorName) {
|
|
5179
|
+
const name = (creatorName || '').toLowerCase().trim();
|
|
5180
|
+
if (name === 'system') return { badge: 'SYS', dotClass: 'dot-system', badgeClass: 'badge-sys' };
|
|
5181
|
+
if (name === 'beastmode' || name === 'pipeline' || name.startsWith('daemon'))
|
|
5182
|
+
return { badge: 'BOT', dotClass: 'dot-bot', badgeClass: 'badge-bot' };
|
|
5183
|
+
return { badge: 'USER', dotClass: 'dot-user', badgeClass: 'badge-user' };
|
|
5184
|
+
}
|
|
5185
|
+
|
|
5108
5186
|
function UpdateItemWithReplies({ update }) {
|
|
5109
5187
|
const [replies, setReplies] = useState([]);
|
|
5110
5188
|
const [showReplies, setShowReplies] = useState(false);
|
|
@@ -5136,12 +5214,16 @@ function UpdateItemWithReplies({ update }) {
|
|
|
5136
5214
|
setPosting(false);
|
|
5137
5215
|
};
|
|
5138
5216
|
|
|
5217
|
+
const { badge, dotClass, badgeClass } = classifyAuthor(update.creator_name || (update.creator && update.creator.name));
|
|
5139
5218
|
return html`
|
|
5140
|
-
<div class="
|
|
5141
|
-
<
|
|
5142
|
-
|
|
5143
|
-
|
|
5144
|
-
|
|
5219
|
+
<div class="timeline-node">
|
|
5220
|
+
<span class=${'timeline-dot ' + dotClass} aria-hidden="true"></span>
|
|
5221
|
+
<div class="update-item" style="padding:12px;background:var(--bg-input);border-radius:var(--radius-sm);margin-bottom:8px;">
|
|
5222
|
+
<div class="update-author" style="font-size:11px;font-weight:600;color:var(--accent);margin-bottom:4px;">
|
|
5223
|
+
${update.creator_name || (update.creator && update.creator.name) || 'system'}
|
|
5224
|
+
<span class=${'timeline-author-badge ' + badgeClass}>${badge}</span>
|
|
5225
|
+
</div>
|
|
5226
|
+
<${CollapsibleUpdate} html=${update.body || update.text_body || ''} />
|
|
5145
5227
|
<div style="display:flex;justify-content:space-between;align-items:center;margin-top:6px;">
|
|
5146
5228
|
<div class="update-time" style="font-size:11px;color:var(--text-muted);font-family:var(--font-mono);">
|
|
5147
5229
|
${timeAgo(update.created_at)}
|
|
@@ -5180,6 +5262,7 @@ function UpdateItemWithReplies({ update }) {
|
|
|
5180
5262
|
</div>
|
|
5181
5263
|
</div>
|
|
5182
5264
|
` : null}
|
|
5265
|
+
</div>
|
|
5183
5266
|
</div>
|
|
5184
5267
|
`;
|
|
5185
5268
|
}
|
|
@@ -6195,9 +6278,11 @@ function ItemDetailSidebar({ item, onClose, onStatusChange, selectedProject, all
|
|
|
6195
6278
|
<${UpdatesHeader} count=${updates.length} sortNewest=${sortNewest} onToggle=${() => setSortNewest(!sortNewest)} itemId=${item.id} onPosted=${refreshUpdates} />
|
|
6196
6279
|
${loadingUpdates ? html`<div class="loading-text">Loading updates...</div>` :
|
|
6197
6280
|
sortedUpdates.length === 0 ? html`<div class="empty-text">No updates yet</div>` :
|
|
6198
|
-
sortedUpdates.
|
|
6199
|
-
|
|
6200
|
-
|
|
6281
|
+
html`<div class=${'timeline-rail' + (sortedUpdates.length <= 1 ? ' single-entry' : '')}>
|
|
6282
|
+
${sortedUpdates.map((u, i) => html`
|
|
6283
|
+
<${UpdateItemWithReplies} key=${u.id || i} update=${u} />
|
|
6284
|
+
`)}
|
|
6285
|
+
</div>`
|
|
6201
6286
|
}
|
|
6202
6287
|
</div>
|
|
6203
6288
|
<div style="border-top:1px solid var(--border);padding:0 24px 16px;">
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
9d073a53d35827399c055821a741cc0921aee14e
|
package/dist/web/build-stamp.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
20260529-
|
|
1
|
+
20260529-090337-9d073a5
|