feat(kanban-dashboard): sharper home-channel toggle contrast, drop → running action (#19916)

Follow-up polish to the kanban dashboard from #19864 and #19705.

**Home-channel toggle contrast.** The `.hermes-kanban-home-sub--on`
class previously used `color-mix(var(--color-ring) 14%, transparent)`
which was nearly invisible on both the default teal and NERV themes —
the on/off distinction relied almost entirely on the ✓ prefix glyph.
Bump to 32% fill + full-opacity ring border + inner ring shadow +
font-weight 600. Still theme-scoped (no hardcoded colors), but reads
at a glance on both tested themes.

**Drop the → running status action.** Since #19705, `PATCH /tasks/:id`
rejects `status=running` with HTTP 400 — only the dispatcher's
`claim_task` path legitimately enters that state (so the run row,
claim lock, and worker PID are created atomically). The UI button was
still present and produced a 400 on click, which is a confusing dead
affordance. Remove it from `StatusActions`; add a comment pointing to
#19535 so future editors know why it's missing.

Live-tested on the default Hermes Teal theme. 53/53 kanban dashboard
plugin tests still pass.
This commit is contained in:
Teknium 2026-05-04 14:48:19 -07:00 committed by GitHub
parent 429b8eceb4
commit 56a78e74b2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 12 additions and 5 deletions

View file

@ -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),

View file

@ -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 {