clementine-agent 1.18.117 → 1.18.118
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/cli/dashboard.js +32 -12
- package/package.json +1 -1
package/dist/cli/dashboard.js
CHANGED
|
@@ -20320,8 +20320,10 @@ if('serviceWorker' in navigator){navigator.serviceWorker.getRegistrations().then
|
|
|
20320
20320
|
<div id="skills-list" style="padding:6px"></div>
|
|
20321
20321
|
</div>
|
|
20322
20322
|
<div id="skills-detail-pane" style="overflow-y:auto;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);padding:0">
|
|
20323
|
-
<div id="skills-detail" style="padding:
|
|
20324
|
-
|
|
20323
|
+
<div id="skills-detail" style="padding:0;font-size:13px">
|
|
20324
|
+
<div style="padding:60px 24px;color:var(--text-muted);text-align:center;font-size:13px">
|
|
20325
|
+
Select a skill on the left to see its procedure, tools, and data sources.
|
|
20326
|
+
</div>
|
|
20325
20327
|
</div>
|
|
20326
20328
|
</div>
|
|
20327
20329
|
</div>
|
|
@@ -24473,7 +24475,14 @@ function renderScheduledTaskCard(task) {
|
|
|
24473
24475
|
if (task.maxRetries != null) badges += '<span class="badge badge-gray">' + esc(task.maxRetries) + ' retries</span>';
|
|
24474
24476
|
badges += operationUsageBadge(task.usage);
|
|
24475
24477
|
badges += '<span class="badge ' + (enabled ? 'badge-green' : 'badge-gray') + '">' + (enabled ? 'Enabled' : 'Disabled') + '</span>';
|
|
24476
|
-
|
|
24478
|
+
// 1.18.118 — only emit the health badge when it adds new information.
|
|
24479
|
+
// ok/idle are implicit when the green Enabled badge is showing, and
|
|
24480
|
+
// disabled would just duplicate the gray Disabled badge above.
|
|
24481
|
+
var hl = String(task.healthLabel || task.health || '').toLowerCase();
|
|
24482
|
+
if (hl && hl !== 'ok' && hl !== 'idle' && hl !== 'disabled') {
|
|
24483
|
+
var hlClass = (hl === 'broken' || hl === 'failed' || hl === 'timeout') ? 'badge-yellow' : (hl === 'running' ? 'badge-blue' : 'badge-gray');
|
|
24484
|
+
badges += '<span class="badge ' + hlClass + '">' + esc(task.healthLabel || task.health) + '</span>';
|
|
24485
|
+
}
|
|
24477
24486
|
var safeName = jsStr(task.name);
|
|
24478
24487
|
// PRD §10 / 1.18.91: when a task is mid-flight, Run Now is meaningless and
|
|
24479
24488
|
// would race against the concurrency lock; replace it with a Cancel button
|
|
@@ -25986,18 +25995,13 @@ async function refreshCron() {
|
|
|
25986
25995
|
if (visibleRunning.length > 10) html += '<div class="empty-state" style="padding:18px;color:var(--text-muted);font-size:13px">Showing 10 of ' + visibleRunning.length + ' active runs. Use the Owner filter to narrow this list.</div>';
|
|
25987
25996
|
}
|
|
25988
25997
|
|
|
25989
|
-
// ──
|
|
25990
|
-
|
|
25991
|
-
|
|
25992
|
-
+ '<div class="task-grid">' + visibleAttention.slice(0, 12).map(renderAttentionCard).join('') + '</div>';
|
|
25993
|
-
if (visibleAttention.length > 12) html += '<div class="empty-state" style="padding:18px;color:var(--text-muted);font-size:13px">Showing 12 of ' + visibleAttention.length + ' items. Use the Owner filter to narrow this list.</div>';
|
|
25994
|
-
}
|
|
25995
|
-
|
|
25996
|
-
// ── Zone 2 — Your tasks (the main card grid) ──
|
|
25998
|
+
// ── Zone 2 — Your tasks (the main card grid; promoted above "Needs
|
|
25999
|
+
// attention" in 1.18.118 so the user sees their working tasks at
|
|
26000
|
+
// fold instead of having to scroll past 1,000+ px of error cards).
|
|
25997
26001
|
var filteredTasks = applyTrickFilter(visibleTasks, _trickFilter);
|
|
25998
26002
|
var filterPillsHtml = renderTrickFilterRow(visibleTasks, _trickFilter);
|
|
25999
26003
|
var taskCountLabel = (_trickFilter.kind ? filteredTasks.length + '/' + visibleTasks.length : visibleTasks.length) + ' task' + (visibleTasks.length === 1 ? '' : 's');
|
|
26000
|
-
html += operationSectionHeader('Your tasks', 'Recurring jobs Clementine runs for you. Tap any card to edit; the toggle on each card pauses or resumes it.', 'badge-blue', taskCountLabel,
|
|
26004
|
+
html += operationSectionHeader('Your tasks', 'Recurring jobs Clementine runs for you. Tap any card to edit; the toggle on each card pauses or resumes it.', 'badge-blue', taskCountLabel, visibleRunning.length > 0 ? '28px' : '0')
|
|
26001
26005
|
+ filterPillsHtml
|
|
26002
26006
|
+ '<div class="task-grid">';
|
|
26003
26007
|
if (filteredTasks.length === 0) {
|
|
@@ -26021,6 +26025,22 @@ async function refreshCron() {
|
|
|
26021
26025
|
html += '<div class="task-grid">' + visibleWorkflows.map(renderScheduledWorkflowCard).join('') + '</div>';
|
|
26022
26026
|
}
|
|
26023
26027
|
|
|
26028
|
+
// ── Needs attention — collapsed by default in 1.18.118. Was the
|
|
26029
|
+
// second thing on the page; pushed "Your tasks" 1,000+ px below
|
|
26030
|
+
// the fold. Still surfaced visibly via a yellow count chip in the
|
|
26031
|
+
// summary so users know it's there. Click to expand for triage.
|
|
26032
|
+
if (visibleAttention.length > 0) {
|
|
26033
|
+
html += '<details style="margin-top:28px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:0;overflow:hidden">'
|
|
26034
|
+
+ '<summary style="padding:12px 16px;cursor:pointer;display:flex;align-items:center;gap:10px;user-select:none">'
|
|
26035
|
+
+ '<span style="font-size:14px;font-weight:600;color:var(--text-primary)">Needs attention</span>'
|
|
26036
|
+
+ '<span class="badge badge-yellow">' + visibleAttention.length + ' review</span>'
|
|
26037
|
+
+ '<span style="font-size:11px;color:var(--text-muted);margin-left:6px">Broken scheduled tasks and failed runtime work that can waste tokens or silently stop.</span>'
|
|
26038
|
+
+ '</summary>'
|
|
26039
|
+
+ '<div style="padding:0 16px 16px"><div class="task-grid">' + visibleAttention.slice(0, 12).map(renderAttentionCard).join('') + '</div>';
|
|
26040
|
+
if (visibleAttention.length > 12) html += '<div class="empty-state" style="padding:18px;color:var(--text-muted);font-size:13px">Showing 12 of ' + visibleAttention.length + ' items. Use the Owner filter to narrow this list.</div>';
|
|
26041
|
+
html += '</div></details>';
|
|
26042
|
+
}
|
|
26043
|
+
|
|
26024
26044
|
// ── Zone 3 — Recent history (last 50 runs across all jobs) ──
|
|
26025
26045
|
html += operationSectionHeader('Recent history', 'The last 50 task runs across every job, newest first. Click any row to open the full trace.', 'badge-gray', historyData.length + ' run' + (historyData.length === 1 ? '' : 's'), '28px');
|
|
26026
26046
|
html += renderRecentHistoryList(historyData);
|