mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-10 11:04:59 +00:00
fix: skip heartbeat when HEARTBEAT.md does not exist (#20461)
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: f6e5f8172a
Co-authored-by: vikpos <24960005+vikpos@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
import {
|
||||
isHeartbeatActionWakeReason,
|
||||
normalizeHeartbeatWakeReason,
|
||||
resolveHeartbeatReasonKind,
|
||||
} from "./heartbeat-reason.js";
|
||||
|
||||
export type HeartbeatRunResult =
|
||||
| { status: "ran"; durationMs: number }
|
||||
| { status: "skipped"; reason: string }
|
||||
@@ -29,7 +35,6 @@ let timerKind: WakeTimerKind | null = null;
|
||||
|
||||
const DEFAULT_COALESCE_MS = 250;
|
||||
const DEFAULT_RETRY_MS = 1_000;
|
||||
const HOOK_REASON_PREFIX = "hook:";
|
||||
const REASON_PRIORITY = {
|
||||
RETRY: 0,
|
||||
INTERVAL: 1,
|
||||
@@ -37,29 +42,22 @@ const REASON_PRIORITY = {
|
||||
ACTION: 3,
|
||||
} as const;
|
||||
|
||||
function isActionWakeReason(reason: string): boolean {
|
||||
return reason === "manual" || reason === "exec-event" || reason.startsWith(HOOK_REASON_PREFIX);
|
||||
}
|
||||
|
||||
function resolveReasonPriority(reason: string): number {
|
||||
if (reason === "retry") {
|
||||
const kind = resolveHeartbeatReasonKind(reason);
|
||||
if (kind === "retry") {
|
||||
return REASON_PRIORITY.RETRY;
|
||||
}
|
||||
if (reason === "interval") {
|
||||
if (kind === "interval") {
|
||||
return REASON_PRIORITY.INTERVAL;
|
||||
}
|
||||
if (isActionWakeReason(reason)) {
|
||||
if (isHeartbeatActionWakeReason(reason)) {
|
||||
return REASON_PRIORITY.ACTION;
|
||||
}
|
||||
return REASON_PRIORITY.DEFAULT;
|
||||
}
|
||||
|
||||
function normalizeWakeReason(reason?: string): string {
|
||||
if (typeof reason !== "string") {
|
||||
return "requested";
|
||||
}
|
||||
const trimmed = reason.trim();
|
||||
return trimmed.length > 0 ? trimmed : "requested";
|
||||
return normalizeHeartbeatWakeReason(reason);
|
||||
}
|
||||
|
||||
function normalizeWakeTarget(value?: string): string | undefined {
|
||||
|
||||
Reference in New Issue
Block a user