- --pane/--pane-id: write-chars AND write(13) hit terminal_1 (bottom pane) - cronicle_available()=shutil.which + daemon-live check; crontab/crnd auto-fallback (cronicle daemon down here -> live scheduler is system crnd) - fix cronicle_install invalid HCL (command=[...] array, was bare comma-list) - rewrite TestCrontabEntry hermetic (subprocess mocked; real crontab never touched) - add --pane-id / no-pane omission / HCL-array mutation-litmus tests; .sh --pane - cronicle.hcl: corrected pi_wake_pi_test_20m (msg + --pane terminal_1), valid HCL - live 20m crontab doorbell installed for pi_test/terminal_1, bell verified delivered - SIGQUIT rescued a locked pi (final_test @1318s); steer queued + bus-posted
25 lines
947 B
HCL
25 lines
947 B
HCL
# pi_wake_agent schedules (cronicle backend).
|
|
#
|
|
# IMPORTANT (see AGENTS.md): on this host the cronicle daemon is NOT running
|
|
# (not supervised), so these schedules are INERT. The LIVE scheduler is system
|
|
# crnd via crontab (see `crontab -l`). This HCL is only served when
|
|
# `cronicle run --path <this-file>` is supervised. The pi_test 20m wake is
|
|
# installed into crontab as well, so it actually fires regardless.
|
|
|
|
schedule "pi_wake_pi_test_20m" {
|
|
cron = "@every 20m"
|
|
|
|
task "wake" {
|
|
command = ["/mnt/dolphinng5_predict/pi_wake_agent.py", "--run", "--interval", "20m", "--sessions", "pi_test", "--pane", "terminal_1", "--msg", "Please carefully continue your work"]
|
|
}
|
|
}
|
|
|
|
# Sample multi-session schedule (kept from the original config).
|
|
schedule "pi_wake_s1_s2_1h" {
|
|
cron = "@every 1h"
|
|
|
|
task "wake" {
|
|
command = ["/mnt/dolphinng5_predict/pi_wake_agent.py", "--run", "--interval", "1h", "--sessions", "s1,s2", "--msg", "test"]
|
|
}
|
|
}
|