diff --git a/static/js/tasks.js b/static/js/tasks.js
index 5576c45f7..7319e30d3 100644
--- a/static/js/tasks.js
+++ b/static/js/tasks.js
@@ -627,13 +627,15 @@ function _renderList() {
// status dot (right). Click to expand.
const titleRow = document.createElement('div');
titleRow.style.cssText = 'display:flex;align-items:center;gap:6px;cursor:pointer;';
- const pausedBadge = task.status === 'paused'
- ? ` paused`
- : '';
+ const statusBadge = task.status === 'paused'
+ ? ` paused`
+ : task.status === 'active'
+ ? ` active`
+ : '';
const builtinBadge = task.is_builtin
? `built-in${task.is_modified ? ' · edited' : ''}`
: '';
- titleRow.innerHTML = `${_taskIcon(task)}${_esc(task.name)}${builtinBadge}${pausedBadge}${_statusDot(task.status)}`;
+ titleRow.innerHTML = `${_taskIcon(task)}${_esc(task.name)}${builtinBadge}${statusBadge}${_statusDot(task.status)}`;
// ... menu button (hover to show)
const actionsWrap = document.createElement('div');
@@ -690,6 +692,15 @@ function _renderList() {
meta.textContent = metaParts.join(' · ');
content.appendChild(meta);
+ const statusPill = titleRow.querySelector('[data-task-status-action]');
+ if (statusPill) {
+ statusPill.addEventListener('click', async (e) => {
+ e.stopPropagation();
+ if (statusPill.dataset.taskStatusAction === 'pause') await _doPause(task.id);
+ else await _doResume(task.id);
+ });
+ }
+
// Expandable detail (revealed on click) — like the library doc/chat cards:
// extra meta + last-run result + description.
const detail = document.createElement('div');
diff --git a/static/style.css b/static/style.css
index 1fb16d4b9..f7143e491 100644
--- a/static/style.css
+++ b/static/style.css
@@ -9955,7 +9955,7 @@ textarea.memory-add-input {
opacity: 0.85 !important;
filter: saturate(0.9);
}
-.task-paused-badge {
+.task-status-badge {
display: inline-flex;
align-items: center;
gap: 3px;
@@ -9963,11 +9963,18 @@ textarea.memory-add-input {
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.5px;
- color: var(--orange, #ff9800);
- background: color-mix(in srgb, var(--orange, #ff9800) 12%, transparent);
padding: 2px 6px;
border-radius: 10px;
flex-shrink: 0;
+ cursor: pointer;
+}
+.task-paused-badge {
+ color: var(--orange, #ff9800);
+ background: color-mix(in srgb, var(--orange, #ff9800) 12%, transparent);
+}
+.task-active-badge {
+ color: var(--green, #50fa7b);
+ background: color-mix(in srgb, var(--green, #50fa7b) 12%, transparent);
}
.task-builtin-badge {