Merge origin/main into bb/gui
This commit is contained in:
+4
-1
@@ -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),
|
||||
|
||||
+8
-4
@@ -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 {
|
||||
|
||||
@@ -509,7 +509,20 @@ class TeamsAdapter(BasePlatformAdapter):
|
||||
|
||||
for chunk in chunks:
|
||||
try:
|
||||
result = await self._app.send(chat_id, chunk)
|
||||
if reply_to and reply_to.isdigit() and reply_to != "0":
|
||||
try:
|
||||
result = await self._app.reply(chat_id, reply_to, chunk)
|
||||
except Exception as reply_err:
|
||||
# Group chats 400 on threaded sends; the Teams SDK
|
||||
# doesn't expose typed HTTP errors, so fall back on
|
||||
# any exception and log for diagnostics.
|
||||
logger.debug(
|
||||
"Teams reply() failed, falling back to flat send: %s",
|
||||
reply_err,
|
||||
)
|
||||
result = await self._app.send(chat_id, chunk)
|
||||
else:
|
||||
result = await self._app.send(chat_id, chunk)
|
||||
last_message_id = getattr(result, "id", None)
|
||||
except Exception as e:
|
||||
return SendResult(success=False, error=str(e), retryable=True)
|
||||
|
||||
Reference in New Issue
Block a user