fix(cron): dual-case keys when loading jobs.json

jobs.json hand-edits and asdict-style snake_case for schedule intervals and
runHistory crashed or silently disabled cron. Deserialize via Cron* from_store_dict
and shared get_camel_snake (also used by local triggers).
This commit is contained in:
santhreal
2026-07-18 17:39:06 +08:00
committed by Xubin Ren
parent 8c68c6fe1e
commit afed32b013
5 changed files with 135 additions and 62 deletions
+2 -6
View File
@@ -6,15 +6,11 @@ from dataclasses import dataclass, field
from pathlib import Path
from typing import Any, Literal
from nanobot.utils.dict_keys import get_camel_snake as _get
TriggerStatus = Literal["ok", "error"]
def _get(data: dict[str, Any], camel: str, snake: str, default: Any = None) -> Any:
if camel in data:
return data[camel]
return data.get(snake, default)
@dataclass
class TriggerRunRecord:
"""A single local trigger delivery record."""