Merge branch 'main' into bb/gui
This commit is contained in:
+15
-22
@@ -1548,14 +1548,12 @@
|
||||
h("div", { className: "flex flex-col gap-1" },
|
||||
h(Label, { className: "text-xs text-muted-foreground" },
|
||||
"Orchestrator profile"),
|
||||
h(Select, {
|
||||
h(Select, Object.assign({
|
||||
value: settings.orchestrator_profile || "",
|
||||
className: "h-8",
|
||||
onChange: function (e) {
|
||||
const v = (e && e.target ? e.target.value : e) || "";
|
||||
saveSettings({ orchestrator_profile: v });
|
||||
},
|
||||
},
|
||||
}, selectChangeHandler(function (v) {
|
||||
saveSettings({ orchestrator_profile: v });
|
||||
})),
|
||||
h(SelectOption, { value: "" },
|
||||
"(default: " + (settings.active_profile || "default") + ")"),
|
||||
profileOptions,
|
||||
@@ -1566,14 +1564,12 @@
|
||||
h("div", { className: "flex flex-col gap-1" },
|
||||
h(Label, { className: "text-xs text-muted-foreground" },
|
||||
"Default assignee"),
|
||||
h(Select, {
|
||||
h(Select, Object.assign({
|
||||
value: settings.default_assignee || "",
|
||||
className: "h-8",
|
||||
onChange: function (e) {
|
||||
const v = (e && e.target ? e.target.value : e) || "";
|
||||
saveSettings({ default_assignee: v });
|
||||
},
|
||||
},
|
||||
}, selectChangeHandler(function (v) {
|
||||
saveSettings({ default_assignee: v });
|
||||
})),
|
||||
h(SelectOption, { value: "" },
|
||||
"(default: " + (settings.active_profile || "default") + ")"),
|
||||
profileOptions,
|
||||
@@ -1701,7 +1697,7 @@
|
||||
return h("div", { className: "hermes-kanban-boardswitcher" },
|
||||
h("div", { className: "hermes-kanban-boardswitcher-inner" },
|
||||
h("div", { className: "flex flex-col gap-0.5" },
|
||||
h("div", { className: "text-[11px] uppercase tracking-wider text-muted-foreground" },
|
||||
h("div", { className: "text-[11px] tracking-wider text-muted-foreground" },
|
||||
tx(t, "board", "Board")),
|
||||
h("div", { className: "flex items-center gap-2" },
|
||||
h(Select, Object.assign({
|
||||
@@ -2027,11 +2023,10 @@
|
||||
),
|
||||
h("div", { className: "hermes-kanban-bulk-reassign",
|
||||
title: "Reassign selected tasks to a different Hermes profile. Pick a profile (or unassign) and click Apply." },
|
||||
h(Select, {
|
||||
h(Select, Object.assign({
|
||||
value: assignee,
|
||||
onChange: function (e) { setAssignee(e.target.value); },
|
||||
className: "h-7 text-xs",
|
||||
},
|
||||
}, selectChangeHandler(setAssignee)),
|
||||
h(SelectOption, { value: "" }, "— reassign —"),
|
||||
h(SelectOption, { value: "__none__" }, "(unassign)"),
|
||||
props.assignees.map(function (a) {
|
||||
@@ -2542,12 +2537,11 @@
|
||||
className: "h-7 text-xs",
|
||||
}),
|
||||
h("div", { className: "flex gap-2" },
|
||||
h(Select, {
|
||||
h(Select, Object.assign({
|
||||
value: workspaceKind,
|
||||
onChange: function (e) { setWorkspaceKind(e.target.value); },
|
||||
title: "scratch: isolated temp dir (default). worktree: git worktree on the assignee profile. dir: exact path (required below).",
|
||||
className: "h-7 text-xs w-28",
|
||||
},
|
||||
}, selectChangeHandler(setWorkspaceKind)),
|
||||
h(SelectOption, { value: "scratch" }, "scratch"),
|
||||
h(SelectOption, { value: "worktree" }, "worktree"),
|
||||
h(SelectOption, { value: "dir" }, "dir"),
|
||||
@@ -2559,12 +2553,11 @@
|
||||
className: "h-7 text-xs flex-1",
|
||||
}) : null,
|
||||
),
|
||||
h(Select, {
|
||||
h(Select, Object.assign({
|
||||
value: parent,
|
||||
onChange: function (e) { setParent(e.target.value); },
|
||||
className: "h-7 text-xs",
|
||||
title: "Optional parent task. A child stays blocked in its current column until the parent is marked done.",
|
||||
},
|
||||
}, selectChangeHandler(setParent)),
|
||||
h(SelectOption, { value: "" }, tx(t, "noParent", "— no parent —")),
|
||||
(props.allTasks || []).map(function (task) {
|
||||
return h(SelectOption, { key: task.id, value: task.id },
|
||||
|
||||
-5
@@ -465,7 +465,6 @@
|
||||
.hermes-kanban-section-head {
|
||||
font-size: 0.72rem;
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.07em;
|
||||
color: var(--color-muted-foreground);
|
||||
}
|
||||
@@ -611,7 +610,6 @@
|
||||
}
|
||||
.hermes-kanban-deps-label {
|
||||
font-size: 0.68rem;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.08em;
|
||||
color: var(--color-muted-foreground);
|
||||
min-width: 4rem;
|
||||
@@ -691,7 +689,6 @@
|
||||
border: 0;
|
||||
color: var(--color-muted-foreground);
|
||||
font-size: 0.7rem;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.05em;
|
||||
cursor: pointer;
|
||||
padding: 0;
|
||||
@@ -869,7 +866,6 @@
|
||||
.hermes-kanban-run-outcome {
|
||||
font-family: var(--font-mono, ui-monospace, monospace);
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.05em;
|
||||
color: var(--color-foreground);
|
||||
}
|
||||
@@ -929,7 +925,6 @@
|
||||
.hermes-kanban-run-meta-label {
|
||||
font-size: 0.65rem;
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.06em;
|
||||
color: var(--color-muted-foreground);
|
||||
padding-bottom: 0.15rem;
|
||||
|
||||
@@ -224,6 +224,9 @@ def _compute_task_diagnostics(
|
||||
rule definitions.
|
||||
"""
|
||||
from hermes_cli import kanban_diagnostics as kd
|
||||
from hermes_cli.config import load_config
|
||||
|
||||
diag_config = kd.config_from_runtime_config(load_config())
|
||||
|
||||
# Build the candidate task list. We need each task's row + its
|
||||
# events + its runs. Doing N separate queries works but scales
|
||||
@@ -270,6 +273,7 @@ def _compute_task_diagnostics(
|
||||
r,
|
||||
events_by_task.get(tid, []),
|
||||
runs_by_task.get(tid, []),
|
||||
config=diag_config,
|
||||
)
|
||||
if diags:
|
||||
out[tid] = [d.to_dict() for d in diags]
|
||||
|
||||
Reference in New Issue
Block a user