hermes-agent/cron
kshitij 3f832978d3 refactor(cache): share the boundary-declaration helper and simplify the registry
Follow-ups from review of #82049:
- extract append_user_instruction() into agent/skill_commands so the
  stable-prefix construction cannot drift between the skill and cron
  builders (the registered prefix must stay a byte-prefix of the built
  message); cron no longer imports the private _SINGLE_SKILL_INSTRUCTION
- add the startswith guard to the skill builder registration site,
  matching the stronger cron guard
- rename _MAX_BYTES to _MAX_CHARS (sum(map(len, ...)) counts characters,
  not bytes) and correct the comment
- collapse find_stable_prefix's two-lock dance into a single critical
  section (scan is <=32 short-circuiting startswith calls, measured
  2-4us; drops the snapshot copy and the TOCTOU re-check)
- document the split-shape lifetime (marked-endpoint window) in the
  module docstring
- add a contract test for the helper's byte-prefix invariant
  (mutation-checked)
2026-08-09 15:25:12 +05:30
..
scripts
__init__.py
blueprint_catalog.py chore(skills/competitor-news-monitor): cron-recipe shape + competitor-watch blueprint 2026-08-08 14:09:22 -07:00
executions.py
jobs.py fix: ensure utf-8 encoding in jobs.json 2026-08-08 12:29:35 -07:00
lifecycle_guard.py fix(cron): lifecycle guard — never crash on binary referenced paths, stop matching lifecycle words inside SQL/text 2026-08-06 07:49:35 -07:00
monitor.py feat(cron): monitor-mode jobs — hash-suppressed change detection 2026-08-07 08:57:44 -07:00
notepad.py fix: post-merge audit follow-ups for #81138/#81139/#81141/#81148 2026-08-08 05:21:09 -07:00
scheduler.py refactor(cache): share the boundary-declaration helper and simplify the registry 2026-08-09 15:25:12 +05:30
scheduler_provider.py fix(cron): surface initial scheduler registration failures 2026-08-07 17:45:06 +05:30
suggestion_catalog.py
suggestions.py fix(cron): surface initial scheduler registration failures 2026-08-07 17:45:06 +05:30