diff --git a/plugins/kanban/dashboard/dist/index.js b/plugins/kanban/dashboard/dist/index.js index d60bc19289..ee1a25f065 100644 --- a/plugins/kanban/dashboard/dist/index.js +++ b/plugins/kanban/dashboard/dist/index.js @@ -1996,7 +1996,10 @@ return h("div", { className: "hermes-kanban-actions" }, b("→ triage", { status: "triage" }, t.status !== "triage"), b("→ ready", { status: "ready" }, t.status !== "ready"), - b("→ running", { status: "running" }, t.status !== "running"), + // No direct → running button: /tasks/:id PATCH rejects status=running + // with 400 (issue #19535). Tasks enter running only through the + // dispatcher's claim_task path, which atomically creates the run row, + // claim lock, and worker process metadata. b("Block", { status: "blocked" }, t.status === "running" || t.status === "ready", DESTRUCTIVE_TRANSITIONS.blocked), diff --git a/plugins/kanban/dashboard/dist/style.css b/plugins/kanban/dashboard/dist/style.css index 34fc714d11..9de372cbe2 100644 --- a/plugins/kanban/dashboard/dist/style.css +++ b/plugins/kanban/dashboard/dist/style.css @@ -364,11 +364,15 @@ letter-spacing: 0.02em; } .hermes-kanban-home-sub--on { - /* Subtly indicate the subscribed state without a hard color change so - * dashboard themes stay coherent. Border + tinted background. */ - border-color: color-mix(in srgb, var(--color-ring) 55%, var(--color-border)); - background: color-mix(in srgb, var(--color-ring) 14%, transparent); + /* Subscribed toggle — use a strong ring-colored accent so the on/off + * distinction reads at a glance, not just from the ✓ prefix. Border + + * filled background + bolder weight keep the state obvious across + * themes (tested on default teal and NERV orange). */ + border-color: var(--color-ring); + background: color-mix(in srgb, var(--color-ring) 32%, transparent); color: var(--color-foreground); + font-weight: 600; + box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-ring) 40%, transparent); } .hermes-kanban-section {